程序員入門(mén)指南
本文作者:futz12 ,szx0427
雖然本人由于多方面原因沒(méi)有選擇計(jì)科/軟工(對(duì)AI和圖形算法的熱愛(ài)),但是根據(jù)多年研究經(jīng)驗(yàn)(業(yè)余的),打算給各位推薦基本相關(guān)的書(shū)和軟件(主要是學(xué)習(xí)思路)。
注意:學(xué)習(xí)編程不一定是搞那些絢麗的界面,開(kāi)發(fā)有趣的游戲。很多有用且享譽(yù)世界的程序并沒(méi)有那些高大上的界面,相反他們?cè)谀瑹o(wú)聞的地方發(fā)揮他們至關(guān)重要的作用。
作為初學(xué)者,所要面對(duì)的是枯燥無(wú)味的程序界面——控制臺(tái)(一個(gè)黑色的框框),不要因?yàn)槟愕男睦锫洳疃艞壛司幊?/strong>
C/C++
C/C++開(kāi)發(fā)算是我比較常用的開(kāi)發(fā)方式,這一方面我比較有發(fā)言權(quán)(桌面開(kāi)發(fā)方向)。C語(yǔ)言本質(zhì)上就是在學(xué)計(jì)算機(jī),了解了C語(yǔ)言的方方面面也就了解了計(jì)算機(jī)的一些基本運(yùn)行原理。C/C++雖然難學(xué),但是基本上學(xué)好了C/C++其他語(yǔ)言都可以速通。
語(yǔ)言入門(mén)
推薦書(shū)目
注意以下推薦的書(shū)均可找到相應(yīng)的電子版(初學(xué)可以對(duì)著電子版來(lái),以免學(xué)不進(jìn)去造成浪費(fèi))
推薦書(shū)目 | 推薦原因 |
---|---|
啊哈C語(yǔ)言 | 是一本非常基礎(chǔ)的C語(yǔ)言教程(面向青少年/兒童的),如果對(duì)計(jì)算機(jī)原理完全沒(méi)有了解的同學(xué)可以看看。 |
Essential C++ | 薄,且能快速入門(mén) |
中學(xué)生計(jì)算機(jī)程序設(shè)計(jì) | 雖然寫(xiě)的不怎么樣,但是可以讓人快速的寫(xiě)出程序并且跑起來(lái) |
推薦網(wǎng)站
推薦網(wǎng)站 | 網(wǎng)址 | 推薦原因 |
---|---|---|
CSDN | https://www.csdn.net/ | 雖然CSDN以他的廣告多,文章抄襲多而臭名昭著。但是CSDN往往可以提供給初學(xué)者快速且準(zhǔn)確的解答。 |
博客園 | https://www.cnblogs.com/ | 博客園則和CSDN相反,博客園文章相對(duì)質(zhì)量比較高,可以基于開(kāi)發(fā)者相對(duì)深入的幫助。同時(shí)博客園也可以作為自己的學(xué)習(xí)日記,把自己的學(xué)習(xí)感悟之類(lèi)的寫(xiě)上去。(順便給自己博客園主頁(yè)打個(gè)廣告:https://www.cnblogs.com/Icys)。 |
百度 | https://www.baidu.com | 同樣的,百度在一些編程老手口中是臭名昭著的,一個(gè)是他的廣告,另一個(gè)是作為一個(gè)中文搜索引擎沒(méi)法獲得英文的一手資料。但是,由于新手沒(méi)法準(zhǔn)確的表達(dá)自己的問(wèn)題,百度可以提供更適合新手的答案。新手遇到的99%問(wèn)題可以通過(guò)百度解決,善用百度。 |
必應(yīng) | https://cn.bing.com/ | 必應(yīng)和百度相對(duì)。必應(yīng)可以提供更多的國(guó)外一手資料,但是他的搜索結(jié)果對(duì)新人可能不是很友好。 |
洛谷 | https://www.luogu.com.cn/ | 在洛谷可以提高自己構(gòu)造代碼的能力,提高邏輯思維能力 |
推薦工具
推薦工具 | 推薦原因 |
---|---|
DevC++ 4.9.9.2 | DevC++因?yàn)楹凸ぷ髅摴?jié)為人詬病,但是作為初學(xué)者,想快速的把代碼跑起來(lái),DevC++是你的不二之選。 |
虛擬機(jī)(VirtualBox) | 虛擬機(jī)是一種在電腦里運(yùn)行另一個(gè)電腦系統(tǒng)的軟件(主要就是為了折騰,只有充分了解電腦和電腦系統(tǒng)才能更好的編程)。 |
Linux系統(tǒng)(需要對(duì)Windows有一定的基本功) | 使用Linux對(duì)于初學(xué)者最大的好處就是折騰新手,在折騰的過(guò)程中可以提高自己對(duì)電腦的使用能力,更能了解系統(tǒng),軟件之間的關(guān)系。Linux系統(tǒng)有很多種,這里推薦的是Ubuntu和Fedora(最好是在虛擬機(jī)里運(yùn)行,對(duì)自己折騰能力極為自信的可以找臺(tái)電腦試著安裝一下)。如果您是Win10/11用戶(hù)可以試一下微軟的WSL1(注意是1而不是2)。在Linux下您可以學(xué)到終端的用法,這是您未來(lái)長(zhǎng)期需要使用的工具。作為一個(gè)合格的程序員不是說(shuō)你會(huì)多少編程語(yǔ)言,最重要的是你解決問(wèn)題的能力,而在折騰中就是在鍛煉你的耐挫,解決問(wèn)題的能力。試著在Linux上生存一段時(shí)間吧! |
語(yǔ)言進(jìn)階
在完成語(yǔ)言入門(mén)的時(shí)候,想必大家已經(jīng)擁有了一部分的編碼能力。這時(shí)候需要將基礎(chǔ)的編碼能力開(kāi)始向開(kāi)發(fā)項(xiàng)目轉(zhuǎn)變。
在進(jìn)階階段,我們需要進(jìn)一步了解C/C++的語(yǔ)言特性,包括函數(shù)反映到計(jì)算機(jī)底層是什么,C++ STL/Boost,IDE是如何完成編譯任務(wù)的,如何使用命令行調(diào)試工具,C/C++相對(duì)其他語(yǔ)言的本質(zhì)區(qū)別是什么,清楚C++的class,模板,多態(tài)繼承,不得不承認(rèn)這是一個(gè)極為困難的過(guò)程。
推薦書(shū)目
推薦書(shū)目 | 推薦原因 |
---|---|
C++ Primer | C++的百科全書(shū),關(guān)于C++的一切都在上面(其實(shí)也不過(guò)是冰山一角)。 |
Effective C++ | 讓你更好的了解C++應(yīng)該怎么寫(xiě)。 |
算法導(dǎo)論 | 雖然和C++無(wú)關(guān),但是在進(jìn)階階段,你需要強(qiáng)硬的算法功底才能寫(xiě)出優(yōu)秀高效的程序(你面試反正是要)。 |
Windows 程序設(shè)計(jì)(選) | 很老的一本書(shū)了,Windows是一個(gè)使用范圍很大的系統(tǒng),掌握Windows編程可以方便以后使用其他類(lèi)庫(kù)的能力。學(xué)習(xí)這本書(shū)可以讓你快速(相對(duì)的)寫(xiě)起一個(gè)程序。但是不要使用配套版本的VS工具(盡量使用最新版,這樣做可能會(huì)使得您寸步難行,但是請(qǐng)不要放棄)。 |
很少,對(duì)嗎。/xyx
推薦網(wǎng)站
推薦網(wǎng)站 | 網(wǎng)址 | 推薦原因 |
---|---|---|
CSDN | 同上 | 你以為你入門(mén)了就可以看不起用CSDN嗎? |
博客園 | 同上 | 博客園學(xué)算法很合適。 |
百度/必應(yīng) | 同上 | 該用還得用。 |
Stack Overflow | https://stackoverflow.co/ | 一個(gè)外國(guó)的網(wǎng)站,可以用英文找到您遇到的問(wèn)題以及解決方法。 |
Leet Code | https://leetcode.cn/problemset/all/ | 程序員也需要刷題,在洛谷上做完基礎(chǔ)的題目后就來(lái)這里,做多線(xiàn)程之類(lèi)更符合項(xiàng)目的題目,提高自己建模的能力。 |
推薦工具
推薦工具 | 推薦原因 |
---|---|
GCC(Mingw)/MSVC | 這里指的是編譯器(g++.exe,cl.exe)請(qǐng)使用命令行去編譯你寫(xiě)的程序(多個(gè)cpp文件的程序,盡量不使用IDE),我見(jiàn)過(guò)很多大四學(xué)生也不知道怎么添加 include,為什么要添加lib,反正各種雜七雜八的問(wèn)題,很多人拿著python的思維,以為一個(gè)import就能開(kāi)始寫(xiě)代碼了(C++ 馬上也能這樣了,盡請(qǐng)期待)。歸根結(jié)底就是被IDE保護(hù)太好了。 |
CMake | 去編譯幾個(gè)軟件來(lái)折磨一下自己,比如OpenCV,Boost,7-Zip等。 |
Visual Studio Code + CMake插件 | 寫(xiě)小程序我建議用這玩意,折磨一下自己 |
Visual Studio | 很好用,但是請(qǐng)少用 |
Clion(作為大學(xué)生您應(yīng)該可以免費(fèi)使用該工具) | 很好用,但是請(qǐng)少用 |
這時(shí)候你寫(xiě)的程序就應(yīng)該開(kāi)始使用到 C/C++ 庫(kù)命令以外的東西了,比如 Windows.h 等,開(kāi)始學(xué)習(xí)多線(xiàn)程等。
走向項(xiàng)目
推薦書(shū)目
這里開(kāi)始其實(shí)基本不需要書(shū)了,絕大多數(shù)網(wǎng)上的英文資料您應(yīng)該開(kāi)始著手消化了。比如您的程序需要圖像處理功能,用到了OpenCV,這時(shí)候您的最佳選擇不是網(wǎng)上買(mǎi)一本OpenCV的書(shū),而是去OpenCV的官方網(wǎng)站上看它提供的官方文檔。
推薦網(wǎng)站
推薦網(wǎng)站 | 網(wǎng)址 | 推薦原因 |
---|---|---|
同進(jìn)階 | 同進(jìn)階 | 同進(jìn)階 |
各種Docs | 很多,看你用什么工具,OpenCV就看OpenCV的,Windows就看MS Docs | 當(dāng)一個(gè)字典查,要有耐心 |
各種開(kāi)發(fā)社區(qū) | 同上 | 在交流中成長(zhǎng) |
GitHub | https://github.com | 當(dāng)您開(kāi)始寫(xiě)項(xiàng)目的時(shí)候可以去上面看看別人的是怎么寫(xiě)的代碼的,作為一個(gè)程序員您應(yīng)該去看看,在這個(gè)階段相信您能找到優(yōu)雅的上這個(gè)網(wǎng)站的方法。(給自己Github打個(gè)廣告:https://gtihub.com/futz12) |
知乎 | https://www.zhihu.com | 前面不推薦的原因是因?yàn)樯厦娲罄腥缭?,大佬說(shuō)的是正確的,但是未必是適合你的。但是現(xiàn)在您已經(jīng)掌握了基本的代碼能力,可以上知乎開(kāi)拓一下視野了,比如C++新標(biāo)準(zhǔn),OpenMP能實(shí)現(xiàn)什么騷操作。 |
推薦工具
推薦工具 | 推薦原因 |
---|---|
Visual Studio | 您已經(jīng)是個(gè)成熟的大學(xué)生了,如果您在Windows上編程,VS是一個(gè)明智的選擇 |
Clion(作為大學(xué)生您應(yīng)該白嫖這個(gè)工具) | 這也是個(gè)明智的選擇 |
Qt | 想寫(xiě)窗口程序了?想寫(xiě)手機(jī)程序了?想讓自己程序被別人看到?可以試試看 |
Android Studio(需要會(huì)Java) | 寫(xiě)手機(jī)程序(安卓) |
其他編程語(yǔ)言
說(shuō)實(shí)話(huà),不是很了解,不在這誤人子弟了
后記
筆者也不過(guò)是個(gè)高中畢業(yè)生而已,只不過(guò)是掌握了一些對(duì)于同齡人的信息差,不算是編程高手,更不是頂尖一線(xiàn)專(zhuān)家,只是想給走入這個(gè)我熱愛(ài)的行業(yè)的同學(xué)一點(diǎn)幫助,寫(xiě)出來(lái)的內(nèi)容未必正確,僅供參考。
-
值得注意的是,成為一個(gè)合格的程序員,并不是要掌握更多的編程技能,而是如何更好的解決問(wèn)題。學(xué)會(huì)了編程只不過(guò)是一個(gè)結(jié)果,而您的目的是解決問(wèn)題。
-
在學(xué)習(xí)過(guò)程中,除了您身邊的同伴以外,為了謀求更長(zhǎng)遠(yuǎn)的進(jìn)步,您可能需要在網(wǎng)上尋求志同道合的伙伴。但是也不要過(guò)度沉迷于網(wǎng)絡(luò)社交(本人就是)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-622462.html
-
也不要養(yǎng)成所謂的鄙視鏈,不要進(jìn)所謂的編程群(進(jìn)那種解決實(shí)際項(xiàng)目需求的,給自己的QQ群打個(gè)廣告:904511841)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-622462.html

- 多去打打筆試,藍(lán)橋杯,ACM都可以,可以增強(qiáng)自己的競(jìng)爭(zhēng)力。
到了這里,關(guān)于程序員入門(mén)指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!