昨天李笑来老师发的一条微博引起了我的注意,我还特别留言这条微博的评论和转发情况,后来简书上 帅气小伙 的一篇文章也是同样的原因引起了我的关注。
李笑来的微博中写道:
“ 算了一下 一个普通人 只要不笨,一年是可以成长为 全栈工程师的。用不着一万小时。

全栈工程师:全栈工程师既要了解后端开发,也要了解前端开发。他们是“全方位”的工程师,熟悉服务端的同时又懂客户端用户体验。
简书上那篇文章是:《一个32岁入门的70后程序员给我的启示》

我之前也写过一篇文章,是讲我家小朋友如何学习Java的故事,《如何在一年半时间掌握两种职业技能》。后来我把掌握一个职业技术学习周期统一定义为4~8个月时间(包括自学的方式)《IT培训改变了什么?》。
这一次笑来老师把成为全栈工程师的时间定义为一年,再次引发我对这个问题的思考。就是学习力和心智力如何成长?是什么阻碍了你的进步?
我本身是从事IT培训行业。我写关于如何自学编程开发的文章和笑来老师的这种观点,对我们来说,就是自掘饭碗。
现实的情况就是这样的,我们遇到绝大多数来咨询报名的同学,都学习C语言,一半以上的还是计算机专业的,但他们经常对我说,“老师,你把我当作0基础的。大学里什么也没有学会。” 还有一些同学也自己学过编程开发Java、Android或嵌入式,但是,最终停在了hello world的水平。事实上也是,我们不得不从最简单的程序逻辑开始教。
那究竟是什么阻碍了我们进步,以下三点特别重要:
一、相信
唯有相信才有可能
上个月我开始学习Python爬虫,5月1号我写了一篇文章,发到了一个学习成长群里。这里我刚刚开始了解Python的语法,我学习选择的一个突破口,就是用Python实现爬虫来抓取一些数据。
群里就有好几个童鞋问我,学Python需要什么基础?学这个难吗?他们大多数是二十几岁的年轻人,本科、研究生毕业。还有的跟我说,先加我,以后再学习。
一个月后,我掌握了urllib, urllib2, bs4, xpath, Scrpay, 了解了mongodb, Redis,我又写了一篇文章总结《60小时Python学习:从100行数据到10W+数据》,并用Python处理工作中的一些小需求。
很多人不敢行动,总是担心,学不学得会,难不难。还没有开始学习,就在畏难情绪,先给自己设限。
二、坚持并专心
唯有专注才能成长
现代人的一个典型特点,就是焦虑,无法专心专注做一件事。这是编程学习的大忌。手机、移动网络,各种各样的信息都在不断打断我们,吸引我们的注意力。稍微长一点的文章,很多人都没有耐心看下去,只能接收那些短平快的知识和信息。
学习编程开发,其实是一个最好训练专注力,培养学习能力、动手能力、解决问题能力的最好方式。
同时,掌握编程的技能不但能获得一份薪资待遇不错的工作,还是一项很cool,很fashion的技能。
其实我建议,每个大学生,都从掌握一项职业职能开始,达到真正掌握的程度,工作的要求。不特指编程开发技能。相信大家一但切实掌握一项目拿得出手的职业技能,一定会开启你的心智成长之路。
三、正确的方法
正确的方法才能加速成长
很多童鞋学习时有了付费的意识,花钱去学知识、学技能,甚至请教一个问题也发一个红包,这对学习和扩大交往来说,都是一件好事。
但是背后却隐藏了,你的动手能力、分析能力和持续进步的能力,总以为通过这种快捷的方式,能获得知识和能力。
尤其是技能型的学习,本身是习得性的知识和技能,没有经过比较长时间思考和实践、实验,一有问题就问,就是思维上的惰性。
正确的方法,包括学习那些学习力强、优秀的人的心态和习惯,不断校正自己的学习路径。在提问时,提出你的思考和方法,多复盘,多动手训练。每隔一段时间检视学习效果和成果。
学会学习,才能加速自己的进步和成长,开放自己的心智。
什么是全栈工程师?
全栈(full-stack)中的“栈”是指software stack或者solution stack。一系列的软件子模块或者组件组合在一起,不再需要其它第三方的模块依赖就可以完成一个任务,这些子模块的集合就叫一个栈。这里与计算机数据结构中的“堆栈”不是同一个东西,后者是指先入后出的数据结构。
举个例子,要开发一个web页面,工程师需要使用操作系统、服务器、数据库以及几种编程语言,这些技术组合在一起叫做web stack。MEAN就是一个web stack。
擅长web stack的工程师就可以称为web stack engineer。
依次类推,擅长所有的stack的工程师就是全栈工程师。
翻译下quora上对what does the term ‘full-stack programmer’ mean?的回答:
全栈工程师的意思是说一个工程师可以处理数据库、服务器、系统工程和客户端的工作。根据项目的不同,客户需要的可能是mobile stack, web stack, 或者原生应用程序。
基本上当客户需要一个全栈工程师的时候,客户需要的是一个全能的大神。或者至少当客户让他去做一些舒适区之外的工作的时候,他不会有太大意见。