对于一个程序员来说怎么样才能提高自己代码能力？
要提高程序员的编码能力，针对不同的阶段的程序员应该有不同的方式。我把分成4个阶段。 这个阶段的程序员基本上有一定的语法和理论知识，但是严重缺乏经验。尤其对那些即将走向工作岗位，而毕业学校又不太好（非985，211的本科甚至本科以下学历）。 这个阶段以增加实际编码水平为主要方向。而方式就是选择一个合适的项目，然后去努力的实现。这个阶段的程序员最大的问题就是找不到项目，不知道去找什么练手。实际上也很简单，根据自己的实际水平，在自己实际水平上高出来一点点。感觉到有一定的挑战，又不至于太难导致挫败感太强力，最好是2周左右的课余时间可以搞定的项目。 实在水平有限，就把课后作业挨着敲一遍即可。 最好是在找工作的时候，能拿出几个相对比较成熟的项目。比如：如果是做前端的，做过一个自己的PC端后台框架，小程序做过商城或者其他的系统，最好用类似的混合开发做过App。如果是做后端的，最好是有过一个小型系统的完整开发经验，有过微服务的项目。对找工作非常有帮助。有了一个好的工作机会，对后期的提升有突飞猛进的帮助。 对1-3年的程序员，最大的问题是一直在较低水平重复的做CRUD。 毕业了好不容易找到一份工作，公司一般会让一个老人带着做项目。结果每次都是用别人开发和设计好的框架，往里面填业务代码。在开始的半年呢，可能也能学习到不少的知识和编码注意的事项。但是半年过后，基本上就成了低水平层次的堆砌业务代码。如何跳出这种低水平的重复，就是1-3年程序员的关键点。 而要跳出这种低水平的循环。从使用框架来写业务代码，到思考数据库该如何设计、是否使用redis作为缓存，数据持久化使用SQL还是NOSQL。这个阶段关键就在于在开发的时候多思考一些为什么。同时扩大技术视野，除了写简单的CRUD，多看看框架的搭建，中间件的使用。努力尽早做到自己可以整个流程的开发。 3年以上的程序员，基本的语言语法和开发经验应该有比较丰富的理解了。而决定3-5年的程序员是否是一个好的程序员，主要看程序员自己设计系统、模块的能力。那么这块主要取决于技术细节和更广阔的技术视野。那么静下心来看一些开源项目和框架的源代码，就非常有必要。 5年以上的程序员基本上编码、语言、类库方面的使用问题都不大，反而难度在技术之外了。一方面思维的灵活性，另外一方面和人的沟通能力如何。如何更好的协调团队和处理技术外的关系可能更为重要。