全栈
Full Stack是个很流行的词,中文叫全栈工程师,这是一个很有意思的概念,也是一个有争议的说法,李笑来去年说,人人一年都可以成为全栈工程师的,被无数人吐槽。
不过通常来说,全栈工程师是指掌握着多种技能,并能利用多种技能独立完成产品的人。
这个概念主要指互联网项目中,能熟悉同时熟悉前段后端的技能,各种计算机编程语言都会,从设计到开发到上市,全程一个人搞定。如果这么理解,那能有这样的人实在不得了,也十分罕见。
但你可以试试这么理解:
如果你想做一个木桶来挑水,做一个木桶需要六根木板才能做成,这世上有无数的木板,而你恰恰就有这六根木板,可能你没有很长的木板,没法拼成一个大木桶,只有几个短木板,哪怕你的六根木板只能做成一个很小很小的木桶,那它也是木桶,也具备盛水的功能。
你并不需要十八般武艺样样精通,那可能只是几年后,或者十几年后的状态。
全栈指的是,你在实现你的想法过程当中,你可以把那些必要的东西整合起来,好的资源坏的资源你都有,你能把它们组合起来,实现自己的想法。
一个全栈的人,在我理解来,是这样的:
- 有自己的想法。
- 能整合资源,应用自己的能力将想法实现。
有想法的人其实真的不多,大多数人只是随大流,能做到这一点,这已经是 很不容易的事情了。
多维度竞争是成为大牛的捷径,罗辑思维在跨年演讲里提到过一句话——你用20%时间学习百分之80%的知识就够了。
现在已经不是工业时代,需要在一个流程上做到极致,这个时代偏爱通才,偏爱那些能整合各种资源,促进社会效率的人。
Coding只占20%?
- Coding很难,也很简单,一个编程语言总计只有200个英文词汇,而且都是三个字母四个字母的简单词汇。
- 顺序、选择/分支、循环三种结构可以表达所有的流程。
这个世界上所有的流程,居然用三种表达方式就可以解决,这是很神奇的事,这是有某外国人在196几年发表的一篇论文,由此引发了计算机语言的历史性转折。
不管学什么,最好用业余时间去研究下它的历史,你会有意外的发现,而且是非常有用的。
很多人都说coding只占项目的20%,更重要的是背后的思想,code只是实现思想的手段。这个学习编程的过程中,你要学会的不是代码的写法,而是背后的思考模式。除了思想,甚至还有更重要的甚至是这个人的人品、信誉。有的人是自带粉丝、自带流量的,他们在能力很一般的情况下,作品再烂,都有人看。
学习
全栈工程师的特点就是非常善于学习,能不齐各种所需要的木板,为了实现自己的想法,缺什么用什么,google是最常用的工具。
- 在编程的领域里,英文的阅读能力是工程师的玻璃顶,最新最前卫的文献著作几乎都是国外的,在只是快速更新迭代的领域里,需要尽可能只读英文文档。
- 一个全栈的人需要学习很多技能,学习这些技能都是为了表达思想的。识字的人很多,能公开表达自己想法的人很少,能编程的人很多,有作品的人很少。
- 学习一个东西时,抱着自己要成为老师的心态去学,当你可以把这个事物讲清楚时,你就学会了。教是学习的最有效办法。
- 教是你要成为一个可以独立思考的人,为一个有想法的人。你要为了实现你的想法,学会任何你需要的东西,学得好不好并不重要,能用上就可以,在用的过程中进步。
注意力
- 你学你的,不关别人任何事。
- 万众创业被人吐槽过无数次,这就是操碎了别人的心肝。如果你选择创业,那就是选择了直接为社会做贡献,某种意义上,如果你选择单干(创业),你是直接给社会做高于个人的贡献,你是在提高社会效率。
- 如果别人吐槽你学习,吐槽你创业,再深入思考下,其实他们不是操别人的心,他们是害怕别人成功。谁都知道创业成功的几率是百里挑一,但谁也都知道失败是成功之母,你没事担心人家失败干什么。
- 即便学后没用,最损最差的结果,你也还能成为一个老师。
人生三大坑:
- 莫名其妙地凑热闹(不懂得注意力才是最稀缺的资源)
- 心急火燎地随大流 (从来没有积累过才会随大流)
- 操碎了别人的心 (害怕别人成功才会操别人的新)
全栈是一个人的选择,过去一个人不可能什么技能样样都会,现在获取知识的渠道前所未有的方便,拉低了做所有事的门槛。作为一个人,也难免会萌生一些想法,通过实际的技能学习,提高自己的能力,实现自己的想法,成为一个有创造能力的人,我想大概也是学习的意义所在吧。
以上为我的学习总结。