零基础自学CS网课小结(1)

来自专栏文科妹子自学转CS啦~12 人赞了文章

从第一天接触hello world,到现在断断续续也有几个月了。从最初的python,中途学不下去跳到html,后来又回头学python,直到现在专心学习java,也算涉猎了好几种语言,囊括前端和后端,不过每个都是浅尝辄止。网上大火的课程我也前后上了不少,算是逐渐有点心得。

目前网上课程大体分成两类:

第一类是专业慕课网站上的编程课程,许多都是名牌大学开设的,比如edx上MIT的6.00.1, Introduction to Computer Science and Programming Using Python,Cousera上Rice University的Principle of Cumputing,Udemy上的The Web Developer Bootcamp,都是广受好评的适合初学者的课程。

这类课程的优点是短平快,学完可以拿到证书。学的快有基础(比如用过matlab)的同学,一个月就学完了,还能做几个project,对于想要美化简历、短期快速提升的同学是个不错的选择。

但是对于我这种高中毕业后就没摸过数学课本,上次编程还是大学时糊弄的VB来说,这些课实在是太难了。常常是第一堂课介绍了variable和assignment,课后作业就是写一个function。对于编程基础知识和计算机一些原理,这些课程往往一带而过。

而我,刚开始接触的时候,连最基础的n = n + 1,都看不懂什么意思,甚至不知道变数n赋值的时候该放在「=」左边还是右边,更别说写函数,传值,做项目了。所以学起来异常艰难,为了理解n = n + 1,痛苦了好多天,以至于换了几门课,都没法坚持下去。

因此,对于纯文科,毫无任何编程基础,没用过sublime,不知matlab为何物,以为java是javascript的简称的同学来说,这些课不太适合。

第二类课程就是现在名牌大学的公开课,比如我正在学习的Berkerly课程CS61A和CS61B,其中CS61A是入门课,课程语言是python,据说是编程入门课,但是推荐有一定基础的学生来学,CS61B是进阶,主要是数据结构和演算法,语言是Java。

CS61A和我先前学的网课不太一样,老师John DeNero是个大牛,教课前曾在谷狗做自然语言处理,对于编程基础知识讲得非常细致,比如,它对于True和False如何判断就花了不少时间,对于local variable和global variable这些容易混淆的地方也著重做了区分。

其次,伯克利真的非常大方,所有课程视频、课本、讨论、实验室、资料,全部都免费在网上公开,几乎相当于在家就能享受和伯克利的学生同样的资源和待遇。

如果想为CS学习打下坚实的基础,而不仅仅是学习一门语言的语法,囫囵吞枣,CS61A是一个很好的选择,当然,对于零基础的同学来说,最大的缺点大概还是一个字——「难」。

也许是因为我实现在好几个编程入门课里打滚,潜移默化地吸收了不少知识,因此学习CS61A没有我想像中困难,反而上课的过程中,不少以前疑惑的东西都得到解答,我很开心。

不过对于一些有编程基础的同学来说,也许会觉得这门课有些繁琐,知识点讲的太细,恨不得第一天上课第二天就著手做项目。

CS61A没上完,大致学到了class之后我便转战CS61B,接触到了Java,第一课我就被Java 复杂的语法吓蒙了,满眼的class和大括弧,于是连忙捡起一本Head First Java做配菜,如今刚刚学了一周,仍然是云里雾里,好在终于分清了list和array,而java里的list和python里的list也完全不是一码事。

这节课的老师很年轻,很幽默,有一次上课的时候他拿walrus(海狮)举例,随口说道「A delicious walrus(美味的海狮)」,似乎意识到了什么,随即便改口道,「This is not nice. A cute walrus.(这太不友好了,可爱的海狮)「,似乎是害怕被动物保护主义者追杀。

以前常看网上有人说,一个月学会java,一个月学会python,但是到了我头上,似乎都是非常遥远的事情,毕竟,学会语法不难,但是吃透编程思想,学好演算法,却非一夕之功。

学这些课的时候,翻阅csdn和stack overflow也成了日常工作,以前以为是天书的东西,现在竟然也能慢慢地看懂一点点了,仿佛自己进入了一个由密码书写的神秘世界,而我现在正在破解开启这扇大门的钥匙,心里有点小小的激动。

顺便附上文中提到的课程链接:

一、Python

  1. Principles of Computing

Principles of Computing (Part 1) | Coursera?

www.coursera.org

2. CS61A

https://inst.eecs.berkeley.edu/~cs61a/sp18/?

inst.eecs.berkeley.edu

3. Introduction to Computer Science and Programming using Python

Introduction to Computer Science and Programming Using Python?

www.edx.org图标

二、Java

CS61B

https://sp18.datastructur.es?

sp18.datastructur.es

三、HTML, JAVASCRIPT, CSS

The Web Developer Bootcamp

The Web Developer Bootcamp | Udemy?

www.udemy.com
图标

推荐阅读:
相关文章