零基础
我是小镇做题家出身,从小没有受到啥素质教育,在大学以前对课本以外的知识接触面几乎为零。我的学习成绩相对较好,大概是刷题多且比较认真的缘故。 但是从高二开始,我对自己所学的东西产生了深深的怀疑,我在思考,我现在学的那么多知识,看起来日常生活中都用不到,这些东西学了又有什么用呢? 怀疑的种子一旦种下,就逐渐深根发芽。我感觉自己在玩一个毫无意义的无聊的排名游戏,唯一的目的就是排名超过别人。我非常渴望学习些真正有用的东西,而不是整天学些小孩子玩具一样的知识。终于,高考结束,我去了浙江某985大学。终于可以学点真正有用的东西了,至少我是这么认为的。
初识编程
我们那个时候,大学的编程入门课程就是C语言。这个课我听得非常认真,老师也讲了非常多的知识,这里面就有很多注意事项,一不小心就会掉坑里的那种,这些东西把我弄得晕头转向,学习效果也很不理想,我一度怀疑,自己是不是不适合学编程。 但是呢,我对上机编程做得还行,基本上老师布置的问题都能比较快的用计算机解决,我就靠着这个保留了一点点可怜的自信心。 然而,上机题毕竟非常简单,很多基本都是看起来没啥实际用途的数学题,想起这些,我又感觉沮丧。 这个时候,对编程的感受总结起来就是,贼复杂,巨多坑,还只能解决些玩具问题。
找到兴趣
后来,我想,是不是由于我们老师的教学方法有问题,要不要去找找其他老师的课程学习一下。这一下,就打开了新天地,我找到了MIT给计算机专业同学的计算机入门课,也就是这门课程让我彻底有了信心。他们入门教的是python,这也是到现在为止我最喜欢的一门编程语言。从这个课程里我发现了国际一流学校跟国内大学的几个差别:
1. 国际一流大学的老师学生似乎经常犯些小错误
这是我非常震惊的一点。印象中,觉得能去MIT念书的同学,肯定基础知识比我强多了,结果课堂上看着他们提出的问题,大跌眼镜,很多问题,甚至看起来都有些幼稚,而且也能明显感受到,他们的数学知识真的有点弱。 原以为他们大学的老师会非常厉害,什么事情都能迅速的解决,结果有一次看到老师解决一个简单问题,尝试了好几次,才最终成功,他高兴得像个孩子一样说:"It works!" 看起来这群人也没有想象中的那么天才,这给了我一些信心。
2. 他们并不“务于精熟”, 而是“观其大略”
要放国内,我们老师讲python,肯定会把每一个语法点都讲一遍,然后每个语法点会有什么坑,在什么条件下会出现什么“意外”,事无巨细都给我们讲得明明白白。 但人家并不这么“务于精熟”,很多语法老师都不讲,给你几篇学习资料,自己去看;老师大概带你能把代码跑起来,就完事儿了。人家只把握一个重点: 你能自己运行程序,如果发现有错误,自己能去debug解决。
3. 他们很注意让学习解决实际问题,在解决问题的过程中让学生收获成就感
既然MIT的老师不讲多少语法细节,那老师讲什么东西呢?老师会注意启发学生利用所学的知识去解决实际问题。比如他们的作业一般是这么设置的: 针对一个实际问题,老师把其中绝大多数代码都编程好(这个时候的学生还没有解决这么大问题的能力),但留下一些关键性的代码让学生去补全,学生实现好,并跟老师提供的代码结合起来,就能把整个项目运行起来,这个时候的结果简直amazing! 从这个过程中,我惊讶的发现原来我居然能解决这么难的现实问题。每完成一次这样的作业,我的自信心就增长一分,到最后,我觉得编程原来so easy!
在这个过程中,我认识到,只有亲手不断解决问题,实实在在有挑战的问题,才能获得成就感,才能真正对编程感兴趣。欢迎关注我的项目,一起来解决实实在在的问题:
体验地址:体验
Github:Github
Gitee:Gitee