不要毫无计划地写代码,思考、调研、计划、编码、测试、修改,一个不能少。不要写代码前过度计划,在一头钻进代码前做点计划是好事,但是即便是好事,也可能物极必反。喝太多水都会使你中毒呢。请勿低估代码质量的重要性,如果你只能够关注你所写的代码的一个方面,那么肯定是可读性。表意不明的代码就是垃圾,甚至是不可回收的垃圾。使用实现功能的最简单方案,作为专业的程序员,你的职责不是找出问题的一个解决方案,而是找出问题的最简单的解决方案。适时放弃,当你开始怀疑一个解决方案的时候,你就应该考虑抛弃它,并且重新思考这个问题。不管你已经在这个解决方案中投入了多少精力。像GIT这样的版本控制系统能够帮助你分开管理和尝试多种不同的解决方案,把它利用起来吧。擅长Google,除非你正在使用一种极其前沿的技术,否则当你遇到一个问题时,很可能别人早就遇到一个问题了,并且也找到了解决方案了。给自己省点时间,先Google一下。做好封装,基本的想法就是你向你的代码高内聚和低耦合,意思是说保持相关的代码在一起(在一个类中),降低不同类之间的相互依赖。做好规划,写好需求再写代码,尽可能编写目前正在实现的方案所需的最少量代码。要懂算法,使用合适的数据结构。不要写重复性代码,要用好配置文件,不要使用没必要的条件语句和临时变量。做好代码注释,但是不要给傻子都知道的代码写注释。一定要写好测试,如果可能的话,甚至在开始写代码实现需求之前,你就应该开始预估和设计需要测试试验的情况了。测试驱动开发不是什么炒作,它是会实实在在对你思考功能特性、寻找更好的设计方案产生积极影响的。不要觉得代码运行起来就是正确的,有些时候代码的bug可能并不是显而易见的。要能够质疑既有代码,作为一个初学者,总是应该假定那些你读不懂的、且没有文档注释的代码很可能就是糟糕的代码。质疑之,询问之,使用git blame 揪出罪魁祸首。不要过度迷恋最佳实践,“最佳实践”其实是害人的,它暗示着你不需要深入研究它,这就是有史以来最佳实践,不用质疑。不要过度迷恋性能优化。以用户体验为目标,要站在最终用户的角度看问题。专业的开发者要考虑这个特定功能的用户需要什么、怎样使用,想方设法在应用中用最便捷添加这个功能,毫不考虑这个功能的可发现性和可用性。