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

文章开头:本文是红旗飘飘老师发表在产品壹佰的文章(http://www.chanpin100.com/article/105841 )转载文章仅供大家习,不作任何商业用途。

全栈工程师决不是一夜练成的,你需要打好技术基础,强化核心技能,并持续学习才能应对更多的挑战。

如何成为一名全栈工程师(full stack developer)?互联网最热的话题之一。LinkedIn, Facebook上标榜自己是全栈工程师的人也越来越多,似乎正在成为IT行业的新潮流和新趋势。Full Stack的概念早已不新鲜,广大开发人员之间对”全栈”类话题的讨论也从未停止。曾经看到过一篇关于全栈设计师的文章,毁誉参半。有的人认为全栈只是一个头衔而已,真正的还是看个人的能力和技术。

中国有句老话:鱼和熊掌不可兼得。而类似全栈工程师,全栈设计师这类的职业,似乎正在挑战这一可能性。因为他们横向发展的技能树赋予了他们鱼和熊掌兼得的能力。而国外对于全栈型人才,有这么一个说法:Jack of all trades, but master of none. 翻译成中文就是无所不能便一无所精。如何避免成为广而不精的全栈工程师,是广大想要成为全栈设计师朋友们需要深入考虑的一个问题。

本质上来讲,这个话题其实是对互联网行业“技多”是否等于“全栈”,“深度”和“广度”哪个更重要的一场深层次的讨论。

1. 什么是全栈工程师?

全栈工程师,也叫全端工程师,英文Full Stack developer,是指掌握多种技能,并能利用多种技能独立完成产品的人。

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

全栈工程师是指,一个能处理数据库、服务器、系统工程和客户端的所有工作的工程师。根据项目的不同,客户需要的可能是移动栈、Web栈,或者原生应用程序栈。

其实,“全栈”指的是为了完成一个项目,所需要的一系列技术的集合。“栈”是指一系列子模块的集合。这些软件子模块或者组件组合在一起即可实现既定功能,不再需要其他模块。

2. 为什么全栈工程师会存在争议?

上面提到过,全栈工程师的争议在于对技能深度和广度的探讨。特别是在OSCON会议上,一名Facebook的工程师说他们只聘请“全栈(Full stack)的程序员。”此话题一出,更引起了大家对成为全栈工程师的优势与劣势的热烈讨论。

优势:全栈工程师的技术发展是横向的,涉猎技术很广,能快速的运用他所掌握的技术知识开发出产品原型。因为他们视野更宽阔,思维更活跃,对技术和产品都十分敏感,对于任何技术或设计,他总是有话可说。可以对团队中的每一个人都提供有益的帮助,能大大减少团队人员沟通、技术对接的时间和技术成本。所以他们当中,很多人成为了创业者或者在创业公司担任技术合伙人。

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

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

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

1) 掌握多门编程语言

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

在哪学:Git / GitHub-你必须掌握如何使用Git来管理和分享你的代码。

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

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

在哪学:Courses.AngularClass.com

15本免费的Python电子书

3) 前端技术

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

在哪学:You don’t know JS

4) 数据库与缓存

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

在哪学:MongoDB MERN教程系列

Redis 教程

5) 基本设计能力

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

在哪学:Mockplus博客

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

全局性思维

良好的沟通能力

创造力

好奇心

时间管理能力

总结

根据格拉德威尔的一万小时定律,希望熟练的掌握前端、后端、客户端方向的知识内容,每天都花时间来钻研也得花10年左右的时间。所以,全栈工程师决不是一夜练成的,你需要打好技术基础,强化核心技能,并持续学习才能应对更多的挑战。

文章结尾:再次申明所有转载文章仅供学习,感谢红旗飘飘老师的分享,如果喜欢我们的文章点关注吧!比心呦!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容