php轉go的一些學習歷程

Iwanna發表於2020-09-27

php

  1. 初次接觸程式設計是2016年,那時出於個人愛好以及為了補貼點生活用度學習了php,負責學校大大小小的網站建設與維護,在此期間基本都是在imooc上面學習的,用了半年的時間刷了5000+經驗

  2. 到了2017年下半年基本能自己負責些帶有功能性的網站的開發了,和師兄他們一起做了某大學的迎新系統,以及某培訓機構的教務系統

  3. 2018年畢業後去到一家做政府相關業務的公司,一個人從0開始做專案,包括需求調研、架構、程式碼、培訓、售後,2020年初重構專案時小組裡面有了4個人稍微輕鬆點了,花了半年的時間基本重構完成了

  4. 但是這兩年除了基礎的crud基本沒有學到更多的東西,其實畢業後去的第一家公司並不能算真正意義上的網際網路公司,所以在9月打算辭去這份工作,給自己一個成長的機會

go

  1. 初次接觸go是18年末,當時聽說go的學習難度基本與php持平,但效能卻可以趕超java,於是就去看了下go的基礎

  2. go我是自上而下學習的,在瞭解了go的基礎語法後,在網上查詢了下go相關的web框架,經過最終抉擇,打算先學beego框架,具體的使用一開始,也是在imooc上面學習的
    課程看完後在有其他語言開發經驗的基礎上寫一個小部落格基本就沒有問題了(對於新知識,看影片學習的話有些東西好理解很多,但是到最後一定都要學會直接看文件)
    為什麼我要自上而下的學習,而不是先看底層的基礎?我個人覺得先做出東西,再做好東西更容易堅持下來,當你發現你能用它做出功能後更容易保持自己繼續學下去的動力一些,一開始就想著去看底層的實現邏輯,可能學到一半就沒那麼有興趣了

  3. 會使用框架後,自己練(jie)習(wai)著(shui)寫了個聊天室的專案,以及一些實用小工具原始碼地址

  4. 當使用框架基本沒問題後,就開始想著深入瞭解框架底層的實現邏輯,比如框架是怎麼調起web服務的、orm是怎麼實現的 … … 等等
    在之後,由於使用上遇到了些問題,加入了相關的技術群,因為平時比較活躍,目前負責專案維護的同學聯絡到我,讓我幫忙寫了一些小功能,業餘時間就參與到了相關功能的開發中去了,成功提交了一些pr後也方便後續找工作

  5. 框架的使用沒問題了就該去學習下官方常用的一些包的使用及實現邏輯了,這裡是我學習時記錄的部分程式碼

  6. 常用包學習的差不多了,就應該更深一步的去了解go本身的一些實現,比如map的底層邏輯defer的底層邏輯goroutine排程(GMP)相關邏輯,在此,強烈建議閱讀draven的Go語言設計與實現系列文章

  7. 其實在第一步和第二步中間熟悉go語法的時候直接去leetcode刷題也是一個不錯的方法,不過出於熟悉語法的目的,建議前期就刷刷簡單難度的題就ok了

  8. 學習至此,go語言相關的問題基本就解決了,剩下的就是語言之外的學習了,比如上一點裡面提到的演算法相關的內容,比如叢集相關內容,這裡的內容也是我相對薄弱的地方

祝願

下個月開始,自己就是自由人了,希望能早點成為真正的gopher

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章