綜述
計算機(jī)編程核心,或者說以后面對找工作,主要是以下幾個大類的基礎(chǔ)非常重要。
- 面向?qū)ο缶幊趟枷?/li>
- 算法
- 計算機(jī)網(wǎng)絡(luò)與網(wǎng)絡(luò)編程
- 操作系統(tǒng)
- 并發(fā)編程
- 人工智能與大模型
當(dāng)然計算機(jī)會分為幾個大方向,比如前端、后端、客戶端等,但是考慮到技術(shù)深度和可成長性,個人推薦還是深入做后端研發(fā)。后端研發(fā)會包含非常廣泛,包括常見等后端開發(fā)、大數(shù)據(jù)開發(fā)、大數(shù)據(jù)分析、搜廣推算法等。
計算機(jī)和其他基礎(chǔ)學(xué)科一樣,基礎(chǔ)很重要,而且很多時候需要了解一些數(shù)學(xué)知識,系統(tǒng)化的很多知識會在你們大學(xué)課綱里面體現(xiàn),我這里不做非常詳細(xì)闡述。大學(xué)本身的大綱是一個循序漸進(jìn)適合絕大部分學(xué)生學(xué)習(xí)路線且以基礎(chǔ)為主,但是很多時候沒有配套足夠的實驗和動手,導(dǎo)致學(xué)習(xí)理解不夠深入。我這的重點(diǎn)是以以后工作的角度,分享編程或者說工程師的核心鏈路來串出的學(xué)習(xí)路徑。
所以一開始我考慮的路線首先是語言為主路線,以語言串出各種輔助技能。一般情況,必須要掌握好C語言,他是高級語言中最基礎(chǔ)的,且能很好的契合匯編甚至機(jī)器語言(匯編會在你們的單片機(jī)課程里面學(xué)習(xí),會讓你們非常深刻的課程)。
所以咱一般來講,先學(xué)C語言,再學(xué)C++(C++比較難,需要的計算機(jī)知識非常多,構(gòu)建很復(fù)雜),再學(xué)一些高級語言(Java Python Golang,Java的實用性會比較多,Golang有C++基礎(chǔ)會非常簡單)。以語言為主,語言是工具,逐步豐富知識面。其中需要周期性聯(lián)系編程能力和算法能力,leetcode就是一個很好的練習(xí)平臺。
同時也建議去參加一些學(xué)校的技術(shù)團(tuán)隊,去打一些比賽,包括機(jī)器人或者編程相關(guān)的,這些幫助會非常大,計算機(jī)的學(xué)習(xí)最核心的就是需要結(jié)合項目多練,干中學(xué),這樣效率才高理解才會深刻。
學(xué)習(xí)路線
step1 初步了解計算機(jī)
目標(biāo):
- 對于計算機(jī)與發(fā)展史有個簡單了解,且對于當(dāng)下計算機(jī)的發(fā)展以及普及度有一定的認(rèn)知
- 初步了解計算機(jī)基礎(chǔ)組成,運(yùn)作規(guī)律 (很多程序員可能覺得沒啥用,但是其實用處很大,對于并發(fā)編程和操作系統(tǒng)設(shè)計會有跟深刻的理解,比如因為CPU的處理幾級緩存帶來的一致性問題等)
- 開始了解計算機(jī)語言和思想
學(xué)習(xí)參考:
B站 計算機(jī)基礎(chǔ)
B站計算機(jī)基礎(chǔ)2
B站0基礎(chǔ)了解計算機(jī)組成原理
大學(xué)計算機(jī)基礎(chǔ)教材
step2 構(gòu)建基礎(chǔ)編程環(huán)境,學(xué)習(xí)C語言
目標(biāo):
- 嘗試學(xué)會使用linux操作系統(tǒng)與命令行工具
- 學(xué)會C語言基礎(chǔ)語法和編程邏輯
- 學(xué)會C語言構(gòu)建工具,并嘗試?yán)斫釳akefile(現(xiàn)在行業(yè)比較工業(yè)化的構(gòu)建,都不寫Makefile了,這種效率很低,但是可以掌握基礎(chǔ))
- 開始了解操作系統(tǒng)和程序的關(guān)系
- 開始了解多線程編程,理解多線程和進(jìn)程的關(guān)系。嘗試開始了解操作系統(tǒng)
學(xué)習(xí)參考:
- wubi 搭建 ubuntu操作系統(tǒng) ubuntu, 百度搜一下
-
C語言:(只需要看前兩本書即可,C語言本身東西并不多,設(shè)計也不復(fù)雜)
- 《C Primer Plus》
- 《C和指針》
- 《C陷阱與缺陷》(選讀)
-《C專家編程》(選讀)
B站上找一個播放較高的視頻看看
嘗試Ubuntu環(huán)境命令行編寫C語言代碼,用gcc構(gòu)建程序,并運(yùn)行 深入理解gcc構(gòu)建
[更新到這里,持續(xù)更新中.....]
- 數(shù)據(jù)結(jié)構(gòu)
- 編程范式
- 系統(tǒng)使用:《鳥哥的Linux私房菜》
step3 C++學(xué)習(xí)與深入理解操作系統(tǒng)
step4 算法基礎(chǔ)
學(xué)習(xí)參考:
- 數(shù)據(jù)結(jié)構(gòu)與算法
- 算法導(dǎo)論,麻省理工課程與書籍
開始每周leetcode刷題 1-3道
step5 機(jī)器學(xué)習(xí)與高級編程
學(xué)習(xí)參考:
- unix 環(huán)境編程
- unix 網(wǎng)絡(luò)編程
- 并發(fā)編程
- 吳恩達(dá)機(jī)器學(xué)習(xí)
- 臺大深度學(xué)習(xí)課程
- AIGC理論
參考書與學(xué)習(xí)視頻
網(wǎng)上的公共資源非常多,包括B站、網(wǎng)易公開課、各種書籍資源中國國家圖書管 知乎下載渠道