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开发者来说都是光明的,无论是前端、后端,还是全栈。要坚持学习一切有价值的东西;掌握新 的框架、语言与平台;并且与开发者同事及最终用户保持高效的沟通。在这种情况下,无论世界发生什么变化,你都会始终立于不败之地。

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

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

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

  2. 一名全栈工程师的必备“百宝箱”

    摘要:全栈工程师,也叫全端工程师,是指掌握多种技能,并能利用多种技能独立完成产品的人.全栈工程师熟悉多种开发语言,同时具备前端和后台开发能力,从需求分析,原型设计到产品开发,测试,部署,发布全流程都十 ...

  3. 必看!一名全栈工程师的必备“百宝箱”

    全栈工程师,也叫全端工程师,是指掌握多种技能,并能利用多种技能独立完成产品的人.全栈工程师熟悉多种开发语言,同时具备前端和后台开发能力,从需求分析,原型设计到产品开发,测试,部署,发布全流程都十分熟悉 ...

  4. 程序人生:如何成为一名优秀的全栈工程师

    对性能影响有着深入理解的技术通才 掌握多种技能,并能利用多种技能独立完成产品的人 一位资深开发工程师.架构师,以及具有敏捷开发技能的程序员 目 录 1. 什么是全栈工程师 2. 全栈工程师的价值 3. ...

  5. 大写的服!用耳朵也能写代码?盲人程序员自学编程成为全栈工程师

    作者 | 年素清 责编 | 王晓曼 出品 | 程序人生 (ID:coder _life) 蔡勇斌幼年失明,靠着顽强的毅力和不服输的精神自学编程,成为了一名全栈工程师.作为一名盲人,为了让全中国的其他盲 ...

  6. 想成为全栈工程师,要做到哪几点?

    导读:如何成为一名全栈工程师?需要具备哪些技术积累?成为全栈工程师有哪些好处?希望本文能为期望成为全栈工程师的同学提供一点帮助,和同学们一起分享交流. 作为开发者,我们不过度区分服务端 server ...

  7. 开课吧:全栈工程师的关键开发技能(硬实力)

    一般来说想要成为一名全栈工程师,熟练了解和掌握开发技能是必然的事情,那么全栈工程师的关键开发技能(硬实力)有哪些? Git/GitHub 把Git作为关键技能的第一条,是因为它不仅仅是一个代码管理工具 ...

  8. 关于晋升全栈工程师,从入门到放弃的神功秘籍,不点进来看一看?

    什么是全栈工程师 全栈工程师一词,最早出现于Facebook工程师Calos Bueno的一篇文章 - Full Stack .他把全栈工程师定义为对性能影响有着深入理解的技术通才.自那以后全栈这个词 ...

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

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

最新文章

  1. Visual Studio 2005 创建Windows服务程序(C#)
  2. outlook地址薄导入到FOXMAIL
  3. apache属于哪个公司
  4. 【原创】ABAP动态编程之功能实现
  5. 前端学习(2176):vue-router的路由的嵌套使用
  6. 你的企业混合云了吗?来看看评估混合云解决方案时要注意的6个原则!
  7. 史上最全的ECharts讲解与使用
  8. html特效代码是怎么实现的,html特效代码大全
  9. S5PV210 软件实现电阻屏两点触摸
  10. Flocker 做为后端存储代理 docker volume-driver 支持
  11. BZOJ2767:[JLOI2010]足彩投注
  12. 转 XMLHttpRequest().readyState的五种状态详解
  13. ES6学习之Promise
  14. 程序员最喜欢什么样的项目经理?
  15. iphone长截图哪个软件好_看完长知识了!苹果手机也能截长图,原来iPhone截屏还能这样玩...
  16. 送给佳佳同学的礼物:测试流程及并行测试介绍
  17. mybatis mysql连接时区_MySQL时区的查看和设置
  18. 高德地图和百度地图数据下载
  19. Vue+Element UI完成新建调查问卷
  20. androidtv gms包_Android之GMS自我总结

热门文章

  1. 「会会」产品体验报告
  2. PMCAFF专访:搜狗effevo,这一次我们想连接“人”
  3. 深圳 | PMCAFF 产品经理第一课,面向3-5年产品经理,全面提升产品战略能力
  4. 【设计干货】Facebook设计APP时的14个必考题
  5. FreeRTOS(三)——资源管理
  6. [csdn markdown]使用摘记一源码高亮及图片上传和链接
  7. linux下创建和删除目录
  8. 一、搭建Extjs 4.1开发环境
  9. CentOS误删除glibc导致系统系统一系列错误的解决办法
  10. LNMP环境运行laravel open_basedir restriction in effect 问题