譯自Quora:What distinguishes a great software engineer from a good one?
我沒法全面的說明優(yōu)秀和偉大間的區(qū)別比默,但是我知道有一些偉大程序員才有的特質(zhì):
能夠在實用主義與完美主義間保持平衡
偉大的程序員能夠?qū)懗?strong>夠用/快速/臟(masterful/quick/dirty)代碼也能夠?qū)懗?strong>優(yōu)雅/精煉/茁壯(elegant/refined/robust)的代碼,然后能夠明智的選擇適合當(dāng)前要解決問題的編程方式坏平。有些程序員缺乏對細節(jié)的重視敏沉,有些常常陷入對細節(jié)過度重視的完美主義中绎狭。
不會討厭調(diào)試和修復(fù)bug
普通的程序員總是畏懼厭惡調(diào)試,即使是他們自己寫的代碼。偉大的程序員卻有著高漲的熱情和不屈不饒的態(tài)度关筒。雖然如果最后發(fā)現(xiàn)bug的不是他們自己的代碼引起的他們會不開心描孟,但是他們會解決這個bug驶睦,找到出錯的代碼。
合理的懷疑態(tài)度
一個優(yōu)秀的程序員會對相應(yīng)的問題給出一個似乎能夠有效的解決方案匿醒,然后就可以安心下班了场航。一個偉大的程序員不會相信自己的代碼直到這些代碼已經(jīng)被全面的測試過。這個在數(shù)據(jù)分析和系統(tǒng)管理中也有很多的體現(xiàn)廉羔。一個普通的程序員可能看到一個微小的不符(a small innocuous-looking discrepancy)然后忽略它溉痢。如果一個偉大的程序員看到這些異樣他們會懷疑這后面是不是隱藏著更大的問題并且進一步的跟進調(diào)查。偉大程序員傾向于做很多角度的檢查蜜另,這樣可以發(fā)現(xiàn)一些細微的bugs适室。
紀律
最近很流行討論效率、工作流等等举瑰。偉大的程序員能夠把大部分的時間都投入到有效的工作中捣辆,沒有時間刷朋友圈。每個人都有起伏波動此迅,但是大部分人忽略了紀律對生產(chǎn)效率的影響汽畴。有很多有才華的人沒有出人頭地只是因為他們懶旧巾。
經(jīng)驗
只有聰明才智是不夠的,軟件開發(fā)中存在著非常多潛在問題忍些,即使是最聰明的人也不可能把這些全部解決鲁猩。但是足夠多的經(jīng)驗可以讓你有一種直覺,可以讓你的代碼減少很多的錯誤罢坝,因為你之前已經(jīng)犯過這些錯誤廓握。
產(chǎn)品意識
很多工程師花了很大的精力去改進一些事情然而這對整個產(chǎn)品而言并不重要。偉大的程序員能夠明白當(dāng)前公司的使命:他們能判斷出什么事情是重要的嘁酿,什么事情是次要的隙券。他們會權(quán)衡當(dāng)前的優(yōu)先級,即使幾個月里沒有給他們安排具體的工作闹司,他們依然能夠做出有效的工作娱仔,因為他們知道對公司而言什么事情是重要的。
社交意識
偉大的人能夠習(xí)慣和他人合作游桩、領(lǐng)導(dǎo)他人牲迫、指導(dǎo)他人或者被領(lǐng)導(dǎo),被指導(dǎo)借卧。他們不是書呆子盹憎,和他們相處很愉快。他們明白證明某人錯誤和說服他們認為你是對的是兩碼事谓娃。
歡迎關(guān)注我的微博:@沒故事的卓同學(xué)