一個(gè)好的程序員應(yīng)該擁有的10大特質(zhì)者甲,你符合哪些呢商佛?
1闷愤、喜歡研究
????無論你怎么稱呼它整葡,你可能遇到的大多數(shù)編程問題幾乎在一定形式上都已經(jīng)被解決了。傳道書早就記錄在案讥脐,陽光底下無新事遭居。在GitHub上的庫(kù)文件列表中,在互聯(lián)網(wǎng)上的博客中攘烛,或者恰好與某個(gè)人經(jīng)驗(yàn)交流中魏滚,好的程序員知道要在解決一個(gè)問題之前先做研究。
2坟漱、讀錯(cuò)誤信息
????這包括對(duì)堆棧追蹤的符號(hào)解析鼠次。是的,令人厭惡而且不幸——但如果你不愿意這么做,怎么知道哪里出錯(cuò)了腥寇?我知道的最高效的程序員不害怕深入挖掘問題成翩。最低效的程序員看到錯(cuò)誤甚至都不愿讀錯(cuò)誤信息。(這聽起來挺可笑的赦役,但我遇到的頻率會(huì)讓你吃驚麻敌。)
????更進(jìn)一步說,好的的程序員看到問題掂摔,會(huì)急迫的去解決它术羔。對(duì)于他們來說,讀錯(cuò)誤信息僅僅是第一步乙漓;他們渴望深入問題并找出錯(cuò)誤的根源级历。他們對(duì)推卸責(zé)任沒有興趣,他們對(duì)找到解決方案有興趣叭披。問題確實(shí)在他們這里止步寥殖。
3、查看源代碼
????文檔涩蜘,測(cè)試和人:這些都可能會(huì)說謊嚼贡。未必是故意撒謊,但是如果你想確切的知道代碼是怎么工作的同诫,你就必須親自察看源代碼粤策。
即使這不是你非常熟悉的語言也不要害怕——比如,如果你主要是一個(gè)Ruby程序員并且你懷疑Ruby的C語言包里有錯(cuò)誤误窖,那就去解壓它看看再說掐场。不錯(cuò),你可能會(huì)一無所獲贩猎。但是誰知道呢,你也可能會(huì)找到問題所在萍膛,比起什么都不做吭服,你至少選擇了一條更有機(jī)會(huì)的路。
????如果你工作在一個(gè)非開源的環(huán)境中蝗罗,就不太好辦了艇棕,這很不幸,不過道理是不變的串塑。糟糕的程序員對(duì)查看源碼通常沒有太多興趣沼琉,結(jié)果就是,跟那些愿意去研究一下源碼的人相比桩匪,他們通常會(huì)被這些問題困擾的更久打瘪。
4、很強(qiáng)的執(zhí)行力
好的程序員總是趨向于采取行動(dòng)。他們似乎有種控制不住的強(qiáng)迫性——一旦他們確認(rèn)了一個(gè)問題或者看到了一個(gè)新的特性需求闺骚,就會(huì)立即著手解決彩扔,有時(shí)甚至過早或者過于勇往直前。他們遇到問題的直覺反應(yīng)就是正面解決它僻爽。
有時(shí)這會(huì)帶來麻煩——但是他們的熱情正是他們能夠做的很好的關(guān)鍵因素虫碉。當(dāng)某些人還在拖延回避或者幻想問題能自己消失的時(shí)候,好的程序員已經(jīng)開始動(dòng)手了胸梆。
更簡(jiǎn)單的來說(也許敦捧,太過直白),如果你看到一個(gè)人興奮的發(fā)現(xiàn)并處理問題碰镜,很有可能你得到了一名好程序員兢卵。
5、防患未然
這可能是一個(gè)壞的程序員的特征——他們總是糾纏于一個(gè)又一個(gè)的人為失誤洋措,從來都是沒有明白上一個(gè)就轉(zhuǎn)向下一個(gè)济蝉。他們總是在抱怨他們程序中的錯(cuò)誤部分,卻耗費(fèi)數(shù)小時(shí)對(duì)完美運(yùn)行的代碼來debug菠发。他們讓情緒占據(jù)主動(dòng)王滤,相信直覺而不是仔細(xì)明確的分析。
????如果你突然遇到一個(gè)問題——或者每一個(gè)問題看起來都像是世界末日一般滓鸠,你極有可能是在犯錯(cuò)誤而不是在解決潛在的問題雁乡。偉大的程序員會(huì)花費(fèi)一些時(shí)間來了解是什么出了錯(cuò),哪怕是真的是一場(chǎng)災(zāi)難糜俗,除了這些踱稍,他們還會(huì)把常出現(xiàn)的問題當(dāng)成分配任務(wù)來處理掉。由于他們能更精確的解決大部分問題悠抹,從而不會(huì)提高你的團(tuán)隊(duì)的緊張程度珠月。
6、善于和身邊的人交流
說到底楔敌,編程也是一種交流的方式啤挎。能夠簡(jiǎn)潔明了地表達(dá)出你的觀點(diǎn)之于寫代碼就如其之于寫詩(shī)一樣重要——長(zhǎng)久以來,我發(fā)現(xiàn)那些能夠?qū)懗鼍珶挼碾娮余]件卵凑、優(yōu)雅的報(bào)告或者僅僅是高效的備忘錄的人通常也會(huì)是更優(yōu)秀的程序員庆聘。
????這個(gè)發(fā)現(xiàn)對(duì)寫程序和對(duì)英語一樣使用。當(dāng)然勺卢,把充斥著括號(hào)和只用一個(gè)字母命名的函數(shù)寫在一行里面也是可以的伙判,但是如果沒有人能夠理解你寫的代碼,又有什么意義呢黑忱?無論使用什么媒介宴抚,優(yōu)秀的程序員會(huì)把時(shí)間花在如何將他們的觀點(diǎn)更好地表達(dá)出來上面勒魔。
7、對(duì)工作充滿激情
我想這是最能夠體現(xiàn)一個(gè)好的程序員的地方(并且酱塔,不僅在計(jì)算機(jī)行業(yè)沥邻,這點(diǎn)適用于任何行業(yè))。
如果你真正關(guān)心你做的東西——不只是把它當(dāng)做一個(gè)工作去應(yīng)付羊娃,而是一個(gè)興趣唐全、一件對(duì)你有著莫大魅力的事情,那么在這個(gè)行業(yè)里蕊玷,相較于其他人而言邮利,你就擁有了一項(xiàng)巨大的優(yōu)勢(shì)。好的程序員會(huì)一直保持著寫代碼的狀態(tài)垃帅,他們每天花在這個(gè)行業(yè)里的時(shí)間都不低于8個(gè)小時(shí)——包括工作和空余時(shí)間延届。在編寫項(xiàng)目和授業(yè)解惑兩者之間,他們不會(huì)偏向任何一方贸诚。他們不會(huì)只是為了搞清楚某個(gè)東西的工作原理而整天癡迷于新技術(shù)或新的編程語言方庭。
????當(dāng)我觀察一個(gè)周日正在做自己感興趣的項(xiàng)目、在創(chuàng)造自己需要的工具酱固、被新的械念、有趣的事物吸引的程序員的時(shí)候,我意識(shí)到我正在觀察一個(gè)會(huì)令所有人都不由自主心生敬意的人运悲。最后龄减,偉大的程序員不會(huì)將他們的專業(yè)看做賺錢的工具,而是一種改變世界的手段班眯。我想這就是早就一個(gè)偉大程序員的真正原因吧希停。編程,對(duì)于他們來說也就意味著創(chuàng)造世界署隘。也只有這樣的人宠能,才值得我們由衷地敬佩和景仰。