Java高级交流

技术太多,学不过来怎么办

2018-01-17  本文已影响953人  大宽宽

上大一时有个同学这么跟我说:


哥们,我都想好了,下面我列了个单子就学下去了: C, C++, C#, Java, J++, J#, javascript, PHP, HTML, css, python, Visual Basic,Win32的汇编,……,你觉得怎么样。


我和周围小伙伴简直都惊呆了,我连写Hello World都不太利索啊,这人简直太厉害了。

然而几年以后我看到庄子说了这么一句话:

以有限的生命去追随无限的东西,吃枣药丸!

醍醐灌顶。

知识技能是无穷无尽的,这就好像全国各地的小吃摊一样,只要你肯投入,吃到死也吃不完。这个道理相信所有人都懂。但为啥一到自己要学的时候就想这也学那也学,学到最后貌似还是没把事情办成?

学习是有成本的

老一辈总是这么教导,”学好数理化,走遍天下都不怕“。又或者,总是觉得“艺多不压身”,多学点总是没坏处。大道理还算对,但是有个关键点估计大部分人都不怎么考虑——学习的投入成本。

学习的投入是惊人的,尤其是极度改变思维方式的学习。一个普通人到熟知微积分、非欧几何,可能需要巨大的时间和资源来扭转自己的脑子,使其变成总是习惯用绝对的逻辑思考;学习艺术设计就完全反过来,脑筋要为感觉让路,感觉说high就得high;而学习计算机就更加奇葩——一边得照顾着机器,得精确、严谨,而另外一边得就让人爽,用户使用流畅,数据看起来符合心理预期。

你说说这个得多难学。

学习成本很大的一块是时间

孙子这样说过。

学习了却不过脑子,就会犯二;而成天瞎想却不学习,就会挂科!

深以为然。

时间都被学习挤占了,就没有功夫思考了。思考什么呢?比如

学习的产出是有限的

即便学到了,任何知识技能都只能在特定条件下才能发挥作用。举个例子,你计算机再棒,把你扔一个没电的村子里,你学的东西有啥用?嗯,有点极端,再说几个靠谱点的例子:

所以,我在读个书之前,会读摘要和推荐文字,就是要以最小的代价弄明白这个东西对我有用没用。永远不要用“炫酷”来给自己要学的东西排序。性价比才是第一位的。

有人可能会问,“我会的东西不懂,就得多学打好基础”。我是赞同的。在这个阶段,还谈不上能够计较得失的时候。但是,这个阶段,最重要的不是“多学”,而是“巧学”,因为——

要学的东西可能会缩水

这一点在IT圈尤其明显。IT圈犹如江湖,各大门派纷争不休。各家都要推广自己的技术、产品、规范、框架、标准、文化。围绕这些形成了所谓的技术圈,以及带来的巨大的市场。

但是切记,巨头们争他们的,我们过我们的。没有皇帝命莫操皇帝心。争斗中有成功者(如H5),有失败者(如Flash)。而成功的也不一定能长时间挺下去(比如IE)。

我经历了经历了Win32 API, MFC, COM, ATL, 几代.Net的历程,最后连我自己都烦了,因为学的东西还没用到就过时了。刚学会Swift,新版本一发布就不兼容,得重学;还没来得及开发一个赚钱的App,大家开始都投入到了微信小程序的开发……真心赶不上节奏。

既然学什么都不稳固,那么就学两类东西:

前者大家都懂,自己的工作需求被老板扔过来,怎么做的快、灵活、高效就怎么来。如果技术有得选,选择容易学、概念清楚简单、不过于装的技术。这也是为什么很多业务场景脚本语言(比如python和js)和松散的约定(比如html)更吃香的地方——学了用,用完了就完了,不纠结。

而对于第二类

什么东西学的不吃亏

无数的牛人在不断的踩坑中总结了大量的经验。有些经验是超越了技术的自然规律——即,不管技术怎么变,抽象如何增加,也无法彻底隐藏/抽象的东西。了解它们,基本上就可以吃透大部分的技术出现的动机和工作原理;

而这些,在后续的文章里,都会按照主题分期讨论。

那什么是不那么有价值的东西呢?对比一下SQL和JPA,前者非常有价值。而后者却相对不那么有用。SQL存在了数十年,成为这个星球上主流存储的访问语言,几乎涵盖了各种你能想得到的场景;而后者仅仅是一种编程语言下的一个框架下的一种特定用法,业务稍一复杂就无法解决问题。如果真要在二者之间分配时间,我猜应该是9:1。

结论

其实,学习是一门投资。而对待投资,就要

最后记得,不要忘记庄孙两位老夫子的话,用有限的生命去思考那些最有价值的东西吧。

PS

那个大一的哥们怎么样了?他之后回了老家做了小生意,有车有房,去了老婆,生了娃,还办了个厂。生活滋润幸福美满,真人生赢家。至于这个语言,那个语言什么,不提也罢。

上一篇下一篇

猜你喜欢

热点阅读