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