零基础学Python--如何高效的学习

作者: Q科技 | 来源:发表于2019-03-15 14:28 被阅读3次

作为一名老程序员,早些年传道授业解惑的时候常常发现自己也陷入一个思想不对称的怪圈。新手们往往会有这样的感受,前辈们讲的东西,总是一知半解。其实这是知识面不对称造成的,人在思考的时候,总是基于自己的知识面,尤其是在程序的世界里,大脑并没有去思考讲出来的这些东西需要哪些前置知识,甚至说是很难讲的清楚。而接收的人由于缺乏这些前置知识,所以听的东西是没有基础的。这就导致讲解的人觉得怎么理解能力这么差?听的人觉得完全听不懂!这中间的鸿沟就是由于知识面广度和深度的差异。

顶尖的程序员并不一定能成为顶尖的程序员导师,一个顶尖的程序员要成为顶尖的导师,需要有如下几个方面的特质。第一,毫无保留的分享精神。善于分享,毫无保留本身就是成为顶尖程序员的必要条件。第二,具备极高的洞察力和同理心。洞察力和同理心帮助你去设身处地的尽量站在他人的角度去思考问题。第三,高超的沟通交流表达能力。有同学要问了,我还不是顶尖程序员,我需要成为顶尖程序员。那么接下来就到了我们要讲的重点了。

如何成为顶尖的程序员,或者说如何在任何一个领域做到顶尖,我认为都是大同小异的。但本文只讨论如何成为顶尖的程序员,这是一个相对有差异性的领域。有一个大家都听过的一万小时理论,就是说如果你想成为某一领域的专家,你在这个领域投入的时间至少要一万小时。基本上以一天8小时来算,大概是五年的时间。有人说我可以一天16小时,一年300天,只要两年左右我就能成专家了。首先我们说是至少,更重要的是勤奋的质量也很重要。

每个人身边都不乏特别勤奋的人,但是这些勤奋真的有用吗?我也认识不少朝九晚九、做六休一的人,他们的勤奋让你觉得不安,但是他们的现状又让你释然。往往一个人成功了,大家看到他身上的各种特质,往往是没有勤奋这一条的,但是这个人一定会以各种方式来证明他很勤奋。如果一个人失败了,但你发现他往往也是勤奋的。抛开背景的因素不谈,成功和失败的差别也许仅仅只是高效的勤奋和低效的勤奋的差别。

曾经我带技术团队的时候,发现我们所谓的聪明的人和不那么聪明的人在智商上的差别并不大。也就是说基本上一个研发团队里,智商基本是差不多的!但是所谓的聪明人和不那么聪明的人的差距是怎么产生的呢?我发现聪明人的特点是基本都不那么勤奋,不那么聪明的人都特别勤奋。当然也有极少数的既显得聪明又勤奋的,也有极少数的既不显得聪明也不勤奋的人。那么既然智商差不多,那么这个差距是从何而来呢?声明一下,本文所说的聪明人和不聪明人并不指智商,而是指看起来的表现。

聪明人的特点很明显,他们表达沟通能力好,情商高,看起来不那么勤奋,看文档看书看起来很浮躁,一知半解,好为人师。不聪明人的特点也很明显,他们不善言谈,沟通表达能力差,普遍非常固执,容易与人争执,但看文档学东西看起来很扎实,坐在那里稳如泰山,一坐几个小时不动是家常便饭。结果也很明显,聪明人很快成为了基层管理,脱颖而出。不聪明人仍然做着偏劳动密集型的工作,一如既往的勤奋。

相信大家每个人都能看到这样的现象,甚至有很多人对聪明人是不齿的,认为他们无非就是圆滑一点,或者善于做管理一点,其实客观的来分析起来,往往这些人的技术也更好。言归正传,我们来谈一下里面的原因。我们来说说为什么会有高效的聪明人和低效的不聪明人。

首先我们要说到的是所谓的性格,科学证明性格大部分是后天塑造的,基因对性格的影响远远小于后天的环境和成长过程。这就是所谓橘生淮南则为橘,然而我们成长过程中形成的性格和思维习惯是否在后期难以更改呢?这里我们先谈到一个词,固执。有人又要说了,什么是固执?什么是执着?它们只是成功者和失败者的复盘词。非也,我们经常谈胸怀、眼界和格局,我们经常谈三观,这些作为基础构成你的固执或者说执着,固执和执着完全取决于你的基础。

我经常给团队讲的两句话:“Open your heart! Open your mind!”是说要放下固执,有人要问,为什么说我是固执,我就不能是执着!在对于人生和世界的知识面,在对于计算机世界的知识面都不够的前提下,基本上你拥有的只有固执!放下它,你才能打开新世界。

为什么我第一个要讲固执?因为固执是程序员的天敌,尤其对于想踏入程序员世界的同学来说。首先你要不断去反思过去十几二十年形成的一切东西,不断去接收新的东西,不断自省自查,让你走出固执。那么为什么说固执是程序员的天敌呢?我带了很多人,发现他们的计算机基础都很差,这是中国国内大学的普遍现状,甚至包括一些985、211和前9的学校。他们的计算机知识面就像一块贫瘠斑驳的荒地,只能看到星星点点的绿地。然而他们做的最多的一件事情就是用他们浅薄可怜的知识去理解一个他们根本不理解的东西,然后他们就非常希望能在几个小时内理解它,但往往要去理解这个东西需要补的知识面可能需要几个月甚至更长的时间。往往他们就在做一件事情,找到一个需要补的知识点之后,发现这个知识点仍然有前置知识,然后周而复始,最后陷于其中不能自拔。这就是为什么你看到了勤奋的不聪明人,他们太忙了,然后问题还没解决。最后一个知识点也没有理解,正由于他们试图去完全理解的学习方式让他们折腾几天后,他们贫瘠的荒地上,没有补上任何的东西?因为在内心,他们把这些东西插上了一个个的问号!这类人往往还有一个特点,就是特敏感而且纠结,这就是我们所说的固执。这些特质也体现在与人相处的过程中,导致无法获得大家的认可。

那么如果程序的世界向你敞开了大门,你向程序的世界敞开了心胸和思考。接下来我们需要思考如何高效的学习。为什么聪明人学的快?浅尝辄止是很多传统的理论反对的,但是世界的运转规律在于你将同一句话用于不同的场合,使用不同的度,这才是道。或者我们改一个说法,叫做浅尝辙暂止。我们举一个例子,同学看代码的时候,尤其是当你进到一个大的系统,百万级的文件。很多人不聪明人看代码,看的很深,一层一层看下去,回都回不来。我教人看代码,第一遍不允许看到超过三级,也就是说顶多去看主线路上调用往里两个层级的调用。所谓先把代码读少,只看框架!也就是说看代码遵循这样一个原则:看广度的时候不要深度,看深度的时候不要广度,新手广度优先深度。

这是看代码,看文档也是如此。曾经我读过一本书,叫做学习的革命。作者主张一目十行的看书,这也是我一直以来看书的方式。看书是这样一个原则:看广度的时候不要深度要速度,看深度一年不超过三本书!往往很多人会质疑一些个大V,一年看几百本书!然后自己发现一个月看一本都费劲,觉得完全不可能。我看书也是非常快的,年轻的时候有个习惯,拿起一本书就要看完再放下,所以年轻的时候看书经常通宵,一个晚上看一本书是很常见的事情。

有同学要问了,技术类的书,这么快能看懂吗?我反问你一句,看慢一点你能看的懂吗?事实上是不影响的,我带了很多的看起来不聪明的人,他们看文档都有一个特点,由于英文文档的原因,发现他们看起来很勤奋,很认真,却永远在看文档的第一章。他并不是做样子给领导看,只是因为他每次打开这个文档看的时候,他都觉得这个文档的第一章没有看懂!这还是我们前面讲的执念的问题,你可以用猜测,也可以去接受这个知识,看广度的时候不要有那么多的为什么?不聪明的人往往就是因为追求深度,导致最后既没有深度,又没有广度,因为事实上,计算机科学广度决定深度。

再举个学英文的例子,很多人看英文文章,觉得生词太多,看不懂!导致一开始就放弃了,某次一位同学告诉我英文的文档看不懂,我于是让他打开了那篇文章。他指给我看,这个词不认识,这个也不认识,这个也不认识,导致我整段都不知道什么意思,得一个一个去查,所以太慢了!我找一段他没看过的先问他看不看的懂,说看不懂然后和他一句一句的看,并问他你猜这一句什么意思?结果是他百分百猜对!还是不够Open造成的。

行动上的勤奋弥补不了思想上的懒惰。很多人做着重复性的劳动,从来没有考虑过怎么才能减少重复劳动,这也是为什么他们看起来勤奋的原因。作为程序员,减少重复劳动是最容易的。写段程序来做重复性的工作不是件难事,但是很多人就不愿意去磨刀,他们的理由就是地主老爷要交柴了,我没有时间磨刀!

总结来说,高效学习做三件事情:第一,敞开心灵和思想,先广度后深度,广度优先,扩展广度时接受而不是理解。第二,减少重复劳动!第三,做好时间管理。关于如何学习,有整本书的经验可以写,这篇文章也写的有点长,有点刹不住车!

人工智能与深度学习做量化请关注:AI量化(https://t.zsxq.com/RvfY37y) 星球限时免费,如需加入,请私信我获得免费邀请码!

零基础学习Python与深度学习应用请关注星球:Python与深度学习 https://t.zsxq.com/bUFayZ3

微信公众号:QTechAI

相关文章

网友评论

    本文标题:零基础学Python--如何高效的学习

    本文链接:https://www.haomeiwen.com/subject/sawlmqtx.html