我开始学python大概有两个星期,但是早在上个学期就有了这个念头,无奈上学期专业课程很闹心,不如这学期灵活度大,所以现在开始。
简单介绍下我自己,我在卡内基梅隆大学读硕士,虽然不是搞CS的(莫鄙视)。本科我是文科生,纯纯正正的文科生,拿了个全奖来CMU起码生活没什么负担,学费也没什么压力,剩下的就是get新技能了。在计算机牛校每天顶礼膜拜geek天才们,耳濡目染也想学学编程,于是这个学期我开始sit in CMU传统的入门神课15112,简单来说就是教Python,网站之类的资源很齐全,有兴趣的可以看我们的平台,上面有相关的课程笔记、作业、还有quiz之类的,但是如果没基础那基本会觉得吃力,所以我建议真是零基础的还是自己补补,上上MOOC之类的再来看看。http://www.cs.cmu.edu/~112/notes/notes-writing-functions.html
课程进度对于我来说是有点快得,毕竟我不是理工科出生,很多理工科学生大学C语言什么的接触过,数学基础也比较扎实,我在大学学过微积分和经济数学,那会儿是必须学的,但是都是很蜻蜓点水,C语言是什么我压根也不了解,所以我的方法也许是真真正正的笨方法了。
那么说说我看了什么书最近,上第一次课时候老师推荐了不少东西,我觉得上课进度快我自己很多概念的性的要补充,于是我看了这个
How do I think like a computer scientist
这是一本Interactive book,互动性很强的tutorial,主要用的python3,对于我这种入门菜鸟而言非常好用:
1. 概念描述很清晰,很多比如刚开始会遇到的variable, module, loop,condition之类的都会给出明细的解释。
2.小quiz,考察Understanding,有的问题还是有点tricky的。
3.课程内部的code editor, interpreter,及时visualization
4.每一章后有glossary归纳,方便及时查找没有弄清楚的概念,当然这些大家也可以上python.org上查看,官方的更强大。
5.lab,exercise资源,方便练习。记得在知乎看过,别人说搞设计啊,写东西啊,学英语啊,写代码啊都是有共通的,那就是必须多练,不然生了就瞎了,我相信这个,虽然我刚开始。
练习设置的不错,不是很难,但是也有有点难度的,想找虐心的请看CMU的,量很大。练习里面分三栏:question,answer, discussion. Question部分可以直接调出code editor写代码,并且run出来考察结果;answer部分点开有解答;最好的是discussion,就是网上的讨论平台,很多在看书的人会给出自己的解法,也有人在上面问问题,还是挺involving的一个地方。
这个书我哗哗看,咔咔敲,看了有四五章的样子,只要自己有点兴趣我觉得还是可以看进去的。当然如果不喜欢看书,我前几天在一亩三分地见很多人推荐了一个Udacity的课程:How to build a search engine,弗吉尼亚大学的一个教授讲的,界面白色的,教授用笔在上面写啊写,讲的还是很通俗易懂,生动有趣的,每一可分成很多节,每一节都有一两个quiz考察understanding(国外很爱用),跟下来的话应该是7周,但是我觉得大家可能用不了。最后可以做出一个search engine出来,想来是不是还是挺赞的?当然,这门课仍旧是适合零基础的,如果有C语言的底子或者懂很多,那就没必要浪费时间了。
最后说几句题外的,也可能算是题内的:
学习任何一样新东西的开端都会有些艰难,我不喜欢鼓吹什么克服困难,坚持,努力够了就能成功之类的空话。我不认为零基础的没有受过系统训练可以短时间速成编程大牛,学习编程,学习任何一个东西前最好摆正心态,想想我为什么学,是为了短期的功利性目标还是兴趣,还是什么别的。想明白了再下手,反而更好坚持。
如果都想明白了,想学了,我们一起来,不用太着急,慢慢来,就可以用微小的坚持堆砌曾经以为庞大的理想。