※ 引述《wings1003 (娜诺娜诺)》之铭言:
: 目前正从硬件转软件
: 这一阵子有拿到一些前端工程师的offer
: 但是考量到目前有越来越多人转入软件工程这一块
: 其实有点担心在技术变化这么快的情况下
: 前端的经验会不会很容易被取代,然后变成中年失业
: 这方面是不是后端的状况会好一些?
: 请问软件工程里哪些领域的开发经验比较不太容易被取代呢?
前端变化快的是框架和工具,这部分的确让大家花了很多时间去学习使用的方法。
然而学会使用框架的方法不是前端开发者的核心价值。
那些框架的开发者只是想办法把你们跟别人的应用程式都要做的事情外包出去而已。
与其说这是在学技术,不如说是在了解与他们合作实现特定功能的模式。
这就像你要是在自家经营小网拍生意,那你往往会需要透过邮局或便利商店送货,
而且也需要透过拍卖网站接洽顾客、向他们揭露商品资讯、代收货款、累积个人信誉。
因此你必须花心力学会透过邮局和便利商店送货的方法,还有拍卖网站的使用方式,
但这些都不是你这项业务提供的核心价值,你的商品才是核心价值,
你只是为了以更省精力的方式提供整体而言更优良的购物体验才去学习使用那些服务。
你大可以用比较旧的工具,甚至完全不用那些东西就开始做生意/写出好程式。
依我看,在有条件限制之下实现排版或功能的做法才是前端开发者的核心价值,
这部分的开发经验、知识和技术不太会因为框架改变而失去意义,它是可以累积的,
过去十年来的变化不多,变化速度也没有很快。
这些技术若不投入时间心思练习也学不快、学不深。
要做前端的话,这部分一定要投入足够的时间钻研与练习。
至于你提到的中年失业问题,我觉得可以分两个层次来探讨。
一个是前端工程师的角度,另一个是软件开发者的角度。
现在网页这种原本主要用来撰写文件、定义服务器显示界面的机制已经从浏览器出发,
跨界到行动装置、嵌入式设备、桌机的本地接口。
因此,虽然投入者众,门槛也不高,但是市场需求也不小。
在人们开始用不同尺吋、不同人机互动方式的萤幕浏览网页之后,
我们又经常要为不同萤幕实现其专用的接口,这些都是可以贡献价值的地方。
除此之外,我觉得前端还有一个特点,那就是 UI 常常有相似的结构或运作模式。
然而即便相似,它往往还是设计不同的接口,不能照抄程式。
有时那点设计上的差异就有可能让实作的难度、复杂度有天壤之别,值得另外打造。
这些事情一样需要有人来做,而且做这些事累积的经验可以重复运用。
总而言之,如果你中短期目标只是糊口饭吃,那下足功夫应该都不至于饿到。
前端工作不是一个只要有别人先做到了,那我就没戏唱的事情。
再从软件开发者的角度来看,因为我们的职责是在应用科技满足需求、解决问题,
所以是否妥善应用科技会影响我们贡献的价值。
为了妥善应用科技,就要了解这些软件在做的事情对使用者有什么意义,
以及它要怎么样与使用者合作才能把事情做得更快、更周到。
因此要了解与系统相关的事务与知识,而不只是看规格和设计完成作业。
到那个时候你或许可以考虑转职为系统分析师或专案负责人。
当然,你还是可以找一门算法特别困难的领域花一辈子深耕技术,
不过我觉得若把时间心力视为投资,那这种路线虽然有潜力发大财,
但风险也比一般开发者高──你必须找到愿出高价的买家。
这方面不是我了解的范围,就讲到这里不提了。