鐵人賽 面試官角度看入門軟體開發 - Jian-Min-Huang/tech-note GitHub Wiki

前言

鐵人賽的後段,我想說來看一些很市場的面向好了,來聊聊把軟體開發當工作的這件事。這幾年逐漸變成中年工程師 (淚),一路走來從給人家帶、獨立作業、可以 mentor team memeber 到現在變成面試官當主管。不敢說能夠給出有用的建議,但能分享的經驗是有的。

對自己實驗,問動機

我記得開始學寫程式的那陣子,常常一寫就十幾個小時停不下來,後來才知道那是所謂的 Zone。於是新手初入軟體開發,我總是會先問他們學習的動機是什麼?有沒有試過自己的極限到哪裡?有人認為撰寫程式本身是如同創造藝術般,我雖然不到那麼浪漫的程度,但我退而求其次的想,是希望入門者想清楚,若沒有熱情支持,其實這條路是很枯燥乏味的。

學習的這個面向

學歸學,做歸做,應用歸應用,怎麼把學進去的東西內化之後用另外一個方式表達出來。注意思考的深度及理解,若是當下無法摸清也只能多看示例以求觸類旁通。

語言完整程度

現在高階語言其實語法都不脫離幾個大類,學習時一定是依序基礎語法,類型與變數,流程控制,有OO的就會講OO,有例外處理的講例外處理 (Go: err ...),有執行緒的講執行緒,講講 IO,講講 Network,講講 Collections,講講泛型。如果上一節是在告訴你東西要學深的話,那這一節就是在告訴你東西要學齊了。

打包與部屬

現代 IDE 跟 Editor + Plugins 有時候實在強的很過分,我很訝異許多新手寫了程式之後,居然從不知道怎麼打包怎麼部屬 (笑)。要知道工具也只是默默幫你做掉,這個功並沒有省,既然它不能省,自然就有值得學習的道理。

基本功

像現在火熱的 REST,即便你把它拆成前後端兩個面向,也只是需要了解的深淺問題。另外若你是前端,前端三寶的熟悉度算是你的基本功,若你是後端,關聯式資料庫是你的基本功 (RDBMS 不死而且變得更強,別傻到只學 NoSQL)。

框架

學習一到兩個主流框架,前端目前三大熱門 (Rxx、Vxx、Axx) 或是後端各語言都會有全棧式及單純功能面的一些框架。幫助你快速開發,不重複造輪子。關於這點我只有一句想說,就是學習使用但不要忘了初衷,深刻理解原始作法,不要過度依賴。


About Me

Jian-Min Huang

wide range skill set backend engineer

Research, Architecture, Coding, DB, Ops, Infra.

mainly write Java but also ❤️ Scala, Kotlin and Go

http://github.jianminhuang.cc

http://linkedin.jianminhuang.cc

http://note.jianminhuang.cc

[email protected]