你常常听说“全栈工程师”这个叫法吧,不过这到底表示什么意思呢,你觉得自己应该成为一名全栈工程师么?下面我们就来探讨一下这个话题。在Web与软件开发的世界中有3个基本的关注点:前端、后端与全栈。下面就来解释一下他们的含义。

何为全栈工程师?

前端工程师:在打开一个网站时,屏幕上的一切都属于前端。前端工程师负责创建用户界面背后的代码。这些工程师不仅要熟悉HTML、JavaScript与CSS,还要掌握很多框架。这些框架有Foundation、Angular JS、Ember JS、Backbone及Bootstrap等等。前端工程师要与设计师和其他专家协同工作,从而将网站从模型转换为可使用的模式。 后端工程师:在你每天所访问的网站背后有服务器网络、数据库以及各种应用,他们相互协作将你所请求的网页与数据传递给你。后端工程师负责构建这些组件。他们要擅长各种编程语言,如Python、.Net、Ruby、Java及PHP等等,从而通过这些语言来编写程序。他们还需要使用各种数据库程序如MySQL、SQL Server及Oracle等来操纵信息并将其传递给最终用户。后端工程师需要与组织中的各种经理及其他成员通力配合来完成工作。 全栈工程师:全栈工程师既要了解后端开发,也要了解前端开发。他们是“全方位”的工程师,熟悉服务端的同时又懂客户端用户体验。全栈工程师理解Web开发进程的每一个方面,同时又会就整体策略与最佳实践对相关干系人提出建议与指导。

角色演变

在早期的桌面计算时代,我们常常会看到一个人就完成了整个应用的开发工作。随着程序变得越来越复杂,以及越来越多的技术涌现了出来,一个人很难再完全掌控应用开发的各个方面。在21世纪初期,一些拥有专业化技能的专家开始出现。由于复杂性的持续攀升,当Web 2.0站点开始出现时,很多程序员又回到了更简单的方式上来。相比于构建复杂的数据库和企业计算网络,开发者开始部署稳定的LAMP栈(Linux、Apache、MySQL与PHP),并创建出了灵活的面向对象语言,如Django与Ruby on Rails。在这种环境下,全栈工程师的价值变得越来越大,因为他们熟悉大多数现代框架与语言。

运维复杂性的回归

不过,由于移动计算与iOS和Android平台的兴起,我们又回到了复杂性的新时代:低成本的云服务器如Amazon Web Services和微软的Azure、MongoDB等数据库、Node.js与Angular.js等前端技术、Docker等容器技术。这些平台、服务与框架都拥有自身的特性。因此,一个人几乎无法成为能够掌握所有技术的全栈工程师。

通才与专才

在当前的环境下,成为全栈工程师的好处在于没多少人拥有足够的知识、经验与沟通能力来整体把控使用了各种平台与框架的项目,如HTML5、机器学习及Scala等。因此,高水准的全栈工程师总是供不应求的。不过,坏处则在于对于全栈工程师来说,他需要能够熟练掌握这些组件,但这是非常困难的事情,况且未来还会有新的技术涌现出来。你可能很聪明,但这些组件本身却是非常复杂的,每几个月都会出现新的语言和平台。要想时刻保持技术上的领先是一件极其困难的事情。出于这个原因,专才拥有自己独特的优势。组织倾向于雇佣专门的角色,因此相比于其他开发者来说,专才在深层次的知识以及某个狭窄领域的经验上会更胜一筹。

全栈工程师的薪资

无论选择在前端还是后端进行深入学习,抑或是将自己定位成一个全栈的通才,从工作前景上来看都是好的。根据美国劳工统计局发布的统计信息来看,软件工程师是未来10年最具发展潜力的职业之一。2014年,大约有718,000名软件工程师;从全国范围来看,其平均薪资大约为$95,510。这个数字未来还会继续攀升。那么,到底什么才是最好的工作呢?这取决于你的背景、经验与目标。前端工程师需要掌握如下技能:

  • HTML与HTML5

  • CSS、CSS3与SASS

  • PHP

  • JavaScript

  • jQuery、Angular.js、React,js与Node.js

  • Websockets与Ajax requests

  • 浏览器开发工具与调试器

  • Python

  • Git

后端开发者应该精于服务端编程、语言与框架,如:

  • C与C++

  • Python

  • JavaScript

  • Ruby on Rails

  • PHP

  • Perl

  • Node.js与Express

  • MongoDB

  • Postgres

  • MySQL与NoSQL

  • Git

  • Web APIs

  • Go

如果想要向着全栈工程师的方向迈进,你应该掌握很多知识与技能,并且熟悉上面提到的各种组件。此外,还要提升自己的个人沟通技能,这样才能管理并与前端与后端开发者实现较好的协作。好消息是未来对于每一类Web开发者来说都是光明的,无论是前端、后端,还是全栈。要坚持学习一切有价值的东西;掌握新的框架、语言与平台;并且与开发者同事及最终用户保持高效的沟通。在这种情况下,无论世界发生什么变化,你都会始终立于不败之地。

各位读者,相信大家也对Web开发的前端、后端及全栈工程师有着自己的认识和理解。你现在的工作可能就位于这3种类型中的一种或是几种。当然了,无论是前端还是后端都有大量的知识和技能需要我们理解并掌握,对于通才与专才的理解也是见仁见智的。在某一个领域做到很深的程度会为公司与用户带来价值;熟练掌握各个领域的知识也是颇具价值的。那么,在你的眼里看来,何为全栈工程师呢?要想成为全栈工程师需要开发者付出哪些努力呢?全栈工程师的价值与专注于特定领域的工程师价值之间是如何对比的呢?你认为自己是否应该成为全栈工程师呢?欢迎发表你的看法与见解,并与其他读者一同交流和讨论。

原创:张龙的思考

张龙老师的公众号:张龙的思考

何为全栈工程师?你是否应该成为一名全栈工程师?相关推荐

  1. python工程师的职业规划_一名Python开发工程师的职业规划

    Python 是一种面向对象的解释型计算机程序设计语言,在设计中注重代码的可读性,同时也是一种功能强大的通用型语言. 新手入门 初级选手 高级专家 资深达人 一.新手入门 任职要求 熟练掌握pytho ...

  2. 你是否应该成为一名全栈工程师?

    Asaf Yigal是Logz.io的联合创始人与产品副总裁.在Logz.io之前,Asaf与他人联合创立了Currensee,这是一个社会化交易平台,后来在2013年被OANDA收购.在 Curre ...

  3. 智能音箱大战全面开火,那么问题来了:如何成为一名全栈语音识别工程师?

    文 / 陈孝良 11月16号,百度发布了渡鸦智能音箱和DuerOS开发板SoundPi,至此,国内再一名巨头加入智能音箱大战.迄今为止,国内战场上的巨头有阿里.京东.腾讯.百度.小米.科大讯飞等,国外 ...

  4. 如何成为一名全栈工程师:专业建议与技能要求

    作为一名全栈工程师,你需要拥有跨越前端.后端.数据库等多个领域的技能,并能够将它们整合起来构建出完整的应用程序.因此,成为一名全栈工程师需要你掌握多种技术,具备较强的编程能力和系统设计能力.下面,我将 ...

  5. 如何成为一名全栈语音识别工程师?

    本文转载自声智科技CEO陈孝良老师科学网博客: http://blog.sciencenet.cn/blog-1375795-1085914.html 11月16号,百度发布了渡鸦智能音箱和DuerO ...

  6. 如何成为一名全栈开发人员----转载

    全栈工程师是可以将最初的原型转换成为 MVP(最低可行产品),他们通常被称之为行业的万精油,无所不会的大师,而且有很好的声誉.为了定义现代的全栈工程师,我们首先需要关注的是完整的堆栈开发人员曾经是什么 ...

  7. 如何成为一名全栈开发人员

    全栈工程师是可以将最初的原型转换成为 MVP(最低可行产品),他们通常被称之为行业的万精油,无所不会的大师,而且有很好的声誉.为了定义现代的全栈工程师,我们首先需要关注的是完整的堆栈开发人员曾经是什么 ...

  8. 【干货】一名全栈设计师的 Mac 工具箱(设计,开发,效率)

    转载自Cocoa China, 原文地址:http://www.cocoachina.com/ios/20170512/19259.html 原文 我喜欢把自己定义为一个会一些设计的全栈工程师.在一些 ...

  9. 【Mac工具箱】独孤九剑!一名全栈设计师的Mac工具箱(设计/开发/效率)

    编者按:一个同时拥有开发/设计/高执行力技能的设计师会用哪些软件来帮自己提高工作效率?今天这篇软件推荐的文章作者是一个架构师,业余喜欢用自学的设计技能开发网站和App,一起来看看他的工具箱. 我喜欢把 ...

  10. 大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)

    我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励. 2021年「博客之星」参赛博主:Maynor大数据 (感谢礼品.红包免费送!) https://bbs.csdn.ne ...

最新文章

  1. python mysqldb 清除缓存_Python MySqlDB 增删改数据库
  2. Flink升级到1.4版本遇到的坑
  3. matplotlib模块学习
  4. 西门子plm_西门子的Teamcenter、TIA Portal、NX MCD是如何结合在一起的
  5. 【刷算法】字符串的全排列
  6. mysql 索引的简单使用
  7. 华为FreeBuds 3耳机更新推送:新增支持骨声纹识别特征
  8. SQL rownum的用法
  9. galleryview-3.0b3使用小记
  10. 2019 双十一京东全民养红包攻略分享
  11. Intent基本概念
  12. 晴天的魔法乐园——谢尔宾斯基地毯(递归打印图形)
  13. mysql等保测评命令_Mysql等保部分加固
  14. Shinobi开源监控项目安装
  15. 为什么要学网络安全?如何学习网络安全?这3个理由告诉你(自己整理的50G网安资料)
  16. 分享本电子书Sql Server 20008 internals
  17. 夜色总是匆匆降临...
  18. C语言中 %md 的输入输出使用(还有printf函数的 %0格式控制符的使用)
  19. 沪指暴跌200点 两市超过四分之一股票跌停
  20. 2022-2028全球及中国智能手机摄像头模组行业研究及十四五规划分析报告

热门文章

  1. 【原创】 互联网大事记-开章
  2. 乐谱管理软件SheetAble
  3. 一起学习“秋叶的如何成为PPT高手”
  4. android studio 融云,融云 SDK 集成详解 – Android Studio
  5. 防勒索病毒奇兵——MCK(云私钥)
  6. 对抗 | 利用de4dot解密被混淆的.NET代码
  7. MAC提示“因为它来自身份不明的开发者” 或“已损坏,打不开“怎么办?
  8. 苹果4s怎么越狱_苹果4S怎么下载东西
  9. 关于设计行业的一些分类
  10. java开发系统架构_Java开发:ECP系统J2EE架构开发平台