Harvard's CS50
最近看了哈佛大學(xué)David主講的計算機科學(xué)入門,給我一個最大的感受是計算機編程語言真的不重要,重要的是編程者的思想。
1、同一個問題可以就Scratch解決,也可以用C,用Python,用JavaScript 解決,只是語法特性不一樣而已。
2、當(dāng)你在集中精力用某一編程語言時,自然而然的只會關(guān)注該語言的特性,而編程思路是一樣的。
3、不必過多關(guān)注底層細節(jié),函數(shù)庫由前人已經(jīng)封裝好了,知道怎么用就行了。
4、大部分你不會的函數(shù)功能都可以猜出來,見名知義,同時也可以用幾組測試數(shù)據(jù)輸入,看看輸出是什么,后知后覺,然后再記住該函數(shù)的功能。
5、程序運行不是你預(yù)期的結(jié)果,那肯定是你的錯,計算機很傻,很笨,很精確,他是不會出錯的,你要他干嘛就干嘛。
?
最近也在學(xué)習(xí)C和PHP、JavaScript,不用過多關(guān)注語法細節(jié),重要的是思想,牢記這一點解決了我以前的許多疑惑。
以前在大學(xué)里面是學(xué)過許多編程語言,C、C++,Java,C#,ASP,PHP,JS.
但是每次學(xué)習(xí)都是只學(xué)習(xí)了基礎(chǔ)語法部分,由于各種原因就沒有繼續(xù)學(xué)習(xí)下去了,現(xiàn)在看來自己學(xué)習(xí)的那種所謂的幾種編程語言,其實換湯不換藥,我都學(xué)習(xí)一些重復(fù)的東西,過多的關(guān)注每種語言的編程特性,其實每種語言都是那幾個知識點,變量,數(shù)組,三大結(jié)構(gòu),運算符,每種編程語言都一樣,說實在的我在大學(xué)學(xué)的那些“許多編程語言”,頂多就是學(xué)習(xí)的許多編程語言的“”語法特性“”,僅此而已。
這也導(dǎo)致我認為自己不會編程,不適合編程,沒有興趣,畢業(yè)的時候一度想脫離計算機行業(yè),去追求公益夢想,去自己感興趣的英語行業(yè),大不了自己去當(dāng)老師。
發(fā)現(xiàn)自己扯遠了,這些值得寫一篇關(guān)于職業(yè)困惑的文章了。
David用淺顯生動的語言描述在底層計算機的是什么,底層計算機就是由多個電路組成的0,1,電路的開關(guān)閉合兩種狀態(tài)是最容易表示,開就是1,關(guān)就是0,和太極的思想一樣,兩極么,這樣出錯的情況會很多,如果用三位數(shù)表示計算機的狀態(tài),則需要三種狀態(tài),出錯了可能性也會大。32位計算機就是用32個這樣的01電路來表示2到32次方的狀態(tài),也是65535個狀態(tài),內(nèi)存也只需要4G就足以處理那么多的位數(shù)了,多了會被浪費掉。
ASCII碼是怎么來的,用128位就可以表示英文中的所有字符,就是電腦中的文本,圖像 是怎么來的,就是用RGB三原色按不同比例混合而來,視頻是怎么來的,圖片移動就成了視頻。
數(shù)據(jù)在內(nèi)存的中的存在形式就像一個個小的盒子,數(shù)組一般是一片連續(xù)的存儲空間,可以很容易的進行前后遍歷,而指針的處理就更靈活可以隨意指向哪片存儲空間,這就是RAM,隨機訪問存儲,其實數(shù)組是一個特殊的指針,就是擁有連續(xù)空間的指。
?
David用各種例子闡述計算機內(nèi)部是如何工作的,讓計算機不再神秘。
?
其實計算機的工作原理也來源于生活,只要和生活中的各種場景和處理方式進行類比,就很容易的理解計算機的處理方式,記得以前看過一本計算機操作系統(tǒng)的處理哲學(xué),通俗易懂,都來源于生活。
?
計算機很簡單,編程也很簡單,我不要被他打到,從戰(zhàn)略上鄙視他,要記得CS50是哈佛大學(xué)的老師教的,哈佛大學(xué)的學(xué)生是世界上最好的學(xué)生, 就等同于我和他們一起上課,我也能聽懂就說明我不差,可能是因為我有計算機的基礎(chǔ)的,但這些基礎(chǔ)可以用時間和精力補回來,哈佛大學(xué)的人也是人,我不必他們差,他們可以學(xué)會,我相信我也可以。加油!
?
?
?
?
?
Lectture 0
Text :binary digit ---> byte(8bits) --> ASCII(English character)
Image:binary digit ---> byte(8bits) --> Red---
Green---(different amount of Red, Green and Blue ) constitute one pixel? of color block ----> lots of them become a image .
Blue? ----
moving image in milliseconds become a video?
?
轉(zhuǎn)載于:https://www.cnblogs.com/luoxuw/p/10963621.html
總結(jié)
以上是生活随笔為你收集整理的Harvard's CS50的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python学习之散学
- 下一篇: BeanCreationExceptio