精明的程序员——爱学习

精明的程序员——爱学习


上一篇说到,尽可能少地去做重复的工作,因为它很难让人进步。这篇说说如何寻求进步,答案就是学习。


先说说我的大学经历吧:一二年级打基础,三年级开始做了第一个大项目,四年级就实习了。要说哪个阶段收获多,什么时间进步少,其实感觉每个阶段收获都很多。


上学的期间一定要把基础打扎实,有很多知识看似眼前没有什么实际用处,其实不然。

刚上大学的时候,觉得所有必修课里,数学最难,于是下定决心把数学搞好。整整一年的时间,几乎每天一有时间就埋头自习室做数学题。烦躁的时候会疑惑,自己的专业是软件,可为什么要这么拼命去学数学,当时也想不明白,但是是必修课啊,考不好就没有奖学金了(其他计算机类的课程没有画太多功夫,反而成绩都不错),于是继续拼命地学,最终终于保持在90分之上。到了大三做的那一个三维重建的项目,发现里面大量用到了各种矩阵空间转换的知识。真是非常感激自己当年好好学了线性代数。如若不然,为了应用很多必要的数学原理,或是为了看懂人家论文里面的公式和术语,又要重新拿着书本去啃了。

我经常对自己说, 基础越深,行的越远。有人说动手能力很重要,没错,常常看到一些同学刚学会一个语言就能编出一个完整的程序。但是后来发现,这些所谓的“geek”们工作时仍然是在靠体力吃饭。这样的人在程序员这个行列里,实在是数不胜数。如何能跳出这个体力劳动圈子,我觉得,关键就是看一个人的基础是不是够深厚。就像武侠小说里,那些男主们不是偶遇大牛真传,就是吃了奇奇怪怪的毒蛇蛤蟆,导致内力深厚却不会什么招式。与之相反,反派往往都是拿到一本剑谱就去苦练的人,就会欺负些二流角色,最后与男主的对决中总是被KO得一败涂地。

做项目的时候,或是实习的时候,感觉单纯学习的时间变得及其少。有个和我一组的同学,项目之余,经常还会去自习室自习,让我很是佩服。因为我认识的大部分开始接触项目的同学,泡自习室的时间大打折扣,完全是换了一种生活方式。加之“老板”们要催进度,或是项目有期限,很难挤出时间来学习。后来去实习了,连自习室这样的环境都消失了,看书的时间明显变少。

我很害怕,自己在忙碌中会停止进步,但是我发现没有,我感觉自己大三大四两年的收获并不比之前少。从这两年一边干活一边学的过程里,积累了不少经验。可以拿来分享一番。

现在回想,做三维重建的大半年年时间里,我读了有几百篇paper!为了改进一个小小的算法,就要读十几篇甚至几十篇。当时我还是本科,读的paper大都是研究生们的著作,刚开始还是在“拜读”,后来就能分得清良莠,知道那些是抄袭,那些是原创。看了人家的一个想法,自己去实现一下,就可以验证他的数据是真实的还是杜撰的。我觉得在这个过程里,进步会非常快。一般读几十篇,基本就可以掌握一个领域比较核心的知识。当然,这个方法有局限性,与项目密切相关。就像后来在北大软件学院做的Android应用,这样的项目,就不太适用了。

开发多的时候,在实现或者设计的时候,就会遇到工程性而非学术性的问题。甚至对某一门语言是否能灵活驾驭,就会马上表现出来。这时,我就爱上了博客。看别人的技术博客对自己提高很大的。另外,有些问题,用搜索引擎是不容易搜出来的。比如,像定义一个像printf这样的函数,可是还不知道variable-argument这个词;或者,在shell里$* $# 神马的都是什么意思。遇到这些问题,最终一定是搜到某一篇帖子里得到答案的。这种方法积累知识的速度很快。缺点是不像读书一样,能够建立一个完整而扎实的知识系统。

还有很多小技巧。请教别人显然就是一个不错的方法,如果坚持读一些比较经典的书籍那是最好不过了,至于哪些书籍是经典的,还是建议先去请教别人,否则你可能会在“深入前出xxx”或者“21天学会xxx”上面浪费很多时间。我还经常打印一些主题,大概有一两页那么多,坐一次地铁的时候就看一个主题,否则感觉好多时间会浪费在路上,及其心疼。

不论是工作了,还是在上学,要想进步,就必须好好学习,作为前提,必须保持着爱学习的心态。有人说工作忙,“忙”拆开来就是“心亡”二字,无论要做的事情再多,人再忙,心一定不能忙,要冷静地从每一件事中学习可以学习的东西,这样你做的事情越多,能学到的就越多,进步也就越大。 学而不思则罔,切不可无谓的重复,停止思考而是用身体去记忆。不然,就真的成了“代码工”了。

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值