大家好,我是辣條。
目錄
一、C/C++入門(mén)階段
學(xué)習(xí)視頻推薦:C++入門(mén)基礎(chǔ)【B站 小甲魚(yú)】
二、C/C++開(kāi)發(fā)進(jìn)階
學(xué)習(xí)視頻推薦:C++進(jìn)階【慕課網(wǎng) 免費(fèi)課】
三、C++開(kāi)發(fā)高級(jí)
視頻教程:程序設(shè)計(jì)【我國(guó)大學(xué)MOOC 】
四、操作系統(tǒng)
教程鏈接:6.828 :操作系統(tǒng)工程
五、數(shù)據(jù)庫(kù)
視頻教程:MySQL數(shù)據(jù)庫(kù)從入門(mén)到實(shí)戰(zhàn)課【CSDN 課程】
六、計(jì)算機(jī)網(wǎng)絡(luò)
教程鏈接:計(jì)算機(jī)網(wǎng)絡(luò)試題【牛客網(wǎng)】
最近在某乎上看到這個(gè)問(wèn)題,他的問(wèn)題如下:
985末流計(jì)算機(jī)大一,一直跟著學(xué)校走,上學(xué)期學(xué)c語(yǔ)言,下學(xué)期學(xué)面向?qū)ο螅杏X(jué)學(xué)完之后只會(huì)寫(xiě)點(diǎn)簡(jiǎn)單的數(shù)學(xué)題或者簡(jiǎn)單的管理系統(tǒng)什么的。甚至都不知道什么是配置環(huán)境。但是身邊的同學(xué)很多都可以寫(xiě)頁(yè)面豐富的游戲或者網(wǎng)站了,甚至還有做項(xiàng)目的。是我太菜了嗎?想自學(xué)還沒(méi)有方向,什么web前端、github我都不知道是什么,前端后端什么的也不清楚,請(qǐng)問(wèn)怎么樣才能自學(xué)提升自己的編程能力?
好家伙,看到這個(gè)問(wèn)題竟不知道怎么回答,我也不是科班的, 怎么提升我也不知道,怎么給你整理一些學(xué)習(xí)內(nèi)容給你,多看多練多做。
一、C/C++入門(mén)階段
學(xué)習(xí)視頻推薦:C++入門(mén)基礎(chǔ)【B站 小甲魚(yú)】
剛?cè)腴T(mén)的時(shí)候我們主要是學(xué)習(xí)培養(yǎng)編程思維和動(dòng)手能力,深刻理解面向過(guò)程和面向?qū)ο蟮乃枷敕椒ǎ@對(duì)以后的程序員之路非常重要!
所以學(xué)習(xí)語(yǔ)言更為重要:
面向?qū)ο缶幊趟枷耄活?lèi)的封裝,構(gòu)造和析構(gòu)、靜態(tài)成員、對(duì)象管理;類(lèi)的構(gòu)造(有參構(gòu)造函數(shù)、無(wú)參構(gòu)造、拷貝構(gòu)造、默認(rèn)構(gòu)造函數(shù))和析構(gòu);對(duì)象動(dòng)態(tài)管理、友元函數(shù)、友元類(lèi)、操作符重載; C++編譯器對(duì)象管理模型分析;類(lèi)對(duì)象的動(dòng)態(tài)管理(new/delete);友元函數(shù)和友元類(lèi);運(yùn)算符重載(一元運(yùn)算符、二元運(yùn)算符、運(yùn)算符重載難點(diǎn)、項(xiàng)目開(kāi)發(fā)中的運(yùn)算符重載);類(lèi)的繼承、多繼承及其二義性、虛繼承;多態(tài)(概念、意義、原理剖析、多態(tài)案例);虛函數(shù)、純虛函數(shù)、抽象類(lèi)(面向抽象類(lèi)編程思想案例);函數(shù)模板、類(lèi)模板,模板的繼承。
C++類(lèi)型轉(zhuǎn)換;C++輸入輸出流(標(biāo)準(zhǔn)I/O 文件I/O 字符流I/O);C++異常處理(異常機(jī)制、異常類(lèi)型、異常變量、異常層次結(jié)構(gòu)、標(biāo)準(zhǔn)異常庫(kù));利用一些IDE開(kāi)發(fā)工具:諸如Windows平臺(tái)VC系列:VC++6.0(比較古老) ;Visual Studio2013, Visual Studio2015,Visual Studio2017,Visual Studio2019;Mac平臺(tái)的XCode系列,還有CodeBlock,另附一些高級(jí)編輯器Notepad++, EditPlus,UE等一些開(kāi)發(fā)工具的常用設(shè)置和一些常見(jiàn)快捷鍵的使用。
這個(gè)階段推薦以下兩本書(shū):
《Essential C++》 這是一本內(nèi)容不多但很實(shí)用的C++入門(mén)書(shū)籍,強(qiáng)調(diào)快速上手與理解C++編程。本書(shū)主要圍繞一系列逐漸復(fù)雜的程序問(wèn)題,以及用以解決這些問(wèn)題的語(yǔ)言特性展開(kāi)講解。你不只學(xué)到C++的函數(shù)和結(jié)構(gòu),也會(huì)學(xué)習(xí)到她們的設(shè)計(jì)目的和基本原理。
?
《C++ Primer》 本書(shū)對(duì)C++基本概念、技術(shù)、以及現(xiàn)代C++編程風(fēng)格進(jìn)行了全面而且權(quán)威的闡述,是C++初學(xué)者的最佳指南;本書(shū)可以幫助你編寫(xiě)實(shí)用的程序,而無(wú)需首先精通每個(gè)語(yǔ)言細(xì)節(jié)。對(duì)于中高級(jí)程序員,本書(shū)也是不可或缺的參考書(shū)。
?
二、C/C++開(kāi)發(fā)進(jìn)階
學(xué)習(xí)視頻推薦:C++進(jìn)階【慕課網(wǎng) 免費(fèi)課】
在第二階段學(xué)習(xí)的時(shí)候,就是比較重要的了,C++開(kāi)發(fā)的進(jìn)階之路,更是一個(gè)讓自己找份薪水比較體面的工作的籌碼。
C++進(jìn)階之STL:
STL = Standard Template Library,即標(biāo)準(zhǔn)模板庫(kù)。這是提高開(kāi)發(fā)效率的極品工具。通過(guò)學(xué)習(xí)此階段,應(yīng)掌握泛型編程技巧,理解容器類(lèi)在C++語(yǔ)言中的應(yīng)用模式,以及熟練掌握全部STL類(lèi)的使用方法。
C++進(jìn)階之設(shè)計(jì)模式:
決定一個(gè)項(xiàng)目成敗最重要的因素是項(xiàng)目總體的設(shè)計(jì),通過(guò)本階段的學(xué)習(xí),可掌握面向?qū)ο缶幊讨兄匾囊画h(huán),是編碼前建模的技巧所在。單例模式;工廠模式;代理模式;迭代模式等,這些都是你要掌握的哦。
C++進(jìn)階之?dāng)?shù)據(jù)結(jié)構(gòu)基礎(chǔ):
這是所有編程語(yǔ)言中最應(yīng)該學(xué)習(xí)的部分,程序組成的基礎(chǔ)之一。順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)、循環(huán)鏈表;
雙向鏈表、棧(順序和鏈?zhǔn)?、隊(duì)列(順序和鏈?zhǔn)?;
棧的應(yīng)用、樹(shù)基本概念及遍歷、二叉樹(shù);
排序算法、并歸算法、選擇、插入、快速、希爾。
這個(gè)階段推薦以下幾本書(shū):
《Effective C++》和《More effective C++》 作者是Scott Meyers。你應(yīng)該熟讀她們,并清楚地理解每個(gè)項(xiàng)目。該書(shū)圍繞55條準(zhǔn)則,每一條都介紹了一個(gè)可讓你寫(xiě)出更好的C++程序代碼的方法,并以特別設(shè)計(jì)過(guò)的例子詳加討論。
?
《Exceptional C++(C++編程剖析)》和《More exceptional C++》 這兩本書(shū)中都包含了40個(gè)C++編程問(wèn)題,這些問(wèn)題會(huì)讓你磨練自己的技能,最終成為優(yōu)秀的C++程序員。這些問(wèn)題是Herb Sutter精心挑選,與ISO/ANSI C++官方標(biāo)準(zhǔn)相一致,幫助程序員在設(shè)計(jì)、架構(gòu)和編碼過(guò)程中保持良好的風(fēng)格,從而使編寫(xiě)的C++軟件更健壯、更高效。
?
《Inside the C++ object model(深度探索C++對(duì)象模型)》 本書(shū)專(zhuān)注于C++面向?qū)ο蟪绦蛟O(shè)計(jì)的底層機(jī)制,包括結(jié)構(gòu)式語(yǔ)意、臨時(shí)性對(duì)象的生成、封裝、繼承,以及虛擬——虛擬函數(shù)和虛擬繼承,幫助你理解程序的底層實(shí)現(xiàn),以便寫(xiě)出更高效的代碼。
?
《The design and evolution of C++(C++語(yǔ)言的設(shè)計(jì)與演化)》 本書(shū)作者也是C++語(yǔ)言的設(shè)計(jì)者Bjarne Stroustrup,作者在書(shū)中綜合性地介紹了C++的發(fā)展歷史,C++中各種重要機(jī)制的本質(zhì)意義和設(shè)計(jì)背景,這些機(jī)制的基本用途和使用方法,討論了C++所適合的應(yīng)用領(lǐng)域及其未來(lái)的發(fā)展前景,既沒(méi)有忽略關(guān)鍵性的詳情,又沒(méi)有過(guò)多地陷入技術(shù)細(xì)節(jié)。
?
三、C++開(kāi)發(fā)高級(jí)
視頻教程:程序設(shè)計(jì)【我國(guó)大學(xué)MOOC 】
這個(gè)階段幾乎伴隨了職場(chǎng)后續(xù)的整個(gè)生涯,只有更精沒(méi)有最精,C++高手之路,任重道遠(yuǎn)!
這個(gè)階段需要掌握的一些C++技能:
C++進(jìn)階之QT開(kāi)發(fā):
掌握QT類(lèi)庫(kù)構(gòu)架,圖形界面開(kāi)發(fā)模型;掌握QT開(kāi)發(fā)技巧,消息機(jī)制,圖形處理;掌握QT網(wǎng)絡(luò)編程,UDP,TCP使用方式;掌握QT文件處理方式,序列化;掌握QT在windows,linux,ios,android不同平臺(tái)下的移植技術(shù)
C++進(jìn)階之Windows/Linux網(wǎng)絡(luò)服務(wù)器:
掌握Unix/Linux平臺(tái)開(kāi)發(fā)方式;熟練使用系統(tǒng)調(diào)用;熟練Unix/Linux內(nèi)存管理,進(jìn)程,線程調(diào)度;掌握MFC界面開(kāi)發(fā),網(wǎng)絡(luò)編程;熟悉網(wǎng)絡(luò)服務(wù)器開(kāi)發(fā)方式,熟練編寫(xiě)TCP,UCP網(wǎng)絡(luò)服務(wù)程序;掌握同步/異步IO模型在網(wǎng)絡(luò)編程中的使用方式。
C++進(jìn)階之?dāng)?shù)據(jù)庫(kù)開(kāi)發(fā):
掌握SQL語(yǔ)言的實(shí)用技巧。Oracle,MySQL數(shù)據(jù)庫(kù)的使用方式。
如果你能熟練掌握以上列出的技能,具備解決復(fù)雜問(wèn)題和技術(shù)難點(diǎn)的能力,而且你能獨(dú)立開(kāi)發(fā)一些比較復(fù)雜的功能模塊,這個(gè)時(shí)候C++基本就沒(méi)有太多能難到你的東西了!
四、操作系統(tǒng)
教程鏈接:6.828 :操作系統(tǒng)工程
國(guó)外有很多優(yōu)秀的操作系統(tǒng)公開(kāi)課,比如mit6.828、哈弗OS/161。這類(lèi)課程都會(huì)給你提供一個(gè)mini os殼程序,相當(dāng)于一個(gè)核心組件,剩下的你可以自由發(fā)揮。比如你可以設(shè)計(jì)線程管理、文件系統(tǒng)等等。相比只是看操作系統(tǒng)的書(shū)籍,這種學(xué)習(xí)方法的效率簡(jiǎn)直高100倍!
?
五、數(shù)據(jù)庫(kù)
視頻教程:MySQL數(shù)據(jù)庫(kù)從入門(mén)到實(shí)戰(zhàn)課【CSDN 課程】
國(guó)內(nèi)說(shuō)數(shù)據(jù)庫(kù)就是mysql,這點(diǎn)要相信我!
首先概覽下mysql的知識(shí)體系:
基礎(chǔ):
調(diào)優(yōu):
核心原理:
架構(gòu)與運(yùn)維:
推薦兩本書(shū):
1.《MySQL必知必會(huì)》 這本書(shū)講的非常全,從基本概念,到查詢(xún)到插入新建表,用戶(hù)的管理,都有具體的例子,非常適合沒(méi)有任何基礎(chǔ)的同學(xué)來(lái)學(xué)習(xí)Mysql,總之這本書(shū)學(xué)習(xí)的方法就是:1、十分鐘了解下數(shù)據(jù)庫(kù)的基本概念 2、找到練手的數(shù)據(jù)庫(kù) 3、對(duì)照著上面的內(nèi)容去敲。本書(shū)里也有大量的內(nèi)容是講sql的,可以結(jié)合w3c的sql教程一起,有取舍地看。
?
2.《數(shù)據(jù)庫(kù)系統(tǒng)概念》這本書(shū)是dba必看的。
?
看完這些并且實(shí)踐+思考之后,可以算入門(mén)了。
接下來(lái)對(duì)于希望深入學(xué)習(xí)的童鞋:
我推薦幾本書(shū)(很多大神都這么推薦),《高性能MySQL(第3版)》、 《MySQL技術(shù)內(nèi)幕(第4版)》,《MySQL技術(shù)內(nèi)幕 InnoDB存儲(chǔ)引擎》,《深入理解MySQL》還有Mysql的官網(wǎng)。讀完這些東西,再加些豐富的經(jīng)驗(yàn),理論上來(lái)講就具備DBA的水平了。
六、計(jì)算機(jī)網(wǎng)絡(luò)
教程鏈接:計(jì)算機(jī)網(wǎng)絡(luò)試題【牛客網(wǎng)】
網(wǎng)絡(luò)知識(shí)工作后非常非常重要!
我分三個(gè)階段來(lái)介紹:
1. 入門(mén)
第一本書(shū) 建議看謝希仁的《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》
?
2.進(jìn)階
然后第二本要看 《TCP/IP詳解1:協(xié)議》,這個(gè)階段需要多思考和動(dòng)手網(wǎng)絡(luò)在LINUX系統(tǒng)上發(fā)揮的最淋漓盡致,所以在學(xué)習(xí)的時(shí)候最好學(xué)習(xí)LINUX配合使用,學(xué)習(xí)LINUX,推薦《鳥(niǎo)哥的LINUX私房菜:基礎(chǔ)篇》。
學(xué)習(xí)網(wǎng)絡(luò)過(guò)程中,要不斷抓包分析等,自己能寫(xiě)些簡(jiǎn)單的應(yīng)用來(lái)發(fā)包更是完美。抓包工具推薦:LINUX環(huán)境下用TCPDUMP,windows環(huán)境下用 wireshark。這個(gè)階段寫(xiě)習(xí)完后,已經(jīng)是個(gè)小高手了。。
主要技能應(yīng)該是 : 對(duì)TCP,IP,DNS,icmp等協(xié)議應(yīng)該都蠻熟了得了,dhcp/tftp/ftp等協(xié)議也應(yīng)該都懂些,重點(diǎn)是要學(xué)會(huì)如何分析一個(gè)協(xié)議及LINUX系統(tǒng)的基本操作也差不多了。
?
3.高手階段
這個(gè)階段需要有一點(diǎn)的編程能力,指C/C++編程。主要學(xué)習(xí)的方向是協(xié)議的實(shí)現(xiàn)和協(xié)議的架構(gòu)原理
協(xié)議的實(shí)現(xiàn)方面, 主要學(xué)習(xí)底層協(xié)議(指?jìng)鬏攲蛹耙韵?的實(shí)現(xiàn), 這些協(xié)議都是在操作系統(tǒng)層面實(shí)現(xiàn)的,最好的教材是《TCP/IP詳解:實(shí)現(xiàn)》。至于網(wǎng)絡(luò)架構(gòu)這塊,可以學(xué)習(xí)《計(jì)算機(jī)網(wǎng)絡(luò)》這本書(shū)。
?
發(fā)現(xiàn)不會(huì)的或者學(xué)習(xí)Python的,可以直接評(píng)論留言或者私我【非常感謝你的點(diǎn)贊、收藏、關(guān)注、評(píng)論,一鍵四連支持】
貼一下互聯(lián)網(wǎng)頭部大廠2021年校招相關(guān)崗位的薪資待遇:
?
學(xué)習(xí)沒(méi)有捷徑?jīng)]有秘籍,只有踏踏實(shí)實(shí)多看多練多問(wèn),學(xué)習(xí)如此做人亦是如此,希望大家都能找到滿意的工作!
最后,小編想說(shuō):我是一名python開(kāi)發(fā)工程師,整理了一套最新的python系統(tǒng)學(xué)習(xí)教程,想要這些資料的可以關(guān)注私信小編“01”即可(免費(fèi)分享哦)希望能對(duì)你有所幫助.