如何系統地學習計算機?
以下均為個人想法,有問題歡迎討論指教
說真的,這個問題範圍太廣,我都不知道從哪方面回答。(哭唧唧)
畢竟計算機這個專業涵蓋的東西太多
我盡量幫你捋一遍??(寫的不好別怪我,沒捋清楚也別怪我)
慢慢來
如果你的目標不是要去當大神啥的,可以適當放寬要求。
以下內容都是在我假設你要當大神的基礎上寫的。
沒耐心的同學可以直接拉到結尾看總結(這點耐心都沒有還是不要想著自學了吧)
基礎課(敲黑板!!)
計算機專業的基礎課很多
大多數都難,還很重要
一.數學+英語(別笑)
線性代數高等數學概率論離散數學等等
聽過這誰說了這麼一句話:數學學的多好,從某種意義上來說就能走的多遠(不光光計算機這一門學科)
而英語,總不能連英文文檔都看不順溜吧;學好了只有好處沒有壞處。有些國外翻譯過來的書簡直坑人,一段話不但連個標點符號都沒有,語序還有問題,裡面的名詞更是搞不拎清。
送上一張坑爹的數學知識圖(當真你就輸了)
二.編譯原理
實話實說,我學的時候是很想撕書的(用的是龍書,翻譯版的,後來換了原版)
一直到現在也沒學的多好,吃不透(懶+傻)
此為大名鼎鼎的龍書,可以的話建議買原版的(前提是看得懂原著英文)
三.數據結構和演算法
除了編譯原理,個人覺得這個是最難的
建議看書的同時配上視頻,再配上你自己的動手能力(不動手自己操作,這課真的啃不下去)
建議書籍:《數據結構與演算法分析》
還有嚴奶奶的《數據結構》
用哪種語言看你自己
四.操作系統
你可以啃書(不推薦)
也可以自己學著做一個
《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: 切記多動手,不動手的後果就是一菜雞
謝邀。說到系統得學習計算機,其實個人認為可以借鑒計算機專業開設課程的順序進行。
本人分享一下軟體工程專業課程的順序,請查收:
大一:
計算機概論,軟體工程概論,C語言程序設計,高等數學,數據結構
大二:
離散數學,線性代數,概率論,
操作系統,計算機網路,c++語言程序設計
大三:
Java程序設計,jsp課程,資料庫原理,uml語言,Linux操作系統
大四:
實習,實踐的重要性
印象里重要的是以上這些羅列的課程,別小看數學,占的比例很大。
如果想搞計算機軟體,要認真專研一門編程語言,要認真學資料庫。
想搞嵌入式或者底層開發,要好好學習操作系統,C語言以及計算機單片機相關。
關注「極客宇文氏」,更多計算機相關知識分享
當今社會正處在信息化時代,隨著移動互聯網、大數據、人工智慧等技術的發展,未來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雲計算
有些需求很簡單,有些需求很複雜,需要支持海量的用戶,海量的並發,像淘寶的雙11,像微信的春節搶紅包需要做雲計算,虛擬化,分散式處理,支持系統水平擴展。
對於海量的數據,還需要做大數據分析,從中提取有價值的信息,例如Hadoop。
由於需要對操作系統,資料庫,伺服器端系統做定製開發,甚至自己搞一套,小公司一般沒有這樣的技術能力,主要是BAT這樣的公司在搞。
人員需求不是很大,對程序員來講,需要在一個領域鑽研的非常深,技術穩定度比較好。
推薦專業:Linux雲計算
網路安全
互聯網時代,你的信息一不留神就有可能被偷走,安全變的越來越重要。
所以單單實現了功能,滿足了性能還不夠,很多公司,尤其是BAT對安全非常重視。
人員需求:
難度指數:
推薦專業:網路安全運維
軟體測試
這個對技術要求不太高,但也需要測試相關的知識,能夠設計測試用例,準備測試數據,執行測試。
現在敏捷開發流行,對測試也要求懂開發知識,至少能夠開發一些自動化的腳本。
很多女生後來轉到了測試崗位,我想主要是女生比較細心吧。
推薦專業:軟體測試
人工智慧
它是研究、開發用於模擬、延伸和擴展人的智能的理論、方法、技術及應用系統的一門新的技術科學。
近年來,隨著無人駕駛、智能語音、圖像識別等技術的大熱,以及雲計算、大數據、互聯網、物聯網等技術的進一步發展,人工智慧技術成功跨越科學與應用之間的「技術鴻溝」,被提升到國家戰略高度,成為推動新一輪科技和產業革命的重要驅動力。 人工智慧的火爆迅猛發展,帶來巨大的人才缺口。數據顯示,我國人工智慧人才缺口至少在100萬以上。
人工智慧薪資範圍:
Python
人工智慧時代的來臨,python的火爆已經成為一個必然的趨勢。從政府的工作報告和政府文件中我們也可以看到人工智慧已經成為經濟發展的新引擎。據統計,Python人才需求量每日高達5000+,但目前市場上會Python的程序員少之又少,競爭小,很容易快速高薪就業。
總的來說,IT行業薪資在各行業薪資水平來講,都是比較靠前的,崗位也有很多。初學者一旦選定了某一個領域,就需要掌握這個領域的技能。說了這麼多IT技術方向,你會發現,絕大多數都要求懂一定的技術,所以我其實想想說的是:如果你還不清楚自己適合學習哪個技術方向,可以參加千鋒武漢免費試聽課程活動,去尋找自己感興趣的方向。
千鋒武漢互聯致力於web前端、UI、Java、大數據開發、VR/AR、Python、Linux雲計算、網路安全、PHP、Android、iOS,App手機項目等研發,擁有專業的移動互聯網研發師資隊伍和研發技術團隊,全程面授模式教學,真實項目實戰。歡迎大家前來免費試聽。
可以借鑒一下這個學科最頂尖的學生的學習方法。
如果高中就決定學CS,要知道,計算機科學的概念需要時間才能沉入你的大腦。也就是說,這些概念需要練習,並留出適當的時間來留在你的腦海里。所以,可以早一點找全大學初級的教材開始自己學習並且做練習。
許多計算機科學考試是旨在測試這些概念的應用。所以,僅僅了解理論就不足以在考試中取得好成績。因此,計算機科學的頂尖學生會不斷練習這些概念的應用,網上有大量的資源可以練習,並有很好的編程練習。
最頂尖的學生再攻克某個特定主題的時候,也是會尋求幫助的。想要系統學習這一學科,也要找到人幫助你,比如好的老師、教授,同學,學長學姐等。
如果只是想自學CS,最好的辦法也是從教材看起,市面上有很多書,但是能成為大學教材的書還是不一樣的,教材很枯燥,計算機相關的內容對於剛入門的人來說可能讀起來會很難,但是從教材入手確實是最好的。也可以報網上課程,Coursera上面有很多很好的課程可以作為入門學習,學到一定階段如果覺得網上課程不夠了,那麼也許可以考慮返回校園系統學習,或者選擇遠程授課完成學位。
如果是希望學習以後進入這個行業,那麼建議找身邊在行業內的朋友諮詢一下,計算機裡面的分支非常多,想清楚自己具體想要進入/學習的細分領域,制定好學習計劃全面學習。
順便說一句,如果你想知道更多矽谷或者美國科技的前沿信息,可以關注微信號「硅發布」。
首先明白為什麼要學習計算機,其次再從易入難。一般頂層應用比較容易同時有很多的實例可參考又能出實際應用成果,所以建議從頂層應用開始,然後再向下深入學習。
如果你是從就業角度考慮,或者想豐富自己技能樹的話完全沒必要系統的學習,計算機科學發展到今天,無論軟體知識和硬體知識都浩如煙海。軟體工程師們除了常用演算法,誰還記得高數、編譯原理、數據結構老師講了啥?反正我是都還給他們了。不會的時候網上現查,英文忘了有翻譯軟體。你不要聽斯坦福公開課,去你們大學計算機系旁聽,軟體開發好找工作容易上手,網路技術、單片機嵌入式看你努力程度了。無論你選哪方面,等有了一定的基礎水平再聽斯坦福。
可以先從一個小目標開始:
軟體:先學點python語言,看看適合自己不。
硬體:集成電路和彙編語言看看能啃下去不?
網路:路由器配置看看能學會不?
設計:PS 3D MAX 和瑪雅玩玩試試有沒有創意的天分
然後再選一個領域深入下去,祝你成功!
第一步,選擇一門編程語言,C, C++,Java都可以,為之後的數據結構和操作系統的學習打基礎。如果是C++的話,推薦《C++ Primer》這本書。個人比較建議C++,因為相對來說,這門語言比較難,這個學精通後,學習Java就不是難事了;而操作系統的各種底層代碼使用C語言實現,會C++以後,讀C語言的代碼也不難。
第二,學習數據結構。包括數組,鏈表,堆,棧等等,這些概念在操作系統中很常見,想學習計算機,這些都是基礎。學習的過程建議選擇一本書系統的學習,不要只看CSDN這類博客的內容,博客里的東西可以作為參考資料使用。此外,建議在牛客網等網站上多做基礎的編程題,能夠加強理解和記憶。
第三,學習計算機組成原理。這一步就是從微觀的角度了解計算機了,同樣推薦跟著書本系統學習。
第四,學習計算機操作系統和計算機網路。有了之前的基礎,這兩個內容就可以著手了,都比較難,堅持下去認真學,總能學會的!
除了《C++ Primer》外,其他教材都推薦機械工業出版社出版的黑皮書,網上都可以買到,屬於比較經典的教材。遇到書上講的不明白的知識點,其他人寫的博客就派上用場了。另外,網上也有很多公開課可以聽。
這是一個非常大的話題,計算機是一門涵蓋範圍很大的學科,涉及的知識也非常豐富,一般人都是選擇一個方向進行學習研究。對於基礎知識,可以參考一些大學的計算機課程來學習,當具備基礎知識後可根據自己的興趣或者工作需要選擇一個研究方向或者應用方向進一步學習。對於非專業的,應該更多是學習計算機應用,建議結合個人的專業工作或興趣選擇合適的方向學習。
不知你說的系統學習是學習硬體還是軟體。計算機已經成為一個門類寬泛的行業,涵蓋內容特別多。你的系統學習是自學還是選擇學校學習。
如果是自學,那麼你要確定是硬體還是軟體,這主意要看你自己的興趣愛好和自身知識結構。
如果選擇學校,那麼要根據你自己的程度,如果想在某一領域有所精進,就要選相關專業比較強的院校。
如果你是學霸,肯定選學校名氣,相關專業排名靠前的學校。
另外,關注行業最新進展,選擇你感興趣的領域,深入學習,希望你心有所想,達成所願。
你可以去這裡學習,這裡的前景很不錯呢
推薦閱讀: