零基礎自學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
圖標

推薦閱讀:
相关文章