大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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

  • 2016-01-14
  • 本文字数:2348 字

    阅读完需:约 8 分钟

Asaf Yigal 是 Logz.io 的联合创始人与产品副总裁。在 Logz.io 之前,Asaf 与他人联合创立了 Currensee,这是一个社会化交易平台,后来在 2013 年被 OANDA 收购。在 Currensee 之前,Asaf 在 Akorri 负责管理和开发一款端到端的性能监控平台,在 Onaro 开发过一款存储资源管理平台。后来,Akorri 与 Onaro 都被 NetApp 收购了。在 Onaro 之前,Asaf 在以色列海军带领一个研究团队,从事人工智能系统的开发与军事化应用相关工作。近日,Asaf 撰写了一篇文章,谈到了他对于全栈工程师的认识与理解。

你常常听说“全栈工程师”这个叫法吧,不过这到底表示什么意思呢,你觉得自己应该成为一名全栈工程师么?下面我们就来探讨一下这个话题。在 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 开发者来说都是光明的,无论是前端、后端,还是全栈。要坚持学习一切有价值的东西;掌握新的框架、语言与平台;并且与开发者同事及最终用户保持高效的沟通。在这种情况下,无论世界发生什么变化,你都会始终立于不败之地。

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

2016-01-14 00:1012569
用户头像

发布了 88 篇内容, 共 272.8 次阅读, 收获喜欢 9 次。

关注

评论 2 条评论

发布
暂无评论
发现更多内容

云上弹性高性能计算,支持生命科学产业高速发展、降本增效

阿里云弹性计算

HPC 高性能计算 生命科学 药物设计

AIOps落地五大原则(二):价值路线

BizSeer必示科技

多任务视频推荐方案,百度工程师实战经验分享

百度开发者中心

数商云X日本高化学,共同打造跨境化学品B2B平台新范式

数商云

数字化转型 b2b

2022淘宝天猫618背后的技术秘密

阿里巴巴大淘宝技术

异步容灾,AntDB的业务不间断数据恢复方案

亚信AntDB数据库

数据库 高可用 容灾 数据恢复

2021年4季度全国网络零售发展指数同比增长0.6%

易观分析

网络零售

毕业回馈!Apache Doris 社区所有贡献者来领礼品啦!

SelectDB

数据库 数据湖 开源项目 apache doris 社区活动

NFT数字藏品APP系统开发

开发微hkkf5566

轻松实现微信滑动返回页面效果 | 社区征文

Changing Lin

android 安卓 自定义view 初夏征文

封装业务流程,解决复杂重复的审批流程配置

明道云

东方甄选双语直播火爆出圈,新东方转型初见端倪

易观分析

农业发展

解密抖音春节红包背后的技术设计与实践

JackJiang

架构设计 短视频 社交产品

2022华为全球校园AI算法精英大赛即将升级启航,等你来战,开拓未来边界

最新动态

如何把企业内部碎片信息系统化?

小炮

钱大妈基于 Flink 的实时风控实践

Apache Flink

大数据 flink 编程 流计算 实时计算

自适应批作业调度器:为 Flink 批作业自动推导并行度

Apache Flink

大数据 flink 编程 流计算 实时计算

云原生多云管理利器 -- cluster-api 之 ControlPlane

Daocloud 道客

Kubernetes 云原生 多云管理 cluster-api ControlPlane

父亲节特辑丨童年经典蓝精灵之百变蓝爸爸数字藏品,限量发售!

百度开发者中心

8种桌面IDE CodeArts智能代码补全类型

华为云开发者联盟

云计算 代码 华为云

覆盖接入2w+交通监测设备,EMQ为深圳市打造交通全要素数字化新引擎

EMQ映云科技

物联网 IoT 智慧交通 实践案例 6月月更

从华为WeAutomate数字机器人论坛,看政企领域的“政务新智理”

王吉伟频道

RPA 数字化转型 华为WeAutomate 政务新智理 数字政府

重新认识WorkPlus,不止IM即时通讯,是企业移动应用管理专家

BeeWorks

链上智能合约Dapp系统开发部署搭建

薇電13242772558

区块链 智能合约

我的远程办公经验 | 社区征文

坚果

初夏征文

LP流动性质押挖矿分红dapp系统开发合约定制

开发微hkkf5566

A/B测试助力游戏业务增长

字节跳动数据平台

游戏开发 游戏 ab测试 游戏运营

对讲功能在远程办公中的应用 | 社区征文

Changing Lin

初夏征文

CRM快速开发平台:破解管理困局

力软低代码开发平台

前后端如何并行开发,云端mock了解一下

Liam

前端 前端开发 Mock Mock 服务 前端工具

力扣每日一练之数组中篇Day2

京与旧铺

6月月更

你是否应该成为一名全栈工程师?_文化 & 方法_张龙_InfoQ精选文章