第一章 全栈导论
1.1 概述
全栈工程师,也叫全端工程师,英文名Full Stack developer。是指掌握多种技能,并能利用各种技能独立完成产品的人。全栈工程师按照产品的类型不同又分为:Web全栈工程师、APP全栈工程师、硬件全栈工程师等。
很多人对全栈工程师的理解有一定的误解,认为我会Android、IOS,我还会Java、C/C++、Python,很多语言我都会,那我就是全栈工程师。其实不然,按照全栈工程师的概念来说,除了会多种技能外,还需要有一定的架构能力,否则无法独立完成一个产品。
本文主要针对APP全栈工程师,后面提到的全栈工程师皆指APP全栈工程师。
1.2 所需技术
对于全栈工程师而言,要开发出一套完整的APP,必须掌握Android、IOS和Web开发技术,如果需要在客户端动态展示数据,还需要掌握数据库。
本书针对当前项目开发的趋势,根据项目的实际情况,将陪读者一起开发出一套完整的具有交互性质的 APP,读完本书后,读者将掌握JavaWeb开发、Android和IOS开发技术。
本书主要针对有一定开发基础,希望往全栈工程师方向发展的读者。
1.3 发展前景
互联网项目,需要产品设计、UI设计、后端开发、前端开发、数据库等技术。因此,一个现代化的项目,需要多种技术想结合。我们需要一个人在掌控全局,他不需要是各种技术的资深专家,但是他需要对各种技术相当熟悉,这就是全栈工程师的价值。
对于创业团队来说,一个全栈工程师显得尤其重要。一个全栈工程的工资可能比后端开发人员高,比全端开发人员高,但是不会高出太多。而一个项目至少需要后端开发、前端开发。如果一个人能够做多种事情,那么对于创业团队而言,这将节省很多成本。
而且项目越大,沟通成本越高,做过项目管理的都知道,项目中的人力是1+1<2,人越多效率越低。而全栈工程师的沟通成本几乎为零,他掌握多种技能,一个项目自己一个人就能完成。
但是,如果一个公司不懂全栈工程师的价值的话,那么全栈工程师的地位就略显尴尬。说白了,全栈工程师是什么都会,什么都不会。因为全栈工程师不需要对每种技术都非常精通,只需要熟悉每个技术。笔者曾经去过一些公司面试,那些公司对全栈工程师不太理解,对于技术问题,总是问的很深,有些问题无法回答,这些公司就会认为笔者技术不行,没什么经验,无法开发项目。
所以全栈工程师往往在面试的时候比较吃亏,不如那些对某些技术有深入研究的人有优势。笔者建议大家如果要去面试的话,一定要准备充分。
1.4 发展路线
如果读者感兴趣,希望成为全栈工程师,首先需要学习各种技术,如:Java、Android、IOS、数据库等技术,然后学习Axure原型设计,研究前后端的架构设计,学习设计模式,提高代码的编写质量。
读者也需要经常看优秀的源码,多逛逛github和stackoverflow。
在全栈的发展道路下要懂得坚持,任何成就都不是轻易得到的,不能因为一时的得失而放弃,笔者希望读过本书的读者都能成为全栈工程师,在全栈的道路上越走越远。