軟件蠶食一切,未來(lái)屬于程序員,所以人人都想當(dāng)程序員,但是并不是每個(gè)人都能當(dāng)好程序員。
在你做出決定前還是先看看自己能不能當(dāng)好程序員吧。
可是什么樣的人不適合當(dāng)程序員呢?不要喝雞湯,我們看看 Quora 上面是如何回答的。
一、在全棧開(kāi)發(fā)者 Adam Leffert 看來(lái),最重要的是態(tài)度:
我認(rèn)為編程要想成功最重要的是態(tài)度。當(dāng)然,最低水平的智力還是要的。以我這么久的經(jīng)驗(yàn)來(lái)看,還沒(méi)見(jiàn)過(guò)蠢到不會(huì)做的。
但是好壞程序員之間的差別幾乎永遠(yuǎn)是態(tài)度。
1、耐心:
對(duì)我來(lái)說(shuō)這是最重要的一條。寫(xiě)代碼和調(diào)試極其令人沮喪。要想做好,你得保持冷靜,至少冷靜到能夠保持清晰的頭腦。
2、精力:
處理棘手問(wèn)題,編寫(xiě)大量代碼容易使得身心俱疲。最重要的是要有我朋友 Joshua Wachs 所謂的 “坐能量(tushie power)”。也就是屁股不離座直到工作完成的能力。
3、邏輯思維:
這條看似明顯,其實(shí)不然。一般的程序員在碰到棘手問(wèn)題的時(shí)候一般是靠猜來(lái)解決的。運(yùn)氣好可能猜得中。但運(yùn)氣不好就難搞了。問(wèn)題是猜并不能有效縮小可能原因的范圍。好的程序員會(huì)提出猜想然后進(jìn)行測(cè)試,從而排除掉一堆的可能性。比方說(shuō),屏蔽一段代碼,看看問(wèn)題是不是還出現(xiàn)。
自負(fù):編程不是你自己的事。這跟你的團(tuán)隊(duì)、代碼、客戶、利益攸關(guān)者等等都有關(guān)系。(eShare CEO Henry Ward 說(shuō)自己永遠(yuǎn)都不會(huì)要自負(fù)的人。)
二、曾寫(xiě)過(guò)不成功 OS 的 Peter Nierop 則總結(jié)出了當(dāng)不好程序員的 3 個(gè)跡象:
1、討厭用 Google:
在 github、google 和在線網(wǎng)站上面有大多數(shù)現(xiàn)成的解決方案。買(mǎi)本老教授的書(shū)學(xué)編程的日子已經(jīng)過(guò)去了?,F(xiàn)在的代碼來(lái)得快去得也快。而至關(guān)重要的事情是把你的東西盡快推向市場(chǎng)。任何不愿每天至少使用搜索引擎 1 小時(shí)的人都應(yīng)該另尋高就。
(編者注 1:Google 自己的研究也發(fā)現(xiàn),開(kāi)發(fā)者搜代碼越來(lái)越頻繁注 2:有人可能會(huì)說(shuō)自己不是討厭用而是用不了。好吧如果是這樣的話,我要加最重要的一條:不懂用 google 的想都不要想當(dāng)程序員了)。注意,這某種程度上可能是因?yàn)槟闶裁炊枷胱约簛?lái),想成為全世界唯一的那個(gè)純粹的 coder。
2、朝九晚五的心態(tài)
再?gòu)?qiáng)調(diào)一遍:及時(shí)發(fā)布很重要。普通的程序員往往每天工作不到 8 小時(shí),好吧這就是你平庸的原因所在。不平庸的程序員連續(xù) 22 小時(shí)沖刺以后才能打個(gè)盹隔 4 天才洗次澡并在接下來(lái)的 2 周時(shí)間里每天要用 2 小時(shí)寫(xiě)一些報(bào)告。不能或者不愿在必要時(shí)加班的人最好打住。
3、極其糟糕的記憶:
編程就是開(kāi)很多的會(huì),做各種各樣的變更,可能腦子里面要裝 100 頁(yè)的代碼。未必是每一行都要記得清清楚楚,但起碼在管理層又折騰出一個(gè)變更或客戶突然又冒出一個(gè)想法時(shí)要知道你的程序是干什么用的,什么地方可能會(huì)失敗,怎樣才能很快修好。如果你的記憶力實(shí)在是太糟糕的話,最好還是找份其他的工作。
我在這個(gè)行當(dāng)干了這么久,碰到過(guò)各種各樣的程序員,不變的一點(diǎn)是一旦有上面的問(wèn)題這些人基本都干不久。
三、CaveOfProgramming.com 開(kāi)發(fā)者 JohnPurcell:
由于開(kāi)發(fā)界總是渴望有新鮮血液進(jìn)來(lái),所以除非你實(shí)在是太差(或者你原來(lái)基本都不用工作)否則想不成功都很難。我喜歡 Peter Nierop 的回答,不過(guò)說(shuō)到正式的付費(fèi)工作,我本人總是嚴(yán)格遵守朝九晚五的習(xí)慣,所以那個(gè)說(shuō)法應(yīng)該看工作情況而定。
如果你發(fā)現(xiàn)編程很乏味,學(xué)習(xí)又總是繁瑣無(wú)趣的話,那你想做好就很難了。因?yàn)槟阋呀?jīng)編程上癮的人競(jìng)爭(zhēng)。不過(guò)我也見(jiàn)過(guò)幾個(gè)人雖然不喜歡編程,業(yè)余時(shí)間基本也不編程,雖然稱不上出色的程序員,但是的確能夠借此謀生。
要記住的是,編程不是什么精英才能干的事情。這個(gè)行業(yè)永遠(yuǎn)都缺人。所以除非你一點(diǎn)都不喜歡編程,或者也沒(méi)有準(zhǔn)備好看在錢(qián)的份上忍住這種不喜歡,否則都可以來(lái)編程。
四、而享受編程樂(lè)趣的 Prince Pranav 提供了 3 個(gè)不適合編程的跡象:
1、因?yàn)殄e(cuò)誤而過(guò)早放棄:
永不放棄。哪怕是簡(jiǎn)單的錯(cuò)誤也不要放棄。這會(huì)讓你的代碼和心態(tài)大不同。好的程序員,在寫(xiě)一長(zhǎng)串代碼的時(shí)候會(huì)把代碼分解出來(lái),分段測(cè)試。如果你因?yàn)榍懊?1 個(gè)小時(shí)總是碰到同樣的問(wèn)題就把電腦給關(guān)掉了事,可以認(rèn)為這是跡象 1。最后你總會(huì)找到問(wèn)題的,但一定不要放棄。
2、只對(duì)輸出而不是質(zhì)量感興趣:
開(kāi)發(fā)出好應(yīng)用是你的責(zé)任。如果你為了趕時(shí)間而犧牲應(yīng)用的質(zhì)量,你可以成為程序員,但不會(huì)是偉大的程序員。
3、樂(lè)趣不是找來(lái)的:
你開(kāi)始寫(xiě)代碼前看了看表,13:02,然后你再看的時(shí)候變成 13:09 了。有的人再看表的時(shí)候已經(jīng)是 15:37 了。真的,除非你是因?yàn)橛腥げ鸥蛇@個(gè)時(shí)間才不會(huì)流逝(注:不得不說(shuō),這又繞到了做你所愛(ài)還是愛(ài)你所做這個(gè)問(wèn)題。)
究竟什么樣的人當(dāng)不好程序員,你覺(jué)得呢?