对于一个程序员来说怎么样才能提高自己代码能力？
分享一位 CTO Ken Mazaika 的观点，在Quora上面是高赞内容。 （PS：以下内容非原创，仅做分享，侵删） 1. 遇到问题先尝试自己去查资料，利用好Google和wiki，在提出问题前尽量自己有几个可选的思路或方案，尽量不要只提问题不给解决方案。 2. 拥抱变化，坚持不懈。老手程序员在接触新技术时，能欣然接受像个初学者一样处处受挫，并总能在完成工作的同时自学成才。 3. 承认细节的重要性。例如变量和函数的命名、CSS 属性的命名、该用哈希还是用数组，以及其他看起来微不足道，但可能对项目有深远影响的事情。 4. 多看书，看书才能体系化系统化的学习，只看网上的文章如公众号，都是零散的知识而且还不一定对。而且读书要读经典，因为一是时间有限，二是经典的书才能更好的学习。 5. 选择合适的工具解决问题。网上有无数的开源库、工具和框架，让人眼花缭乱。而老手们清楚地知道针对怎样的问题，应该用什么样的工具。 6. 明白代码「不值钱」（该删就删）。你必须习惯于删掉几百行代码来重写程序的某一部分，毫不留情。 7. 在评估技术的时候要全面。例如，我一直在鼓吹 Elixir。它语法优美，社区完善，有很大的潜力。但 Elixir 诞生的时间太短，所以如果要构建复杂的功能，可能会难以找到能帮你提高效率的开源工具。因此，在评估要不要选择使用一项技术时，你得把所有这些因素都考虑在内。 8. 学会说 “我不知道”。没有比拒绝承认自己不知道更能浪费一个开发者的时间了。 9. 仔细分析错误信息里的线索。传统教育告诉我们：失败是坏事。报错信息这种东西也经常被跟失败联系起来，然而优秀程序员明白，这些错误消息里其实隐藏着能将你指向最终正确解决方案的线索。 10. 了解过早优化和必要的 “炫技式” 优化的区别。老手们清楚在什么时候需要写一些看上去没那么好懂，但会让程序运行更快的代码。 11. 每个人都会犯错，为自己的过失负责。而尤其在团队里，把责任推来推去没有任何意义，因为错误的发生往往不只是一方的因素造成的。 12. 成为你所用的开发工具的重度用户。如果长期在某个开发环境下有相当比例的开发工作，那你应该去掌握使用它的细节。 13. 学会用 Vim（至少会一点）。 你至少应该在这个编辑器里学会勉强地移动和翻页。 14. 不要接陌生技术领域的私活。个人做自由职业项目，其中很大一部分挑战就是评估项目时间。不要规划自己未知领域的事情，那会让你处于想当尴尬的境地。 15. 不要数你干活花了几个小时。技术大牛会把时间花在有深度的工作上，并且他们清楚花了多少时间完全不重要。 16. 学会坦然接受批评。当你的代码因为各种原因四分五裂时，你需要培养用理性和逻辑的方式来应对（而不是情绪化处理）。 17. 同有更多经验的人结对编程。没有比这个更高效的编程学习方式了。 18. 一定要先自己做一遍代码审查。当你在 GitHub 上发起一个 pull request 之前，先把代码当成别人写的，自己先审查一遍。 19. 认识到做自由职业的难点不是写代码，而是其余的所有事情。销售、推广、客户支持，质量保证以及产品管理，所有这些都会花费大量时间。 20. 发现并解决更大的问题。优秀的程序员不拘泥于眼前的问题，而是清楚如何用更长远的方式彻底的解决这一类问题。 21. 深入了解一些大型开源项目的核心能让你开发时如虎添翼。如果你知道如何给你的项目打猴子补丁 (Monkey Patch), 那么你将无所不能。 22. 跳过多数的会议。你的公司雇你是来写代码的，而不是谈代码的。当会议多到失控的时候，不去参加也没有任何问题。而且一旦你开始这样做，别人会更珍惜你的时间。 23. 知道什么时候开始回馈。 到了某个时候你需要将你的技能和经验传授给年轻的开发人员，就像你的导师当时教授你一样。 24. 勤总结-多做读书笔记。尽量用自己的语言进行总结，这样能够极大的加深印象和理解。 25. 礼貌地告诉别人你工作到很晚。如果你是办公室里最后一个，可以发一封简短的汇报邮件。别人一般会注意到邮件上的时间戳的。 26. 像一个领导者 (Leader) 一样做事，而不是老板 (Boss)。老板是让别人为他工作的人，领导者是人们追随的人。做个领导者。 27. 去打打桌上足球。从长期来看，同其他开发者（或不同岗位上的同事）建立联系会比在紧巴巴的期限里交付一个功能更有价值。 28. 在压力下学习。你需要知道如何应对像系统宕机而你要负责将它复原的情况，即使一开始你完全没有头绪。 29. “Move fast and break things” 别让完美主义阻止你做事。错误往往是最好的学习机会。所以别把犯错当作失败，而应该把它们当作值得学习的经历，并意识到：正是不断克服和突破这些错误，作为一个程序员，你才能不断成长起来。 下面这些高赞回答你可能也感兴趣：  最后再次推荐2本提高思维能力和认知能力的非常棒的书籍，笔者读后收获很多，是非常值得放在案头多读精读的书籍： （1）刘未鹏的《暗时间》 刘未鹏本是一名微软的程序员，但是在心理学方面也有很深入的研究，有非常透彻的总结，非常值得我们学习。 （2）《认知觉醒》 