“有能力”的程式設計師和“熟練”的程式設計師誰更牛?
如果想成為一名程式設計師,只需要學習一門語言就算踏入了程式設計師的行列,被稱為程式設計師。但如果要成為一名優秀的程式設計師,就需要不斷地學習掌握並將之應用到工作中。 周而復始,而在這個過程中有一部分人說程式設計師,寫程式碼能力最重要,也有一部分人說知道寫什麼才重要,這就要提到兩個詞“能力”和“熟練”
我們將“能力”定義為“我知道如何做事”。公平地說,不管你從事何種職業,知道如何做事都是相當重要的。如果你是個程式設計師,那麼你的工作中的很大一部分是學習如何做事。知道如何做事雖然很重要,但是不要只為“知道如何做事”努力,否則你會很快發現自己失業了。
要知道在通向專家道路上,處於中間位置的程式設計師,都在某個層次止步不前(許多人甚至一輩子都停留在此處):這些上流不屬於上流,下流不屬於下流的程式設計師會認為可以用所做事情的多少來區別新手和專家。這就引出了“熟練”的含義。“熟練”的本質是關於“為什麼採用這種方式做事情”——這是理解一個難題的各個部分與理解各個部分如何構成一個整體的難題的不同之處。
比如,“有能力”和“熟練“之間的差距可以解釋為什麼有許多人都在高層次的程式設計思想之上掙扎,如設計模式。
一個有能力的程式設計師能夠熟讀備忘錄模式,並且理解如何實現它。他們甚至能夠識別出備忘錄模式適用於何種應用場景(可能在GUI裡實現一個undo操作)。但是由於他們不知道更大範圍的框架性的東西,他們可能還是會錯誤地應用這種設計模式。
相比之下,一個熟練的程式設計師能夠知道備忘錄模式什麼時候會失效(例如,如果正在拷貝大量資料,或生成大量副本時)。他們能夠考慮一些替代方案與備忘錄模式進行對比,從而考慮備忘錄模式是否是最優的實現方案。他們也理解備忘錄模式背後的基本設計思想,從而創造出一種能夠更好的適應特定應用場景的定製化解決方案。
更重要的是,一個熟練的程式設計師總是能夠識別出討論設計模式的合適時機。就像向一個新手解釋程式碼庫的概念,一個熟練的開發者可能會重點說明程式碼做了什麼,而不是丟擲一堆設計模式的名字。
所以作為程式設計師,要一直探究不熟悉、不同角度、不精通的技術。只有這樣你才能在“有能力”的基礎上更上一層,才能脫離僅僅是“知道某些事情”的程度 。
相關文章
- 程式設計師的“能力陷阱”程式設計師
- 谷歌CEO:沒有這項能力,再牛的程式設計師也不要!谷歌程式設計師
- 熟練Java的程式設計師應該掌握的知識技能Java程式設計師
- 程式設計師程式設計能力層次模型程式設計師模型
- 史上最牛的程式設計師自述程式設計師
- 程式設計師只配加班?有錢有閒的程式設計師都在哪?程式設計師
- 普通程式設計師和厲害程式設計師的差距!程式設計師
- 誰說程式設計師找不到女朋友,程式設計師明明那麼有市場!程式設計師
- 重建程式設計師能力(1)程式設計師
- 程式設計師的“非程式設計師”之路程式設計師
- 卓越程式設計師和優秀程式設計師有哪些區別?程式設計師
- 程式設計師別迷茫,通往牛逼的道路有很多程式設計師
- 程式設計師程式設計,你的練習是不是有效的?程式設計師
- 誰說程式設計師沒有520?學學高階程式設計師都是怎麼表白的……程式設計師
- 中國程式設計師和外國程式設計師程式設計師
- 以前的程式設計師,現在的程式設計師程式設計師
- 程式設計師必看的書-Ruby程式設計師程式設計師
- 《程式設計師的春天:EOM與程式設計師》程式設計師
- Lisp程式設計師眼中的其他程式設計師Lisp程式設計師
- 程式設計師的工資高,到底程式設計師的工資有多高?程式設計師
- 誰說程式設計師不懂浪漫程式設計師
- 永遠考慮那個擁有更強寫作能力的程式設計師程式設計師
- 程式設計師的成長秘籍:個人程式設計能力的修煉之路程式設計師
- 誰再黑程式設計師我就打誰程式設計師
- 程式設計師:你的程式碼為誰而寫?程式設計師
- Java程式設計師的兩項通用能力Java程式設計師
- 低階程式設計師和高階程式設計師的區別程式設計師
- 程式設計師如何提高抽象能力程式設計師抽象
- 谷歌程式設計師有哪些高效的程式設計習慣?谷歌程式設計師
- 程式設計師必看的書之Java程式設計師程式設計師Java
- 牛逼程式設計師是如何煉成的?程式設計師
- 程式設計師OR非程式設計師,有些程式設計的事需要知道程式設計師
- 程式設計師的“黑客情懷”和“設計師情懷”程式設計師黑客
- 最牛程式設計師修復BUG程式設計師
- 盲人程式設計師的程式設計生涯程式設計師
- 程式設計師成長祕籍:個人程式設計能力的修煉之路程式設計師
- 程式設計師是這樣練字的程式設計師
- 是誰動了程式設計師的尊嚴?程式設計師