这个问题也许我们已经问过自己好多次,但是面对当前如此多的技术,如此多的学习曲线,这个问题变的越来越难回答。
也许面对这个问题,也许你的第一反应会是“努力学习”或者“参加培训”,但是这些就足够了吗?下面是这些年为了做一个好的程序员,我认为重要的事情。希望能对大家有所帮助。
我什么都不懂
为什么?这是一个非常重要的起点,因为我们必须意识到自己对很多的Topic和技术是无知的,这样才能不被自满情绪蒙蔽,让思想自由的去接受各种各样的知识和问题。毕竟我们从每一个身边的平凡人汲取营养,而平凡往往意味着枯燥。
读书
当然千百年来书都是知识之源,这是不会错的:-)。但是什么种类的书是适合我们的,我个人喜欢
Wrox的Programmer-To-Programmer图书(yeah,红皮的那种).还有就是微软的.Net开发系列,毕竟这些书是真正的专家写的。
多了解其他的技术
我们是geeks,我们喜欢微软的开发技术,但是如果我们不知道这个世界还有许多优秀的技术和很多不使用vs的程序员,那我们会瞎掉或者疯掉。
去寻找一些志同道合的朋友
去寻找那些与我们有共同学习目标的人,跟他们交谈会给我们很大的帮助。最有效率的学习方式往往是直接与其他开发者面对面的就某一问题讨论。
Know what your framework has to offer. Use it
经常看到一些来自其他语言但是经验丰富的开发者,写一些已经在.net Framework 存在的类,我都忘记见过System.IO.Path多少个版本了,还有一个例子就是.NET Role-Based Security Model,很少有人意识到它,每每看到人们在项目里从零开始写Role-Based Model,其实这些工作本来写几个"Provider"就可以完成的。
Write technical articles
通过写技术文章,可以强迫自己去探索一个subject更深层次的内容,甚至通过读者的反馈,会让你收获更多。开一个博客是一个好办法,同时你也可以把你的文章发布到其他技术社区,以获得更多的反馈。
Do not write "temporary code"
如果你知道怎样以最好的方式解决一个问题,那就用最好的方式。如果只是写临时代码,而不是真正的解决方案,那你的项目会永远充满临时代码。大多数情况,写临时代码花的时间和写好代码花的时间是一样多的。