“爱运动管理系统”诞生记(7)
巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo)
有些朋友会觉得很奇怪,从2015年到2010年,我那么用功地学习编程,为什么到头来还是一事无成,菜鸟一枚呢?我也曾多次问自己这个问题,每次一提起这个话题就感觉非常沮丧。仔细分析,原因是多方面的,主要是以下几个:
一是学习目标不明确,学习缺乏系统性。那些年虽然一直都在学习编程,但并没有一个明确的规划,认为反正是业余爱好,只要日子过得充实开心就行了,没有明确的奋斗目标,经常是率性而为,学到哪算哪,东一榔头西一棒子,书是看得挺多,但杂乱无章,缺乏系统性。特别是07,08那两年,一会儿弄机器人,一会儿学习汇编,一会儿鼓捣JAVA,甚至有段时间想做一名黑客。刚开始热情挺高,下载了大量的黑客教程,软件,还在好几个著名黑客论坛注册了账号,可弄了没多久就歇菜了。原因有三:一是胆小怕被抓,毕竟黑客干的不是什么好事;二是对黑客群体了解得越多,越是觉得里面的水深,大部分所谓黑客都只会使用别人编写好的黑客软件,用这些软件去扫描其他电脑的端口,去破解密码,去开后门挂木马,殊不知,这些软件本身就带有后门,想用它们在别人电脑上挂木马,自己先被挂上了;三是没有高手提携,光靠自己照着教程和视频学习黑客技术,进展相当缓慢,危险系数相当大,遇到技术难题很难突破。所以我弄了不到两个月就放弃了,转而去研究更底层的逆向工程。
做逆向工程需要精通汇编语言,于是我学习汇编语言。由于有了C语言的底子,汇编语言我学得还是挺顺利的。当时除了自己看书,还在汇编网(http://www.asmedu.net)注册了账号(goal00001111的学习博客),学习王爽老师的《汇编语言》教程,同步记录自己的学习笔记和提交作业。应该说汇编网在在线学习这方面还是做得很好的,我在这里学习了近一年时间,提交了60余篇学习笔记和作业,基本完成了《汇编语言》教程的学习,还用汇编语言写了一个“筛法求素数”的小程序。
前景似乎一片光明,但用汇编语言编程实在太低效了。写一个短小的程序就要花上半天时间——当然我学汇编语言不是用来编写应用程序的,而是用来分析其他程序的汇编代码的。但是用汇编语言DEBUG调试程序也是一件很艰苦的事情,盯着屏幕上密密麻麻的数据和代码,人很容易疲劳,而且我感觉自己的兴趣似乎更多的是在研究算法,用计算机编程解决实际问题上。花大量的时间分析程序的汇编代码实在不是什么好差事,于是我又动摇了,2008年9月10日在汇编网博客上发布的一段文字可以表达我当时的迷惘:
“飘来飘去,停止不了的尝试。
汇编,算法,C++:来回打转,来回碰壁。
为什么不能在一个领域坚持?
为什么总把青春挥霍?
转来转去,我回到了起点,
转来转去,我找不到自己。”
犹豫了一段时间,我还是选择了告别汇编语言。
二是学习方法不对头,学习效率低。由于缺乏老师指导,我基本上靠看书和逛论坛学习编程。简单的东西自己琢磨一下基本能理解,遇到复杂的问题,往往冥思苦想好几天也想不通,网上求助不一定能及时获得解答,即使有解答也不一定完整。尤其是在研究比较复杂的算法问题的时候,常常百思不得其解,很多时候只能绕过去,甚至停滞不前,放弃学习一段时间。就这样磕磕碰碰,走走停停,翻来覆去在原地打转,浪费了大量的时间和精力,而所得甚少。我认为这与有我天资愚钝,数学底子差有关系,但更重要的原因是缺乏名师的指点和同伴的讨论。良好的学习环境真的很重要!
三是时间和精力不足。虽然那时的我只有二十多岁,精力旺盛,学习欲望也很强烈,但毕竟我是一名教师,有上课的任务。白天忙于备课,上课,批作业,只有到了下午和晚上才能抽出时间学习编程,而且不一定每天都有时间学习,遇到快考试或作业多的时候,是抽不出时间的。学习编程的时间通常不稳定,多的时候一天疯狂地学习7,8个小时,少的时候连续好几天都没时间或不想编程,总体来看,平均算下来一天不到1小时,10年也就3600小时,按照1万小时理论,我要想成为编程专家还有很长的一段路要走。