从踏入计算机领域的第一课起,我就在学习各种编程语言,并且每种语言的学习方法我还尝试变换过多次。一路过来,14 年的修炼让我对学习编程语言的方法有了一个自己的心得。我想这里分享出来应该可以让更多的 Coder 在阅读完我的心得后顺便可以改进自己的学习方法,让自己变得更强。
practice make perfect。这是我从《纸牌屋》里听到的一句台词。我很容易就能体会出这个道理,但还是有一些怪问题需要解开。练习本身是很枯燥的,要我说完全就是苦行僧干的事情,一般很难在期望的时间內达到目标。这里有一个关键字,目标。拿我来说,我在学习一些编程语言的时候很容易就迷失了方向,比如 C++ 语言学习的时候,我从一开始就不知道我能用它干什么,只是觉得这个很底层的语言学会一定能成为 牛人 ,实际上只知道语法,日常也就只能编写一些书本中的例子。我相信即使是现在,仍然会有这样的人,和我一样,漫无目的的学习。这就像慢性自杀一样可怕,不知道何时是个头。解决办法只有一个,立即停下来,重新设定 目标 。我并不是一个训练有序的机器人,所以在想停下来的时候会纠结一段时间。在我经历过多次这样的场景后,现在已经可以快速的做出判断并执行这个技巧了。我相信任何人如果能意识的训练这种技巧后,以后尽快结束这种不必要的纠结时间,那就是万幸。
I love this game。这是我看 NBA 广告中一句台词。我非常羡慕 NBA 球员在场上精彩的比赛。但电视仍然欺骗了我,为什么呢?因为事实上电视台转播的都是精华版,常规赛仍然是难看的,并不精彩。像我这样的伪观众更本没有耐心去天天看这个。学习编程语言也是这么个样子,谁也逃不了枯燥无聊的重复代码练习。这个谁都明白,所以我在这里不提这个,我想说说的是另外的一个事情, 钱 。程序员的工资水平相对其他行业,总的来说还是过的去的。所以,如果你给我一个不可接受的价钱,我绝对是立即走人的。我看到的这样的场景无数次,包括我也有这样的想法,钱太少了。在经历过无数次的历练后,发现一个事实:你用一门编程语言,是因为你很喜欢使用它,这和钱一点关系没有。你为了能天天编程,你必须要找一个地方施展开。所以无论别人给多少钱,你都不应该为此而诱惑。这里给一个简单的公式,应聘这个可以让你有多大的施展空间,这个才是关键。别用钱来限制自己,应该用舞台来展示自己。
remote by 37singals,这是一本书的名字。我看完后产生一个观点,那就是 独立开发者 在未来的时代将会有更好的施展空间。已经有很多人早就实现了这个,非常让人羡慕。但我仍然非常坦陈的想告诉你,改变并不容易。不如把当下的你的工作做的更出色。不要再局限于一种语言或者技能上,你要全面的自我学习,超越自己现有的编程能力就是进步。
effective learning。学一门语言到底需要多少时间,大家有自己的判断。但我想给大家一个方法。一本书看一周,就算入门了。不要自己欺骗自己,就一周最多 30 个小时,就可以入门。很多人一直 迷恋入门阶段 ,即使已经入门了,还在那里原步踏步踏就是不在前行。还有些人更是把读一门语言的源码作为入门的最高境界,比如我买过一本这样的书《Python 源码剖析》,至今没有完整看过一遍。其实学编程语言最大的用处是用它,而不是造它,那是孔乙己的学法,过时了。
open source。学一周语言编程,就可以参与开发了。但没人会给你一个赚钱的项目让你练手。所以更多的人,就闭门造车。模仿复制只有少数人能做的漂亮。不如 参与一个开源项目 ,练手比创造要来的容易。随着时间的积累,你随时可以加入新功能,并能快速体会到用户的反馈。这是最真实的,也是最有效的。