无论是前端工程师,还是后端工程师,都会面临危机。
前端工程师:
前端的端,是个非常广泛的,目前端有 IOS,Android,Chrome,IE,小程序,未来还会有全息影像的设备、穿戴设备、人机接口等技术,最终都将归于端内。即使你是大前端,也不可能从都到尾负责所有的终端产品的开发,你一样要和别人去配合完成自己最擅长的内容。而这些端会随着技术的进步可能会被新的端取代,比如以前的 windows Phone,诺基亚,及正在走向衰落的 IE,那么与之对应的技术栈也将被淘汰。
要成为大前端,原来的 Web 工程师需要学习原生应用的开发,移动工程师则需要进入 JavaScript 这个极为复杂的 Web 领域,除此之外,有许多前端框架层出不穷,JQuery,Bootstrap,Vue,Reac,Angular,后面还有更多 ui 框架,以有生之年逐无尽之技术,做为前端的你能学的过来么?
除了技术,大前端还需要你能更好的理解产品和用户体验,并与产品经理、设计师和交互体验师进行顺畅的沟通,这里面要学习的知识一点也不比技术领域少。
后端工程师:
早期的编程大概是这样的:2000 年左右时使用 Perl 写 CGI 程序(Perl + HTML 混合编程),后来陆续学 JavaScript、Java、C#、Python、Objective C、Go 等技术,早期的项目或产品基本上都是从前做到后,除了设计之外,从切图、前端页面到业务逻辑、持久化、连接池、异常、缓存、日志、集群等等,基本上都要自己参与编程或独立实现,在那个年代,你很难以专业细分的方式运作项目,因为根本找不到那么多程序员。
现在的情况完全不一样了,以前都是需要后端工程师或者架构师搞定的事情,现在,云计算厂商都替你搞定了。比如阿里云的虚拟主机(ECS)、数据库(RDS)、负载均衡(SLB)、文件存储(OSS)、Redis、CDN、日志、NAS 等服务。后端工程师可以看看云计算厂商提供的基础服务范畴,看看有没有覆盖你的知识和技能领域。类似亚马逊阿里云这样的云计算厂商,上千的技术人员除了满足自己系统的需求,其他资源都会投入到公共云的建设上,这些优秀的工程师做出来基础服务,无论是稳定性还是扩展性,都会大大超过创业公司里几个人捣腾出来的技术组件。而且这是一种不可逆转的趋势。
看到这里,你是否有种危机呢,大家都用云了,还要后端工程师干吗?
破解之道
互联网的高速发展需要技术上更为专业、更为精深的编程人员,所以前后端技术体系的分离,就成了大势所趋,形成了一种“反模式”。 每个人发挥自己最强的那部分,才能做出最好的产品,每个人都生产自己最擅长的产品,并交易(合作),整个社会的经济就会快速发展。
其实,不论是哪个技术领域,如果你想在这个领域不断深入,还是应该把最宝贵的时间花在可迁移的技能上——那些永不过时的技能。不要被那些五花八门的框架和库迷了眼。
那什么是永不过时的技能呢? 极客时间作者左耳朵耗子的答案非常具有参考性,就是:编程能力、架构能力和工程能力。
编程能力,就是用代码解决问题的能力
你编程能力越强,就能解决越复杂的问题,细分之下,要有调试能力、算法、数据结构、操作系统原理等基础技能的支撑,你才能解决各种麻烦的问题。
架构能力,就是掌控复杂系统的能力
当一个系统足够复杂时,你会写每一块代码、能解决每一个问题,不等于你能搞定整个系统,这就需要架构能力。架构能力包含了一些意识,也包含认识业务建立抽象模型,还有一些常见的模式等。
工程能力,其实核心就是成事的能力
要知道,当系统规模越来越大时,光靠你一个人是没办法完成的。那如何保证几个高手能够互相配合好?如何保证项目里面水平最差的人不拖后腿?工程化建设往往会跨越多个业务,又如何保证质量和代码风格呢?
这三项能力不管对于前端还是后端开发来说,可以说都是从初级、中级走向高级必须要跨越的鸿沟,也是作为一名程序员永不过时的技能。
全部0条评论
快来发表一下你的评论吧 !