轉行程序員深漂的這三年 #4

轉載至個人我的博客: LOVCHUN.COM

我對編程很感興趣,想當一名程序員。html

每一個人可能會有不少興趣:音樂、美食、遊戲、編程等等,這些興趣均可以指向某個行業,爲何最後你要選「編程」這個興趣?編程並無想象中的那麼酷,大概在你工做一兩年,作過數個項目後,你會開始以爲它和傳統行業也有不少共同點:若你專職於後端,業務上重複的增刪改查;若你專職於前端,業務的交互邏輯、各類 UI 的實現、各大 PC 瀏覽器或移動端瀏覽器等兼容問題,這些都會是你長期的平常開發工做。前端

溝通方面,若你在一家小公司而且開發本身公司的產品,可能老闆一句話就能定下需求,若是老闆不太專一業務實現的方式,只關心業務實現的結果,你能夠很容易就快速完成一個功能,而後上線;若你在一家大公司,有比較完備的 UI、產品等崗位的同事,一個功能需求,甚至是一個頁面上的文案可能就會磨蹭許久,最終才能上線。要是這家公司的開發流程不嚴格,可能你還在寫某個功能,產品又想把這個功能再變個樣子,你會來來回回反覆修改,一個本來兩三天就能結束的功能,可能須要幾倍的時間來完成。vue

能夠參閱《人月神話》這本書,裏面說起了一些對軟件開發過程的幾個重要關鍵點,看法很獨到,是軟件工程的經典著做。webpack

我今年 XX 歲了,轉行算遲嘛?程序員

每次看到相似這種提問,都很是慶幸本身在 2014 年做出轉行的決定!在《轉行程序員深漂的這三年 #3》中,我敘述了本身在 2015 年,如何拿着兩個靜態頁面 DEMO,投簡歷,就能收到諸多面試邀請,並一步步找到工做的過程。試想一下,若是我不是在 2015 找工做,而是在 2017 年呢!我想,應該不會收到面試邀請吧?web

2015 年,在招聘的崗位職責上:熟悉 CSS 預處理語言(LESS、SASS等)之1、熟悉 MVVM(React、Angular、Vue 等)框架之1、熟悉經常使用自動化工具(Webpack、Gulp 等)之1、有移動端網頁及 Hybrid App 經驗優先、熟悉 Node.js 優先等這類的就任要求不多見,有的甚至沒有,大部分仍是 jQuery、Require.js、Backbone.js,常見的仍是 PC 端上的 WEB 開發。面試

而如今呢?微信公衆號、Hybrid App,移動端上的瀏覽器、諸多的 CSS 框架、CSS三、HTML五、ESC六、版本控制工具等等,2015 - 2017,就這短短兩年,衍生出許多新的工具、框架、開發模式等等,每一年的崗位需求也會和這些新技術緊緊匹配。IT 這一行,不論哪一種崗位,哪一種語言,技術棧每一年都會發生突飛猛進的變化。vue-cli

你每晚一年開始,便須要多學習和了解這一年的新事務,才能跟上當年的腳步!npm

工具是爲了提升開發效率,不要過於依賴它!編程

就拿 CSS 還說,如今有不少框架,你只須要使用它們,照着官方文檔就能輕鬆寫出響應式強,兼容性好的 Web App,可是框架、工具等的出現是爲了提升開發效率,若是你 CSS 尚未熟練,不知道 float 怎麼用,不清楚 position 的概念,不明白 display 幾種佈局的方式,過於依賴它們,你可能作完一整個項目,CSS 熟練度提高爲零。

網絡上常常會看見一些新人的提問,大部分會相似「這個框架/工具沒有實現這個功能,我該怎麼實現」?

假如如今須要讓某張圖片自適應,等比縮放以匹配不一樣的客戶端,依賴 Bootstrap ,可能只須要在標籤上加一個類名, "class=img-responsive」,那不用 Bootstrap 呢? 假如如今還須要一個自定義的模態框,你真的有了解過一個帶遮罩模態框的 HTML 結構嗎?遮罩層、內容層的 z-index 又該怎樣定義?遮罩層又怎樣才能撐滿整個視口?內容層又如何相對遮罩層居中?

工具會過期,框架也會被替代,熟練你的基本工,知其然而知其因此然,才能在下一個新框架、新工具出來時,快速熟悉它們,跟上當前的節奏。

天天都是重複的增刪改查,都是重複的交互編碼,我該怎麼提高?

可能一兩年,或者作多幾個項目後,你會慢慢以爲工做很枯燥。是啊,天天都在重複的寫着交互、增刪改查等等,除了更加熟悉框架、接口,編碼更快,Debug 更準,好像沒有什麼其餘提高,我該怎麼辦?你所寫的業務,它們都是你的經驗,都是你的提高!

有一段時間,我在作微信商城相關的項目,天天反覆寫着增刪改查的業務邏輯:獲取 OPENID,查出商品數據,渲染商品詳情視圖,用戶點擊購買,服務端校驗金額,喚起微信支付,支付成功,服務端查詢訂單支付狀態,更新訂單表狀態等等。爲何要在最開始獲取 OPENID?爲何要在服務端校驗金額?爲何微信 JSSDK 返回支付成功,還須要服務端去查詢?爲何一個「用戶下單」流程要分解成這麼多步驟?這些就是業務!

和傳統行業同樣,一個服裝廠,有專職生產衣服的車工(開發),也有專職設計衣服樣板的師傅(架構)。那些師傅之因此能夠作樣板,不就是由於他們對整個衣服的製做流程(業務)熟悉嗎?他們知道如何把衣服切分紅不一樣部位,不一樣碼數對應不一樣大小,車工小組即可更好的分工,更高效的完成一件衣服的製做。

當你迷茫,不知道怎麼提高時,沉澱一下本身在當前公司所寫過的業務,假如你和我同樣作過一段時間商城相關項目:

一個最基礎的商城,須要哪些表?如何處理文件上傳?涉及到金額,爲何字段類型要用 decimal ?爲何微信支付 API 裏的金額是 int,單位是分,而不是元?商品多規格,多庫存怎麼處理,等等... ...

代碼量能夠提高編碼的效率,業務的積累纔是你提高的成果。

由量變到質變。

我記得第一次開始寫 Vuejs 的時候,難到個人並非 Vuejs 的 API 或者一些概念,而是 Webpack,它配置很是靈活,還有豐富的 Plugins、Loaders 等等,我始終不能很好的理解以及運用它。大部分時候,我都是用 vue-cli 去直接生成一個項目,因而我天天都會花幾個小時,搭配看 Webpack 官方文檔,去琢磨 vue-cli 所生成項目的目錄結構、configs 文件等等,而後本身一步一步,從 npm init 開始,從 webpack-simple 開始,從頭搭建一個項目,直到一兩個月的某一天,我忽然就會了。

事實上,學習到掌握一門新的技術,我一直認爲本身的學習能力是很普通的,我掌握它們的惟一方法就是反覆去嘗試搭建,反覆去嘗試使用,反覆看文檔。

這 3 年的時光,我有不少相似這種學習 Webpack 的經歷,如 Laravel、Vue、Django、React,可能 1 個月,也多是 3 個月,甚至更久,對某個工具、框架沒法理解,忽然的某一天,就頓悟了。

「讀書百遍,其義自見」,我想,應該就是這個道理吧。反覆去琢磨一件事物,其中你免不了去查閱各類資料,日積月累,由量變到質變。當你下定決心,準備掌握一門新技術的時候,作好「準備」,作好「反覆」,等待「由量變到質變」的那一天,享受「頓悟」的那一刻!

保持住你的激情!

若是你準備轉行 IT,你必須面對一個事實,它並非一個越老越吃香的行業,反而是一個在不斷前進,不斷更新的行業。你須要長期保持本身對新事物的激情、學習的激情,不然就會失去你的競爭力。

個人 2015 - 2017

第一個 100+ Star

相關文章
相關標籤/搜索