馬漢
0.忽視了編程終究是以人為本的。是的,機器的確會執(zhí)行代碼,但編程是為人們解決問題的,將他們的需求轉換為由其他人讀取、維護和修改的代碼。
1 .未能花充足的時間練習編程。根據(jù)工作或日程安排,可能會花費大量時間在與編程相關的任務上,但實際上這些并非編程本身。
2.停留在正在學習的某個技術的表面。沾沾自喜于自己掌握了足夠完成任務的基礎知識,對技術的了解卻只流于表面,未有觸及核心內(nèi)容。
3.在編程學習中挑挑揀揀,無法持之以恒。一開始學習Rails,半道兒發(fā)現(xiàn)Phoenix也不錯,哦,學點JavaScript吧,這樣就能用Node.js了......從TJ轉到Go然后堅持了一陣子......說起來Rust好不好用來著?
一周內(nèi)的瀏覽歷史全是這些東西,“Web開發(fā)者還是數(shù)據(jù)科學家”“Clojure死了嗎?”“Clojure對比Elixir”“Crystal足夠成熟嗎”“Golang有什么好的架構”“Phoenix對比Buffalo”以及“Kotlin與網(wǎng)頁開發(fā)”。
4.在線閱讀書籍和觀看課程,卻不練習相應的技能,因此很快就會忘記它們。
5.不關心基礎知識。如果沒有對象關系映射(O/RMapping)的輔助,連最基本的SQL連接都搞不定。
6.缺乏足夠的耐心或自律來完成學習過程和掌握任何技術所需的步驟。
7.疲于應付日常編程中的各種問題,缺乏繼續(xù)學習的長遠規(guī)劃安排。
8.浪費太多時間在各種框架和庫(如Angular,React和Vue)中進行選擇,而不是僅僅認準一個,使用它并且只有在真正需要時才切換其他。實際上講就是,一心只想找到能一勞永逸的萬能鑰匙,而不愿意先充分利用手頭資源。
9.無法認識到現(xiàn)代編程需要多語言協(xié)作的性質。在大多數(shù)領域,期望一種編程語言成為解決所有問題的靈丹妙藥是荒誕不經(jīng)的。同樣,過于執(zhí)著把自己分類成X或Y程序員,而不是“偏愛X或Y語言的程序員”,也是不行的。
10.害怕嘗試新技術。不要只是閱讀某些新興技術(例如區(qū)塊鏈或聊天機器人)相關的文章,而是自己動手打開虛擬機試用一下,即使它涉及到不熟悉的編程語言或應用程序編程接口(API)。
11.因害怕被評判,而不敢與他人分享代碼或讓他人檢查自己的代碼。
12.學習時沒有進行許多零碎練習和開展項目。
13.自己沒有先行思考而后再進行搜索,谷歌上的確能找到辦法,但是看到別人給出的辦法之后又很懊惱,覺得自己應該能依靠自己的腦子想出來。
14.不向更有經(jīng)驗的開發(fā)人員尋求一對一輔導。
15.期望在不切實際的時間內(nèi)一次學習所有東西(例如,一個月內(nèi)掌握iOS開發(fā))。
16.對于事業(yè)心強的人而言,不去嘗試那些貌似無利可圖的有趣項目。
17.因為害怕給人以愚蠢或菜鳥的印象(事實并非如此)而不去發(fā)問。
18.如果在創(chuàng)建程序時只是將一些類庫粘合在一起,而不是用更復雜的語言來寫“高級”算法,就覺得自己不是真正的程序員。
19.讓習得最佳實踐的欲望阻礙掌握特定語言或技術的基礎知識的能力。例如,在開始創(chuàng)建項目之前,感覺自己需要了解有關設計模式的整本書或掌握TDD/BDD。
20.完美主義。讓完美成為“足夠好”的敵人。從不交付任何東西,一直卡在最后階段。(但保持平衡很重要,所以不要為了交付而交付可怕的破碎軟件。)
21.與前一點相關,忽略了編程是循序漸進的:應該先使其工作,然后再讓其變快,再讓代碼簡潔明了。期待從一開始就有一個絕佳的解決方案是不可能的。
22.覺得自己做的不夠好,如果你不是傳統(tǒng)觀念中“程序員”的形象,那可能就有些不妙,因為如果沒有與你形象類似(比如,女性和少數(shù)民族等)的成功例子供參考,你更傾向于覺得自己“不優(yōu)秀”。這就解釋了女性和少數(shù)民族在科技界的重要性———他們?yōu)樗颂峁藯U,增加他們向上的信心和動力。
23.編寫代碼并閱讀書籍學習編程,但從不閱讀他人的代碼。OpenSource為我們提供了一個驚人的資源,可以大大促進對編程和最佳實踐的理解。
24.未能接觸到其他范例或領域。因為是網(wǎng)頁開發(fā)人員,就不去了解其他類型的開發(fā)。因為你知道面向對象的編程,就不去學習函數(shù)式編程。
25.不教別人學到的東西。沒有什么能比向別人解釋更能鞏固自己所學。即使只是為了教學而學習也能提高自己的學習能力。
這樣你就了解了以上25個誤區(qū)也可以叫做“陷阱”。哦,實際上是26個,程序員都習慣從0開始的。