小弟预计下周办一个转职分享会,
有兴趣可以报名~ https://goo.gl/forms/Y9f8TNJ9qTSAbtCf1
“想请问以就职容易度为前提的语言”这个问题,我的简易建议会是前端或 php 。
但“就职”这个问题虽然相对简单,
但“职涯发展”这个议题却很立体也很复杂...。
“职涯发展”牵扯到的不只是拿到工作,
也包含了“怎么在这份工作当中发展上去”。
前阵子有在面试一些工程师,感触很深,
例如有面试到很认真想把 code 写好,结果整间公司摆烂的人,
(其实满有天份的,但与敝司的需求还是有落差)
也有遇到三个一年经验的人(一年的工作能力重复做)
遇到聊得来的人,我都会分享以下几个观点:
1. 去认识你这个领域的前辈/朋友
等你达到 tutorial 等级之后,写程式很难一个人自己写然后就进步;
一个人能进步的通常是程式底子很好,或是练武奇才。
2. 知道什么是对的问题
找到前辈/朋友之后,试着跟他们交流,
但,不是一古脑儿把所有问题丢给对方,
例如我看过:“请问如果我要管理我的订单状态,我该怎么做?这个我不会做...”
这是一个天大的问题.....
但如果问题缩减成“我要做一个订单管理的流程,我缺乏什么?”
>> 我会做数据库 CRUD
>> 我会做前端画面、但不会前端框架、会一点 jQuery
>> 我可以写出一个维护性不知道如何、不知道会不会有 bug 的订单管理 XD
>> 我会画一个流程图
>> 我可以厘清使用者需求
然后会发现这几件事情,最该先做的事情是先厘清需求、再画流程图,
然后再把“自己觉得订单管理”该怎么写、该怎么开发、怎么规划写下来,
然后带着这些东西去问前辈:
“我目前有一个具体的需求要完成,有规划了流程图、且要用什么工具有想好了,
不知道是否能跟您请教?”
嗯......
我自己的经验,如果你已经准备到这个程度,
会有一些前辈愿意听你说,且提出你的盲点,
例如你可能连需求都没定义清楚,这样开发下去会遇到什么问题,
或是妳流程图有自己没看出来的 bug 、或是这样的架构下,
跟你列出来想用的工具是否适合...等等。
3. 了解根本的知识而不是工具
这个观念其实大家都会讲,但实际上规划起来是怎么一回事?
以后端而言,了解数据库、了解 OSI、了解从 browser 发出 request 之后,
经过的每个地方是什么、分别替这个 request 做了什么相应的事情,
最后回传什么给 browser。
而不是到底要学 php、java、node.js 还是 ruby。
前端也是一样的概念,你该钻研的不是 vue.js react.js 甚至 jQuery 的使用方式,
而是 browser 做了哪些事情、 javascript 是什么、在 browser 有什么特性。
(小弟也是前端苦手,最近在补基础知识,很推荐 https://javascript.info/ )
当你成为一个可以思考问题本质的工程师时,你目前会什么工具就不是最重要的,
例如身边朋友有人原本是写 php,面试时还是有公司愿意加薪 20% +让他转 stack ,
原因就是他懂的是“后端怎么运作”
而不是“ CodeIgniter (php 的一种框架) 怎么使用”。
结论:
当你在狭义的思考“怎么样拿到我第一份工作?”的时候,
其实前端、 php 都还不错,因为职缺很多。
但更重要的是,在解决完第一个问题后,
去思考“怎么样让我成为一个好的工程师”这件事情。