欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

自學計算機前需要準備什么

錢衛國2年前20瀏覽0評論

自學計算機前需要準備什么?

學習路線

首先需要對計算機科學和計算機產業進行總體的認識,可以通過閱讀計算機導論有關的書籍進行了解。

在對計算機概論有一個比較全面的了解后,我們最先需要的就是掌握一門編程語言,同時學好數學。在大學的計算機專業中,這兩部分往往安排在大一至大二。

關于初學者第一門編程語言,比較常見的有這幾種:

C:國內大多高校所普遍使用的入門語言。JAVA/C#:兩者都是很典型的面向對象的編程語言,后期的課程如數據結構與算法也有不少學校使用其作為范例編程語言。 JAVA 有很多非常活躍的開源社區與數不盡的開發者為其提供代碼以供學習。而 C# 的背后則是 IT 巨頭微軟,并且 C# 的語法糖被很多新生語言所借鑒,如 Google 現今的官方開發語言 kotlin。Python:典型的動態語言,國內一部門高校所選用的新興入門語言,應用極為廣泛。尤其是現今的大數據與人工智能時代,更加離不開 Python。

這些編程語言的均可以通過書籍與視頻結合的學習方法。關于學習的書籍和視頻網上已經有很多了,這里就不做贅述。

計算機專業必須掌握的四門數學課程,包括高等數學、離散數學、線性代數、概率論與數理統計。為什么要學數學?因為具備基本的數學能力是對所有計算機專業人員的基本要求。在實際開發項目中,對程序員的數學功底要求其實并不高,很多框架的底層都有強大的算法作為支撐,但初級程序員并不需要完全理解這些算法。對于初級程序員來說,僅僅需要有高中的數學基礎加上一些數據結構的知識就行了。但對于中高級程序員來說,則必須基本良好的數學功底,尤其是需要使用一些特定技術進行開發,建模或者設計相關算法,例如現今比較流行的人工智能,它的實現就需要強大的 AI 算法——這意味的技術水平的提高,學習領域的深入,所需要的數學功底也是逐漸提高的。

本人以前覺得只要掌握大學中所學的數學就足夠了,然而在深入學習中卻發現大學中所學的數學基礎課程還遠遠不夠用于開發,例如我在學習 unity 的過程中,經常碰到三維向量,歐拉角與四元數等等,為了理解這些東西,我重新回過頭來學習了一遍計算機圖形學中的 3D 數學。

國內的大部分數學教材,往往只講相關的法則定理證明等等理論知識,而不會涉及到其發展歷史和具體應用,不強調解決特定問題的思路,文字枯燥,并不適合自學。還有些教材往往寫的過于簡練,比如經常出現“由此可見”,“由此可得”等詞語,本人在自學的過程中對這些詞眼極為頭疼,于是便放棄了使用國內的教材。

這里可以參考知乎上@周筠 的回答:計算機系的高數,離散,線代都是用在哪些方面的? - 周筠的回答 - 知乎,講的很不錯。

在掌握了編程語言與數學基礎后,就可以進入專業基礎課和一些使用技術的學習。各個學校的計算機專業基礎課都大同小異,總數有十多門。但最重要的就是以下四門科目,也是計算機專業學生的考研科目——數據結構與算法、計算機組成原理、操作系統、計算機網絡。同樣采用視頻與教材結合的方式。

數據結構與算法:參考書籍:機械工業出版社的 《算法基礎 打開算法之門》和《算法導論》

公開課:麻省理工學院公開課:算法導論

Data Structures ? 數據結構

計算機組成原理:這門課可以用兩個字概括——抽象。對于在校大學生,我們不需要(也不可能)完整的理解它,因此可以把它和操作系統這門課結合起來學習。參考書籍:人民郵電出版社的《計算機組成:結構化方法》

公開課:計算機組成原理

操作系統:

參考書籍:中國電力出版社的《深入理解計算機系統》

公開課:浙江大學操作系統 38 講

操作系統原理

計算機網絡:這門課應該從上層往下層學習,而且需要通過實驗以加深理解。

參考書籍:《計算機網絡教程:自頂向下方法》

公開課:哈工大的 計算機網絡

計算機網絡基礎

作為大學生,以上科目可以先完整的看一遍教學視頻,配合參考書籍和學校的教程進一步學習,重點還是在學習的過程中多去實踐。在學習理論科目的同時,我們可以學習一些相關的實用技術,如各種流行的開發框架和工具等來加深理解。

在完成了以上學習后,就進入了一個新的自學階段,這一階段的學習就可以針對你感興趣的特定領域進行了解和學習。比如人工智能,物聯網,大數據,web 開發,游戲開發等等。這一階段的學習目的非常明確,就是培養特定領域的專業編程技能,從而能夠選擇進入相關領域繼續研究(考研考博)或者進入參加。

最重要的一點是:你需要打好扎實的基礎。其實在很多大公司眼里,新人只是一張能夠吸墨的白紙,你的基礎扎實程度就代表你能夠吸收多少墨汁。所以在大學期間,不要過分追求項目經驗。但這并不代表著你不需要對所學的知識加以實踐,只是相比“怎么做”,你更加需要明白“為什么”。