關(guān)于學(xué)習(xí)路線的推薦,總體上,分兩步學(xué)習(xí),第一步學(xué)習(xí)編程語(yǔ)言(C、C++、java),第二步是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法
不少初學(xué)者會(huì)選擇C語(yǔ)言或C++作為首選,筆者這里也推薦C或C++作為入門,需要注意的是,即便C++入門,也是C風(fēng)格的學(xué)習(xí),即不需要學(xué)習(xí)面向?qū)ο蟛糠?還沒有編程基礎(chǔ)的同學(xué)建議先學(xué)C語(yǔ)言教程、C++教程
1 從Hello, World!開始學(xué)習(xí)輸入輸出
切記一定要刷題再往后學(xué),沒錯(cuò),你沒有看錯(cuò),學(xué)了HelloWorld就可以做題,如1001題,我打賭你可能不會(huì)一次就通過(guò)!
2 變量與運(yùn)算
了解變量定義,賦值,接收等操作,算數(shù)、關(guān)系、邏輯運(yùn)算符等,從而可以實(shí)現(xiàn)各種數(shù)學(xué)運(yùn)算,公式的計(jì)算等等
再看到任何數(shù)學(xué)公式類的問(wèn)題都可以輕易解決。
3 分支、循環(huán)流程控制
學(xué)習(xí)switch、if else、while、do while、for等選擇分支和循環(huán)結(jié)構(gòu),從而可以隨意控制程序的走向。尤其可以靈活使用循環(huán)套循環(huán),循環(huán)和選擇結(jié)構(gòu)嵌套組合的情形,應(yīng)對(duì)復(fù)雜的問(wèn)題處理。學(xué)到此,就幾乎解鎖了絕大部分的題目,建議學(xué)習(xí)完之后停留,預(yù)留大量的時(shí)間進(jìn)行大量的刷題鞏固
4 數(shù)組與結(jié)構(gòu)體
數(shù)組的掌握可以讓你更從容的處理更多的數(shù)據(jù),尤其字符類型的數(shù)組,是絕大多數(shù)字符串問(wèn)題解決的根本,這里尤其重點(diǎn)掌握,尤其掌握字符串(一維數(shù)組)、多個(gè)字符串(二維數(shù)組)的使用,及常用字符串函數(shù)的使用,這些可以讓你輕松解決各種字符串問(wèn)題,以及更方便的處理復(fù)雜問(wèn)題。C語(yǔ)言學(xué)習(xí)同學(xué)要熟練學(xué)習(xí)string.h頭文件下的str打頭的各種字符串處理函數(shù);對(duì)于C++學(xué)習(xí)的同學(xué),則需要熟悉string類的常用方法,這些會(huì)讓你如虎添翼。
同時(shí),這里就可以學(xué)習(xí)冒泡、快速排序等基本排序算法了
結(jié)構(gòu)體亦是如此,它和指針的將會(huì)是后面各種數(shù)據(jù)結(jié)構(gòu)(鏈?zhǔn)浇Y(jié)構(gòu)、樹等等)組成的基本。
5 函數(shù)與遞歸
函數(shù)定義、調(diào)用、返回值的使用是必須的。除此之外,調(diào)用本身就會(huì)產(chǎn)生新的算法,即遞歸
6.其他
筆者這里建議大家其他的知識(shí),如宏定義、枚舉以及一些語(yǔ)言特性,不需要專門的學(xué)習(xí),通過(guò)刷題、敲代碼的過(guò)程中需要什么學(xué)什么即可。
大家可以發(fā)現(xiàn),在大致的語(yǔ)法學(xué)習(xí)過(guò)程中,我們就會(huì)不自覺的接觸常用的算法和數(shù)據(jù)結(jié)構(gòu),比如排序算法、遞歸算法,簡(jiǎn)單的模擬、遍歷的算法。數(shù)組這種順序結(jié)構(gòu),用數(shù)組存儲(chǔ)部分結(jié)果,以空間換時(shí)間等思想就會(huì)慢慢積攢下來(lái),這都是刷題的結(jié)果。因此極力的建議大家不要太著急學(xué)習(xí)高級(jí)的算法和數(shù)據(jù)結(jié)構(gòu),因?yàn)闆]有前面介紹的那些東西做基礎(chǔ),以及沒有足夠的刷題量,許多算法和數(shù)據(jù)結(jié)構(gòu)的思想你很難理解消化。反而會(huì)拉長(zhǎng)時(shí)間。
別忘了,你面對(duì)的是上機(jī)編碼解決問(wèn)題的競(jìng)賽!
1001 | [編程入門]第一個(gè)HelloWorld程序 |
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語(yǔ)法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程