StackExchange.com上有两个贴子(贴子一,贴子二),贴子名叫“What is the single most effective thing you did to improve your programming skills?” – 对你的编程技术提高最有效的一件事是什么?回复的人中给了很多很不错的建议,我把他们总结了一下,十条,相信一定会对你有用。(注意:顺序是我自己按我的个人经验排的)
- 和比自己聪明的能力比自己强的人工作。学习他们的代码,他们的做事方法,看一看那些人是怎么处理错误的。
- 总是倾听别人怎么说,无论那个的资历和职位是什么样的。
- 实践,实践,实践,总是不满意于一开始出来的事。
- 多问问自己,现在在写什么代码?为什么要这样写成这样?还有没有更好的方法?
- 学习多样的技术,多多比较他们,并一定要了解各种技术的优缺点。
- 总是问别人问好的问题。
- 多回头看看走过的路,做过的事,写过的程序,感觉一下他们有多烂。
- 多读读那些大师写的书。
- 不要总坐在电脑前编程序,多做做运动,多到户外走走,和非技术人多接触,向他们学习。
- 把你的想法说出去,看看别人怎么回应的。从别人的回应中学习。
除了这些,下面是我个人想给你的建议——
可能只能算精神,不能算方法。我以前也写过《五个方法成为更好的程序员》,《十条不错的编程观点》,还有《优秀程序员的十个习惯》这几篇文章也能给你一些启发。
- 热情。对编程充满热情。这种热情会导致强烈地专研精神,和努力的精神。专研精神相当重要,它是畏难情绪的天敌。
- 知道。学习技术要“知其道,明其理”,而不仅仅只是了解知识。举例,为什么C++有“初始化例表”而Java却没有?为什么Java的没有多重继承?为会有了TCP还要UDP?对于一个事物,什么是好的,什么是不好的。不但要了解其表面,还要了解其思想。只有了解原始的初衷和目的,你才能真正“知道”。
- 犯错。不犯错误永远没有经验,从自己的错误和别人的错误中学习,只有自己犯了错,才会真正明白。犯错不可怕,可怕的是不会总结只有真正的摸爬滚打过的人才是强人。技能和经验总是用错误去换来的。
- 回顾。要多去回顾过去,看看历史上发生过的事。这样你才能明白事物的发展规律,从面才能了解未来的路。举例:单机 -> Client/Server -> 中间应用层 -> 多层结构 -> 分布式结构。 C -> C++ -> Java,等等,等等。未来其实就在回顾过去之中。
- 质疑。质疑精神很重要。质疑通常会导致不同意见甚至反对意见。也许你会质疑错,也许你会被质疑,但是你的认知也会因为不同的观点而变得完整。有所同有所不同(“同”为同意及相同),观点因为不同才能迸发出火花,事物也此而发展,世界因为不同而精彩。