敏捷程式學習 – 4. 關於新技術的使用
今天的程式環境實在太複雜,複雜到連專家都感到困擾,更別說是初學者了!
這幾年我開始學習 Node.js/JavaScript 並開發專案,但是 Node.js/JavaScript 的世界實在龐大得可怕,於是我只能在《還沒學完》的情況下直接開始開發專案。
假如我要等自己學完,我應該永遠都寫不出專案了。
因為、當我學會 jQuery/Bootstrap 的時候,會發現更強大的 Angular.js 出來了,等我去學 Angular.js 的時候,就會發現更厲害的 React.js 出來了。
當我去學 Server 端的 Express 框架時, Koa 出來了,當我去學 Koa 的時候,可能會發現 Koa@2 開始用 async/await 取代 generator/yield 了。
於是、如果你要等自己學完才能開始,就代表你會陷入一個永遠在學習,卻永遠寫不了專案的窘境。
追求新技術似乎是程式人的天性,但是無止無盡的新技術,會讓你無止無盡的追下去,直到死掉的那一天! 所以、別執著於最新的技術,一旦開始專案,就不要輕易的更換技術,先把專案做到一個段落。
等到你做完專案的某個可行版本,評估發現真的需要採用另一個技術時,這時候立刻學習該技術來改寫整個專案。
當你真的開始改寫時,因為你已經做過一個完整版本了,所以《專案的不明確性》就被消除了,於是採用新技術開發就純粹只是技術問題,而不會參雜太多的規劃分析問題,在這種情況下你學習新技術也通常會變得很快速,而且可以很容易地判定新技術是否適合該專案使用!
所以我認為,別急著採用新技術,舊技術通常也有優點,至少舊技術的網路資源和書籍通常比較多,新技術或許很好,但是總要先找些白老鼠來試驗,急著當白老鼠可能會變成實驗品。
我可不想一直被當成實驗品阿!