让知识连接你我
投稿赚钱
当前位置: 首页 > 职场生活 > 普通程序员该如何进阶为全栈工程师?
  • 101
  • 微信分享

    扫一扫,在手机上查看

普通程序员该如何进阶为全栈工程师?

2019.09.16 10:00 255 浏览 举报

  怎样才能变成一名全栈工程师(full stack developer)?移动互联网最红的议题之一。LinkedIn, Facebook上标榜自个是全栈工程师的人也愈来愈多,好像将要变成IT行业的新时尚和新热点。Full Stack的定义已经不新鲜,众多开发团队相互间对”全栈”类议题的讨论也不曾终止。以前见到过一篇关于全栈网页设计师的好文章,褒贬不一。有些人觉得全栈仅仅一个称号罢了,真的的依然看个人的专业能力和技术性。

  中国有句老话:鱼和熊掌不能兼顾。而相近全栈工程师,全栈网页设计师这种的岗位,好像将要挑战这一概率。是因为许多人纵向一体化的专业技能树赋予了许多人鱼和熊掌兼顾的专业能力。而外国针对全栈型人才,有这样一个表述:Jack of all trades, but master of none. 翻译中文也是无所不知便一无所精。如何应对变成广而不精的全栈工程师,是众多要想变成全栈网页设计师朋友们必须深入考量的一个难题。

  实质上来讲,这种议题我觉得是对计算机行业“技多”是否相当于“全栈”,“深度”和“广度”哪家更关键的一场多方面的讨论。

  1. 什么叫全栈工程师?

010a465a1e29c0a801217132aab47c.png

  全栈工程师,也叫全端工程师,英文Full Stack developer,就是指熟练掌握多种多样专业技能,能够应用多种多样专业技能独立进行商品的人。

  Quora上有人提出了这种难题,在其中一个高票回答是:

  全栈工程师就是指,一个能解决数据库、服务器、系统工程和客户端的其他工作的工程师。依据项目的差异,客户必须的可能是移动栈、Web栈,或者原生应用程序栈。

  我觉得,“全栈”指的是以便进行一个项目,所必须的一连串技术性的集合。“栈”就是指一连串子模块的集合。这种软件子模块或者零部件组合合为一体就可以实现既定功能性,不要必须其他模块。

  2. 为何全栈工程师会存在异议?

01c7055a1e29cca80120908d392863.jpg@800w_1l_2o_100sh.jpg

  里面提到过,全栈工程师的异议取决于对专业技能深度和广度的讨论。尤其是在OSCON会议上,一名Facebook的工程师说许多人只聘请“全栈(Full stack)的程序员。”此议题一出,更造成了大家对变成全栈工程师的优势与劣势的强烈讨论。

  优越性:全栈工程师的技术性发展趋势是横纵的,涉猎技术性很广,能迅速的应用他所熟练掌握的技术性知识开发设计出商品原型。是因为许多人视野更宽阔,逻辑思维更活跃性,对技术性和商品都非常敏感,针对其他技术性或布置,他总是有话可说。能够对团队中的每自己都提供有益的协助,能大大减少团队人员沟通交流、技术性对接的

  时间和技术成本。所以他们当中,很多人成为了创业者或者在创业公司担任技术合伙人。

  劣势:正是由于横向的技术发展,导致全栈工程师往往博而不精。大多数自称为“全栈”的工程师,都停留在一种浅尝辄止的“略懂”的境界。至于具体如何实现,如何让架构更适合后面阶段的模块化开发,那就真不知道了。

  3. 即便如此,仍有人在问,如何成为全栈工程师?

0161b95a1e29e4a80120908dd0f641.png

  一个合格的全栈开发人员应具有在构建应用程序时涉及的所有方面的功能知识和能力。

  1) 掌握多门编程语言

  你需要精通多门编程语言,JAVA 、PHP、C#、Python、Ruby、Perl 等,因为你的大多数核心业务处理都需要用这些语言来写。你既要掌握这些语言的语法,又需要非常熟悉如何基于这些语言进行项目的架构、设计、实现以及测试。

  2) 运用开发框架和第三方库

  流行的开发语言,一般都伴有出色的开发框架,比如JAVA的Spring、MyBatis、Hibernate,Python的Django,PHP的 thinkphp、yin,nodeJs的 express 等等。

  3) 前端技术

  前端技术在今天的项目和产品研发过程中变得愈加重要。除了实现产品功能,用户体验也是检验产品是否成功的标准之一。而这都依赖于前端技术的实现,你至少需要掌握 HTML5、CSS3、Javas cript 等基本前端技术,同时进一步学习 JQuery、LESS、SASS、AngularJS或REACT等前端框架或第三方库。

  4) 数据库与缓存

  任何产品或项目都需要一个数据库来存储数据。作为全栈工程师,你也需要至少掌握一到两个数据库,并知道怎样与数据库进行交互。目前流行的数据库主要有MySQL、MongoDB、Redis、Oracle、SQLServer等。MongoDB作为文档型数据库,在互联网产品中正被越来越多地使用,对于规模稍大一些的项目,我仍推荐使用MySQL或商用的Oracle作为后端数据库。而Redis这样的内存数据库则可以用于缓存,以提升系统的性能。

  Redis 教程

  5) 基本设计能力

  大部分关于全栈工程师的文章或讨论中都很少涉及到设计能力的要求。但我却认为这项技能非常重要,基本的原型设计,UI设计,UX设计都是需要了解的。

01657b5a1e29f0a80120908d1f1465.png

  6) 除了良好的开发技术知识,自我要求也是全栈工程师必备的因素:

  全局性思维

  良好的沟通能力

  创造力

  好奇心

  时间管理能力


本文首次发布于开创者素材 ,转载请注明出处,谢谢合作!

相关文章推荐