全栈工程师应该有什么样的能力

全栈应该算是2016的一个热词吧,今天好像有点思绪想谈谈它。

首先我们定义出全栈的标准是什么?遗憾的是,没有标准,你说的全栈也许不是我理解的全栈。全栈工程师是否可以通俗的理解为:某个领域内的比较全能型的人,他啥都可以做并且还做的不错的一类人。他们有某种特定技术的功底,拥有较为全面扎实的计算机知识,不局限于“我不懂不会做”,而是关注于“我如何才能做到”。

全栈教程

《全栈增长工程师指南》 https://github.com/phodal/growth-ebook 

《Web全栈技术指南》https://getfullstack.com/

《JavaScript 全栈工程师培训教程》http://www.ruanyifeng.com/blog/2016/11/javascript.html

专业理论和工作环境的不同,导致以上不同教程的差异。不同领域的IT工程师可能都会找到自己想要的全栈指南。

何为好?

可是如何判断好坏呢?人的精力毕竟是有限的。全栈指南我们可以理解为成为每个人为了成为全栈工程师的给出了自己的方案甚至是自己的亲身经过,比较糟糕的情况是:每个人都有自己的一套见解,每个人都喋喋不休,永远没有一个标准答案,如同“PHP是世界上最好的语言”一样,此言一出,程序员群殴马上发生-_-。

在我看来,全栈的核心应该是一个思考方法论的东西,达到一个全栈工程师的标准至少应该是:

拥有选择技术方案的能力。

直白一点的说法是:遇到问题时,你是如何分析问题和解决问题的?我提出以下问题以帮助思考,每个问题最少应该列出3-5个技术要点:

1. 你的方案是为了解决什么样的业务问题?

2. Web前端使用什么样的技术架构?

3. 后端采用什么样的技术架构?

4. 数据库的技术架构,关系型数据库还是NoSQL?

5. 服务器的部署有什么样的部署,运维监控,扩展的策略?

聪明的你也许会反驳,公司里的技术方案(架构)早就定好了,我只能按公司框架走,不能自己乱来。说的没错,团队里有框架是为了更好的质量控制。但这完全不影响你自己的学习和发展,你可以跟同事或领导提出自己的见解以验证新方案的可行性。

最后

全栈的技术积累由个人的工作环境决定,你不能是写java的然后又在写iOS Swift吧 ,在工作中同时写这两种语言几乎不现实。

只要有全栈这个意愿想继续提高,我还是觉得一定要把基础知识学扎实了,搞java的专心搞java,同时多学学前端JS的知识。搞iOS的专心搞OC或Swift,同时多学学后端架构的知识点。尝试着跳出界限去实现一些功能,一定能有所收获。

愿你能通过学习全栈,举一反三,在全栈的道路上突飞猛进。

你可能感兴趣的:(全栈工程师应该有什么样的能力)