全栈工程师这个头衔在国内还是少有听闻,但是在美国早已大肆流行开来,纵关Facebook,Twitter,Amazon的招聘要求来看,有相当多的职位写的是Full Stack Enginner,即全栈工程师。那么,到底什么样的程序员才可以称之为全栈工程师呢?
我们要先理解『栈』这个概念。在编程行业中,栈指的是一个程序员或软件工程师所拥有的技术量和技术水平。现在的开发工作普遍分为前端,后端,移动端。而全栈则表示一名程序员懂得开发所有端的知识和技术,并且也懂得一些运维、产品和营销知识,而且还了解大数据处理、机器学习、区块链等,那么这个趋势是怎么发展来的呢?随着软件技术和云计算服务越来越成熟,开发一项产品越来越简单,我们可以用更短的时间去学习一门新的技术,然后用这门技术更快的开发出想要的结果。这样下来,学习和开发成本的下降,造成了程序员不满足单一使用某一项技术或开发某一端应用,比如后端工程师学习前端和移动端开发。
全栈工程师之所以在美国如此流行是因为当程序员自身了解的编程语言和架构知识以及其他像产品、运维之类的软实力越多越透彻,就越容易开发出容易维护,可伸缩,高性能,且符合用户使用习惯的产品。编程语言只是工具,当我们工具箱中的工具逐渐增多时,我们就会考虑该用哪种工具去解决哪类问题。比如要解决高并发的问题,我们可能会选用基于Node.js的后端JavaScript进行开发,因为它是非阻塞I/O和事件驱动的编程模型,可以用更少的线程去处理更多的业务,从而减少系统资源的开销。而对于一个大型的分布式系统,我们可以用不同的编程语言去实现不同的功能模块,有的需要实时处理的就用Node.js,而需要多线程操作的我们就用go,安全性要求高的我们就用Java。一个人掌握的越多,对软件宏观的思考就会越周到,所以公司们都十分青睐这样的人才。
所以作为一名普通的程序员,我们应该如何提升自己,让自己成功全栈工程师呢?我们可以从现有的技术栈开始拓展,比如当前是做后端开发,那么或多或少的会用html,css和客户端JavaScript写一些界面,那么我们就可以在业余时间学习一下Vue.js或ReactJS,开发一个小型的单页应用的demo,因为都是用同一JavsScript语法,所以学起来并不是很难,前端库虽然多,但是都比较容易掌握。对于移动端,如果本身会Java的话,就可以去学安卓,至于IOS,有编程语言基础的话学swift并不是很难,而且即使都不会,只要会JavaScript,就可以用React Native进行ios和安卓开发,而且一套语言可以在两个平台共享,且性能接近原生。运维的话就可以看看比较火的docker,Spring Cloud,和kubernetes,其实都是差不多的,只不过需要配置很多参数,这个只有实际运用的时候才能得到最佳解决方案,所以基本没什么学习成本,只是用到的时候知道去哪查配置就好了。
成为一个全能型的全栈工程师可能会牺牲一些深度的,细节上的功力,但是得到的是一个有广度的、知识储备丰富、可拓展、可培养的人才,所以公司才如此渴求此类程序员,我们应该做的就是尽早准备,把自己锻炼成既有宏观把控能力,又有细节深究能力的优秀工程师。
全部0条评论
快来发表一下你的评论吧 !