想要成為真正優(yōu)秀的程序員是不是真的很難?
很多人認(rèn)為要想成為一名優(yōu)秀的程序員,那就需要一天24小時(shí)每天不斷地編程——睜開眼睛要編程,閉上眼睛睡覺的時(shí)候還要夢(mèng)到編程——我認(rèn)為這是一種矯枉過(guò)正的方法。沿著這條路走,只會(huì)讓你精疲力盡,猶如夸父逐日一般,死在半道上。
我覺得問(wèn)題的關(guān)鍵是要想明白你為什么要編程。坦率地說(shuō),我編程是因?yàn)槲蚁矚g別人用我的程序,這也是我之所以在讀書的時(shí)候成績(jī)不怎么優(yōu)秀的原因(我并 不熱衷于參加編程競(jìng)賽以及類似事情)。因此,我也不喜歡參與純研究的項(xiàng)目——只在論文上討論各種點(diǎn)子,而不付諸于行動(dòng)不去寫代碼(除非恰巧碰到的是研究項(xiàng) 目和開源項(xiàng)目)。
我在編程上并不是一個(gè)唯美主義者。我的觀點(diǎn)是能工作、有用的代碼就可以被定義為優(yōu)雅,即使它看上去是一團(tuán)亂糟糟的GOTO語(yǔ)句。
我認(rèn)為的“優(yōu)秀的程序員”應(yīng)該是這樣的:
-
偷懶戰(zhàn)略。優(yōu)秀的程序員更傾向于靈活工作而非死工作,所以如果你想要將編程當(dāng)作長(zhǎng)期的職業(yè)規(guī)劃,那么學(xué)習(xí)重用代碼和自動(dòng)化繁瑣的任務(wù)是至關(guān)重要的。
-
在職業(yè)生涯早期,有機(jī)會(huì)就多多了解從需求分析到最終發(fā)布整個(gè)的軟件流程,這樣你才能學(xué)習(xí)從終端到終端的設(shè)計(jì)——還可以激發(fā)你的信心。
-
生活中除了編程以外,應(yīng)該還要有某項(xiàng)能讓你經(jīng)常外出活動(dòng)的業(yè)余愛好。這樣才能改善你消耗在鍵盤上的健康。
-
如果你想要在編程這一行待個(gè)三五十年,那么***學(xué)點(diǎn)拿手絕活,讓別人在某個(gè)領(lǐng)域不敢小覷于你,密切關(guān)注這方面的技術(shù)進(jìn)步,保持同步。
-
多了解幾門編程語(yǔ)言——特別掌握你準(zhǔn)備精通的編程語(yǔ)言。并且***能從不同的編程范式(程序,設(shè)置,功能等)來(lái)了解語(yǔ)言。
-
相關(guān)的:不必過(guò)于擔(dān)心你不知道的新的Zwizzle-Wiz算法。如果不需要實(shí)施細(xì)節(jié)的話,了解一些相關(guān)領(lǐng)域重點(diǎn)算法以及比較重要的通用算法(如 排序和搜索)的特點(diǎn)和功能就可以了。沒有必要囫圇吞棗、傻不拉幾的試圖想要記憶100種算法的實(shí)現(xiàn)(我看到有人曾經(jīng)這么做過(guò)),你的小腦袋會(huì)爆掉的。
-
了解如何面試程序員。英雄總是惺惺相惜,作為一名優(yōu)秀的程序員,建設(shè)優(yōu)良的團(tuán)隊(duì),也是你的部分責(zé)任。
-
了解公司業(yè)務(wù)的相關(guān)內(nèi)容,以及你的代碼需要如何與之匹配,這有助于你正確地作出相關(guān)的決策,避免走一些彎路。
-
問(wèn)問(wèn)相關(guān)人員的想法,看看他們對(duì)你的代碼的評(píng)價(jià),包括產(chǎn)品經(jīng)理、QA、現(xiàn)場(chǎng)支持人員、專業(yè)的服務(wù)工程師和實(shí)際使用的客戶等。
-
相關(guān)的:不要錯(cuò)過(guò)任何一個(gè)和客戶交流的機(jī)會(huì)。但是一定要注意自己的行為舉止:耐心聆聽,哪怕客戶的想法聽上去非常可笑,這主要是因?yàn)樗麄儾皇浅绦騿T的緣故。但是,如果你能借此機(jī)會(huì)好好思考關(guān)于如何使用代碼以及使用過(guò)程中的日常挑戰(zhàn),那么將有助于你提高你的產(chǎn)品。
-
對(duì)于我,我是Unix哲學(xué)——一系列通用設(shè)計(jì)原則的鐵桿粉絲。雖然這些原則并不總是有效,但它是指點(diǎn)我如何連接優(yōu)良代碼—系統(tǒng)—設(shè)計(jì)的指南針。
所以,對(duì)于“想要成為一名真正優(yōu)秀的程序員是不是真的非常難?”這一問(wèn)題的答案,可能的確是非常艱難非常辛苦的,特別是要想成長(zhǎng)為一名優(yōu)秀的程序員是需要一段很長(zhǎng)的時(shí)間。但是只要你愿意好好學(xué)習(xí)代碼的系統(tǒng)知識(shí)和機(jī)制,那么我相信你一定可以長(zhǎng)風(fēng)破浪會(huì)有時(shí),直掛云帆濟(jì)滄海。