首頁>Club>
如果想系統地學習計算機專業課程,看斯坦福大學計算機科學類公開課可以嗎?具體學習的順序應該是怎樣的?本人是非計算機學院的學生,想好好學下計算機類課程,而現在也有斯坦福公開課這個很好的平臺~
6
回覆列表
  • 1 # 一碗派大星

    說真的,這個問題範圍太廣,我都不知道從哪方面回答。(哭唧唧)

    畢竟計算機這個專業涵蓋的東西太多

    我儘量幫你捋一遍??(寫的不好別怪我,沒捋清楚也別怪我)

    慢慢來

    如果你的目標不是要去當大神啥的,可以適當放寬要求。

    以下內容都是在我假設你要當大神的基礎上寫的。

    沒耐心的同學可以直接拉到結尾看總結(這點耐心都沒有還是不要想著自學了吧)

    基礎課(敲黑板!!)

    計算機專業的基礎課很多

    大多數都難,還很重要

    一.數學+英語(別笑)

    線性代數高等數學機率論離散數學等等

    聽過這誰說了這麼一句話:數學學的多好,從某種意義上來說就能走的多遠(不光光計算機這一門學科)

    而英語,總不能連英文文件都看不順溜吧;學好了只有好處沒有壞處。有些國外翻譯過來的書簡直坑人,一段話不但連個標點符號都沒有,語序還有問題,裡面的名詞更是搞不拎清。

    送上一張坑爹的數學知識圖(當真你就輸了)

    二.編譯原理

    實話實說,我學的時候是很想撕書的(用的是龍書,翻譯版的,後來換了原版)

    一直到現在也沒學的多好,吃不透(懶+傻)

    此為大名鼎鼎的龍書,可以的話建議買原版的(前提是看得懂原著英文)

    三.資料結構和演算法

    除了編譯原理,個人覺得這個是最難的

    建議看書的同時配上影片,再配上你自己的動手能力(不動手自己操作,這課真的啃不下去)

    建議書籍:《資料結構與演算法分析》

    還有嚴奶奶的《資料結構》

    用哪種語言看你自己

    四.作業系統

    你可以啃書(不推薦)

    也可以自己學著做一個

    《30天寫作業系統》

    邊學邊玩永遠是最好的學習方法。

    想學Lunix,就看這個《鳥哥的linux私房菜》

    這樣子的學習會比較有成就感

    加油

    五.計算機組成原理和體系結構

    計算機組成原理在我看來。Emmmmm

    真.枯燥(雖然沒編譯原理痛苦)

    我光看影片就花了好長時間

    推薦MOOC和網易雲課堂的影片,找個牛一點的學校,帶你入門是妥了。

    Ps1.以上科目排序不分先後(想做大神,缺一不可 :P)

    Ps2.想學好以上,說明你至少要熟練(精通)一個語言(C/C++/JAVA/Python)你自己選

    下面是專業類(大概)

    (我不知道你想做的是什麼方向,就寫這麼幾個)

    人工智慧(不怎麼熟,去查一下如何自學人工智慧)

    一種語言(推薦Python),機器學習,人工智慧導論,資料處理,接下來又分語音、影象影片、NLP,在此不往下了,先把上面說的學了先吧

    碼農(如果僅僅是前端,那麼基礎課不怎麼熟也沒啥關係)

    前端:HTML,HTML5,CSS,Javascript,面向物件,UI互動,前端專案實踐balabala

    後端:UML建模,網站開發(HTTP,WEB,MVC之類),安卓開發balabala

    硬體

    嵌入式,微控制器(這方面其他不清楚,詳情請問“計算機硬體自學”)

    總結

    1:說真的,我真不想打這個(數學英語是前提,不在裡面)

    語言學習——資料結構與演算法——離散數學、編譯原理、數位電路——計算機組成原 理、體系結構、計算機作業系統——AI/前端/後端/硬體(隨你啦)

    不要死板硬套就僅僅照著上面那些東西學,這些是不夠的(當然你要是能把上面全學透 了,記得帶帶我老鐵)建議找你們學校計算機專業的,拿他們的培養計劃,蹭課走起

    2: 自學真的真的不容易,像是編譯原理之類的,沒有老師帶簡直就是要命

    真的,去找個培訓機構或者蹭課或者修雙學位吧,自學需要的意志力太大了。(幹了這 碗毒雞湯)

    3: 切記多動手,不動手的後果就是一菜雞

  • 2 # qzuser

    第一步,選擇一門程式語言,C, C++,Java都可以,為之後的資料結構和作業系統的學習打基礎。如果是C++的話,推薦《C++ Primer》這本書。個人比較建議C++,因為相對來說,這門語言比較難,這個學精通後,學習Java就不是難事了;而作業系統的各種底層程式碼使用C語言實現,會C++以後,讀C語言的程式碼也不難。

    第二,學習資料結構。包括陣列,連結串列,堆,棧等等,這些概念在作業系統中很常見,想學習計算機,這些都是基礎。學習的過程建議選擇一本書系統的學習,不要只看CSDN這類部落格的內容,部落格裡的東西可以作為參考資料使用。此外,建議在牛客網等網站上多做基礎的程式設計題,能夠加強理解和記憶。

    第三,學習計算機組成原理。這一步就是從微觀的角度瞭解計算機了,同樣推薦跟著書本系統學習。

    第四,學習計算機作業系統和計算機網路。有了之前的基礎,這兩個內容就可以著手了,都比較難,堅持下去認真學,總能學會的!

    除了《C++ Primer》外,其他教材都推薦機械工業出版社出版的黑皮書,網上都可以買到,屬於比較經典的教材。遇到書上講的不明白的知識點,其他人寫的部落格就派上用場了。另外,網上也有很多公開課可以聽。

  • 3 # 矽釋出

    可以借鑑一下這個學科最頂尖的學生的學習方法。

    如果高中就決定學CS,要知道,計算機科學的概念需要時間才能沉入你的大腦。也就是說,這些概念需要練習,並留出適當的時間來留在你的腦海裡。所以,可以早一點找全大學初級的教材開始自己學習並且做練習。

    許多計算機科學考試是旨在測試這些概念的應用。所以,僅僅瞭解理論就不足以在考試中取得好成績。因此,計算機科學的頂尖學生會不斷練習這些概念的應用,網上有大量的資源可以練習,並有很好的程式設計練習。

    最頂尖的學生再攻克某個特定主題的時候,也是會尋求幫助的。想要系統學習這一學科,也要找到人幫助你,比如好的老師、教授,同學,學長學姐等。

    如果只是想自學CS,最好的辦法也是從教材看起,市面上有很多書,但是能成為大學教材的書還是不一樣的,教材很枯燥,計算機相關的內容對於剛入門的人來說可能讀起來會很難,但是從教材入手確實是最好的。也可以報網上課程,Coursera上面有很多很好的課程可以作為入門學習,學到一定階段如果覺得網上課程不夠了,那麼也許可以考慮返回校園系統學習,或者選擇遠端授課完成學位。

    如果是希望學習以後進入這個行業,那麼建議找身邊在行業內的朋友諮詢一下,計算機裡面的分支非常多,想清楚自己具體想要進入/學習的細分領域,制定好學習計劃全面學習。

  • 4 # 千鋒武漢

    當今社會正處在資訊化時代,隨著移動網際網路、大資料、人工智慧等技術的發展,未來IT領域將陸續釋放出大量的工作崗位,所以從就業的角度來說,學習計算機相關技術是個不錯的選擇。

    學習計算機相關技術需要注重以下幾個方面的內容:

    第一:選擇一個適合的方向。計算機相關技術有眾多的細分方向,有前端開發、後端開發、App開發、測試、網路設計、大資料開發、人工智慧開發等諸多領域,不同的領域需要具備不同的知識結構。所以對於學習者來說,首先應該選擇一個適合自己的學習方向。

    第二:制定一個系統的學習計劃。選擇好學習方向之後應該有一個系統的學習計劃,學習計劃的制定應該資訊一下行業專家。如果選擇軟體開發方向,往往需要從學習程式語言開始,程式語言可以選擇Java、Python、PHP等,不同的程式語言有不同的應用場景,Java可以從事Web開發和Android開發,Python可以從事大資料和人工智慧開發,而PHP則專注於Web開發領域。

    第三:注重實踐。計算機相關技術往往都非常注重實踐環節,實踐環節一方面可以鍛鍊學習者的動手能力,另一方面也可以豐富學習者的知識結構,加強處理實際問題的能力,透過解決一些實際問題,也可以提升學習能力。如果能在學習一段時間之後加入到一個專案中,會對學習者的能力提升有較大的幫助。

    最後,計算機相關技術的學習一定要緊跟技術發展的趨勢。那現在什麼IT技術吃香?什麼IT技術前景好?2019熱門IT技術方向有哪些?想必這是很多小夥伴想要了解的。下面我給大家介紹一下。

    Java

    Java軟體工程師主要是運用Java這個開發工具去完成軟體產品的軟體程式設計、開發、測試、維護升級等工作。

    熟悉Java、Servlet、JSP、EJB等開發技術;熟練使用Eclipse或jbuilder等java開發工具;熟悉JAVA+STRUTS體系結構和開發工具;熟悉至少一種資料庫的開發和設計。

    作為“老牌”的開發語言,Java的整體實力不容小覷,尤其是現在比較熱的J2EE構架更是跨平臺企業級程式設計的利器。

    推薦專業:JAVA

    大資料

    隨著大資料各種應用的發展,大資料的價值得以充分的發揮,已在企業、社會各個層面都成為重要的手段,資料已成為新的企業戰略制高點,也是各個企業爭奪的新焦點。

    推薦專業:JAVA大資料

    web前端

    web前端工程師主要是Javascript,CSS,JQuery等,最近幾年大家重視瀏覽器端使用者體驗,瀏覽器端做的越來越炫,所以也很火。

    推薦專業:Web前端

    軟體測試

    測試這個對技術要求不太高,但也需要測試相關的知識,能夠設計測試用例,準備測試資料,執行測試。現在敏捷開發流行,對測試也要求懂開發知識,至少能夠開發一些自動化的指令碼。

    推薦專業:軟體測試

    UI設計

    UI設計就是對介面進行美化,一般是由設計師先出介面原型,大家討論,修改,確定後美工會生成各種介面元素,像圖示,按鈕等。現在很多企業對設計師也有一定的技術要求,不僅僅是畫介面,還要把html模板做出來,所以美工需要懂得HTML,CSS,甚至部分Javascript。

    推薦專業:UI設計、UE設計

    Linux雲計算

    對於海量的資料,還需要做大資料分析,從中提取有價值的資訊,例如Hadoop。

    由於需要對作業系統,資料庫,伺服器端系統做定製開發,甚至自己搞一套,小公司一般沒有這樣的技術能力,主要是BAT這樣的公司在搞。

    人員需求不是很大,對程式設計師來講,需要在一個領域鑽研的非常深,技術穩定度比較好。

    推薦專業:Linux雲計算

    網路安全

    網際網路時代,你的資訊一不留神就有可能被偷走,安全變的越來越重要。

    所以單單實現了功能,滿足了效能還不夠,很多公司,尤其是BAT對安全非常重視。

    推薦專業:網路安全運維

    軟體測試

    這個對技術要求不太高,但也需要測試相關的知識,能夠設計測試用例,準備測試資料,執行測試。

    現在敏捷開發流行,對測試也要求懂開發知識,至少能夠開發一些自動化的指令碼。

    很多女生後來轉到了測試崗位,我想主要是女生比較細心吧。

    推薦專業:軟體測試

    人工智慧

    它是研究、開發用於模擬、延伸和擴充套件人的智慧的理論、方法、技術及應用系統的一門新的技術科學。

    近年來,隨著無人駕駛、智慧語音、影象識別等技術的大熱,以及雲計算、大資料、網際網路、物聯網等技術的進一步發展,人工智慧技術成功跨越科學與應用之間的“技術鴻溝”,被提升到國家戰略高度,成為推動新一輪科技和產業革命的重要驅動力。 人工智慧的火爆迅猛發展,帶來巨大的人才缺口。資料顯示,中國人工智慧人才缺口至少在100萬以上。

    人工智慧薪資範圍:

    Python

    人工智慧時代的來臨,python的火爆已經成為一個必然的趨勢。從政府的工作報告和政府檔案中我們也可以看到人工智慧已經成為經濟發展的新引擎。據統計,Python人才需求量每日高達5000+,但目前市場上會Python的程式設計師少之又少,競爭小,很容易快速高薪就業。

  • 5 # 極客宇文氏

    本人分享一下軟體工程專業課程的順序,請查收:

    大一:

    計算機概論,軟體工程概論,C語言程式設計,高等數學,資料結構

    大二:

    離散數學,線性代數,機率論,

    作業系統,計算機網路,c++語言程式設計

    大三:

    Java程式設計,jsp課程,資料庫原理,uml語言,Linux作業系統

    大四:

    實習,實踐的重要性

    印象裡重要的是以上這些羅列的課程,別小看數學,佔的比例很大。

    如果想搞計算機軟體,要認真專研一門程式語言,要認真學資料庫。

    想搞嵌入式或者底層開發,要好好學習作業系統,C語言以及計算機微控制器相關。

  • 6 # AI遇見機器學習

    個人感悟,記錄並分享:

    一開始進入大學,地基結構決定上層建築,基礎知識決定發展上限。一開始必須學好基礎知識:

    英語(常用語,專業術語),

    數學(機率,統計,微積分等等)

    資料結構和演算法

    .....

    基礎知識完全覺得一個程式設計師的天花板!而且需要持續學習,不斷複習的。比如做機器學習,資料探勘類的,數學重要程度不言而喻,英語更是必備技能...

    具體的教材啥的就不推薦了,上好高數課,過了4,6級,多寫演算法...

    然後是專業基礎,計算機不是幾個APP,做幾個網頁,做幾個遊戲就能概括的,專業基礎應該多涉獵,CS主要是:

    硬體類,比如數位電路,EDA,儲存器等等,這個一般高校都有涉及。

    軟體類:程式語言,軟體開發,軟體測試等等,(人生苦短,我選python)

    網路及系統類:計算機網路,作業系統等等

    計算類:密碼學,演算法設計分析等等,(包括火熱的AI,機器學習)

    如果直接投入上面各種計算機專業領域是扯談的,每一類都是大學問,大多數人也沒有去了解多少,更多的是直接學app怎麼做,網頁怎麼寫....但是我認為,只看到學計算機學科之後就是碼農搬磚的話,自嘲還好,但認真了就是思想侷限,毫無發展...而一開始我們需要多去涉獵各個領域的基礎知識,不需要深入,但瞭解了之後會更加清楚自己的興趣所在和特長,明確自己的定位。

    小小推薦一些基礎書籍和教程:《演算法導論》,《深入理解計算機系統》,《計算機程式的構造和解釋》,K&R的《 C程式設計語言》,《編碼:隱匿在計算機軟硬體背後的語言》 等等,都是經典計算機著作,可以或者說需要深讀。

    再然後,就是找準定位,術業有專攻,看看自己對那個領域更加感興趣。看看各個領域自己需要學什麼。怎麼找?很簡單,直接去各大招聘網站找自己領域出來對應的職位,那裡是怎麼要求的,就是我們需要怎麼學的。比如隨便網上找的資料探勘工程師:

    或者去

    @牛客網

    等網站看看那邊的面試經驗,筆試題目,類別,就知道要學什麼了。再或者,去CSDN等部落格網站找找各種職業的技能樹。

    最後,方法論說幾個,學會記筆記,寫博文,至今認為這是沉澱自己最有效的方式; copy,很多人唾棄複製,但我覺得我們也要學會copy,雖然只會複製是不可取的,但很多時候,學會複製不會錯,不重複造輪子,學會節省時間,也是一種站在前人的肩膀上看世界的道理。去那裡copy,怎麼copy,怎麼讓自己不重複敲千篇一律的程式碼,也是一種技能~~調侃一波:

  • 中秋節和大豐收的關聯?
  • 材料怎麼寫?