问题一、前端圈提到 Node.js 似乎都离不开全栈,但是圈外的也有不少声音,类似“别动不动就全栈、真是误导人…”。能不能说一下,优秀的全栈工程师需要具备什么技能?
全栈目前被黑的太多了,我一般不称自己为全栈工程师。提到全栈工程师,很多人会提到 Facebook,因为 Facebook 只招 full stack engineer。而我自己也不知道到底什么是真正的 full stack engineer。
既然我不能定义什么是全栈工程师,那么我就说说那些“非全栈工程师”吧。
有很多这种工程师(开发者),比如前端工程师,他们认为自己是很优秀的前端工程师,每天都在学习各种新的前端知识和框架,但是他们的信条的坚决不学习半点后端的知识,每天面对的就是各种接口。有些人从来没用过 java,一点都不懂 php,不知道这些语言的优点和缺点,却无时不刻的黑着这些语言。
还有一些后端工程师长年累月在 linux/mac 上开发,却连个最简单的自动化脚本都不会写,让他写写 shell/python/ruby,他会直接反驳,我是 java 工程师,这些是运维工程师该干的。
所以,我觉得所谓全栈工程师,就是不畏惧任何技术,横向提升自己。如果一个人说自己是全栈工程师,我的第一感觉不是这个人什么都会,而是会觉得,我和他的沟通成本应该很低。
Web 开发工程师(可以的话,可以从 Web 前端 / Web 后端 / Web 全端 一起讲述,或者不)刚开始工作后,一年和三年的职业发展规划分别应该怎么做?
目前有很多开发者自称全栈工程师,其实是什么都懂点,但是什么都不精通。即便如此,我给新人的建议仍然是先适当扩展自己的广度,然后还得是深度。
我觉得工程师的竞争力,不在于做了 N 个产品,而在于打磨过一个产品就够了。
我从 java 转前端后给自己定的目标是,既然工程师那就要搞工程化,当时 nodejs 周边生态还没有这么号,很多开发者也是刚刚听说过 node,我也没认为这个小框架会掀起如此波澜。然后使用 java 社区的 ant,再结合一些 python 脚本把我们公司的前端重新规划了一遍,基本完成了前后端的半自动化。后端 java,中间层 php,前端 jQuery。
三年的职业发展规划太远,按 3 个月来规划吧。如果这个月的工作不是在重复上个月的,那就是在进步。
目前公司技术氛围不浓厚,作为员工,怎么去改善?
无能为力,我也因为这些问题离职了。
最近越来越认一句话(记不清了,好像是玉伯说的): 我想要更高的 Level,不是为了更高的工资,而是为了更高的话语权。
怎么看待技术圈内的鄙视链?
浮躁。
每当遇到社区的风吹草动,都有很多人问:java 有前途吗?nodejs 有前途吗?大数据有前途吗?区块链有前途吗?
我只有一句话:不存在有前途的语言,只存在有前途的人。
我身为一个 java 程序员却学习 C/C++ 只是为了研究 java 虚拟机,转前端就因为遇到瓶颈了,不仅仅是技术上的瓶颈,还有其它,因为在天津,研究 java 虚拟机是屠龙技,但是天津却没有龙。