※ 引述《wings1003 (娜諾娜諾)》之銘言:
: 目前正從硬體轉軟體
: 這一陣子有拿到一些前端工程師的offer
: 但是考量到目前有越來越多人轉入軟體工程這一塊
: 其實有點擔心在技術變化這麼快的情況下
: 前端的經驗會不會很容易被取代,然後變成中年失業
: 這方面是不是後端的狀況會好一些?
: 請問軟體工程裡哪些領域的開發經驗比較不太容易被取代呢?
前端變化快的是框架和工具,這部分的確讓大家花了很多時間去學習使用的方法。
然而學會使用框架的方法不是前端開發者的核心價值。
那些框架的開發者只是想辦法把你們跟別人的應用程式都要做的事情外包出去而已。
與其說這是在學技術,不如說是在了解與他們合作實現特定功能的模式。
這就像你要是在自家經營小網拍生意,那你往往會需要透過郵局或便利商店送貨,
而且也需要透過拍賣網站接洽顧客、向他們揭露商品資訊、代收貨款、累積個人信譽。
因此你必須花心力學會透過郵局和便利商店送貨的方法,還有拍賣網站的使用方式,
但這些都不是你這項業務提供的核心價值,你的商品才是核心價值,
你只是為了以更省精力的方式提供整體而言更優良的購物體驗才去學習使用那些服務。
你大可以用比較舊的工具,甚至完全不用那些東西就開始做生意/寫出好程式。
依我看,在有條件限制之下實現排版或功能的做法才是前端開發者的核心價值,
這部分的開發經驗、知識和技術不太會因為框架改變而失去意義,它是可以累積的,
過去十年來的變化不多,變化速度也沒有很快。
這些技術若不投入時間心思練習也學不快、學不深。
要做前端的話,這部分一定要投入足夠的時間鑽研與練習。
至於你提到的中年失業問題,我覺得可以分兩個層次來探討。
一個是前端工程師的角度,另一個是軟體開發者的角度。
現在網頁這種原本主要用來撰寫文件、定義伺服器顯示界面的機制已經從瀏覽器出發,
跨界到行動裝置、嵌入式設備、桌機的本地介面。
因此,雖然投入者眾,門檻也不高,但是市場需求也不小。
在人們開始用不同尺吋、不同人機互動方式的螢幕瀏覽網頁之後,
我們又經常要為不同螢幕實現其專用的介面,這些都是可以貢獻價值的地方。
除此之外,我覺得前端還有一個特點,那就是 UI 常常有相似的結構或運作模式。
然而即便相似,它往往還是設計不同的介面,不能照抄程式。
有時那點設計上的差異就有可能讓實作的難度、複雜度有天壤之別,值得另外打造。
這些事情一樣需要有人來做,而且做這些事累積的經驗可以重複運用。
總而言之,如果你中短期目標只是糊口飯吃,那下足功夫應該都不至於餓到。
前端工作不是一個只要有別人先做到了,那我就沒戲唱的事情。
再從軟體開發者的角度來看,因為我們的職責是在應用科技滿足需求、解決問題,
所以是否妥善應用科技會影響我們貢獻的價值。
為了妥善應用科技,就要了解這些軟體在做的事情對使用者有什麼意義,
以及它要怎麼樣與使用者合作才能把事情做得更快、更週到。
因此要了解與系統相關的事務與知識,而不只是看規格和設計完成作業。
到那個時候你或許可以考慮轉職為系統分析師或專案負責人。
當然,你還是可以找一門演算法特別困難的領域花一輩子深耕技術,
不過我覺得若把時間心力視為投資,那這種路線雖然有潛力發大財,
但風險也比一般開發者高──你必須找到願出高價的買家。
這方面不是我了解的範圍,就講到這裡不提了。