導航:首頁 > 程序命令 > 怎麼當一名優秀的程序員

怎麼當一名優秀的程序員

發布時間:2022-12-15 01:01:16

㈠ 怎樣做一名高效率程序員

1、理解編程語言的原理

三流的人才懂應用,二流的人才懂開發,一流的人才懂原理。各種語言之間存在著相似的地方,掌握語言的原理是必不可少的。最重要的,讓語言去適應項目,反之亦然。

2、向優秀程序員學習

你有一個蘋果,我也有一個蘋果,我們交換蘋果,你我還是有一個蘋果;你有一種思想,我也有一種思想,我們交換思想,你我就有了兩種思想。

與優秀的程序員為伍,你將吸收的最實用的經驗,這遠比你一個人自學、死磕編程來的快一些。有一句話說到好,與臭棋佬下棋,棋會越下越臭。不可否認這樣一個事實:和什麼樣的人在一起,就有什麼樣的格局,就會有什麼樣的人生。

3、了解數據結構和演算法

如果你要成為一個高效的開發者,就必須學會快速排序、學會辨認O(n2)程序、學會編寫遞歸函數。

學會多種語言,你便會更清楚不同的框架是相同問題的是如何解決的。盡可能去了解底層命令(plumbing),以便能夠作出明智的決定(Web框架是怎麼存儲session狀態的?Cookie到底是什麼?)。

4、精通一個編輯器

高效開發者通常是用IDE編輯器嗎?其實不是的,他們更常用的文本編輯器,因為這樣更會學到東西。

如果使用編輯器選擇通用的Emacs或Vim,自然是最好的。其次,挑選你的首選平台最支持的。使用宏,不斷地寫代碼;使用Visual Studio或SublimeText的自動補齊功能。

5、整潔的代碼勝過巧妙的代碼

如果想讓別人可以輕松讀懂你編寫的代碼,請盡量使用最少的代碼來完成任務。在編寫代碼過程中,遵循DRY(Don』t repeat yourself)的原則,使用明確定義的對象和庫,將任務分解成小而簡單的代碼段。

6、掌握代碼調試技巧

現如今市場和需求變化相當快,項目的周期有時就會縮短。一個月的工作計劃,會縮短到2個星期。項目的壓力難免會導致程序員的代碼質量會有所下降!

因此,調試技巧在這樣的環境下就顯得尤為重要。高級程序員會在函數的開始和結束輸出Log,把所有的參數和返回值列印到日誌系統,便於追蹤。在解決問題的過程中,使用開發工具一行一行進行調試,實時觀看參數的變化。

7、重新回顧代碼

重新去回顧和審視自己寫過的代碼,通常會有兩種體驗,一種是我怎麼寫了這么爛的代碼;另外一種則是對自己寫過的代碼充滿了成就感。回顧代碼有時可以觸發我們新的想法,甚至還能對編碼有一個更深層次的思考。

㈡ 如何成為一個優秀的程序員

講幾個小的方面吧。

批評還是啟發?

代碼審查是一個不錯但很少用的想法。在一個團隊里,優秀的程序員另一個任務就是要指導經驗比你少的程序員,但是主要以指導和啟發為主,不是貶低和公開批評,因為消極的態度不利於接下來團隊合作的開展。


學會分享

搞編程的沒有去逛一些論壇都不好意思說自己是干編程這個行業的。優秀的程序員往往會在這些論壇幫助別人,而實質上,輸出就是最好的學習。在一個團隊中也是一樣,幫助他人解決問題收獲更多,你也將不斷地得到成長。


勞逸結合

每天工作 24 小時不會讓你更有效率!不少程序員年紀輕輕就有腰椎盤突出、頸椎病、肩周炎、腰肌勞損、圓肩駝背等職業病。程序員們需要加強鍛煉,運動不僅僅可以加強肌肉的力量和耐力,而且也能夠活動身體的各個關節,有效緩解長時間保持一個動作導致局部肌肉過勞。

另外,編程是一項艱苦的腦力勞動活;有時你的大腦確實需要休息一下,休息是為了更好的工作。否則,你的工作質量將大打折扣。業余時間養成一項自己的個人愛好,確保自己可以放鬆並沉浸其中。如果是球類運動,效果更好,它將讓你保持旺盛的精力和活力。


不要閉門造車

留意網路各種平台,學習新語言和框架、參與討論以及看看同行在干什麼。多關注業界在干什麼,這將讓你的視野更加廣闊,不致於為了編程而編程。

㈢ 如何成為一名優秀的程序員

要掌握專業的的理論教程,系統的知識學習,因為要成為一名出色的程序員,從數據結構、演算法。資料庫都需要系統全面的了解和認識,並可以靈活運用,並且對自己所從事的編程語言要靈活調用。同時,編程高手都是從不斷的失敗和嘗試中走出來的,所以對於一個剛入門的新手來說,任務就是不斷的去編程,發現自身存在的缺陷,以及更熟練的掌握各種數據介面的調試和數據調用的應用。



㈣ 做一名優秀的程序員需要什麼條件

(1).要喜歡上寫程序,如果沒有喜歡上,那就要學會去培養。程序員需要整天趴在電腦前,經常沒日沒夜的,非常辛苦,而且工作來不得半點虛假,少寫一個標點符號都不行。喜歡的人,日子過得非常開心,每寫一行代碼,都會有新的成就,尤其當自己的作品被廣泛應用的時候,那種自豪感油然而起。不喜歡的人,坐在電腦前極端無聊,被進度壓得喘不過氣來,天天為找bug改bug生氣。個人深有體會!這個「喜歡」就要大家在學習的過程中去體會。
(1).程序員應該是有感情的,程序員的程序最終是由用戶來評價的,而不是老師,或者我們的BOSS。設計程序時,要講究貼心,境界:我們也是Composer!
(2).程序員應該講究團隊協作,分配給團隊的大項目,不是一人之力能夠應付的,請尊重別人的代碼,以及設計,彼此需要全心全力配合
(3).有堅韌不拔的精神,我們編的不是程,是寂寞。愛上程序設計,靠編程潛移默化性格,大多數成功的程序員都是相信自己的人,所以,多多鼓勵自己一定是最好的。
一、優秀程序員的標准

1. 能夠准確地評估你的工作。
2. 第一時間提交有質量的工作成果。
3. 建立快速的反饋循環。
4. 確保代碼的准確性與後續跟進的協調性。
二、態度生活方面
1.踏實的工作態度;認真負責,少犯錯誤。
2.充滿熱情,努力工作;有團隊合作精神,能善於和別人相處。
3.有預見性,預先感測未知因素預估風險或後果。

㈤ 如何做一名優秀的程序員

首先就是你的目標就不明確,你先要確定自己打算向哪方面發展
當好一名合格的程序員不僅要有扎實的基礎知識,還要多思考,多實踐,勤看書,更要有團隊合作精神,平時多和別人交流,俗話說:「三人行必有我師」,多上網看看一些資料,看看別人對同一問題的看發會有很大的啟發,要知道不是你一個人在寫程序而是和大家一起寫程序,注重團隊的力量!編程是一種藝術,要好好的發揮團隊的力量把它做的漂亮,完美。

勤奮聯系,多寫一些程序,然後在根據程序代碼多想想用多種方法去測試運行它`實習基地給我們提供了實際做一些項目的機會`我會借這個機會多學習`多思考,多實踐。多看一些相關的書,不斷提高自己。

我覺得做一名程序員是很難的,特別是做一名合格的程序員就更要嚴格要求自己,增加團隊合作能力,不斷提高自身水平。

1.1 程序≠軟體
現在很多人以為程序就是軟體,軟體就是程序。事實上,軟體和程序在20世紀80年代時,還可以說是等同的,或者說,在非pc領域里它們可能還會是等同的,比如說某個嵌入式軟體領域,軟體和程序可能是等同的。但是,在pc這個領域內,現在的程序已不等於軟體了。這是什麼意思呢?
1. 軟體發展簡述
在20世紀80年代的時候,pc剛誕生,這時國內還沒有幾個人會寫程序。那麼,如果你寫個程序,別人就可以拿來用。這時候的程序就能產生價值,這個程序就直接等同於軟體。
但軟體行業發展到現在,這里以中國的情況為例(美國在20世紀80年代,程序已經不等同於軟體了),程序也不等同於軟體了。因為現在會寫程序很容易,但是你的這個程序很難產生什麼樣的商業意義,也不能產生什麼價值,這就很難直接變成軟體。要使一個程序直接變成軟體,中間就面臨著很高的門檻問題。這個門檻問題來自於整個行業的形成。
現在,你寫了一個程序以後,要面臨商業化的過程。你要宣傳,你要讓用戶知道,你要建立經銷渠道,可能你還要花很多的時間去說服別人用你的東西。這是程序到軟體的一個過程。這門檻已比較高了。
我們在和國內的大經銷商的銷售渠道的人聊天時,他們的老闆說,這幾年做軟體的門檻挺高的,如果你沒有五、六百萬做軟體,那是「玩」不起來的。我說:「你們就使門檻很高了。」他說:「那肯定是的。如果你寫個「爛」程序,明天你倒閉了,你的東西還佔了我的庫房,我還不知道找誰退去呢。我的庫房是要錢的呀!現在的軟體又是那麼多!」
所以,如果你沒有一定的資產的話,經銷商都不理你。實際情況也是這樣的,如果你的公司比較小,且沒什麼名氣,你的產品放到經銷商庫房,那麼他最多給你暫收,產品銷不動的話,一般兩周絕對會退貨。因為現在經銷商可選擇的餘地已很多了,所謂的軟體也已經很多了。而程序則更多,程序都想變成軟體,誰都說自己的是「金子」。但只有經受住用戶的檢驗,才能成為真正的「金子」。
這就是美國為什麼在20世紀90年代幾乎沒有什麼新的軟體公司產生的原因。只是原來80年代的大的軟體公司互相兼並,我吞你,你吃我。但是,寫程序的人很多,美國的程序變軟體的門檻可能比我們還高,所以很多人寫了程序就丟在網上,就形成了共享軟體。
2. 共享軟體
共享軟體是避開商業渠道的一種方法。它避開了商業的門檻,因為這個行業的門檻發展很高以後就輕易進不去了。我寫個程序丟在網上,你下載就可以用,這時候程序又等於軟體。共享軟體是這樣產生的,是因為沒有辦法中的辦法。如果說程序直接等於軟體的話,誰也不會輕易把程序丟到網上去。
開始做共享軟體的人並不認為做它能賺錢,只是後來用的人多了,有人付錢給他了。共享軟體使得程序和軟體的距離縮短了,但是它與商業軟體的距離會進一步拉大。商業軟體的功能和所要達到的目標就不是一個人能「玩」得起來的了。這時的軟體也已不是幾個人、一個小組就能做出來的了。這就是在美國新的軟體公司沒法產生的原因。比如netscape網景是在1995~1996年產生的新軟體公司,但是,兩三年後它就不見了。
1.1.1 商業軟體門檻的形成
1. 商業軟體門檻的形成
商業軟體門檻的形成是整個行業發展的必然結果。任何一個行業初始階段時的門檻都非常低,但是,只要發展到一定的階段後,它的門檻就必然抬高。比如,現在國內生產小汽車很困難,但在20世紀50年代~60年代的時候,你裝4個輪子,再加上柴油機等就形成汽車。那時的萊特兄弟裝個螺旋槳,加兩個機翼,就能做飛機。整個行業還沒有形成的時候,絕對可以這樣做,但是,到整個行業形成時,你就做不了了。所有的行業都是這樣的。
為什麼網站一出來時那麼多人去擠著做?這也是因為一開始的時候,看起來門檻非常低,人人都可以做。只要有一個伺服器,架根網線,就能做網站。這個行業處於初始階段時,情況就是這樣的。但這個行業形成後,你就輕易地「玩」不了了。
國內的軟體發展也是如此。國內的軟體自從軟體經銷商形成以後,這個行業才真正地形成。有沒有一個渠道是判斷一個行業是否形成的很重要的環節。任何一個行業都會有一個經銷渠道,如果渠道形成了,那麼這個行業也就形成了。第一名的經銷商是1994年~1995年成立的,也就是說,中國軟體行業大概也就是在1995年形成的,至今才經歷8年時間的發展。
有一種浮躁的思想認為,中國軟體產業應該很快就能趕上美國。美國軟體行業是上世紀80年代形成的,到現在已經發展了20多年了。中國軟體行業才8年,8年才是一個懵懂的小孩,20多歲是一個強壯的青年,那麼他們的力量是不對等的。但也要看到,當8歲變成15歲的時候,它真正的能量才會反映出來。
2. 軟體門檻對程序員的影響
現在中國軟體行業正在形成。所以,現在做一個程序員一定要有耐心,因為現在已經不等於以前了。你一定要把所有的問題搞清楚,然後再去做程序。
對於程序員來說,最好的工作環境是在現有的或者初始要成立的公司裡面,這是最容易成功的。個人單槍匹馬闖天下已經很困難了。即使現在偶爾做兩個共享軟體放在網上能成名,但是也已經比較困難了。因為現在做軟體的人已經很多了。這也說明軟體已經不等於程序了,程序也不等於軟體。
程序要變成軟體,這中間是一個商業化的過程。沒有門檻以前,它沒有這個商業過程,現在有這個行業了,它中間就有商業化的過程。這個商業的過程就不是一個人能「玩」的。
如果你開始做某一類軟體的時候,別人已經做成了,這時你再決定花力氣去做,那麼你就要花雙倍的力氣去趕上別人。
現在的商業軟體往往是由很多模塊組成的,模塊是整個系統的一部分。個人要完整地寫一個商業系統幾乎是不可能的。軟體進入windows平台後,它已經很復雜了,不像在dos的時候,你寫兩行程序就能賣,做個zip也能賣。事實上,美國的商業編譯器也不是一個人能「玩」的。現在你可能覺得它是很簡單的,甚至linux還帶了一個gcc,且源程序還在。你可以把它改一改,做個vc試一試,看它會有人用嗎?它能變成軟體嗎?即使你再做個界面,它也還是一個gcc,絕對不會成為visual c++那樣能商業化的軟體。
可見,國外軟體行業的門檻要比中國的高很多了。我覺得我們中國即使再去做這樣的東西,也沒有多大的意義了。這個門檻你是追不過來的。不僅要花雙倍的力氣,而且在這么短的時間內,你還要完成別人已經完成過的工作,包括別人所做的測試工作。只有這樣,才能做到你的軟體與別人有競爭力,能與它做比較。
1.1.2 認清自己的發展
如果連以上認識都不清楚,很可能就以為去書店買一本mfc高手速成之類的書,編兩個程序就能成為軟體高手。就好像這些書是「黃金」,我學兩下,學會了vc、mfc,就能做一個軟體拿出去賣了。這種想法也不是不行,最後一定能行,但要有耐心,還要有機遇。機遇是從耐心中產生的,越有耐心,就越有機遇。你得非常努力,要花很多的精力,可能還要走很多的彎路。
如果你是從mfc入手的,或是從vb入手的,則如要做出一個真正的能應用個人領域的通用軟體,就會走非常多的彎路。直接的捷徑絕對不是走這兩條路。這兩條路看起來很快,而且在很多公司裡面確實需要這樣的東西,比如說我這家公司就是為另一個家公司做系統集成的,那我就需要這樣的東西,我不管你具體怎麼實現,我只需要達到這個目標就行了。
任何軟體的實現都會有n種方法,即使你是用最差的那種方法實現的,也沒有問題,最後它還是能運行。即使有問題,再改一改就是。但是,做通用軟體就不行了,通用是一對多,你做出來的軟體以後要面向全國,如果將來自由貿易通到香港也好,通到國外也好,整個產品能銷到全世界的話,這時候,通用軟體所有做的工作就不是這么簡單了。所以說,正確的入門方法就很關鍵。
如果你僅僅只是想混口飯吃,找個工作,可能教你成為mfc的高手之類的書對你就足夠了。但是,如果你想做一個很好的軟體,不僅能滿足你謀一碗飯吃,還能使你揚名,最後你的軟體還能成為很多人用,甚至你還想把它作為一個事業去經營,那麼這第一步就非常關鍵。這時就絕對不能找一本mfc或找一本vb的書學兩下就行,而是要從最底層開始做起,從最基本做起。
1.2 高手是怎樣練成的
1.2.1 高手成長的六個階段
程序員怎樣才能達到編程的最高境界?最高境界絕對不是你去編兩行代碼,或者是幾分鍾能寫幾行代碼,或者是用什麼所謂的可視化工具產生最少的代碼這些工作,這都不是真正的高手境界。即使是這樣的高手,那也都是無知者的自封。
我認為,一個程序員的成長可分為如下六個階段。
 第一階段
此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。
 第二階段
此階段能精通基於某種平台的介面(例如我們現在常用的win 32的api函數)以及所對應語言的自身的庫函數。到達這個階段後,也就相當於可以進行真實散打對練了,可以真正地在實踐中做些應用。
 第三階段
此階段能深入地了解某個平台系統的底層,已經具有了初級的內功的能力,也就是「手中有劍,心中無劍」。
 第四階級
此階段能直接在平台上進行比較深層次的開發。基本上,能達到這個層次就可以說是進入了高層次。這時進入了高級內功的修煉。比如能進行vxd或操作系統的內核的修改。
這時已經不再有語言的束縛,語言只是一種工具,即使要用自己不會的語言進行開發,也只是簡單地熟悉一下,就手到擒來,完全不像是第一階段的時候學習語言的那種情況。一般來說,從第三階段過渡到第四階段是比較困難的。為什麼會難呢?這就是因為很多人的思想變不過來。
 第五階級
此階段就已經不再局限於簡單的技術上的問題了,而是能從全局上把握和設計一個比較大的系統體系結構,從內核到外層界面。可以說是「手中無劍,心中有劍」。到了這個階段以後,能對市面上的任何軟體進行剖析,並能按自己的要求進行設計,就算是ms word這樣的大型軟體,只要有充足的時間,也一定會設計出來。
 第六階級
此階段也是最高的境界,達到「無招勝有招」。這時候,任何問題就純粹變成了一個思路的問題,不是用什麼代碼就能表示的。也就是「手中無劍,心中也無劍」。
此時,對於練功的人來說,他已不用再去學什麼少林拳,只是在旁看一下少林拳的對戰,就能把此拳拿來就用。這就是真正的大師級的人物。這時,win 32或linux在你眼裡是沒有什麼差別的。
每一個階段再向上發展時都要按一定的方法。第一、第二個階段通過自學就可以完成,只要多用心去研究,耐心地去學習。
要想從第二個階段過渡到第三個階段,就要有一個好的學習環境。例如有一個高手帶領或公司里有一個好的練手環境。經過二、三年的積累就能達到第三個階段。但是,有些人到達第三個階段後,常常就很難有境界上的突破了。他們這時會產生一種觀念,認為軟體無非如此,認為自己已無所不能。其實,這時如果遇到大的或難些的軟體,他們往往還是無從下手。
現在我們國家大部分程序員都是在第二、三級之間。他們大多都是通過自學成才的,不過這樣的程序員一般在軟體公司也能獨當一面,完成一些軟體的模塊。
但是,也還有一大堆處在第一階段的程序員,他們一般就能玩玩vb,做程序時,去找一堆控制項集成一個軟體。
現在一種流行的說法是,中國軟體人才現在是一個橄欖型的人才結構,有大量的中等水平的程序員,而初級和高級程序員比較少。而我認為,現在中國絕大多數都是初級的程序員,中級程序員很少,高級的就更少了。所以,現在的人才結構是「方塔」形,這是一種斷層的不良結構。而真正成熟的軟體人才結構應該是平滑的三角形結構。這樣,初級、中級、高級程序員才能充分地各施所長。三種人才結構對比如圖1.1所示。
圖1.1 三種人才結構對比
1.2.2 初級程序員和高級程序員的區別
一般對於一個問題,初級程序員和高級程序員考慮這個問題的方法絕對是不同的。比如,在初級程序員階段時,他會覺得vb也能做出應用來,且看起來也不錯。
但到了中級程序員時,他可能就不會選擇vb了,可能會用mfc,這時,也能做出效果不錯的程序。
到高級程序員時,他絕對不是首先選擇以上工具,vb也好,vc也好,這些都不是他考慮的問題。這時考慮的絕對是什麼才是具有最快效率、最穩定性能的解決問題的方法。
軟體和別的產品不同。比如,在軟體中要達到某個目標,有n種方法,但是在n種方法中,只有一種方法或兩種方法是最好的,其他的都很次。所以,要做一個好的系統,是很需要耐心的。如果沒有耐心,就不會有細活,有細活的東西才是好東西。我覺得做軟體是這樣,做任何事情也是這樣的,一定要投入。

程序員到達最高境界的時候,想的就是「我就是程序,程序就是我」。這時候我要做一個軟體,不會有自己主觀的思路,而是以機器的思路來考慮問題,也就是說,就是以程序的思考方式來思考程序,而不是以我去設計程序的方式去思考程序。這一點如果不到比較高的層次是不能明白的。
你設計程序不就是你思考問題,然後按自己的思路去做程序嗎?
其實不是的。在我設計這個程序的時候,相當於我「鑽」入這個程序裡面去了。這時候沒有我自己的任何思維,我的所有思維都是這個程序,它這步該怎麼走,下步該怎麼走,它可能會出現什麼情況。我動這個部分的時候,別的部分是否要干擾,也許會動一發而牽全身,它們之間是怎麼相互影響的?
也只有到達這個境界,你的程序才能真正地寫好,絕對不是做個什麼可視化。可視化本身就是「我去設計這個程序」,而真正的程序高手是「我就是程序」,這兩種方法絕對是不同的。比如,我要用vb去設計一個程序,和我本身就是一個程序的思維方式,是不一樣的。別人也許覺得操作系統很深奧,很復雜,其實,如果你到達高手狀態,你就是操作系統,你就能做任何程序。
對待軟體要有一個全面的分析方法,光說理論是沒有用的。如果你沒有經過第一、第二、第三、第四這四個階段,則永遠到達不了高境界。因為空中樓閣的理論沒有用,而這些必須是一步一步地去做出來。
一個高級程序員應該具備開放性思維,從里到外的所有的知識都能了解。然後,看到世界最新技術就能馬上掌握,馬上了解。實際上,技術到達最高的境界後,是沒有分別的。任何東西都是相通的,只要你到達這個境界以後,什麼問題一看就能明白,一看就能抓住最核心的問題,最根本的根本,而不會被其他的枝葉或表象所迷惑,做到這一步後才算比較成功。
從程序員本身來說,如果它到達這一步以後,他就已經形成了開闊的思維。他有這種開放性思維的話,他就能做戰略決策,這對他將來做任何事情都有好處。事實上,會做程序後,就會有一種分析問題的方法,學會怎麼樣把問題的表象剖開,看到它的本質。這時你碰到任何具體的問題,只要給點時間,都能輕而易舉地解決。實際上,對開發計算機軟體來說,沒有什麼做不了的軟體,所有的軟體都能做,只是看你有沒有時間,有沒有耐心,有沒有資金做支撐。
這幾年,尤其是這兩三年,估計到2005年前,中國軟體這個行業裡面大的軟體公司就能形成。現在就已經在形成,例如用友,它上市後,地位就更加穩固了。其他大的軟體企業會在這幾年內迅速長大。這時候,包括流通渠道、經銷商的渠道也會迅速長大。也就是說,到2005年以後,中國軟體這個行業的門檻比現在還要高很多,與美國不會有太大的差別。此時,中國軟體才真正體現出它的威力來。如果你是這些威力中的一員,就已經很厲害了。
別人可能知道比爾•蓋茨是個談判的高手,是賣東西的高手,其實,比爾•蓋茨從根本上來說是個程序高手,這是他根本中的根本。他對所有的技術都非常敏感,一眼就看到本質,而且他本身也能做程序,時常在看程序。現在他不做董事長,而做首席設計師,這時他就更加接近程序的本質。因為他本身就有很開闊的思維,又深入到技術的本身,所以他就知道技術的方向。這對於一個公司,對他這樣的人來說,是非常重要的。
如果他判斷錯誤一步,那公司以後再回頭就很難了。計算機的競爭是非常激烈的,不能走錯半步。很多公司以前看上去很火,後來就
銷聲匿跡了,就是因為它走錯一步,然後就不行了。為什麼它會走錯?因為他不了解技術的本質在哪裡,技術的發展方向在哪裡。
比爾•蓋茨因為父母是學法律的,所以他本身就很能「侃」,很有說服力,而他又是做技術的,就非常清楚技術的方向在哪裡,所以他才能把方向把握得很准確,公司越來越大。而別的公司只火一陣子,他卻火了還會再火。就算微軟再龐大,你如果不把握好軟體技術的最前沿,一樣也會玩完。就像intel時刻把握著cpu的最新技術,才能保證自己是行業老大。技術決定它的將來。

所以,程序員要能達到這樣的目標,就要有非常強的耐心和非常好的機遇才有可能。事實上,現在的機會挺好的,2005年以前機會都非常大,以後機會會比較小。但是,如果有耐心的話,你還是會有機會的,機會都是出在耐心裡。我記得有句話說「雄心的一半是耐心」,我認為雄心的三分之二都是耐心。如果你越有野心,你就越要有耐心,你的野心才有可能實現。如果你有野心而沒有耐心,那都是胡思亂想,別人一眼就能看穿。最後在競爭中,對手一眼就看到你的意圖,那你還有什麼可競爭的?

1.2.3 程序員是吃青春飯的嗎
很多人都認為程序員是三十歲以前的職業,到了三十歲以後,就不應再做程序員了。現在的很多程序員也有這種想法,我覺得這種想法很不對。
在20世紀80年代末到90年代初,那時軟體還沒有形成行業,程序員不能以此作為謀生的手段時,你必須轉行,因為你年輕的時候不用考慮吃飯的問題,天天「玩」都可以,但是以後就不可能了。
據我了解,微軟裡面的那些高手,幾乎都是四五十歲的,而且都是做底層的。他們是上世紀70年代就開始「玩」程序的,所以對於整個計算機,他們是太清楚了。現在有些人主觀臆斷地希望微軟第二天倒閉就好了,但那可能性太小了。因為那些程序員是從cpu是4004的時候開始,玩到現在奔騰iv,沒有哪一代東西他們沒有經歷過。
你知道他們現在正在玩什麼嗎?現在正在玩64位的cpu。你說你普通的程序員,有這個耐心嗎?沒有這個耐心,你絕對做不了,你也絕對做不了高手。他為什麼能做?因為他不僅是玩過來的,而且他還非常有耐心,每一步技術他都跟得上,所以對他來說,沒有任何的難度和壓力。
因為計算機技術沒有任何時候是突變的。它的今年和去年相差不會很大,但是回過頭來看三年以前的情況,和現在的距離就很大。所以說,如果你每年都跟著技術進步的話,你的壓力就很小,因為你時刻都能掌握最新的技術。但是,如果你落下來,別說十年,就是三年,你就趕不上了。
如果你一旦趕不上,就會覺得非常吃力;如果你趕不上,你就會迷失方向;如果你迷失了方向,你就覺得計算機沒有味道,越做越沒勁。當你還只是有個思路的時候,別人的產品都做出來了,因為你的水平跟別人相差太遠,人家早就想到的問題,你現在才開始認識。水平越高,他就看得越遠,那麼他的思維就越開闊;水平越低,想的問題就越窄。
64位cpu是這個十年和下個十年最重要的技術之一,誰抓住這個機會,誰就能抓住未來賺錢的商機。cpu是英特爾設計的,對這一點他肯定清楚。舉例來說,如果從64位的角度來看現在的32位,就像從現在的角度去看dos。你說dos很復雜嗎?當你在dos年代的時候,你會覺得dos很復雜。你說現在的windows不夠復雜嗎?windows太復雜了,但是你到了64位的時候再去看windows,就如同現在看dos一樣。
整個64位系統的平台和思維方式、思路都比現在更開闊,打個比方說,現在的windows裡面能開n個dos窗口,每個dos窗都能運行一個程序。到達64位的時候,操作系統事實上能做到開n個x86,開n個windows 98,然後再開n個windows 95都沒有問題,系統能做到這一步,甚至你的系統內開n個windows nt都沒有關系。這就是64位和32位的差別。所以,微軟的那些「老頭」,四、五十歲的那幾個做核心的人,現在正在玩這些東西。你說微軟的技術它能不先進嗎?是linux那幾個玩家能搞定的嗎?
微軟的技術非常雄厚,世界計算機的最新技術絕對集中在這幾個人手裡。而且這幾個人的思維模式非常開闊,誰都沒有意識到的東西他早就開始做了。現在64位的cpu都出來一二年了,你說有什麼人去做這些應用嗎?沒有,有的就是那幾個unix廠商做好後給自己用的。

所以,追求技術的最高境界的時候,實際上是沒有年齡限制的。對我來說,現在都三十三了,我從來沒有想過退出這行,我覺得我就能玩下去,一直玩到退休都沒有問題。我要時刻保持技術的最前端,這樣的話對我來說是不困難的,沒有任何累的感覺。
很多人說做程序不是人乾的事情,是非人的待遇。這樣,他們一旦成立一個公司,做出一點成績,在輝煌的時候馬上就考慮退出。因為他們太苦了,每天晚上熬夜,每天晚上燒了兩包煙還不夠,屋子裡面簡直就缺氧了,好像還沒有解決問題。
白天睡覺,晚上幹活,那當然累死了,這是自己折騰自己。所以,做程序員一定要有一種正常的心態,就是說,你做程序的時候,不要把自己的生活搞得顛三倒四的。如果非得搞得晚上燒好多煙才行,這樣你肯定折騰不到三十歲,三十歲以後身體就差了。
事實上,我基本上就沒有因為做程序而熬夜的。我只經歷過三次熬夜,一次是在學校的時候,1986年剛接觸計算機時,一天晚上跟一個同桌在計算機室內玩游戲,研究了半天,搞著搞著就到了天亮,這是第一次。然後在畢業之前,在286上做一個程序。還有一次就是超級解霸上市前,那時公司已吹得很大了,那天晚上沒法睡覺。
一般來說,我也是十二點鍾睡覺,第二天七點就起了。所以說,只有具有正常的生活、正常的節奏,才有正常的心態來做程序員,這樣,你的思路才是正常的,只有正常的東西才能長久。搞疲勞戰或者是黑白顛倒,時間長久後就玩不轉了,玩著玩著就不想玩了。

㈥ 如何成為一個優秀程序員

從初入職場菜鳥到職場大咖,很多程序員在努力充實自己,有時候我們需要對自己進行一次能力定位,了解自己的優勢和沒有掌握的技術。芯學苑列出幾點作為初入職場的新手評估自己,明了前進學習的方向。

1、技術能力(解決問題的能力)

這是非常重要的事;過硬的技術能讓你得到面試機會,並在工作中游刃有餘。當公司招聘一個Java開發人員時,是會優先考慮能力因素的。在實際的項目開發中,一個程序員的技術能力等於其解決問題的能力。

如果拿一個尺度來衡量這個能力的話,一個程序員的能力可以用能完成任務的數量和難度來衡量。一個程序員能基本無誤的完成項目中的一個功能算是合格,但在此之前,他對項目的生產力為負,為他布置的任務,中間環節的溝通,修補bug的時間其實要多於自己直接完成該功能的時間的。能較好完成一個完整模塊的程序員才算是較好的程序員,也是項目中的主要開發者。能獨立完成整個項目才是優秀的程序員。

2、專業基礎(知識的積累)

一個程序員的知識積累很大程度上決定了其解決問題的能力。知道如何編寫代碼是基本的技能,但是知道Java編程語言的原理,知道代碼背後的演算法將使你從人群中脫穎而出。

3、主流編程工具

今天,事實是,你不能成為一個樣樣都懂的人(雜而不精)。你必須選擇你要掌握的工具。有時這是由工作的環境決定的,但是按照下面說的去做也是一個很好的選擇:

構建工具:Maven或Gradle。

SCM:Git(不是GitHub。大不相同)。

構建自動化:Jenkins。

IDE:Netbeans或Eclipse——不僅用於編寫代碼,而且還從IDE中重構和調試代碼。我遇到了很多沒有如何從他們最喜歡的IDE調試的開發人員。

Bug跟蹤:Bugzilla或Jira。

4、JSF的知識

應用程序伺服器

所有Java開發人員應該知道如何在Apache Tomcat中部署。

當Glassfish開發停止時,下一個最好的事情是J Boss Wild Fly。

5、溝通的能力

溝通是我們做好一切事情的關鍵。我們必須與我們周圍的環境保持互動,無論是在我們的私人還是職業生活中。一個良好的程序員知道如何在各種團體面表達自己。也許對你來說顯而易見的東西在他人的角度來看並非如此。

從大的尺度(比如一個人的工作生涯)來看,一個程序員知識積累的多少只決定於其自學能力和他對編程本身的興趣。

在一個分工明確的項目中,程序員需要理解產品,和領導溝通理解自己的任務,和同事們溝通以正確的方式進行合作。無論哪一個方面溝通出了問題都不是小事情,同時,程序員還需要正確的傳達設計的實現難度,以及讓別人正確的理解自己設計模塊的介面。在不寫文檔時,正確的口頭溝通非常重要,需要寫文檔時,良好的編輯能力也算做是溝通能力的一部分。

6、自學能力

這是一個非常重要的技能,在你自己的空閑時間學習新的技能。不要等待公司為你提供培訓。你需要自己去學習新技術,提升自己在相關領域的水平。從Java後端開發到架構模式,總是有一些新事物值得學習。經常閱讀博客和論壇,嘗試加入本地聚會小組。你學到的東西可以幫助你的事業。知識刷新頻率極快讓人無法追趕的這個時代,難免會有超出自己知識范圍的時候,此時你的自學能力決定了你能多快的完成任務。

7、良好的團隊合作精神

無論是部分編程還是大型項目,所有開發人員都是作為團隊的一部分在協同工作。你需要致力於團隊的目的,或幫助新的團隊成員克服障礙。不要存在這種「我只要做好我的本職工作,下班就直接回家」的態度。成為團隊的一部分,幫助周圍的同事,對自己的能力也是不小的提升。

就像拿破崙說的不想當元帥的士兵不是好士兵,追求參與一個大型軟體系統的開發,是每個程序員的夢想。在此之前,應該學習更多的專業知識,達到優秀程序師的標准。最後希望各位程序員閱讀本文後能夠得到一些裨益,在這條路上走得更好。

㈦ 怎麼成為一名程序員 當程序員需要學什麼

PHP,這類編程語言是比較適合初學者的語言 ,而且當你掌握它的時候會變得更加強大。被用來開發了許多Web應用。
然後就是Java了,很多人都對Java比較了解的多一些,Java涵蓋的知識體系是比較龐大的,如果你對Java感興趣,那麼就可以選擇學習Java技術,如果是零基礎想要學習的話,
最好選擇報Java培訓班學習。Java就業領域也是比較廣泛的,通常Java被無數個項目所使用,從游戲到Web應用再到ATM軟體,工作幾率也是比較大的。
在一個就是HTML了,也就是我們常說的前端編程,HTML對於任何Web開發者來說是必不可少的起航點。想要從事web前端方面的工作的話,那麼掌握好HTML技術是非常重要的。

閱讀全文

與怎麼當一名優秀的程序員相關的資料

熱點內容
openldaplinux安裝 瀏覽:21
java取月的最後一天 瀏覽:10
騰訊雲伺服器多久退款 瀏覽:947
微信廣告植入系統源碼 瀏覽:922
一年級語文上冊pdf 瀏覽:313
好久不見app干什麼用的 瀏覽:143
壓縮包解壓碼對方可以更改嗎 瀏覽:256
pdf電子書製作軟體 瀏覽:888
數控三通編程 瀏覽:300
linux多終端 瀏覽:811
法律寫作pdf 瀏覽:144
國貨哪個品牌最好app 瀏覽:951
看哪個app給錢最多 瀏覽:178
編程靠經驗嗎 瀏覽:759
c教程pdf下載地址 瀏覽:573
製作視頻哪個app有瘦臉功能 瀏覽:649
linux查看線程內存 瀏覽:509
命令行簽名apk 瀏覽:92
網頁照片旋轉源碼 瀏覽:842
QQ會員頭像源碼 瀏覽:263