自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?夏天2021-09-08 15:40:12

程式設計話題下

萬贊答主

來強答一波~可以先看目錄

程式設計初學者路線推薦:

計算機科學速成課→C語言→計算機基礎→選擇一門程式語言進階

本回答很長很硬核,建議可以先

點贊&收藏

以防迷路,後面你肯定會需要經常翻出來看的。

如果你的

目標是想透過自學並找到一份不錯的計算機相關工作

,我的回答一定要認真看!

(一)計算機科學速成課

如果是對計算機一無所知的,建議你可以先去B站學習

《計算機科學速成課》。

是來自

YouTube上非常熱門的計算機課程

,然後被翻譯到了B站,非常適合

入門計算機,建立基礎概念

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

總共40集,包含計算機早期歷史、中央處理器、程式設計原理、計算機網路、計算機安全等分類,概括了計算機的大部分內容。

每節課都控制在 12 分鐘左右,總計 8 小時,基本上花一個白天的時間就能看完。這門課程透過生動形象的講解方式,向普通人介紹了計算機科學相關的基礎知識。因為每一集比較短,也不容易產生枯燥的感覺。

看過的小夥伴都在評論區說好:

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

新晉廁所排隊經典讀物:

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

我把課程目錄貼一下:

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

這個課程可以幫助你建立起對計算機的基本認知,培養學習興趣,零基礎非常適合。

(二)C語言入門

把這個影片課程看完之後你就可以選擇一門程式語言開始入門了,我個人比較建議

先學C語言

1、初學者先看影片

如果是零基礎的純小白,不建議上來就啃書,可以

先從影片課程入門

推薦中國大學慕課上

翁愷

老師的2門C語言課程:

程式設計入門——C語言_浙江大學_中國大學MOOC(慕課)

C語言程式設計進階_浙江大學_中國大學MOOC(慕課)

影片不要光看,一定要跟著課程

動手去寫!

課程裡面會帶你用C語言完成一些有趣的專案,一定要跟著

實操!

2、書籍推薦

如果想看書的話,這裡推薦3本書,

難度依次遞增

①難度較小的推薦《啊哈!C語言》

簡單易懂,初中生都能學會,很適合零基礎的小夥伴入門。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

②難度中等的推薦《C Primer Plus》

也是C語言書最好的入門書籍之一,0基礎完全可以,比較權威。

可以說是滿分入門書籍,內容循序漸進,這本書重要的不止是讓你學會了C語言,更重要的是能夠鍛鍊你的程式設計思想,這對以後的學習很有幫助。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

③有能力的可以看《C 程式設計語言》

這本屬於比較進階的,不太適合小白。

作者是C語言之父,

相當經典

,“hello,World“程式就是由本書首次引入的。

這本書一定要啃下來!這本書一定要啃下來!

這本書啃下來C語言就基本上沒問題了。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

3、C語言實戰專案推薦

學程式設計技術最重要的就是

實戰!實戰!實戰!

下面這幾個專案,手寫程式碼搞起來。

①C語言製作鬥地主發牌器

C語言:鬥地主的發牌器 - 網易雲課堂

②C語言快速實現五子棋(收費)

C 語言快速實現五子棋_C - 藍橋雲課

再來嘮叨2句,有些書籍最好不要買,比如21天精通XXX,完全就是割韭菜的。

學習計算機一定不要想著速成,沒有什麼捷徑和超能力。

要下苦功夫去啃那些經典書和原始碼,然後自己動手寫

,所有技術大佬都是一行行程式碼敲,一本本書啃出來的。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

我看過的書籍裡的一部分

我在大學期間,為了把專業學好,看了大量經典的專業書籍,整理了這份

計算機必讀的高分經典書籍

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

需要的戳下面連結下載

這份書單對於CS學習的同學幫助非常大且十分系統,這些書籍的電子版已經整理好了。

需要的直接戳這裡領

:計算機必看經典書籍(附pdf下載),請注意查收~

(三)計算機基礎

C語言學完之後需要把

計算機基礎

補上,只有把基礎打紮實,後面學任何一門語言都會更加的輕鬆。可以先從資料結構入門,推薦

《大話資料結構》

這本書的優點在於語言比較接地氣,不是那麼枯燥無味,另外給出了大量圖示,以及程式碼案例,方便理解。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

然後就可以開始學習演算法、作業系統、網路、資料庫了。

基礎課程推薦的影片課程和書籍有:

1、作業系統

①MIT6.268

課程官網:

https://

pdos。csail。mit。edu/6。82

8/2018/schedule。html

網友的一些homework實現:

https://

github。com/SmallPond/MI

T6。828_OS/tree/master/xv6-public

MIT6。828 是一門公認的硬核課程,一直以來都有很高的知名度,也廣受好評,是

理論與實踐相結合的經典

建議是在上過學校的OS課,或者閱讀過作業系統導論類再來學習這門課。最好在開始之前熟悉C和彙編,也對計算機組成有一定了解。

然後只要你跟著專案一步一步走,做完 6 個實驗,就能實現一個簡單的作業系統核心。

lab是這門課的重點:

Lab1: C, Assembly, Tools, and Bootstrapping。 熟悉課程使用的工具qemu,C語言,以及彙編。講解了bootstrapping:從計算機從通電,到開始執行作業系統,這個過程中發生了什麼。

Lab2: Memory management。 實現虛擬記憶體,分頁機制。

Lab3: User-level Environments。 實現程序管理,中斷機制(interrupt),系統呼叫(system call),缺頁處理(page fault handling)等。

Lab4: Preemptive Multitasking。 實現多CPU的支援,Round-Robin程序排程,Copy-on-Write機制,搶佔式多工(preemptive multitasking), 程序間通訊(IPC)。

Lab5: File system, spawn, and sh。 實現檔案系統,完善sh。

Lab6: Networking。 實現網路功能。

②國內哈工大的作業系統實驗課

https://

github。com/hoverwinter/

HIT-OSLab

2、計算機網路

推薦standford課程cs144結合書籍

《計算機網路:自頂向下方法》

課程連結:

https://www。

scs。stanford。edu/10au-c

s144/

https://

cs144。github。io/

書籍選擇《計算機網路:自頂向下方法》,

豆瓣評分9.3分

這位知乎大佬 @胡津銘 有一個專欄講如何自己實現一個TCP,強烈推薦:

https://

zhuanlan。zhihu。com/p/17

5998415

如果想找一本簡單的入門書籍,推薦

《圖解TCP/IP》。

實戰的話推薦

《Wireshark網路分析就這麼簡單》

,可以親手嘗試抓包分析資料報文的資訊。

3、資料庫

① standford CS145/CS245/CS346逐步

遞進的學習

課程連結:

CS145:Introduction to Databases Course Information

https://

cs145-fa20。github。io/

http://

infolab。stanford。edu/~j

unyang/cs145/info。html

CS245:Principles of Data-Intensive Systems

https://

web。stanford。edu/class/

cs245/

CS346:Database System Implementation

https://

web。stanford。edu/class/

cs346/2015/

②伯克利的資料庫導論

https://

www2。eecs。berkeley。edu/

Courses/CS186/

③CMU的資料庫系統

資料庫系統設計域實現,涵蓋資料模型、儲存模型、查詢語言、儲存架構、事務處理、恢復、併發架構等等,並結合開源和商業資料庫給出案例講解。

https://

15445。courses。cs。cmu。edu

/fall2020/

④書籍推薦

《資料庫系統概念》

4、資料結構與演算法設計

①MIT 6.006 Introduction to Algorithms

MIT 6。006 是經典的資料結構和演算法入門課程,涉及到排序、雜湊、圖論、動態規劃。Lecture非常翔實,虛擬碼可讀性強,在輔以專門的practice,用py實現的。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

課程連結:

https://

ocw。mit。edu/courses/ele

ctrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/

②書籍推薦

《演算法》,豆瓣評分9.4分。

內容全,原始碼示例多。

比如普林斯頓大學教材使用的就是這本書,然後有配套的教程網站,上面有很多文件和demo:

https://

algs4。cs。princeton。edu/

lectures/

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

影片:

https://www。

youtube。com/watch?

v=1QZDe28peZk&list=PLRdD1c6QbAqJn0606RlOR6T3yUqFWKwmX

建議透過視覺化的方式學習演算法和資料結構,能很容易看出其基本原理、各種操作是怎麼實現的。

資料結構和演算法視覺化學習網站這裡強烈推薦:

visualgo:

https://

visualgo。net/zh

Data Structure Visualizations:

https://www。

cs。usfca。edu/~galles/vi

sualization/Algorithms。html

5、計算機組成原理

國外大學是怎麼學習計算機組成原理的-

https://www。

zhihu。com/question/3883

8088

http://www。

cs。cmu。edu/~213/

http://

web。stanford。edu/class/

cs107/

關於公開課,更多的可以參考這個github專案,維護了眾多推薦的公開課程資源:(star 14K)

https://

github。com/ForrestKnigh

t/open-source-cs/blob/master/README。md

老外OSSU組織總結的自學計算機學習路徑,star 92K:

https://github。com/ossu/compute

(四)選擇一門程式語言進階

按照現在的市場來講,

Java是現在工業上運用比較多的語言

,也是最好找工作的語言之一。其次是C++、Python等。就目前的形式來看,iOS和安卓等移動端開發是比較不好找工作的,但如果你確實很感興趣,成為了這方面的大佬,那麼前景也還是不錯的。

1、C++入門到進階學習路線

C++

是非常難掌握的一門語言,想學好,需要花很大的精力。

下面說下我自己對如何學C++的一點看法。

首先,可以找一本稍微薄一點的書入門,經典的有

《Essential C++》

。掌握基本的語法和概念,對C++有一個初步的認識。

然後,就可以看

《C++ Primer》

了,這本書強烈推薦。這本書有點厚,需要耐心。一定要認真讀完,並且儘量實現一些例子,自己動手去寫,去debug。這本書吃透C++的基礎基本掌握了,編寫常用的程式不是問題。

接下來可以進階了。面向物件程式設計,侯捷翻譯的

《深度探索C++物件模型》

必讀。這本書講的是底層編譯器C++面向物件 的實現原理,繼承、虛擬函式等等的機制。這本書比較有難度,個人認為需要

至少讀2遍

然後是

《Effective C++》

,講了55條準則,提高C++程式設計質量的。如果有一定的C++開發經驗,讀起來更有感觸。

關於泛型程式設計,可以先讀

《C++標準程式庫》

,對STL有個基本認識,學會使用。

然後可以去研究stl原始碼,侯捷的

《STL原始碼剖析》

值得推薦。原始碼面前,了無秘密。閱讀經典原始碼往往能獲得很大的收穫。

如果有精力,可以再學學boost庫,號稱準標準。

到這裡,你的

C++入門到進階之路

就基本完成了。

自學C語言和C++,有什麼好書推薦嗎?87 贊同 · 6 評論回答

2、Java入門到進階學習路線

關於JAVA的書籍最佳閱讀順序,大家有什麼建議?650 贊同 · 45 評論回答

入門書籍1-《head first java》

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

首推《Head First Java》,這本書相比常見的另外兩本書《Java程式設計思想》和《Java核心技術》,

偏趣味性,語言也比較輕鬆,能將高深的知識講的淺顯易懂,不會讓人覺得枯燥無味

另外2本書大塊頭,部分章節比較枯燥難以理解,容易讓初學者鑽進去出不來。

入門書籍2-《Java併發程式設計實戰》

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

要寫出工業級的程式碼,必然和

併發

脫離不了干係。程式設計師面試,

併發也是必考知識點之一

書中從併發性和執行緒安全性的基本概念出發,介紹瞭如何使用類庫提供的基本併發構建塊,用於避免併發危險、構造執行緒安全的類及驗證執行緒安全的規則,如何將小的執行緒安全類組合成更大的執行緒安全類,如何利用執行緒來提高併發應用程式的吞吐量,如何識別可並行執行的任務,如何提高單執行緒子系統的響應性,如何確保併發程式執行預期任務,如何提高併發程式碼的效能和可伸縮性等內容,最後介紹了一些高階主題,如顯式鎖、原子變數、非阻塞演算法以及如何開發自定義的同步工具類。

進階書籍1-《深入理解Java虛擬機器》

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

作為Java程式設計師,不懂JVM是不行的。

本書詳細講解了類載入、java記憶體原理、垃圾回收機制等知識。只有掌握了JVM,才能在實際生產環境遇到線上問題如GC頻率過高、記憶體溢位等應對自如、還有應用系統JVM引數合理配置。

本書是JVM公認的推薦好書,是

Java進階必看書籍

進階書籍2-《Java效能權威指南》

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

市面上專注於Java效能的並不多,能遊刃有餘地展示Java效能最佳化難點的更是鳳毛麟角,本書即是其中之一。

透過使用JVM和Java平臺,以及Java語言和應用程式介面,本書詳盡講解了Java效能調優的相關知識,幫助讀者深入理解Java平臺效能的各個方面,最終使程式如虎添翼。

進階書籍3-《大話設計模式》

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

如果以前未接觸過面向物件程式設計,那麼本書必讀,畢竟面向物件程式設計和C語言中面向過程設計有很大的不同。

分散式書單推薦-《資料密集型應用系統設計》

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

吐血推薦,本書豆瓣評分9。7分,堪稱分散式領域聖經,

本人非常後悔沒有更早的閱讀本書

本書並沒有侷限於那種分散式框架,而是著重講解分散式整體架構設計理念和基礎知識。

作者水平非常高,本書廣度非常大

(誠然並不是很深,要在一本書裡將那麼多知識深度講解也是不可能的),深入淺出,大家不用擔心晦澀難懂(在這裡更加推薦英文基礎好的話直接讀英文原版)。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

書中有大量插圖,將分散式系統高深的技術形象生動的描述,通俗易懂,比如下圖是講資料庫多副本 併發寫的問題的:

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

而且我昨天剛寫了一個類似的回答,剛發出去不到1天的時間就獲得了

700+點贊和2000+收藏

,說明這本書推薦得非常正確,評論區也全部都是好評。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

資料庫-《高效能MySQL》

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

本書深度講解了mysql引擎架構、索引設計、SQL查詢最佳化的實戰技巧、複製、分片等原理,還有運維技能。適合精讀。

關於Java的學習,下面這些回答你可能也會需要:

1、

為什麼阿里巴巴這麼喜歡Java?

好在哪裡?

為什麼阿里巴巴超級喜歡java開發?

2、

Java程式碼寫得太爛了有什麼拯救方法???

java程式碼寫的太爛怎麼辦?

3、

Java學習應該如何進階???

java學習如何進階?

4、

Java有什麼必看的書???

java有什麼必看的書?

再補充一個大家最近問的很多的,關於

計算機專業電腦選購的問題

按照

不同的預算

給大家推薦了幾款電腦,閉著眼睛買就行:

每個價位只幫大家挑了最值得買的幾款

終結選擇困難症

戳下面文章看

夏天:2021年計算機專業學生/軟體工程大一新生膝上型電腦推薦選購指南(持續更新)|預算5000|6000|7000|8000元30 贊同 · 16 評論文章

希望本回答能對你有所幫助~

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?findyi2021-11-16 23:21:04

程式設計話題下幾萬贊博主來強答一波。

自學計算機也應該遵循科班培養的步驟和目標,我們先來看看頂尖大學的計算機課程設定:

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

課程之間的連線代表的是學習順序和前置知識點,還是比較科學的。

要想進大廠拿到年薪40萬以上,做好以下這些很重要:

選定一門主攻的基礎語言方向,比如Python、C、Java等,並真正攻克它;

演算法和資料結構:陣列、連結串列、二叉樹、堆疊、排序演算法、B+/B-樹、DP(動態規劃)等;

瘋狂刷題,撒比演算法題、Leetcode等等,都挺不錯,刷起來

計算機網路:HTTP、DNS、ARP、TCP、IP、ICMP、UDP等;

作業系統:IO、儲存器、多執行緒/多程序、同步機制、處理器排程及死鎖、裝置管理、通道等;

計算機組成原理:馮諾依曼計算機組成、計算機層次結構、計算機效能指標等;

多實踐多coding

以上其實是大廠面試官的考核範圍,並且他們之間有前置知識點的相關性,簡單點說:不會基礎語言不會演算法和資料結構,你肯定沒法刷題,也沒法看懂計算機網路和作業系統、組成原理等等。。

重點強調下演算法,非常重要,無論是讀研讀博深造還是透過大廠的面試,演算法都是必須的。

大家可以在Leetcode上刷題,如果你能把Leetcode上重難點掌握,說實話你就搞定了70%的大廠技術面試的最重要環節,這絕不是在忽悠,而是身邊師弟師妹的普遍反饋。

接下來重點講講計算機專業自學需要攻克的5個方向:

1。C/C++語言

入門推薦的語言首先就是C/C++。

先說下C語言:

雖然你只有很小機率在工作之後用到它,但它依然無比重要。C Primer反覆看,然後一行行在電腦上敲出來。

C語言最難懂的是指標,希望你在讀大一的時候就征服它,記憶體是什麼,指標的本質是什麼,程式為什麼會崩潰,這些問題弄懂了基本就通了。

其實C語言網上的資料特別多,我給大家特意收集了一波入門必備,學習以下四個資源即可:

實驗樓——C語言入門教程

gitbook——笨方法學C

菜鳥教程——C 語言教程

慕課網——C語言入門

再說說C++呀,科班出身最好牢牢掌握C++,透過大學幾年的學習,以下技術棧弄通即可。

C++語言高階特性:運算子過載(一元運算子、二元運算子、運算子過載難點、專案開發中的運算子過載)、多繼承及其二義性、虛繼承、多型、函式模板、類模板,模板的繼承、程式編譯連結機制、記憶體佈局(memory layout)、物件模型、各種容器的實現(vector、map、hashmap)等等;

演算法和資料結構:尤其是和C++結合的演算法能力及資料結構的應用能力,hash map、B+/B-樹、演算法在C++容器中的效率應用、DP(動態規劃)等;

網路底層:HTTP、HTTPS、DNS、ARP、TCP、IP、ICMP、UDP、FTP、SMTP、的實現底層;

多程序/多執行緒程式設計:程序通訊的方式(共享記憶體、pipe、Socket程式設計等)、同步、死鎖及解決方案、執行緒池的實現、程序/執行緒的作業系統實現原理、程序的狀態及切換和排程等;

推薦以下C+書籍:

《C++ primer》《Essential c++》 《C++程式設計思想》 《effective C++》《more effective C++ 》《Think in C++》《C++ primer plus》《C++ coding standard》。

2、演算法

演算法挺難,但無論是學習計算機專業還是未來找工作,它都無比重要。

推薦一本高中生都能看懂的演算法書:《我的第一本演算法書》

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

這本書還配有APP,方便初學者快速入門!

給題主和大家送一本BAT大佬的演算法筆記,對於程式設計師而言,演算法一定是重中之重,這本書是一位阿里P8刷leetcode整理出來的,身邊不少朋友透過它加入大廠:

Github 瘋傳!史上最強悍!阿里大佬「LeetCode刷題手冊」開放下載了!​mp。weixin。qq。com/s?__biz=MzA3MzA5MTU4NA==&mid=100005731&idx=1&sn=5ce2cf62380c53ff7fd6c907cf9769f8&chksm=1f15080c2862811ad02504f0645709e5b08b249a0ad93f8939dcc8f1a1981e6957e9a4dec75f#rd

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

看看這本書的目錄和排版!相當經典!

3。資料結構

資料結構的重要性相信不需要強調了,不僅是工作後必備的技能,如果未來要參加研究生考試也是必考科目和拉分項。

入門的話推薦《大話資料結構》。

這本書詼諧有趣,在不知不覺中讓你掌握了資料結構

再推薦一本稍稍難一點的《資料結構和演算法分析》。

4。作業系統

只要我們使用計算機,就會和作業系統打交道,接受它的稽核與反饋。很多“熱門”的技術話題,背後都離不開作業系統。比如:

Nginx 的高併發性為什麼能實現?

MySQL 的 I/O 效能到底怎樣提升?

Redis 中經典的 Reactor 設計模式由什麼技術支撐?

Node。js 的 I/O 模型長什麼樣?

甚至,在一個數十萬行程式碼的大專案中,仍然會遇到一些基礎性的問題,比如記憶體為什麼會洩漏,服務程序為什麼會 dang 掉,檔案為什麼打不開等等。

要真正解決這些問題,深入理解作業系統就是關鍵,這也是大廠為什麼要考核作業系統的本質原因

學習作業系統的關鍵在於是否能動手做一個小的作業系統(ucore)!

清華大學的陳渝老師和向勇老師的作業系統課,強烈推薦,清華計算機系本科的作業系統課程就是這兩個老師教的,而他們推出的網課基本和授課內容一致。

這個課程非常贊,是用實驗的方式從0到1搭建一個小的作業系統(ucore),雖然小但是五臟俱全。

連結點這裡:作業系統-學堂線上慕課(MOOC)平臺

5、計算機網路

作者:GitHubPorn

原文地址:

https://www。

zhihu。com/question/4219

13237/answer/1560169057

如果你要入門 HTTP,首先最好書籍就是《

圖解 HTTP

》了,作者真的做到完完全全的「圖解」,書籍不厚,相信優秀的你,幾天就可以看完了。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

如果要入門 TCP/IP 網路模型,強烈推薦的是《

圖解 TCP/IP

》,這本書也是以大量的圖文來介紹了 TCP/IP 網路模式的每一層,但是這個書籍的順序不是從「應用層 —> 物理層」,而是從「物理層 -> 應用層」順序開始講的,這一點我覺得不太好,這樣一上來就把最枯燥的部分講了,很容易就被勸退了,所以我建議先跳過前面幾個章節,先看網路層和傳輸層的章節,然後再回頭看前面的這幾個章節。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

另外,你想了解網路是怎麼傳輸,那我推薦《

網路是怎樣連線的

》,這本書相對比較全面的把訪問一個網頁的發生的過程講解了一遍,其中關於電信等運營商是怎麼傳輸的,這部分你可以跳過,當然你感興趣也可以看,只是我覺得沒必要看。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

如果你覺得書籍過於枯燥,你可以結合 B 站《

計算機網路微課堂

》影片一起學習,這個影片是湖南科技大學老師製作的,PPT 的動圖是我見過做的最用心的了,一看就懂的佳作。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

以上五個部分攻克了,計算機就算入門了。

另外多看計算機經典書籍非常重要,對計算機專業學生和程式設計師來說,看計算機經典書籍永遠是成長中價效比最高的事情。

再嘮叨幾句:看書除了要看,還要動手,對於技術書籍來說,書上的習題一定要動手實踐。

人生有三個最大錯覺:她喜歡我、手機震動、我能反殺,對於學計算機的同學們和程式設計師來說,還要加一個:有思路我就能做出來。

動手最起碼有以下幾點好處:真正理解看過的書和知識、增強動手能力、消除程式設計恐懼症、積累程式碼庫、鍛鍊debug能力。

祝題主和大家都能在計算機行業裡,一碼平川~

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?程式設計師庫森2021-11-17 09:33:52

cs科班,校招進阿里的學長,分享下自己的學習歷程。

從計算機科學入門->計算機基礎課->程式語言學習->計算機選修提升系列,一步步提升程式設計能力

零-計算機科學入門

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

這門課適合沒有計算機基礎的同學學習,瞭解計算機的基礎知識。

【計算機科學速成課】[40集全/精校] - Crash Course Computer Science_嗶哩嗶哩_bilibili

一、計算機基礎學習

計算機基礎包括四門課就是

計算機網路、作業系統、計算機組成原理、資料結構與演算法。

其他課你可以水水,這四門課必須學好。為什麼?

以考研為例,考研現在大部分計算機名校,都考408,408是什麼?408就是考這計算機網路、作業系統、計算機組成原理、資料結構與演算法四門課。

在以找工作為例,想要進大廠,無論你找前端、後端、演算法,Java還是C++,這四門課都是跑不調的,面試考察的計算機組成原理會少些,其他三門必考。

第一門 資料結構與演算法

影片方面推薦 浙江大學資料結構 陳越

【浙江大學】資料結構_嗶哩嗶哩_bilibili​www。bilibili。com/video/BV1Kb41127fT​www。bilibili。com/video/BV1Kb41127fT​www。bilibili。com/video/BV1Kb41127fT

老師講得蠻接地氣的,學完足以對付藍橋杯。 資料結構,重在實踐,多寫程式碼,就懂了

書籍方面對於新手這裡推薦演算法四,不推薦嚴蔚敏的教材。

因為嚴蔚敏的教材主旨是弱程式碼強邏輯,即弱化程式碼實現,而關注章節結構和演算法思想,這個適合考研使用。

數學結構和演算法學習的優質方法,可以看這個回答

怎麼學好資料結構?43 贊同 · 4 評論回答

第二門 計算機網路

影片:哈工大的計算機網路

計算機網路_哈爾濱工業大學_中國大學MOOC(慕課)​www。icourse163。org/course/HIT-154005​www。icourse163。org/course/HIT-154005​www。icourse163。org/course/HIT-154005

哈工大的計算機網路公開課講得很棒,。

書籍:計算機網路 自頂向下

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

這是計網最好的入門書。 自頂向下,首先強調應用層,勾起讀者興趣,然後逐層往下剖析。每一章開頭都會有個總覽,介紹這章主要解決的問題。每章在開始介紹那層具體的協議之前,會先介紹這層協議中主要問題的解決原則,避免一開始就陷入具體協議的細節中,迷失方向。問題驅動,以抽象原則入手,最後再看具體協議。

課後實驗複習題習題都不錯,github上有個專案有完整的配套資料。

學網路關注點:

1。基本架構,分類 2。TCP/IP協議,分層 3。各個協議層次,作用 4。 三次/四次握手、分手 5。 VLAN ,MPLS, 6。資料的拆包,組裝在各層傳遞邏輯 7 。IP地址計算,劃分網路,子網 8。編寫個SOCKET程式 9。網路路徑選擇思考下 10。 常用網路報錯原因,處理 11。網路安全瞭解下 12。擁塞和流控相關和不同 13。 怎麼在不可靠網路實現的可靠傳輸

此外,讀本科和研究生期間,我買了很多書,大部分是一些技術書籍,也收集了這些書籍的電子版,都在這裡,現在免費share給大家。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

書籍download:

計算機必看經典書單(含下載方式)​mp。weixin。qq。com/s?__biz=MzkyMTI3Mjc2MQ==&mid=100002220&idx=1&sn=8e17cc87f65e83880afbf51402e606a6&chksm=4187617a76f0e86cb73da6281732b97bf8185d97d3283801a4b80393131f5c6ecb94a00164e9#rd​mp。weixin。qq。com/s?__biz=MzkyMTI3Mjc2MQ==&mid=100002220&idx=1&sn=8e17cc87f65e83880afbf51402e606a6&chksm=4187617a76f0e86cb73da6281732b97bf8185d97d3283801a4b80393131f5c6ecb94a00164e9#rd​mp。weixin。qq。com/s?__biz=MzkyMTI3Mjc2MQ==&mid=100002220&idx=1&sn=8e17cc87f65e83880afbf51402e606a6&chksm=4187617a76f0e86cb73da6281732b97bf8185d97d3283801a4b80393131f5c6ecb94a00164e9#rd​mp。weixin。qq。com/s?__biz=MzkyMTI3Mjc2MQ==&mid=100002220&idx=1&sn=8e17cc87f65e83880afbf51402e606a6&chksm=4187617a76f0e86cb73da6281732b97bf8185d97d3283801a4b80393131f5c6ecb94a00164e9#rd​mp。weixin。qq。com/s?__biz=MzkyMTI3Mjc2MQ==&mid=100002220&idx=1&sn=8e17cc87f65e83880afbf51402e606a6&chksm=4187617a76f0e86cb73da6281732b97bf8185d97d3283801a4b80393131f5c6ecb94a00164e9#rd

包括了計算機類常用電子書,包括C,C++,Java,Python,Java,Linux,Go等。

第三門 作業系統

影片推薦:

作業系統(哈工大李治軍老師)32講(全)超清_嗶哩嗶哩_bilibili​www。bilibili。com/video/BV1d4411v7u7​www。bilibili。com/video/BV1d4411v7u7​www。bilibili。com/video/BV1d4411v7u7

每節課都帶著回顧一下上一節內容;遇到問題先提出一個淺顯直接的初級解法,然後在此基礎逐漸最佳化。

書籍推薦:深入理解計算機系統

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

CMU計算機系基礎課程,計算機科學的兩本聖經之一,全書都是從程式設計師角度出發去了解計算機底層系統,避免在一些硬體層問題的無謂糾纏,為以後作業系統、編譯原理、體系結構奠定了基礎。

第四門 計算機組成原理

影片哈工大:

計算機組成原理(唐朔飛)_嗶哩嗶哩_bilibili​www。bilibili。com/video/BV1WW411Q7PF​www。bilibili。com/video/BV1WW411Q7PF​www。bilibili。com/video/BV1WW411Q7PF

書籍就看唐朔飛老師就好了,這門課學起來還是比較難的。這門課重點講授計算機系統的硬體組成,及其主要功能子系統的基本原理和邏輯設計。考研的必須要學好了。

第五門 資料庫

國內哈工大的影片。

課程地址:

哈爾濱工業大學-資料庫系統(上+中+下)_嗶哩嗶哩_bilibili

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

國外standford CS145/CS245/CS346逐步

遞進的學習

CMU 15-445/645 :: Intro to Database Systems (Fall 2020)

書籍看這本

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

二、程式語言學習

C語言

C語言是一門面向過程的編譯型語言。C語言是計算機產業的核心語言,作業系統、硬體驅動、關鍵元件、資料庫等都離不開C語言;不學習C語言,就不能瞭解計算機底層。

C語言也是計算機專業的必修課,大一學習

浙江大學的C語言程式設計

C語言程式設計_浙江大學_中國大學MOOC(慕課)​www。icourse163。org/course/ZJU-9001​www。icourse163。org/course/ZJU-9001​www。icourse163。org/course/ZJU-9001​www。icourse163。org/course/ZJU-9001

c語言的書籍和專案可以看這篇文章,很詳細

關係自學C語言,各位有什麼書和學習資料值得推薦的嗎?

Java

Java 是可以撰寫跨平臺應用程式的、面向物件的程式設計

語言。

Java 擁有最大的市場需求。大型網站的後端,比如電子商務交易平臺阿里巴巴,淘寶,京東也都主要使用 Java 開發。

MIT 的Intro to Programming in Java

Introduction to Programming in Java​ocw。mit。edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/index。htm​ocw。mit。edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/index。htm​ocw。mit。edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/index。htm​ocw。mit。edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/index。htm

浙江大學的零基礎學Java

浙江大學公開課:零基礎學Java語言-浙江大學公開課:準備Java程式設計軟體 -網易公開課​open。163。com/newview/movie/free?pid=MEEEUQT2R&mid=MEF8E3KUR​open。163。com/newview/movie/free?pid=MEEEUQT2R&mid=MEF8E3KUR​open。163。com/newview/movie/free?pid=MEEEUQT2R&mid=MEF8E3KUR​open。163。com/newview/movie/free?pid=MEEEUQT2R&mid=MEF8E3KUR

Python

Python是一門擁有簡潔語法的高階程式語言,簡潔,容易上手,在人工智慧和資料分析這兩個方向使用廣泛。

國外:

萊斯大學的Introduction to Python

https://www。coursera。org/course/interactivepython​www。coursera。org/course/interactivepython​www。coursera。org/course/interactivepython​www。coursera。org/course/interactivepython​www。coursera。org/course/interactivepython

國內:

北理工的零基礎學python

北京理工大學公開課:零基礎學python語言-網易公開課​open。163。com/newview/movie/free?pid=CETQNTT33&mid=JETQNTT3R​open。163。com/newview/movie/free?pid=CETQNTT33&mid=JETQNTT3R​open。163。com/newview/movie/free?pid=CETQNTT33&mid=JETQNTT3R​open。163。com/newview/movie/free?pid=CETQNTT33&mid=JETQNTT3R

三、計算機選修課,提升課

第一門 編譯原理

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

國防科技大學-編譯原理(國家級精品課)高畫質流暢_嗶哩嗶哩_bilibili

第二門 離散數學

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

北京大學-離散數學(國家級精品課)_嗶哩嗶哩_bilibili

加油共勉,點個贊鼓勵下~

歡迎

@程式設計師庫森

點個關注~

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?啟艦2021-11-17 12:52:45

自學計算機該先從什麼開始,老生常談的一個話題,那麼往下看吧!

1. 計算機數學基礎

本課程4學分,課內學時72,開設一學期。

課程的主要內容:線性代數、機率基礎、數理統計基礎等。

2. 計算機電路基礎 (1)

本課程4學分,課內學時72,其中實驗18學時,開設一學期。

本課程是計算機應用專業的專業基礎課。主要內容包括:電路基本概念(電路與電路模 型、電路基本物理量、電路基本元件、基爾霍夫定律、簡單的電阻電路),半導體基本器件 ;開關理論基礎,閘電路,組合邏輯電路與時序邏輯電路,可程式設計邏輯器件(隨機讀寫存貯 器、只讀存貯器、可程式設計邏輯陣列、通用邏輯陣列、現場可程式設計門陣列、在系統(ISP)編 程技術),數字系統的組成。

本課程後續課程:計算機電路基礎(2)等。

3. 計算機電路基礎(2)

本課程4學分,課內學時72,其中實驗14學時,開設一學期。

本課程是計算機應用專業計算機控制方向的一門必修課。主要內容包括:類比電路基本 概念,運算放大器的原理及應用,功率放大及穩壓電路;測試技術概述,機電系統運動參 數 (位移、速度、加速度、力、力矩、應變及應力等)的測試,過程系統引數(壓力、溫 度、 流量等),測試資料處理。

本課程先修課程:計算機電路基礎(1)等。

本課程後續課程:微機介面技術、計算機控制技術等。

4. C++語言程式設計

本課程5學分,90學時,開設一學期。

C++語言程式設計是計算機應用專業的專業基礎課。該課程的主要內容:算術、邏輯、 比較、位、條件、逗號、賦值、輸入、輸出等運算子和表示式,分支和迴圈控制結構,模組 化程式設計(函式定義、函式呼叫、函式過載、庫函式、變數作用域和存貯類),資料類 型 (整型、實型、字元型、列舉、陣列、結構、指標、類等),動態儲存空間的分配與釋 放, C++操作環境、編譯預處理、檔案連結和工程檔案的使用,類與物件的概念,運算子重 載與 函式模板,C++標準輸入輸出流、檔案流和串流,等等。

本課程先修課程:計算機入門及操作技能訓練(在集中實踐環節中)、計算機組成原理 與組合語言等。

5. 計算機組成原理與組合語言

本課程5學分,課內學時90,開設一學期。

本課程是計算機應用專業的專業基礎課。主要內容包括:計算機系統概述,計算機中數 據的表示,運算方法和運算器,指令系統,控制器,存貯器組織,輸入輸出系統;彙編語 言 ,組合語言基本程式設計,程式設計舉例(輸入輸出程式設計、中斷程式設計、系統調 用及 程式設計)。

本課程先修課程:計算機電路基礎(1)等。

本課程後續課程:作業系統,計算機網路等。

6. 資料結構

本課程5學分,90學時,其中實驗佔27學時,大作業佔18學時,開設一學期。

資料結構是計算機應用專業的專業基礎課。該課程的主要內容:線性表、棧、佇列的定 義、順序存貯和連結存貯結構,進行插入和刪除等運算的演算法;樹、二叉樹、二叉排序樹 、 哈夫曼樹的定義、性質、存貯結構及建立過程,二叉樹的先序、中序和後序遍歷演算法, 二叉 排序樹的查詢、插入和生成演算法,圖的定義,圖的鄰接矩陣、鄰接表和邊集陣列存貯 結構, 圖的深度優先和廣度優先遍歷演算法,求圖的最小生成樹和最短路徑演算法,拓撲排序 演算法,數 據查詢和排序的各種演算法,檔案的概念和組織方法等。

本課程先修課程:計算機組成原理與組合語言、C++語言程式設計等。

7. 微機介面技術

本課程5學分,課內學時90,其中實驗27學時,大作業18學時,開設一學期。

本課程是計算機應用專業計算機控制方向的一門必修課。主要內容包括:微機介面技術 概述,模擬量輸出輸入通道(A/D、D/A變換及其介面電路),數字量輸出輸入通道,常用 可程式設計並、序列介面電路,工業控制計算機匯流排技術,人機介面介面技術。

本課程先修課程:計算機組成原理與組合語言、計算機電路基礎(2)等。

本課程後續課程:計算機控制技術、微控制器技術等。

8. 資料庫基礎與應用

本課程6學分,108學時,開設一學期。

資料庫基礎與應用是計算機應用專業資訊管理方向的一門必修課,其它方向的選修課。 該課程的主要內容:資料庫系統的概念、組成和主要功能,資料庫保護和資料模型,關係 模 型和各種關係運算,利用SQL進行資料庫的定義、查詢、更新、插入和刪除資料,關係規 範 化和函式依賴,第一、二、三正規化和BCNF正規化,資料庫的概念結構設計、邏輯結構設計 和物 理結構設計,FoxPro資料庫的建立、顯示、修改、查詢、統計、複製、索引、排序、 更新、 關聯等,Foxpro應用程式設計和使用者介面設計。

先修課程:計算機入門及操作技能訓練(在集中實踐環節中)、離散數學等。

9. 作業系統

本課程5學分,課內學時90,開設一學期。

作業系統是計算機應用專業的專業基礎課。作業系統對計算機系統資源實施管理,是所 有其他軟體與計算機硬體的唯一介面。學生透過本課程的學習,理解作業系統的基本概念 和主要功能,掌握常用作業系統的使用和一般管理方法,瞭解它是如何組織和運作的,從 而為今後的學習和工作打下基礎。

課程主要內容:作業系統引論;程序管理;處理機管理;儲存器管理;檔案系統;裝置 管理;中斷和訊號機構;死鎖;微核心體系結構;網路作業系統;作業系統展望與中文操 作系統。

本課程先修課程:計算機組成原理與組合語言、C++語言程式設計、離散數學基礎等。

本課程後續課程:網路作業系統等。

10. 計算機控制技術

本課程4學分,課內學時72,其中實驗15學時,開設一學期。

本課程是計算機應用專業計算機控制方向的一門必修課。主要內容包括:自動控制的基 本概念,計算機控制系統基本組成及工作原理,計算機控制系統的基本特性,計算機控制 系統的控制演算法,控制用計算機系統的配製,實時控制軟體技術,計算機控制系統的抗幹 擾技術,可編程式控制器的原理及應用,分散型控制系統及其應用,計算機控制系統設計 與除錯舉例。

本課程先修課程:計算機組成原理與組合語言、C++語言程式設計等。

本課程後續課程:微控制器技術等。

11. 微控制器技術

本課程4學分,課內學時72,開設一學期。

本課程是計算機應用專業計算機控制方向的一門必修課。主要內容包括:微控制器概述, 微控制器晶片結構,微控制器指令系統,微控制器程式設計,微控制器系統擴充套件,微控制器開發系統 及應用,微控制器在控制系統中的應用(資料採集系統,智慧數字電壓表,機械手控制系統 等) 。

本課程先修課程:計算機組成原理與組合語言等。

12. 計算機網路

本課程5學分,課內學時90,開設一學期。

本課程是計算機應用專業的專業基礎課。主要內容包括:計算機網路概述(計算機網路 基本概念、計算機網路硬體、計算機網路軟體、互連網路標準體系、開放式系統互連參考 模型、計算機網路的新進展及發展趨勢);計算機網路的層次模型,計算機網路中的通訊 子網 (概述、數字通訊基礎知識、局域計算機網路、城域計算機網路、廣域計算機網路、 網際互 連技術);計算機網路中的高層服務(概述、區域網絡服務/廣域網路服務、電子郵 政服務 、WWW多媒體資訊釋出服務、檔案傳輸與終端模擬服務、其他網路高層應用);計算 機網路應用開發與相關技術,使用計算機網路的道德和法律法規。

本課程先修課程:計算機組成原理與組合語言等。

本課程後續課程:組網與網路管理技術、Internet與Intranet應用、網路作業系統、計 算機組成原理與組合語言、網路資訊製作與釋出等。

13. 多媒體技術基礎

本課程4學分,課內學時72,其中實驗24學時,開設一學期。

多媒體技術基礎課程是計算機應用專業計算機應用軟體開發方向的一門必修課。透過本 課程的學習,使學生了解多媒體技術的發展,掌握多媒體軟硬體的配置及使用,為今後更 好地應用多媒體技術打下基礎。

課程主要內容:多媒體計算機技術概論;影片與音訊資訊獲取與儲存技術;多媒體計算 機硬體結構;壓縮技術;超文字和超媒體;多媒體素材的採集和處理;動畫製作工具和創 作技術;編輯多媒體軟體。

本課程先修課程:Windows使用、計算機組成原理。

14. 軟體工程

本課程4學分,課內學時72,開設一學期。

軟體工程課程是計算機應用專業計算機應用軟體開發方向和計算機資訊管理方向的必修 課。本課程闡述了軟體開發、維護和管理等方面的軟體工程學的概念、原理以及典型的技術 方法。透過本課程的學習,使學生樹立軟體工程的科學思想,能自覺按照軟體工程的方法學 進行軟體的開發和維護工作,並掌握與此相應的方便的工具,形成良好的軟體開發習慣。

課程主要內容:軟體工程概述;可行性研究;需求分析;總體設計;詳細設計;編碼; 測試;維護;原型法。

本課程先修課程:一門高階程式設計語言,作業系統,資料結構等。

15. Visual Basic程式設計

本課程5學分,課內學時90,其中實驗32學時,開設一學期。

Visual Basic程式設計課程是計算機應用專業計算機應用軟體開發方向的一門必修課。 透過本課程的學習,使學生熟悉VB這一集應用程式開發、設計、編輯、編譯和除錯為一體 的整合化開發環境,掌握VB的基本語言和語法,培養學生使用VB進行程式設計的技能。

課程主要內容:VB整合化開發環境;VB 窗體;VB控制元件;VB模組;VB類;VB輸出;VB創 建並使用選單和工具;VB使用陣列、變數和常量;VB儲存和獲取資料;VB建立和使用幫助文 件;VB使用對話方塊;VB使用滑鼠;VB使用Dll和API;VB使用ActiveX;VB面向物件的程式設計方 法。

本課程先修課程:程式設計基礎、Windows作業系統、多媒體技術基礎。

16. 軟體工具與環境

本課程3學分,課內學時54,其中實驗34學時,開設一學期。

軟體工具與環境課程是計算機應用專業計算機應用軟體開發方向的一門必修課。在軟體 開發活動中,採用合適的軟體開發工具、平臺和環境,可以大大提高軟體生產率,也是保 證軟體產品的質量的一個重要手段。應用軟體開發人員掌握有關概念,熟悉常用軟體開發 工具、平臺和環境是十分必要的。

課程主要內容:軟體開發環境概論;人機介面;程式設計環境;系統整合環境;維護環 境;速成原型環境;程式自動生成環境。

本課程先修課程:軟體工程等。

17. 資訊管理系統

本課程4學分,72學時,大作業佔18學時,開設一學期。

資訊管理系統是計算機應用專業資訊管理方向的一門必修課,它綜合利用了先前學過的 知識,解決資訊管理系統的實際問題。主要內容有:資訊管理系統的概念與結構,資訊管理 系統的開發過程,資訊管理系統的管理與維護,資訊管理系統的開發環境與工具,資訊管理 系統的開發例項等。

本課程先修課程:計算機組成原理與組合語言、計算機網路、資料結構、資料庫基礎與 應用、管理學基礎等。

18. 組網與網路管理技術

本課程4學分,課內學時72,開設一學期。

本課程是計算機應用專業計算機網路方向的一門必修課。主要內容包括:組網用的物理 通道,組網實踐,計算機網路互連(交換網路的概念、區域網絡互連、區域網與廣域網的 互連),計算機網路管理(網路管理的基本概念、簡單網路管理協議SNMP、全面網路管理 ,計算機網路的測試與維護)。

本課程先修課程:計算機網路等。

19. 網路作業系統

本課程4學分,課內學時72,開設一學期。

本課程是計算機應用專業計算機網路方向的一門必修課。主要內容包括:網路作業系統 概論(網路作業系統概念、功能描述),網路作業系統比較(UNIX、Windows NT和Netware 網路作業系統效能價格比較),網路作業系統的發展預測,UNIX作業系統及使用,Windows NT作業系統及使用,Netware網路操作及使用。

本課程先修課程:計算機網路、作業系統等。

20. Internet與Intranet應用

本課程4學分,課內學時72,開設一學期。

本課程是計算機應用專業計算機網路方向的一門必修課。主要內容包括: Internet和 Intranet應用及互連網路應用概貌,域名服務(DNS),電子郵政服務(E-mail),檔案 傳輸服務(FTP),遠端登入服務(Telnet),Web服務,代理(Proxy)服務,其他互連網 絡服務,新的應用,ISP的實施例子。

本課程先修課程:計算機網路等。

21. 網路資訊製作與釋出

本課程5學分,課內學時90,開設一學期。

本課程是計算機應用專業計算機網路方向的一門必修課。主要內容包括:網路資訊的收 集與組織,網路資訊製作工具介紹( Word、Front Page),網路資訊的製作(預備知識: 色彩、構圖與網頁設計;利用Word製作簡單網頁,利用Front Page製作網頁;視覺與創意 ),網路資訊的釋出,網路資訊的維護。

先修課程:計算機網路等。

22. 英語Ⅰ(1) (2)

本課程6學分,課內學時108,開設一學年。

本課程為公共英語課程。透過課程的學習,學生應能掌握1600左右的常用詞彙(包括入 學時要求掌握的600詞)和若干相關的常用片語及基礎語法知識;能夠聽懂發音清楚、語速較 慢的教學用語和日常生活用語,並能用英語進行簡單的日常交談;能夠讀懂所學詞彙和語法 範圍內的故事、短文及通知、便條等;能夠寫出簡短的私人信函,或用便條轉達具體資訊。

以上是計算機專業需要學習的課程,每個學校可能不同,供參考。學校的課程好好學,這些都是基礎,尤其是資料結構、計算機網路、作業系統、組成原理等,以下對於這四門課程具體學習路線介紹,供參考。

如何學好資料結構

1。閱讀書籍

一定要看書,一定要看書。資料結構和語言不一樣,他不是鍛鍊我們程式設計能力,更多時候考察的是我們邏輯問題,也就是一種最佳化。

如果是純小白的話:建議去圖書館借一本大學的比較薄一些的教材《資料結構》,然後建議儘量快的往後學習。如果一個知識點實在不懂,就可以跳過,學習到後面與前面知識點聯絡起來,說不定你會覺得很簡單。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

如果本來就有基礎的話,就可以選擇另一本比較經典的教材。這本書裡面使用的程式碼,不是所謂的虛擬碼,而是正經可以執行的C程式碼,所以新人如果能照著做一遍下來,收穫應該不小。

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

2。看書不懂的同時也可以結合影片進行觀看

3。刷題

不過刷題也是要講究策略的,不能盲目的啊,總結的五個常考模組,每個模組給出了備考知識點,希望對你有用。

一、

線性表

順序表&連結串列

順序表&連結串列面試題

棧/佇列

棧/佇列面試題

字串

二、

樹的相關概念

二叉樹結構

二叉樹相關面試題

堆的操作及運用

三、

搜尋結構

二叉樹搜尋樹

二叉平衡搜尋樹(avl_tree&rb_tree)

雜湊演算法&雜湊表相關概念

雜湊衝突的解決方法

雜湊變形之點陣圖布隆過濾器

海量資料處理相關問題

四、

其他資料結構及演算法

二分查詢

排序演算法

圖的結構表示

深度優先遍歷&廣度優先遍歷

最小生成樹kruskal演算法和prim演算法

圖的單源最短路徑dijkstra演算法

五、

演算法型別(按演算法思想分類)

暴力窮舉法:窮舉所有情況求解。

實際中很通用,簡單粗暴,就像太祖長拳,人人都能會,能解決問題,但是與真正的高手過招,就頹了。

貪心演算法:選擇當下的最優解。

也是一個簡單易懂的演算法,但是不一定是全域性最優解。

分治法:

把一個大的問題分為若干個子問題,然後在子問題繼續向下分,當問題切分到足夠小,直接就能返回結果。

回溯法&分支界定法:回溯法是一種搜尋演算法

,從某個位置按照深度優先搜尋進行搜尋,當找不到問題的求解,就往來時的搜尋路徑往回退尋求其他的求解。

動態規劃:

當最最佳化問題

具有重複子問題和最優子結構

的時候,就是動態規劃出場的時候了。動態規劃演算法的核心就是提供了一個buffer來快取重複子問題的結果,避免避免了遞迴的過程中的大量的重複計算。

在這裡,順帶分享大家我自己整理的資料,我自己入門、進階,乃至最後晉升到專家崗,都是跟著這裡面學的,絕不是網上隨意打包的那種,都是自己需要學到某個方向知識的時候,去網上買的,最後彙總而成。**

匯聚了java、C++、Python、web前端、考研、設計模式、面試、小程式、linux、資料庫、go、資料結構、演算法、機器學習………等主流的程式設計內容,將近有3000G

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

我整理的這些資料大家可以在這裡獲取,對於學習計算機的同學幫助非常大,而且十分系統。

計算機專業46個方向入門進階實戰教程(含下載方式)

如何學好計算機網路

計算機網路相比作業系統好學非常多,因為計算機網路不抽象,你要想知道網路中的細節,你都可以透過抓包來分析,而且不管是手機、個人電腦和伺服器,它們所使用的計算網路協議是一致的。

也就是說,計算機網路不會因為裝置的不同而不同,大家都遵循這一套「規則」來相互通訊,這套規則就是 TCP/IP 網路模型。

TCP/IP 網路參考模型共有

4

層,其中需要我們熟練掌握的是應用層、傳輸層和網路層,至於網路介面層(資料鏈路層和物理層)我們只需要做簡單的瞭解就可以了。

對於應用層,當然重點要熟悉最常見的 HTTP 和 HTTPS,傳輸層 TCP 和 UDP 都要熟悉,網路層要熟悉 IPv4,IPv6 可以做簡單點了解。就從我們常見的事情開始著手。比如, ping 命令可以說在我們判斷網路環境的時候,最常使用的了,你可以先把你電腦 ping 你舍友或同事的電腦的過程中發生的事情都搞明白,這樣就基本知道一個數據包是怎麼轉發的了,於是你就知道了網路層、資料鏈路層和物理層之間是如何工作,如何相互配合的了。

搞明白了 ping 過程,我相信你學起 HTTP 請求過程的時候,會很快就能掌握了,因為網路層以下的工作方式,你在學習 ping 的時候就已經明白了,這時就只需要認真掌握傳輸層中的 TCP 和應用層中的 HTTP 協議,就能搞明白訪問網頁的整個過程了,這也是面試常見的題目了,畢竟它能考察你網路知識的全面性。

重中之重的知識就是 TCP 了,TCP 不管是建立連線、的過程,還是資料傳輸的過程,都不能放過,針對資料可靠傳輸的特性,又可以拆解為超時重新、流量控制、滑動視窗、擁塞控制等等知識點,學完這些只能算對 TCP 有個「

感性

」的認識,另外我們還得知道 Linux 提供的 TCP 核心的引數的作用,這樣才能從容地應對工作中遇到的問題。

如何學好作業系統

除了看書,另外一項非常重要不可或缺的工作就是閱讀原始碼!一邊看書,一邊對照著原始碼學習,這是最直接最高效的學習方式。

不要覺得看作業系統原始碼是個很龐大的工程,自己可能看不下去。首先克服自己心裡的恐懼,作業系統也是人寫的,又不是讓你一口氣看完,你學哪一部分,就看那一部分的,沒有那麼遙不可及,等你透過閱讀原始碼get到了書上寫的某個知識點,那種感覺是非常舒適的。而一旦你習慣了這種舒適,就會形成正向反饋,推動你不斷學習更多知識,也會養成透過原始碼學習和解決問題的良好習慣。

Linux是開源的這地球人都知道,去下載一份原始碼到自己電腦上,然後用sourceinsight這個工具開啟,這個工具便於檢視定位各種資料結構、函式的定義。比如我用它來檢視Windows XP的原始碼:

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?

閱讀原始碼一定要帶著目的性,畢竟,作業系統原始碼的規模是幾千萬行級別。

四、一定要動手實踐

紙上得來終覺淺,絕知此事要躬行!對於大部分人來說,能做到結合看書+原始碼分析,就已經足夠了,對於作業系統的理解就已經達到一定的深度。但如果你想有更進深一步的學習,這還不夠!畢竟,看書也好,看原始碼也好,都是看來的,作業系統真的就如書上和原始碼中描述的那樣嗎?我學習一個東西,絕不聽信書上所言,一定要親自驗證才為真,這樣留下的印象想忘也忘不了。

對於計算機組成原理是,感興趣可以深究,不感興趣,瞭解基本感念即可,建議仔細過一遍!

這四大寶典乃是計算機專業秘籍啊,秘籍在手,天下你有的一種感覺,雖然有點誇張,但是事實就是如此,基礎中的基礎,學好這個,在學新知識的時候,都會感受到他在默默的發揮做用!

學習過程中需要注意的事情

(1)

資料找的多,就是不去看。 現在很多自學的小夥伴總是熱衷於找各種學習資料,雖然資料找的多,可就是不去看。你既然對程式設計感興趣,你就別總是收藏(下載)了資料又讓它們在哪個不為人知的旮旯裡面積灰,你以為收藏了就學會了嘛?當然不可能,不然會有那麼多的培訓機構的崛起?如果你真的想要學好程式設計,那就趕緊將那些學習資料利用起來吧!多去看看那些學習資料,把不懂的知識多過幾遍,這樣才會將這些學習資料發揮了充分的價值。畢竟把理論掌握好了,實踐時,就會輕鬆一些呀!

(2)

只看不練。 相信很多自學的小夥伴會在各種論壇、平臺上看各種技術類影片和文章。可他們也只限於看而已,以為看影片、看文章就能學會?那可就太天真啦!在實際操作過程中,一個大小寫、一個空格都有可能會導致報錯的情況,可見在編寫專案時,需要多麼嚴謹!這麼嚴謹的一個活兒,怎麼可能光是看就會學會呢?

光是看影片、看資料是不夠的,最終還是要多加練習,才會真正理解這些知識,將理論和實踐結合在一起,進步才會更快哦!

總結

汲取理論知識的過程是枯燥的,耐得住寂寞,熬得住別人熬不了的也,持續的學習或許以後就是別人口裡的大聲!加油!如果文章對您有幫助,記得點個贊!

自學計算機該先從什麼開始?如何自學?入門推薦學什麼語言?沉默王二2021-11-18 17:45:07

有一個「計算機夢」的你,作為暫時的小白

該如何入門?

怎樣才能自學好計算機,掌握優質學習資源,最終達到白嫖報班的效果呢

計算機資深人士為大家整理了一些方法

做好筆記,記得收藏哦~