1. 程式人生 > >學習程式設計的25個“坑”,你踩到了嗎?

學習程式設計的25個“坑”,你踩到了嗎?

0、忽視了程式設計終究是以人為本的。是的,機器的確會執行你的程式碼,但程式設計是為人們解決問題的,將他們的需求轉換為由其他人(或你自己線下)讀取,維護和修改的程式碼。

1、未能花充足的時間練習程式設計。 根據工作或日程安排,你可能會花費大量時間在與程式設計相關的任務上,但實際上這些並非程式設計本身。

2、停留在你正在學習的某個技術的表面。 沾沾自喜於自己掌握了足夠完成任務的基礎知識,對技術的瞭解卻只流於表面,未有觸及核心內容。

3、在程式設計學習中挑挑揀揀,無法持之以恆。一開始學習Rails,半道兒你發現Phoenix也不錯,哦,學點JavaScript吧,這樣就能用Node.js 了......從TJ轉到Go然後堅持了一陣子......說起來Rust好不好用來著?很快,一週內你的瀏覽歷史淨是這些東西,“Web開發者還是資料科學家”,“Clojure死了嗎?”,“Clojure 對比 Elixir”,“Crystal足夠成熟嗎”,“Golang有什麼好的架構”,“Phoenix 對比 Buffalo”,以及“Kotlin ”與網頁開發。

4、線上閱讀書籍和觀看課程,卻不練習相應的技能,因此很快就會忘記它們。

5、不關心基礎知識。如果沒有物件關係對映(O/R Mapping)的輔助,連最基本的SQL連線都搞不定。

6、缺乏足夠的耐心或自律來完成學習過程和掌握任何技術所需的步驟。

7、疲於應付日常程式設計中的各種問題,缺乏繼續學習的長遠規劃安排。

8、浪費太多時間在各種框架和庫(如Angular,React和Vue)中進行選擇,而不是僅僅認準一個,使用它,並且只有在你真正需要時才切換其他。 基本上講,一心只想找到能一勞永逸的萬能鑰匙,而不願意先充分利用手頭資源。

9、無法認識到現代程式設計需要多語言協作的性質。 在大多數領域,期望一種程式語言成為解決所有問題的靈丹妙藥是荒誕不經的。 同樣,過於執著把自己分類成X或Y程式設計師,而不是"偏愛X或Y語言的程式設計師"。

10、害怕嘗試新技術。不要只是閱讀某些新興技術(例如區塊鏈或聊天機器人)相關的文章,而是自己動手開啟虛擬機器試用一下,即使它涉及到你不熟悉的程式語言或API(應用程式程式設計介面)。

11、自己沒有先行思考而後再進行搜尋,谷歌上的確能找到辦法,但是看到別人給出的辦法之後又很懊惱,覺得自己應該能依靠自己的腦子想出來。

12、學習時沒有進行許多零碎練習和開展專案。

13、因害怕被評判,而不敢與他人分享程式碼或讓他人檢查自己的程式碼。

14、不向更有經驗的開發人員尋求一對一輔導。

15、期望在不切實際的時間內一次學習所有東西(例如,一個月內掌握iOS開發)。

16、對於事業心強的人而言,不去嘗試那些貌似無利可圖的有趣專案。

17、因為害怕給人以愚蠢或菜鳥的印象(事實並非如此)而不去發問。

18、如果在建立程式時只是將一些類庫粘合在一起,而不是用更復雜的語言來寫“高階”演算法,就覺得自己不是真正的程式設計師。

19、讓習得最佳實踐的慾望阻礙你掌握特定語言或技術的基礎知識的能力。 例如,在開始建立專案之前,感覺自己需要了解有關設計模式的整本書或掌握TDD / BDD。

20、完美主義。 讓完美成為“足夠好”的敵人。 從不交付任何東西,一直卡在最後階段。 (但保持平衡很重要,所以不要為了交付而交付可怕的破碎軟體。)

21、與前一點相關,忽略了程式設計是循序漸進的:應該先使其工作,然後再讓其變快,再讓程式碼簡潔明瞭。期待從一開始就有一個絕佳的解決方案是不可能的。

22、覺得自己做的不夠好,如果你不是傳統觀念中“程式設計師”的形象,那可能就有些不妙——因為如果沒有與你形象類似(比如,女性,少數族裔等)的成功例子供你參考,你更傾向於覺得自己“不優秀”。這就解釋了女性和少數族裔在科技界的重要性——他們為他人提供標杆,增加他們向上的信心和動力。

23、編寫程式碼並閱讀書籍學習程式設計,但從不閱讀他人的程式碼。Open Source為我們提供了一個驚人的資源,可以大大促進我們對程式設計和最佳實踐的理解。

24、未能接觸到其他範例或領域。就因為你是網頁開發人員,就不去了解其他型別的開發。就因為你知道面向物件的程式設計,就不去學習函數語言程式設計。

25、不教別人你學到的東西。沒有什麼能比向別人解釋更能鞏固自己所學。即使只是為了教學而學習也能提高你的學習能力。

這樣你就瞭解了以上25個陷阱。哦,實際上是26個,程式設計師都習慣從0開始的。

結論

這一切都是想說:

你已經夠好了。你絕對可以做到。要做的就是當心這些陷阱,制定計劃,投入其中,然後一步步來。

在學習程式設計(或提高當前水平)時,我推薦使用編碼/閱讀/教學法。 也可以在學習中對一個實際的專案和其他小練習進行編碼。 然後閱讀書籍以及其他人的程式碼。 最後,線上或面對面教授他人你學到的東西。你不需要成為專家就可以做到這些了。