在stackexchange網(wǎng)站上看到了一個(gè)非常好的問(wèn)答,有人問(wèn):你做過(guò)的有效的提高你的編程水平的一件事情是什么?
回首作為一個(gè)程序員這些年來(lái)的生活和職業(yè)道路,我使用了很多種不同的方法來(lái)提高我的編程技能 —— 閱讀代碼,編寫(xiě)程序,閱讀書(shū)籍,聽(tīng)講座,看視頻,等等。
我的問(wèn)題是:你做過(guò)的有效的提高你的編程水平的一件事情是什么?對(duì)于那些想提高水平的程序員,你的建議是什么?
我希望你們提供的答案是各種各樣的,并且不是那種“放之四海而皆準(zhǔn)”的答案 —— 我希望得到適用于不同人的不同的答案。
有很多人給出了自己的答案,在這里,我將其中受認(rèn)可的前三種答案選出來(lái)翻譯給大家。
受歡迎的回答:學(xué)無(wú)止境
沒(méi)有特別的先后次序…
和比自己更聰明的人一起工作
永遠(yuǎn)樂(lè)意聽(tīng)取他人的意見(jiàn),不管對(duì)方是低級(jí)水平,一般水平,資深,還是大師。職稱(chēng)頭銜并不代表一切。
學(xué)習(xí)其它的框架/語(yǔ)言,學(xué)習(xí)它們是的工作原理和思想,拿它們跟你已知的技術(shù)做比較。
學(xué)習(xí)各種設(shè)計(jì)模式,實(shí)踐理論,然后用它們檢查自己先前的知識(shí),在需要的時(shí)候使用這些模式。
結(jié)對(duì)編程
反對(duì)Joel說(shuō)的一切。
第二受歡迎的回答:成為多面手
爭(zhēng)取成為一個(gè)‘多面手萬(wàn)事通’
在我職業(yè)生涯的早期,我在一種數(shù)據(jù)庫(kù)和編程語(yǔ)言上是個(gè)專(zhuān)家。不幸的是,這種數(shù)據(jù)庫(kù)在“數(shù)據(jù)庫(kù)戰(zhàn)爭(zhēng)”中落敗了,我才發(fā)現(xiàn)我的職業(yè)道路…很窄。在此之
后,我下定決心以后決不能把自己封在一個(gè)小空間里。我開(kāi)始學(xué)習(xí)所有手頭上能接觸到的東
西:Windows,Unix,C,C++,Java,C#,Perl,Python,Access,SQL
Server,Oracle,Informix,MySQL,等等。不管什么樣的新的,不常見(jiàn)的工具或技術(shù),我都成為“大拿” ——
“去問(wèn)克雷格(作者自己),他要是不會(huì),他會(huì)去學(xué)會(huì)的?!苯Y(jié)果,我做了各種各樣的項(xiàng)目,從為環(huán)境監(jiān)測(cè)做嵌入式系統(tǒng),到為導(dǎo)彈防御做命令和控制系統(tǒng)。
我在各種的公司里唯一遇到的問(wèn)題是:它們堅(jiān)持要把我固定在一個(gè)專(zhuān)門(mén)的研究方向內(nèi),而我的專(zhuān)門(mén)研究是要成為一個(gè)多面手。[編輯:
也叫做學(xué)識(shí)淵博的人或多才多藝的人或多領(lǐng)域?qū)<摇
有些事情需要留意 … 高科技界里知識(shí)的半衰期是多少?根據(jù)摩爾定律(Moore’s
law):18-24月內(nèi),半數(shù)你學(xué)到的知識(shí)都會(huì)過(guò)時(shí)。錯(cuò)誤的遵循這種規(guī)律的專(zhuān)家會(huì)輕易的在這種技術(shù)發(fā)展的壓力崩潰;一個(gè)多面手要做的事就是不斷的豐富自
己的技能,并從應(yīng)用這些技能的經(jīng)歷中吸取教訓(xùn)。
第三受歡迎的回答:不要跟臭棋簍子下棋
我一直認(rèn)為自己在不錯(cuò)的程序員中也算是個(gè)“灌籃高手”。直到有個(gè)家伙——我們叫他艾倫——被招進(jìn)團(tuán)隊(duì)。艾倫很顯然在很多方面都比我優(yōu)秀。也比我年輕。他讓我認(rèn)識(shí)到,在過(guò)去的這些年里,我沒(méi)有多少長(zhǎng)進(jìn)。我是一個(gè)特定技術(shù)方向的程序員,而且是水平一般。
這驚醒我應(yīng)該自覺(jué)的不斷提高自己的水平,特別是我寫(xiě)的代碼的水平。
艾倫引導(dǎo)我學(xué)會(huì)了很多東西。他告訴我,大部分我寫(xiě)的代碼在今后的數(shù)年里都將一直維護(hù)和進(jìn)行擴(kuò)展,寫(xiě)代碼時(shí)要將這點(diǎn)銘記在心。我應(yīng)該為我的代碼寫(xiě)自動(dòng)
測(cè)試程序。艾倫說(shuō)代碼的開(kāi)發(fā)一定不能停止在第一版上,應(yīng)該不斷的重構(gòu),提煉,讓它達(dá)到完美。我發(fā)現(xiàn),我對(duì)這些語(yǔ)言和工具的使用都還有還很大的改進(jìn)空間。
從艾倫那我學(xué)到的重要的一件事情是:永遠(yuǎn)不要停止學(xué)習(xí)。
數(shù)年后,艾倫離開(kāi)了公司。我的心里突然感覺(jué)空蕩蕩的。這些年與他為伴讓我在技能上提升到了一個(gè)全新的水平,我知道現(xiàn)在我比團(tuán)隊(duì)里的其他人優(yōu)秀很多。
他們?nèi)匀粚?xiě)著糟糕的代碼,犯著以前犯過(guò)的錯(cuò)誤。我努力教育他們,但他們對(duì)此不感興趣。事實(shí)上,他們討厭有人這樣傲慢自大的指出他們犯的錯(cuò)誤。
于是,幾個(gè)月后,我也離開(kāi)這這個(gè)公司。我去了一個(gè)很小的公司,在一個(gè)很出色的團(tuán)隊(duì)里工作。那里每個(gè)人都渴望學(xué)習(xí)更多知識(shí),我喜歡這樣的。
我很幸運(yùn)能遇到艾倫。沒(méi)有他,我也許現(xiàn)在仍然待在那家死氣沉沉的公司和那幫食古不化的家伙在一起,哪都去不了,想的全是自己的私利。
從我個(gè)人而言,我覺(jué)得第三個(gè)答案對(duì)我有價(jià)值,不知各位同行們有什么感受?