如何提升编码能力?
各位徒弟,大家好!
如何提升编码能力?这个话题比较大,但是解决方法却很简单。因为简单不代表肤浅,所以很多人连如此简单的事情都没有做好。我希望你们能做好,我也很乐意去解决你们在执行过程中遇到的问题。
我觉得提升编码能力分为两步:第一步:打好基础;第二步:有效的实战操练。
打好基础
说实话,我感觉80%的人都没有打好基础。如果不幸,你也属于此列,那么请不要灰心。因为这种情况不影响你的绩效考核和工资,大家都是码农啊,能上手就行。尤其是那些在二三线城市的人群,更是如此。
打好基础未必代表编码能力很好。纸上谈兵的典故都清楚吧,这就是一个基础很好但是能力不行的典型例子。编码界,同样也存在这种情况。
打好基础,就是多看。这是很简单的做法。曾经我把学校图书馆的Java书都看完了,所以我感觉自己的Java基础还是不错的。
打好基础需要多看书,因为是多看,没有动手,自然不会提升编码能力了。正好也照应了我上面的观点:打好基础未必代表编码能力很好。
有效的实战操练
什么是有效的实战操练?对于这个问题,仁者见仁智者见智,我说一下自己的切身感悟吧。
我个人比较喜欢读源码,读了大量的源码,当然也花费(浪费)了很多的时间。很多问题,我是通过源码来解决,获得了周围同事的认可,印象比较深的例子有:(1)阅读resin源码,解决了jsp的编译问题(2)阅读freemarker源码,解决了错误提示的优化(3)阅读mybatis源码,实现sql的编译器等等
但是,我感觉阅读源码并不能提升编码能力。因为这种行为只是输入,不是输出,算不上有效的实战操练。
真正的实战操练就得去写项目。可是,写又是一件高门槛的事情,所以我们可以稍微降低目标,改成吃透精品项目。吃透不仅表示深入的了解(输入),也表示能给别人讲出来(输出)。
吃透的对象应该是小型的精品项目,在此我比较推荐dbutils。正因为小型,才能让我们吃透,如果我们面对spring,mybatis这些大型的框架,它们大到令我们根本无法做到吃透。
大家要注意,阅读源码和吃透项目是两件不一样的事情。后者有两个重点:吃透和项目,既然称之为“项目”,必定是完整的,哪怕它的体量很小;而前者则侧重于阅读理解代码片段。所以,最终的效果肯定是不一样的。
吃透项目,肚里有货,那么想继续提升编码能力,只能自己动手去写了。我希望大家能认真的学习我给大家准备的项目精品,例如:缓存项目,会话器,Paxos组件等...