為什麼很多人都不喜歡做程式設計師?

2014-11-09    分類:程式設計師人生、首頁精華13人評論發表於2014-11-09



程式設計師必須具備的性格特點

  • 最基本的要求是能自主地程式設計。只有在經過多年的學習實踐之後,我們才能超越寫一些簡短程式的基礎水平。而僅靠上課或者看書是做不成能力卓群的程式設計師的,不斷的練習和實踐才是唯一的正途。學校中那些所謂的 CS 程式課其實並不涉及如何程式設計,它主要教授的是理論,這和很多外行人的想法相悖。
  • 作為一個程式設計師,還得有執著鑽研的精神,能做到不懈地排除故障、開發軟體和修復 bug。特別是某個階段經常會有毫無進展的感覺,而這個時候唯有堅忍不拔的品質才能支援我們排除萬難再接再厲。這也是一道門檻,將很多不具備這一品格的程式設計師攔之門外。
  • 擅長數學,善於解決問題。程式設計就是解決問題的過程。
  • 有很棒的短期(和長期)記憶能力。這樣就能在大腦中同時處理多個事情,並且記得月前自己寫過什麼程式碼。
  • 超強的理解能力。理解事物是如何相互作用的,理解為什麼這麼設計和架構的原因。
  • 關注細節。在程式設計中真正演繹了什麼叫做細節決定成敗的真理。在某處忘寫了一個分號?程式就不會編譯!拼錯了某個函式名?那你的程式的執行結果可能就會與你原先設想的大相徑庭。
上述性格特點方面的要求就像大浪淘沙一樣會淘汰掉很多人。

程式設計師必備的主要技能

  • 深刻理解資料結構和類,知道什麼情況下以及怎麼運用它們。
  • 熟悉已經開發完成的庫,這樣就可以站在巨人的肩膀上,不必重新浪費時間了。
  • 熟悉各種基礎和高階的演算法,理由同上條。
  • 瞭解硬體的原理,這樣就能正確管理記憶體避免記憶體溢位,或者正確消除無關資料以加快處理程式。
  • 當然還得會程式設計。最好知道資料包格式、TCP/ IP、HTML、CSS、使用者介面設計和資料庫等,因為程式不能孤立執行。
  • 我們需要學習很多東西,但是還有一點,你必須謹記在心,事物是在不斷變化發展的。我們只有專心致志竭盡全力地學習,才有可能在這一行出人頭地大放光彩。三天打魚兩天曬網,是行不通的。

程式設計師的工作和生活環境

  • 安靜,不被打攪的環境。當我們在程式設計或者學習程式設計的時候,一旦中斷,想要重拾思路並不是那麼容易的。比方說,手機響了,然後你可能要花上 15 分鐘才能繼續沿著原先的思路走。但是很多工作和家庭環境都很難提供這樣的條件。
  • 能在忙碌中權衡輕重然後做決策。當然你也可以為每一種情況單獨寫一個程式,不過這不大現實,所以要有側重點。再則,當落後於進度時,最好能快速實現程式並執行起來。
  • 最最重要的一點,程式語言的流行時間是 5 年,5 年之後,你看好的語言可能就沒人用了。我們得與時俱進。

管理問題也是重中之重

很多管理人員將程式設計師當做工廠工人一樣對待,很多並沒有程式設計天賦和商業能力的人站在了專案責任人的位置上,在他們眼中,程式設計師就像機器上面的齒輪一樣,乾的事情毫無技術含量。一旦發現專案超出預算或者落後於計劃進度,就要求程式設計師無償加班,結果往往只能是出來設計拙劣測試不完全的產品。事實上,程式設計師是技術人員,要是你想得到關於專案的明智建議,那麼請教專家級程式設計師才能得到最棒的結果。

由於某些管理層辨別不了程式設計師之間的優劣,所以有能力的人就會發現他們做的貢獻更大但是得到的薪酬卻沒有更多——最重要的是,他們總是要做更多的工作以彌補拖後腿的那些傢伙。而當偉大的程式設計師提出建議以望改進的時候,那些管理層則會覺得這是在對自己權威的挑戰,而會選擇“除之而後快”。

這種情況舉不勝舉。這也是為什麼很多優秀人才不願意待在這一行業的原因——特別是在有其他就業機會的情況下。而且做程式設計師很能鍛鍊人,哪怕是最普通的,轉行之後也能幹的風生水起。

真正優秀的程式設計師不喜歡隨便跳槽

找程式設計師很容易,但要想發現優秀人才就很難了。劣質的程式設計師似乎總是在找工作,而優秀者,只要這家公司能發現他們,肯定會不惜一切代價留住他們,所以他們不會去頻繁找工作。而當他們去找工作的時候,大多規劃長遠,所以會顯得很挑剔——這就是為什麼很多公司都會不約而同地表示“沒有優秀程式設計師可用”的原因——因為找到的盡是些“普通貨色”。

正如有句話說得好,優秀程式設計師的價值是普通程式設計師的幾倍,而劣質程式設計師則是負值。要想將普通和劣質的程式設計師改造成優秀人才,其道路不可謂不艱辛,不可謂不險阻,甚至幾乎是不可能的——自然也不值得任何初創公司在他們上面進行投資了。
  
翻譯作者:碼農網 – 小峰

英文原文:Why Don't More People Work As Programmers?
來自:碼農網
評論(3)

相關文章