1.学习一门新的编程语言(Learn a new programming language)
学习一门新的编程语言将有助于你开拓新的思维方式,特别是当你使用不熟悉的语言时,你将学习到很多种思维方法应用到语言中。而所学习到的新思维方式,你可以运用在你所熟知的语言中。甚至有时你会使用新学的语言进行你的重要项目。
提供学习经验包含: Lisp (Scheme is good), Forth, PostScript or Factor (stack-oriented programming languages), J (wonderful array programming language), Haskell (strongly typed purely functional programming language), Prolog (logic programming) and Erlang (concurrent programming goodness).
2.阅读好的且具有挑战性的编程书籍(Read a good, challenging programming book)
从书中你将学到很多,虽然实践很重要,但通过阅读好的且具有挑战性编程书籍是你改变思维方式重要的一步。这种具有挑战性的书籍包括The Art of Computer Programming、Structure and Interpretation of Computer Programs (SICP)、A Discipline of Programming or the famous dragon book。
当然,你可以选择一些难度较低的书籍,但要避免选择那些“傻瓜”书籍,即称能够在24小时或是21天内教会一切的书籍,从这些书中无法学习到提高编程技巧的内容。
3.加入一个开源项目中( Join an open source project)
加入一个开源项目的优势是什么呢?你可以和其他人(在私人项目中独自工作过)一起工作,当遇到不熟悉的代码时,你将会去研究,学习理解一个不熟悉的代码库(这应该是很有挑战性的)
4.解决编程难题(Solve programming puzzles)
你总是能够解决编程难题,在Project Euler中出现的数学问题,这或许就是代码难题中最流行的网站。
你应该试图去解决代码问题;程序员在编程过程中总是尝试用最少的步骤来解决遇到的难题,而在这过程中,你可以学到语言的更深奥和更特殊的功能,从而你会不得不思考代码的创造性。
5.计划(Program)
在编程开始之时,制定一个计划,拟定设计框架并实现它。并重复该操作。通过编写代码是学习代码的做好方式。
你将在错误中不断的学习、提升自己,相比于看书完成项目更加有激励性同时也带你带来更多的乐趣。
6.阅读学习代码(Read and study code)
学习著名的软件编程,如Linux kernel。学习教育的一个很好的操作系统是MINIX3。从中你可以学到很多新的语言用法,对软件架构能略知一二。虽然阅读不熟悉的代码比较困难,但你会受益很多。
通过阅读可以使你了解更多的API,或者是一门编程语言。
7.阅读一些编程网站( Hang out at programming sites and read blogs)
阅读不同的编程网站(如论坛和StackOverflow)将有助于你通过其他程序员获取知识。
同时,你应该阅读大量的博客,说起软件行业中博客写的好当属Joel,(尽管他现在不在写博客了,很多有价值的文章依然存在文档里)。Coding Horror and Lambda the Ultimate。
当然,news.ycombinator.com.也不错。
8.书写代码(Write about coding)
在博客上练习书写代码。你也可以在不同的问答网站上回答问题。同时你也可以写一些教程(DreamInCode)。在你编写代码时,你会想着要正确编写,为能够解释其中的问题和技术。编写代码还能够体现你的编程知识,提供你英语语法,这些在编程中都是很重要的。
9.学习基础的编程语言( Learn low-level programming)
学习基础编程语言,它们能够帮助你理解基层架构。比如C语言,或是汇编语言。
学习计算机是如何执行程序,知道操作系统是如何运作的,这是程序员最基本的要求。如果你想好好了解基础语言,你可以阅读有关电脑结构,操作系统,嵌入式系统,驱动程序操作系统开发等等的书籍。
10.有不懂得不要随便上StackOverflow,自己多想想!(Don’t rush to StackOverflow. Think!)
代码出错时,你可能会急于用最少的时间去解决它。你会怎么做呢?上StackOverflow网站吗?别这样做。要认真思考问题,拿出纸和笔,认真想出解决方案。放松大脑保持头脑清晰然后再重新看代码。
如果一小时后还没解决问题,再尝试StackOverflow。但要记得,首先要自己思考解决问题哦。