如何成为一名全栈工程师?互联网最热的话题之一,似乎正在成为IT行业的新潮流和新趋势,广大开发人员之间对”全栈”类话题的讨论也从未停止。曾经看到过一篇关于全栈设计师的文章,毁誉参半。有的人认为全栈只是一个头衔而已,真正的还是看个人的能力和技术。
这个话题其实是对互联网行业“技多”是否等于“全栈”,“深度”和“广度”哪个更重要的一场深层次的讨论。
全栈工程师,也叫全端工程师,英文Full Stack developer,是指掌握多种技能,并能利用多种技能独立完成产品的人。
全栈工程师是指,一个能处理数据库、服务器、系统工程和客户端的所有工作的工程师。根据项目的不同,客户需要的可能是移动栈、Web栈,或者原生应用程序栈。
其实,“全栈”指的是为了完成一个项目,所需要的一系列技术的集合。“栈”是指一系列子模块的集合。这些软件子模块或者组件组合在一起即可实现既定功能,不再需要其他模块。
自己是个做了几年软件开发的老码农,如果你对前端开发这门技术感兴趣,我们的前端开发学习扣qun:767-273-102 从最基础的HTML+CSS+JavaScript。jQuery,Ajax,node,angular等到移动端HTML5的项目实战的资料都有整理,送给每一位学习前端的小伙伴
为什么全栈工程师会存在争议?
优势:全栈工程师的技术发展是横向的,涉猎技术很广,能快速的运用他所掌握的技术知识开发出产品原型。因为他们视野更宽阔,思维更活跃,对技术和产品都十分敏感,对于任何技术或设计,他总是有话可说。可以对团队中的每一个人都提供有益的帮助,能大大减少团队人员沟通、技术对接的时间和技术成本。所以他们当中,很多人成为了创业者或者在创业公司担任技术合伙人。
劣势:正是由于横向的技术发展,导致全栈工程师往往博而不精。大多数自称为“全栈”的工程师,都停留在一种浅尝辄止的“略懂”的境界。至于具体如何实现,如何让架构更适合后面阶段的模块化开发,那就真不知道了。
即便如此,仍有人在问,如何成为全栈工程师?
一个合格的全栈开发人员应具有在构建应用程序时涉及的所有方面的功能知识和能力。
1) 掌握多门编程语言
你需要精通多门编程语言,JS,JAVA 、PHP、C#、Python、Ruby、Perl 等,因为你的大多数核心业务处理都需要用这些语言来写。你既要掌握这些语言的语法,又需要非常熟悉如何基于这些语言进行项目的架构、设计、实现以及测试。
2) 运用开发框架和第三方库
流行的开发语言,一般都伴有出色的开发框架,比如JAVA的Spring、MyBatis、Hibernate,Python的Django,PHP的 thinkphp、yin,nodeJs的 express 等等。
3) 前端技术
前端技术在今天的项目和产品研发过程中变得愈加重要。除了实现产品功能,用户体验也是检验产品是否成功的标准之一。而这都依赖于前端技术的实现,你至少需要掌握 HTML5、CSS3、JavaScript 等基本前端技术,同时进一步学习 JQuery、LESS、SASS、AngularJS或REACT等前端框架或第三方库。
4) 数据库与缓存
任何产品或项目都需要一个数据库来存储数据。作为全栈工程师,你也需要至少掌握一到两个数据库,并知道怎样与数据库进行交互。目前流行的数据库主要有MySQL、MongoDB、Redis、Oracle、SQLServer等。MongoDB作为文档型数据库,在互联网产品中正被越来越多地使用,对于规模稍大一些的项目,我仍推荐使用MySQL或商用的Oracle作为后端数据库。而Redis这样的内存数据库则可以用于缓存,以提升系统的性能。
5) 基本设计能力
大部分关于全栈工程师的文章或讨论中都很少涉及到设计能力的要求。但我却认为这项技能非常重要,基本的原型设计,UI设计,UX设计都是需要了解的。
6) 除了良好的开发技术知识,自我要求也是全栈工程师必备的因素:
全局性思维
良好的沟通能力
创造力
好奇心
时间管理能力
总结
熟练的掌握前端、后端、客户端方向的知识内容,每天都花时间来钻研也得花10年左右的时间。所以,全栈工程师决不是一夜练成的,你需要打好技术基础,强化核心技能,并持续学习才能应对更多的挑战。
如果你喜欢学习,渴望变强,想成为全栈工程师,欢迎加入我的前端学习群:731771211 ,好友都会在里面交流,分享一些学习的方法和需要注意的小细节