文章嘅結構非常清淅,段落標題已經係一個好好嘅小結,冇必要再作總結。
要點
職業道德
Programmer嘅職業道德就係寫D有Quality嘅Code。
行外人可能唔明,Product有冇Quality,Client好易睇得出,冇Quality嘅野好易俾市場圖汰,跟本生存唔到,何來道德?事實上,Software嘅Quality,唔識寫Code嘅人真係會睇唔出。
行外人眼中,淨係睇到你整個UI好唔好睇,D功能用唔用到。其實E D野好多時call個library, copy and paste 下D Code就做到。真正嘅Software Quality係要睇背後個Logic嚴唔嚴謹,結構易唔易Extend。行外人眼中淨係見到一D符號,連D Code咩意思都唔知,點樣明白背後嘅Idea,何來講得出有冇Quality?
正如作者所講,Software 冇一個「外觀」(啱啱講有UI唔代表Software Quality),係一D抽象嘅,只有係實際contribute嘅人先知到個Quality,好多時都係靠自己良心去做。
揾工真係要揾D上司有technical backgound,隊Team注重Code Quality嘅公司。如果老細係行外人,跟本唔識分D Code有冇Quality,好易就升左D亂寫Code交數又識卸膊嘅Programmer。果D幫人地執手尾嘅良心Programmer真係灰左機。
基本功
文中程式語言,資料結構及演算法,網路協定幾個段落,都帶出一個concept,要打好基本功。
做野好多D都係直接用library,好high level咁solve一D問題,未必真係吓吓要用到D低層野,可能得少於10%嘅Task先有少少機會用到。一個Programmer去唔去到專家Level就係睇果10%。所以練好基本功,係為未來一D Solve唔到嘅問題做準備,正謂書到用時方恨少。
咁當然,除左深度,廣度都好重要,keep住學新野,但要留意點樣用最快嘅方法去學到,唔係俾幾條命你都唔夠用。
除錯能力
我希望佢可以再講得Solid D。
寫出可讀、易維護的代碼
絕對同意。Readability > Maintainability > Performance。我以前都係Performance行先,連加減乘除都要想用bit operator去optimize,跟本係傻仔行為。
Optimize係好花時間,用左成幾日做完optimize,最後發現快左唔夠1%,但D Code完全亂曬,過幾日連自己都睇唔明,改少少野又有bug,真係得不償失。
好多時都係Readability行先,D Code易睇,代表佢用一個簡單精練嘅方法去solve到一個問題。其他人好易咁去理解到個思路,知道D code做緊咩,點解work點解唔work一目了然,自然易maintain。
D Code易睇,就容易去揾到去關鍵嘅瓶頸去Optimize,又因為易maintain,又唔怕optimize果時會製造D bug。成件事有效率好多。
有好多Programmer都會忽略左一樣野。Code其實係一篇文章,係Programmer之間嘅溝通工具。如果D Code寫到亂七八糟,成條Team真係好難合作,好可能變左我整炒你段Code,你又整炒左我段Code,最後大家日日係度fix bug,唔知做D咩。
程式語言的多樣性
四、非關技術
主要係一D soft skills。
停止砍掉重練
有砍掉重練嘅衝動,其中一個原因係睇唔明人地D Code,唔想睇,好似重寫一次比較快。
但係咁樣好多時係解決唔到問題,因為自己睇唔明自己D Code係好常見。
尤其係D Code寫得唔好嘅時候⋯⋯有時唔一定係人地寫得唔好,都有可能係自己未夠班,睇唔明人地嘅Design。
所以除左自己寫Code之外,都要睇多D人嘅Code。Code Review都係一個好好嘅練習。
PS: 有時Code Reivew係等寫Code果個Review你個Code Review :0)
Communication
Software engineer好多時都唔係one man band,係同成條Team合作。
Keep Learning
科技日新月異,唔洗解釋。
檢討
文中提到嘅文章同書都應該要睇下。當中我Security同ORM都要鑽研下。同埋真係要練習睇多Code。
目前Target係先增加廣度再pick topic深造。