靖难:
我一直推崇一种学习编程的方法,就是learn programming the hard way,我把它翻译为Hard模式学编程 。
我觉得他有以下几个要领:
1. 一开始学习的时候,要尽量去化简为繁.化简为繁的目的是去探索变化,不断的尝试以理解。比如为了理解某个循环逻辑,你应当试着去尝试改变循环变量的自增方式,打印出中间的每个临时结果,然后用纸去推导这个过程,想清楚为什么会有这样的结果。
多去练习一些“无用”但是很繁琐的问题,比如矩阵加减乘除运算、字符串的各种变换。
2. 当你对基本语法的理解和运用已经没有太多障碍时,试着去学习数据结构和算法,并实现他们。也许你会认为这些都是轮子,以后工作根本不会去实现他们,但是写轮子其实是最锻炼人的能力的。其次,经典数据结构和算法的思想,会对你的实际工作有很大帮助。
3. 依赖一定的平台,去写一些有意思的东西,继续造轮子并开始造工具。写一个简单的正则表达式解析器,写一个编译器,写一个图片压缩程序,写一个简单的web server,写一个CGI程序,写一个内存分配器,你有太多的东西可以去尝试去实现,这些也可以成为你未来的竞争力,哪怕你写得很烂。
4.学一门动态语言吧,推荐python。自从接触python后,几乎我私下所有的程序都是用python完成的,包括我自己写的一些网站、新浪微博应用、校园网论文下载代理等,都是用python完成。即使我写不出很pythonic的代码,但我依然热爱python。
5.保持对互联网的敏感和新技术的兴趣,如果碰到热爱的,就深度就钻研下去吧。
6.关注开源,试着去读去修改一些轻量级的开源项目。甚至可以尝试去提交代码参与进去。
7. 开通你的github帐号,开始储备你的代码吧。同时记得记录下你的思考,写博客吧。