刚上大学的时候,对于一个连c是什么都不知道的我来说,问的最多的问题便是,软件工程专业的学生该如何学习。听到的最多的答案就是:“多看代码,多写代码。”如今,过去了三年,作为准程序员的我已经实习了一段时间,面对每天看的代码,又如刚上大学时那般迷茫,我该如何看代码呢?
“学而不思则罔,思而不学则殆”,是时候该合上显示屏,好好想想了。
首先应该认识两点,第一,学习编程不是照着代码敲就可以的。以前看了很多书,看了很多视频,照着敲的代码也有很多k了,可真正成为自己的却少之又少,有的是根本不走大脑就敲下来了,有的是看的时候懂,自己要实现的时候却无从下手。 第二,写程序不是copy后能用就万事大吉了。刚刚工作的时候真的是觉得从这copy一下,从那里copy一下,最后程序能跑了就ok了。直到我看到一个漫画:“A:我看不懂你的程序,这些行代码都是干什么用的? B:我也不知道,但如果删掉它们,程序就跑不起来了。”我想,自己不该继续这样下去了。
个人认为在看代码的时候应该关注这样一点:实现这样的问题可以有哪些思路。这些问题可以大到整个程序,也可以小到某些功能。我们应该对这些实现的思路做总结从而找到最简单最适合的方式。举个例子,实现两个数的交换可以有很多种方法。
1.tmp = a;
b = a;
a = tmp; (a,b已赋值)
2.a ^= b;
b ^= a;
a ^= b;
3.a += b;
b = a - b;
a = a - b;
对每一个代码,阅读、思考、总结,化为己用。这也许会花费很多时间,但这些花费绝对是值得的。对于准程序员,不是学了多少种语言,学了多少个库就能顺利成长的。“学历属于过去,能力属于现在,学习力属于未来”。我们看代码要做的,就是提高自己的学习力,提升自己的能力。
以上是最近的一些思考,希望有经验的人能多多指教,也希望和同是新人的伙伴们多多交流。
原文地址:http://my.oschina.net/diefrom/blog/292990