程序员的九阳真经

12年前

1. 不要为过去买单

不要活在过去,今天才是最最重要的,明天更重要

不要弥补过去,那样会错过今天和明天,更会把自己迷失在过去的阴影中,会造成总是犯错,又总是为过去改过,于是生活在一个怪圈之中。

2. 量化目标,把目标具体化

千万别把一些:掌握,熟悉,高级,专家等一些非常抽象的标准作为你的目标,仔细想一想:什么叫掌握,什么叫熟悉, 什么叫高级什么又叫专家呢? 这些东西不同的人会有不同的理解。

要用具体的,实际的,可测量的量化目标,比如今年年终时存款达到什么样的数目; 再如明年的月薪达到什么样的水平;今年读几本书; 今年写多少篇博客;这个月做一个应用程序;参加几次社区活动;每周发贴数不少于10条等等。

这些具体的量化目标非常之明确,你能否达到,以及你与目标之间的距离也非常之明确,所以实践起来更容易。

3. 不要做太长远的计划

如上一条所说,千万别做太长远的计划,最好别超过5年。 现令世界变化太快,人生的变数也很多,说句老实话凡人看不到太远的未来。

其实就连乔布斯,盖茨等人也没有超过三年之后的详细计划。 当然,我们要有梦想和想做的事,但是详细的计划最好别超过三年,否则等三年之后你会发现那些当初的计划非常好笑。

4. 关注过去,还是着眼未来

这是面试时要考虑的事情。

在面试的时候面试官总是不厌其烦的问:你做过什么项目,你解过的有成就感的问题是啥,你学过什么技术,你看过什么书,你解过什么Bug等等。 但是我们需要的人是能解决未来的问题,能做好未来的项目,但是未来会遇到哪些问题,谁也没知道。

乔帮主和苹果的团队的创新能力无人能及,他们创造出了很多的改变了世界的伟大产品, 他们的产品领先于世界至少5年,但你问他们未来5年的手机会是什么样子?他们也不知道。 伟大的产品都是要经过长期的摸索,试验,克服数个困难才会形成的,而不是一下子就能想到的。

这其中更为重要的因素是弃而不舍的努力和不断尝试的勇气, 想做伟大产品的决心和敢为天下先的魄力,跟过去做过什么,跟过去解决过什么问题,其实不太相干。

5. 定期清空杯子

如果杯子满了,就再难装入新鲜的水。 很多时候,感觉不再有激情了,感觉乏味了,感觉没有新鲜感了,感觉不想看书了。

这个时候就需要清空杯子,把自己当成一个小孩子,当成一个学生,当成一个刚毕业的孩子, 当成什么都不懂的人,从头来过,从新开始学习。 会有意想不到的收获。

另外就是,当找不到问题的突破口时,也需要抹到一切线索和思路,从新再次分析问题。 就好比解数学题一样,如果乱了,解不下去了,就要忘掉先前的思路,休息一下,然后重新审题, 重新思考,回归基本,之后便会有新的思路出来,没准就会找到突破口。

这还有一个好处就是可以保证你不会走偏,因为很多时候由于没把问题搞清楚,加之心急,导致思路混乱,偏离了真正的问题,于是越来越乱。 这时就需要停下来,重新理清问题,重新思考

6. 个人仅做小项目,对于团队大项目,只能参与开源项目

我们的大问题也是缺少项目经验,但是个人的力量单薄,时间有限,只能完成小项目,甚至是几百行,几十行的小程序。

对于团队协作方面,只能参与开源项目,或者参与社区。

7. 给任何项目(任务)一个时限

就像编程比赛那样,给每个项目一个时限,有压力才会有动力,这样才能让自己进步

几个小时完成一个小工具,几天完成一个小应用等等,像ACM或者编程马拉松,或者开放编程比赛那样, 二三天内做出一个应用,这样会有成就感,更会学到很多。

8. 参与Topcoder,ACM/OJ等

参与Topcoder,ACM/OJ等,保持算法,分析问题和解决问题的能力。

9. 定期检查自己

像学生时代的考试一样,定期的来个面试,或者与老朋友畅谈,以回顾和检查过去这一段时间或一年的得与失和生活的收获。

特别是对于经验和技能被看重的IT行业,定期检查尤为重要

建议至少一年内要进行一次或几次面试,通过面试,你能从一个侧面知道自己的进步与不足之处,便能知道下一步该如何去做。

更重要的要,通过面试,你能知道自己的不足之处,与理想职位之间的差距,和要努力的方向。