前端工程师迈向全栈工程师之路
What is a Full Stack developer?
Is it reasonable to expect mere mortals to have mastery over every facet of the development stack? Probably not, but Facebook can ask for it. I was told at OSCON by a Facebook employee that they only hire ‘Full Stack’ developers. Well, what does that mean?
To me, a Full Stack Developer is someone with familiarity in each layer, if not mastery in many and a genuine interest in all software technology.
https://www.laurencegellert.com/2012/08/what-is-a-full-stack-developer/
上面的蚊帐里对全栈工程师(Full Stack Engineer)进行了一下简单的定义。
全栈工程师,也叫全端工程师,是一种新兴的工程师分类,是一类掌握多种技术,并能利用它们独立完成产品的工程师。
技术一般有两种发展方向:一种是深度优先,把一项技术搞深搞透;另一种是广度优先,也就是全栈工程师的发展方向,这个方向的结果更像瑞士军刀。
下面,阐述我的一些理解以及我计划要走的路:
全栈工程师的意义
我理解的全栈工程师的意义,在于全局性思维,可以统筹一个项目,对项目的整体进行架构、技术选型,从而降低项目成员之间的沟通成本。
而且全栈工程师的意义绝对不是一个人开发一个完整项目。
另外,全栈也分不同的方向,不同的方向对全栈的要求也不同,其中一个很重要的方向是,移动。
移动全栈工程师
移动方向当前非常火热,而且会一直火热下去。而现在移动开发有很多『殇』,例如不同平台的统一、发布部署方式、更新成本等等。
而随着 FaceBook 的 React Native 的发布,混合开发成为了炙手可热的话题。
但是性能、扩展性等种种问题,也制约着它的发展。
这就引出一个非常重要的问题:哪些地方该用什么方式?该用什么技术?
这就需要一个能懂得大部分移动技术的人权衡并确定方案,这个人就是我理解的移动全栈工程师。
移动全栈工程师需要『精通』什么技术?
- 移动原生开发: iOS 和 Android 等平台的原生开发。
- 平台间的差异性: 例如推送机制、后台程序机制。
- 数据平台技术: 服务端技术,和App端更好更稳定地进行数据交互。
- 移动前端技术: 包括移动 Web 技术和 Hybrid 技术,有些应用场景使用 Web 更适合。
- 更新和部署: 快速部署、降低更新成本,是产品成长必须攻克的难关
- 数据安全: 各个环节都会涉及到数据的安全,一个再好的方案,安全不过关,也是很差的。
- 其他: 开发工具、自动化测试等
为什么我要成为移动全栈工程师?
- 我喜欢学习和尝试各种技术。
- 精通移动前端,Hybrid 前端方案。
- 有一定的 Native 开发基础,包括 iOS 和 Android。
- 有一定服务端技术基础,熟悉 JAVA 的 SSH 以及 PHP、ROR。
- 对网络技术和原理较为精通。
- 正在从事这方面工作。
很多全栈型工程师,是因为要创业才成为全栈型工程师的,但是我不是。
我单纯是对技术的热爱,而且我相信,每个对技术热爱的人,都有一颗成为全栈工程师的心。