9折倒计时一周! QCon 全球软件开发大会·上海站讲师上线95% >>> 了解详情
写点什么

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

  • 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:1012260
用户头像

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

关注

评论 2 条评论

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

快速实现一个企业级域名 SSL 证书有效期监控巡检系统

观测云

监控告警 智能巡检 SSL域名

李开复带领零一万物,新一轮融资由阿里云领投,估值超10亿美元

B Impact

轻量应用服务器:现代云计算的宝贵利器

E₀=mc²

云计算 虚拟化 亚马逊云科技 VPS

跨语言高性能RPC框架Focus发布V1.1.0

dinstone

RPC 高性能 跨语言 RPC框架

投资机构Janus Capital Group为Rola-IP品牌融资700万美元

Geek_ccdd7f

企业该如何选择数字化转型工具?

优秀

数字化转型 数字化工具

Amazon EC2 Hpc7g 实例现已在更多区域推出

亚马逊云科技 (Amazon Web Services)

Amazon EC2

项目管理从混乱到井然有序,就差这10款看板软件了!

彭宏豪95

项目管理 效率工具 项目经理 在线白板 看板工具

搭建二维码系统,轻松实现固定资产的一物一码管理

草料二维码

第26期 | GPTSecurity周报

云起无垠

瓴羊重磅发布数据服务枢纽“瓴羊港”,推动企业数据流通及价值增长

B Impact

亚马逊云科技大语言模型下的六大创新应用功能

淼.

Web项目常用的技术栈有哪些?

这我可不懂

软件开发 低代码 JNPF

用了低代码工具,让我效率提升了80%

树上有只程序猿

软件开发 低代码开发平台 JNPF

Linux Vim批量注释和自定义注释

攻城狮Wayne

Python 文件处理指南:打开、读取、写入、追加、创建和删除文件

小万哥

Python 程序员 软件 后端 开发

OpenHarmony,奏响中国基础软件的“光辉岁月”

脑极体

开源鸿蒙

私域流量搭建与运营,全是技巧攻略!

鲸品堂

运营 流量 企业号11月PK榜

罗拉ROLA住宅代理IP市场稳定增长,未来有哪些发展前景?

Geek_ccdd7f

sip中继的介绍

ctsxiyou

SIP

向量数据库的崛起与多元化场景创新

Geek_704f84

向量数据库

sip中继是什么意思

ctsxiyou

SIP

CNCC 2023 | 大模型全面革新推荐系统!产学界多位大咖精彩献言

小红书技术REDtech

算法 推荐系统 多模态 大模型 内容理解

大语言模型“战国时代”,未来将如何发展?

申屠鹏会

AI大语言模型

Programming abstractions in C阅读笔记:p184-p195

codists

人大金仓三大兼容:SQL Server迁移无忧

科技热闻

Amazon EC2 安全可调用的云虚拟主机服务器

追风少年

Amazon Aurora

一站式解决方案:体验亚马逊轻量服务器的顶级服务与灵活性

-亦世凡华、

垃圾回收是什么?

暂时不愿意透露姓名的热心人士

垃圾回收

软件测试/测试开发丨Python安装指南(Windows版)

测试人

Python 软件测试

文心一言 VS 讯飞星火 VS chatgpt (129)-- 算法导论11.1 4题

福大大架构师每日一题

福大大架构师每日一题

  • 扫码添加小助手
    领取最新资料包
你是否应该成为一名全栈工程师?_文化 & 方法_张龙_InfoQ精选文章