1. 有前途的程序員8個習慣,你擁有幾個
謹慎說Yes
在沒有搞清楚開發需求、任務工作量、團隊期望值之前,有前途的程序員不會輕易答應。特別是對於新人來說,比較急於表現自己,對於同事或者老闆的工作安排來者不拒,精神可嘉,方法不可取。承諾太多,會出現自己無法按時完成的情況,即使按時完成,也可能沒有達到別人的期望值,長期以往別人對你的失望會越來越多。
2敢於說No
看起來和第一條雷同,其實細究起來不一樣。第二條執行起來比第一條難得多。當遇到明顯不合理的要求時,可以考慮拒絕,前提是准備好了全面充分的理由。不要經常說No,但是一旦說了,就要切中要害。有前途的程序員不會悶頭幹活,知道自己的定位和團隊期望,分清楚哪些是不合理的要求,哪些是合理的要求,然後把明顯不合理的要求和領導溝通下,取得支持。
3構建自己的知識體系
在信息爆炸的年代,碎片化的知識很多,系統學習的時間越來越少,如果沒有自己的知識體系,很容易被淹沒在知識的海洋中,而且難以記憶。100分程序員推薦的做法,通過Wiki或者其他知識管理工具構建一個知識框架,大的分類可以包括軟技能、架構、語言、前端、後端等,小的分類可以更細化。
4培養大局觀觀念
程序員比較容易陷入的困境是專注於自己的一畝三分地,不關心團隊的進度和業績,也不關心軟體的整體架構和其他模塊。這種狀態長期下去沒有好處,特別是在大公司中,逐漸成長為一顆螺絲釘。100分程序員會在工作之餘,多看看其他人在做什麼,看看團隊的整體規劃,看看軟體系統的架構和說明文檔。對自己的工作更理解,而且知道為什麼這個產品應該這樣設計,為什麼領導應該這樣做規劃,這種大局觀非常有利於自己的職業生涯。
5代碼規范
程序員在新手時期需要培養良好的代碼規范。最直接的辦法,遵循公司已有的代碼規范(如果沒有類似的規定,也是醉了),從簡單的變數命名到模塊劃分,有些規則可以導入到編碼工具中,更多的部分需要自己體會和遵守。關於此方面的知識,最權威的書籍是《代碼大全》,別誤會,書名是個美麗的錯誤,裡面不是代碼集錦。對於新手來說,養成一個統一的編碼風格非常重要,是基礎一步。
6代碼審查
把這個單獨拎出來說,是因為對於程序員來說很重要。很多快速成長的公司沒有這個步驟,建議大家能夠堅持下來。讓別人審查自己的代碼,可以得到更多的反饋,也是和同事交流的好機會;審查別人的代碼,可以借鑒別人的經驗和思路。通常情況下,代碼審查比自己寫代碼的收獲更大,對於新手來說更有價值。只要你想做,不論形式是不是正規,都可以執行下去,最好形成團隊的習慣。
7一個時間段內只專注於一種類型的語言
如果你正在設計或開發網站,你將需要同時熟悉多種不同的語言。你可能會想同時學習所有的這些語言,特別是考慮到它們是如何相互關聯的。
我想,在某種程度上,這是不可避免的。但如果你真的想快速提高,我建議你專注於一個特定領域的專業知識。你想更好地利用CSS?把你的重點放在這一點。嘗試使用一個單一的HTML文檔只使用CSS實現不同的布局。 CSS Zen Garden 是一個使用相同布局實現不同頁面樣式非常棒的例子。你也可以通過查找元素的列表,並把精力集中在裡面。舉個例子來說,你熟悉CSS2,但想提升對 CSS3 的理解,你可以學習CSS3屬性並逐一的實現它們。你可以閱讀當前的 CSS3規范 ,還可以通過每個模塊的學習來了解它在瀏覽器上能(或不能)做什麼。
8通過注釋來寫邏輯
說到編碼,我有堅持很多原則和想法。其中一個就是,代碼中95%都是邏輯。另一個就是從人類語言到編程語言,邏輯並沒有改變。
2. 如何成為優秀的程序員
首先是 來自自身內部的創造性的一面
雖然你可以從別人那裡學到很多東西,也可以已有的東西中得到靈感。但真正的創意靈感來自於你自己。例如喬布斯,他不是一名工程師,也不是程序員,但他很有創意,他推動蘋果公司創造了iOS,Siri。
或許你想問編程需要什麼創意?任何人都可以在線或離線學習一些課程,閱讀一些書籍就可以開始寫代碼了。但這些東西都是別人灌輸給你的,你需要有自己的一些想法和創意,想出自己的框架。例如Dennis Ritchie,他就創造性地編寫了C編程語言,而且目前這是使用最廣泛的語言。
它像任何口語一樣,每個人都知道一些語言,但不是每個人都是一個詩人或一個作家。你需要創造性的技能才能被稱為偉大的詩人或作家。
其次是技術方面
你需要從一些編程語言開始。過去很多人開始是以C語言開始編寫程序。然後很多人開始使用BASIC。現在人們從Python或php開始。其實從什麼語言開始不重要。重要的是一旦你掌握了這些概念,你就可以編寫演算法並繪制流程圖。
總的說來,如果你花太多時間做下面的事情,它可能會提高你的技能一點點,但你永遠不會是一個好的程序員:
只知道看書的程序員用永遠不會成為一個好程序員。俗話說All read and no practice makes Jack a ll boy,古人的話絕對是有道理的,不是說讓你不要閱讀,只是不要只有閱讀,你應該通過應用你學到的東西來構建簡單的應用程序。
通過記憶代碼和演算法。編程是思考而不是記憶。你可以擁有最好的記憶力,但是如果你沒有自己思考,你永遠不會是一個好的程序員。我們有計算機和互聯網為我們記住事情,你不需要記住任何東西 , 你只需要了解在哪裡以及如何找到你需要的信息。
通過編寫你看的書中的單個函數和演算法,即編寫愚蠢的冒泡排序函數和類似的無用演算法。
通過測試其他人的代碼。例如是否使用測試軟體或編寫單元測試等
通過閱讀和調試其他人的代碼。這可能會在短期內有所幫助,但是只是在對方的代碼寫得很好的情況下,你可以從中學到別人的一些良好的習慣;但閱讀不好的代碼作為例子會教你養成不良的習慣,而且你或許一直會記得這個錯誤的習慣。從長遠來看,花費太多時間閱讀和調試其他人的代碼將不利於你的成長。
讓別人來管理你。編程就是為自己思考,你需要自己管理自己,也就是上面所說的,要有自己創造性的思考。
成為優秀的程序員最好的打開方式就是:
你必須自己完整的完成一個項目。不要過多地把重點放在閱讀書籍,語法,演算法和功能上,也就是說,在開始時不要太關注細節。你可以簡單地坐下來思考一個你想為自己開發的應用程序/系統......如果實在需要的話,可以問你身邊的同事/老師的想法,但是你必須有自己的思考並且自己獨立去完成它。
一旦你想明白了,就把這個想法留在腦海,並且富有激情的去完成它,所有的一切都會慢慢地開始。你會想到你要實現的功能,你將開始研究如何實現這個或那個。
只有在這個時候,你才應該拿起一本書或在互聯網上搜索關於如何實現這個你認為可以做的很酷的功能的答案。隨著你的應用程序/系統的發展,你將會慢慢地開始考慮編寫更簡潔的代碼,以便在將來也可以派上用場,讓自己的工作更輕松。
只有通過把自己的想法帶入生活,你才能學會如何成為一名優秀的程序員。你應該把自己看成是一個藝術家,而不是像編寫代碼的人那樣去編譯和運行。如果你只是在別人的代碼上工作,或者只是閱讀書籍等,你將很快失去動力,你永遠不會發現或利用你的才華。
3. 大神級java程序員有哪些好習慣
優秀程序員必備的好習慣:
好的時間管理
編程之前准備好全套演算法
理解and幫助定義驗收標准
主動一點點
參考地址:http://www.88cto.com/996655/article/details/17847.html
4. 要做程序員需要學會什麼
其實簡單來說,程序員的工作就是使用編程語言,根據需求寫出一個程序。
但是,在這個過程中,涉及如下幾個方面:
使用的編程語言 程序員需要選擇一門或者多門語言來編程,不同的語言適合編寫不同的程序,目前主流編程語言包括,Java、JavaScript、Python、C++、php以及其他小語種等等,每種編程語言適合開發的程序有所不同。目前從程序應用分來,主要可以分為三類a 企業應用,主要用於解決企業業務。各種企業管理後台系統,銀行系統,公安系統,圖書管理系統等等。
b 互聯網應用,面向互聯網用戶,為互聯網用戶提供各類服務。比如現在的京東淘寶各類電商系統等。
c 移動應用,各類在移動端使用的APP,有面向互聯網用戶的APP,也有面向企業內部的APP。
目前相對而言,在移動應用和互聯網應用方面,資本投入比較熱的風口,程序員的薪資較高。企業應用,發展了很多年,相對平穩。
2. 明白需求,實現需求
需求就是編寫程序的要求。一個程序要編寫成什麼樣子,具備哪些功能,都是由需求來具體說明。程序員要需要能看懂需求文檔,並且能准確地使用編程語言,根據需求中的要求來編寫成程序。企業開發的項目,往往會由該程序的架構師提供一個程序框架,程序員在該框架的規范下進行編程,實現需求的功能,以確保程序的規范、可讀,以及可維護性。
3. 日常工作寫程序
一個軟體開發一般流程是產品經理根據用戶需求做一個項目出來,然後UI設計師做一些圖片設計,前端開發編寫頁面,後台開發編寫核心編程,然後介入一些大數據和人工智慧,通過測試之類上線實施,後期還有運維進行相關維護。
程序員一般大多指的是前端和後台寫代碼程序的開發人員,除了編寫代碼,可能還需要通過介面和其它系統對接,實現系統間的數據交換。像單體測試,是程序員對自己寫好的程序單元進行測試,檢測這個程序單元數據輸入和數據輸出是否符合預期等等。測試出來的問題,需要修改正確,然後再測試,直至沒有問題。和同事共同開發的時候也需要聯合測試,以及用戶測試過後如果存在BUG繼續進行修改。
5. 一個程序員要具備的基本素質是什麼
團隊精神和協作能力 :
把它作為基本素質,並不是不重要,恰恰相反,這是程序員應該具備的最基本的,也是最重要的安身立命之本。
文檔習慣:
作為代碼程序員,30%的工作時間寫技術文檔是很正常的,而作為高級程序員和系統分析員,這個比例還要高很多。缺乏文檔,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模塊的復用時就都會遇到極大的麻煩。
規范化,標准化的代碼編寫習慣:
作為一些外國知名軟體公司的規矩,代碼的變數命名,代碼內注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。
需求理解能力:
作為程序員需要評估該模塊在系統運營中所處的環境,將要受到的負荷壓力以及各種潛在的危險和惡意攻擊的可能性。就這一點,一個成熟的程序員至少需要2到3年的項目研發和跟蹤經驗才有可能有心得。
復用性,模塊化思維能力:
復用性設計,模塊化思維就是要程序員在完成任何一個功能模塊或函數的時候,要多想一些,不要局限在完成當前任務的簡單思路上,想想看該模塊是否可以脫離這個系統存在,是否可以通過簡單的修改參數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重復性的開發工作。
測試習慣:
軟體研發作為一項工程而言,一個很重要的特點就是問題發現的越早,解決的代價就越低,程序員在每段代碼,每個子模塊完成後進行認真的測試,就可以盡量將一些潛在的問題最早的發現和解決,這樣對整體系統建設的效率和可靠性就有了最大的保證。
學習和總結的能力:
善於學習,對於任何職業而言,都是前進所必需的動力,對於程序員,這種要求就更加高了。但是學習也要找對目標,一些小coding fans們,他們也津津樂道於他們的學習能力,一會學會了asp,一會兒學會了php,一會兒學會了jsp,他們把這個作為炫耀的資本,盲目的追逐一些膚淺的,表面的東西和名詞,做網路程序不懂通訊傳輸協議,做應用程序不懂中斷向量處理,這樣的技術人員,不管掌握了多少所謂的新語言,永遠不會有質的提高。
6. 一個優秀的程序員需要養成哪些良好的習慣
1. 理解編程語言的原理,遵循編程規范,並且能夠寫出有效的代碼,並學會優化代碼。
2. 估算解決問題所需要的時間,為自己定一個時間限制,加強程序自測試。
3. 做好版本控制,並及時備份代碼,經常檢查代碼,還要回顧以前寫過的代碼,看看能不能有新想法。
4. 動手編碼之前,先做好分析和設計。
5. 對項目文件歸類保存。可以把項目文件放到SOURCE、HEADERS、MAKE、EXES等不同的文件夾中。
6. 制定驗收規則,優秀出色的程序一定會編寫技術測試腳本,因為他們清楚要是省略了這一步會嚴重後果。
7. 重視,但不過於注重程序的設計模式。
8. 養成耐心、冷靜的好習慣,多向優秀的程序員學習。
7. 怎麼做一個好的程序員
想成為一名優秀的程序員,往往需要具備以下特質:
1、始終保持工作熱情
只有熱愛才能做好一件事。尤其對於技術人員來說,程序員經常對著電腦一坐就是七八個小時,有時候趕項目還得在公司熬夜加班。如果不是真的熱愛這份工作,光靠賺錢這個驅動力肯定是不足以支撐下去的。如果你每天都是一副上班比上墳還沉重的樣子,哪怕你的技術水平再高,你的狀態也很難好到哪裡去,更不可能做出一個好的產品來。
2、提高學習能力,不斷提升專業水平
新技術層出不窮,每個程序員都必須堅持學習。只有不斷學習才能不斷提升。在空餘時間多掌握一些工具,多學習一些技術語言,技多不壓身嘛。而且技術都是相通的,多學習一些新東西,會讓你更融會貫通。這樣既可以提高自己的工作效率,也能提升自己的職場競爭力。
3、加強溝通能力,避免無效的工作產出
下手寫代碼前必須明確產品的目標和需求,如果有不理解的,一定要及時跟上級進行溝通,必要時還可以從技術層面給產品和老大提出優化意見。切忌光敲代碼不思考,這樣很容易做無用功。
只要能做到以上三點,你未來的發展空間會更大,也相信你一定能找到適合自己的平台!
8. 作為一個好的程序員,都需要具備哪些基本的
你好,小U來為您解答這個問題,眾所周知,程序員是從事程序開發、維護的專業人員。
作一個真正合格的程序員,需要具備:
1:團隊精神和協作能力
團隊精神和協作能力是作為一個程序員應具備的最基本的素質。
2:文檔習慣
文檔是一個軟體系統的生命力。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。
4:需求理解能力
程序員要能正確理解任務單中描述的需求。
5:模塊化思維能力
作為一個優秀的程序員,其思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力
程序員是很容易被淘汰的職業,所以要善於學習總結。
9. 頂級的程序員是怎麼樣的
頂尖程序員常說:「這個我以前寫過一個模塊,我找找,很快。「簡直是沒有對比就沒有傷害!
有人認為,普通程序員用復雜的代碼解決簡單的問題;而高級程序員能把復雜的問題簡單化並用簡潔的代碼去實現。在w3cschool看來,頂尖程序員和普通程序員至少在以下6個方面大有區別。
1、文檔能力
「文檔是第一生產力」,這一點在程序員的世界是毫無異議的。看看Spring,hibernate,Struts等最流行的開源軟體的文檔就知道,他們tutorial,他們的getstarted,他們的reference文檔寫的多麼的易懂。
如果要獲得更高的報酬,文檔是絕對關鍵的因素。有文檔就有溝通,就有交易。搞技術的容易忽視文檔的力量,也因為寫文檔十分困難,更多程序員選擇舒適區,習慣寫下代碼,但正因為如此,妨礙了不少程序員的進階。
2、解決BUG的效率差別
普通程序員可以利用搜索引擎(網路)尋找答案,經常性找不到好的解決辦法,然後更換技術方案!頂級程序員也利用搜索引擎(Google)尋找答案,一般bug都順利解決(其實跟前期框架選擇等關系非常大)。
3、表達能力
表達能力決定了你所做的技術的影響范圍,決定了你的影響力,決定你的威信,決定了你的報酬。普通程序員和頂尖程序員的表達能力差別非常大,這主要還是取決於他們格局的不同。良好的溝通能力讓你理解產品經理的設計思路,讓你更好的展現自己的特長。
對於累積人脈,當你的閱歷越來越豐富,人脈對你的幫助也越來越明顯。
4、優雅和美觀的抽象能力
普通程序員和頂尖程序員之間的區別在於優雅和美觀的抽象能力。好的系統通常是要做到兩個方面才合格,其一是好用,其二是好看。但是令人遺憾的是,普通程序員僅僅從實現的角度進行堆砌。頂尖程序員往往能夠更進一步,經常會去思考用戶在操作這個功能的時候,到底還會做什麼事情。
所以,頂尖程序員和普通程序員區別就是是否擁有用戶意識,是否敢於直面用戶。好用,好看一直是軟體能夠被普遍採用的前提,因此,我們有必要學會抽象優雅。
5、面對如何開源社區態度
普通程序員幾乎沒有在開源社區混,這也導致經常對新技術發展關注度低。而頂尖程序員則是擁抱開源社區。
6、面對功能點
普通程序員:立馬開始構思自己如何實現腦海里出來一個方案。
頂尖程序員:發現功能點很普通github上面早已經有非常多的解決方案,著手根據業務選擇一個最適合最優的方案
10. 一個優秀的程序員應該具備什麼素質
一個好的程序員必備條件之一就是嚴謹的思維
1、養成良好的書寫代碼的習慣,該加註釋的時候一定要加註釋,該大寫的地方一定要大寫,變數命名不能模糊不清。這是基礎,是為了讓別人能看明白你所寫的代碼,不能你寫的代碼只有你自己才看的明白。
2、注意所寫軟體的版本控制。
3、勤奮學習最新的技術,計算機技術日新月異,這點我不說相信你也知道。
4、養成寫開發文檔的好習慣,再接到一個項目時,第一件事情是進行需求分析,然後寫開發文檔,把你每一步要做什麼都先寫清楚,再動手做。
5、不要怕技術難題,在計算機領域,只有不能解決難題的人,沒有人解決不了的難題。
6、虛心向他人學習,即使技術實力比你差很多的人,也肯定會知道一些你所不知道的技術點。