C/C++語(yǔ)言學(xué)習(xí)的策略

2021-02-10    分類(lèi): 網(wǎng)站建設(shè)

斷章取義

C語(yǔ)言出現(xiàn)50年了,有很多內(nèi)容已過(guò)時(shí),至少有百分之二十的內(nèi)容沒(méi)有實(shí)用價(jià)值。

C++更過(guò)份,對(duì)程序員來(lái)說(shuō),至少有百分之七十的內(nèi)容沒(méi)有實(shí)用價(jià)值。

Linux系統(tǒng)也是,命令上千個(gè),對(duì)程序員來(lái)說(shuō)有用的不超過(guò)50個(gè)。

人的精力是有限的,沒(méi)必要去折騰那些沒(méi)有實(shí)用價(jià)值的知識(shí)點(diǎn)。各位當(dāng)中有些人可能已經(jīng)有基礎(chǔ),會(huì)發(fā)現(xiàn)在我的課程中會(huì)缺一些內(nèi)容,如鏈表、排序算法、二叉樹(shù)、紅黑樹(shù)、C++的輸入輸出和流、stl等,缺了是因?yàn)檫@些知識(shí)沒(méi)有實(shí)用價(jià)值,學(xué)了之后除了用來(lái)吹牛別無(wú)用處。

現(xiàn)有的C/C++的教材中,大部分是教授寫(xiě)出來(lái)的,沒(méi)有幾本是程序員寫(xiě)出來(lái)的,毫不夸張的說(shuō):沒(méi)有經(jīng)過(guò)實(shí)戰(zhàn)的教授在精英程序員面前,始終就停留在小學(xué)生水平。

我學(xué)習(xí)C語(yǔ)言是從譚浩強(qiáng)的《C程序設(shè)計(jì)》開(kāi)始的,這本書(shū)過(guò)時(shí)很久了,譚浩強(qiáng)已經(jīng)仙逝多年,他的書(shū)也應(yīng)該隨他一起進(jìn)入天堂,不應(yīng)該成為出版商賺錢(qián)的工具。

《C Primer Plus》和《C++ Primer Plus》這兩本書(shū)寫(xiě)得不錯(cuò),作者功力深厚,每本書(shū)有1500多頁(yè),拿在手上非常有份量。但是,在我看來(lái),實(shí)在是太啰嗦,只介紹知識(shí),沒(méi)有重點(diǎn)。

網(wǎng)上也有不少視頻教程,但是,大部分的教程只是把書(shū)本上的內(nèi)容搬到視頻中,沒(méi)有新意。

培養(yǎng)程序員的感覺(jué)

在自然界,每種動(dòng)物都有它們交流的方式,山中的野雞、樹(shù)上的小鳥(niǎo),如果懂得它們的語(yǔ)言就容易抓住它們,只是普通人不知道而已。

與人類(lèi)的語(yǔ)言相比,動(dòng)物的語(yǔ)言非常簡(jiǎn)單。

與人類(lèi)的語(yǔ)言相比,計(jì)算機(jī)的語(yǔ)言也很簡(jiǎn)單,初學(xué)者認(rèn)為難是因?yàn)椴贿m應(yīng),不習(xí)慣。

所以,對(duì)初學(xué)者來(lái)說(shuō),培養(yǎng)寫(xiě)程序的感覺(jué)是最重要的事情。

如何培養(yǎng)程序員的感覺(jué)

首先,程序員是寫(xiě)出來(lái)的,不是看出來(lái)的。

去過(guò)紫禁城的人都知道,不管你有多么聰明,繞多幾個(gè)彎,迷路是大概率的事情,但是,那些在紫禁城中搞衛(wèi)生的工人一定不會(huì)迷路,是你不如搞衛(wèi)生的工人夠聰明嗎?肯定不是,是你不習(xí)慣,不熟悉。

各位在網(wǎng)上看過(guò)的美女圖片或視頻成千上萬(wàn),不管看什么樣的美女,你肯定是臉不紅心不跳,但是,如果有一個(gè)美女真的出現(xiàn)在你的面前,估計(jì)你會(huì)手足無(wú)措,言語(yǔ)結(jié)吧。

一個(gè)知識(shí)點(diǎn),看懂的難度如果是一,自己實(shí)現(xiàn)的難度就是三,熟練使用的難度是八,融匯貫通應(yīng)用在項(xiàng)目中的難度是十。就像是練武學(xué)招數(shù),看別人打很容易,自己練習(xí)就難了,各種招數(shù)融會(huì)貫通和對(duì)手實(shí)戰(zhàn),需要時(shí)間的積累。那些《從入門(mén)到精通》的教材都是屁話,屁話為什么也有人信,原因很簡(jiǎn)單,它利用了人性占便宜走捷徑的弱點(diǎn)。如果真的能從《入門(mén)到精通》,程序員就不值錢(qián)了。

任何事情,不管看多少遍,都不如做一遍。寫(xiě)程序也是這樣的,編程語(yǔ)言并不難,而是你不了解,不習(xí)慣,不熟悉。有些人還可能會(huì)害怕動(dòng)手。

看別人的程序,看別人寫(xiě)程序,和自己動(dòng)手寫(xiě)程序的感覺(jué)是不一樣的,就像網(wǎng)上的美女和現(xiàn)實(shí)中的美女一樣,那感覺(jué)是完全不同的。

怎么做?行動(dòng)起來(lái),多寫(xiě)程序,就習(xí)慣了,熟悉了。開(kāi)始的時(shí)候,寫(xiě)出的程序很垃圾也沒(méi)有關(guān)系,大家都是這么過(guò)來(lái)的,天賦異稟的人是極少的。就像畫(huà)家,我從未聽(tīng)說(shuō)某畫(huà)家從小就是畫(huà)家,他們小時(shí)候畫(huà)的畫(huà)和平常人畫(huà)的也沒(méi)什么區(qū)別,達(dá)芬奇不也是從畫(huà)雞蛋開(kāi)始的嗎。

其次就是應(yīng)用的經(jīng)驗(yàn)了,應(yīng)用的經(jīng)驗(yàn)要通過(guò)做項(xiàng)目積累。

在有些的C語(yǔ)言教程中,經(jīng)常讓學(xué)生用C語(yǔ)言去做一些與實(shí)際開(kāi)發(fā)無(wú)關(guān)的題目,最討厭的是數(shù)學(xué)題,這是大的敗筆,因?yàn)橐瓿蛇@些題,考的是數(shù)學(xué)方面的知識(shí)而不是程序員的知識(shí)。

我回憶起當(dāng)年我是菜鳥(niǎo)的學(xué)習(xí)過(guò)程,詳細(xì)了解初學(xué)者的困惑,把C/C++語(yǔ)言的基礎(chǔ)知識(shí)做了總結(jié),每個(gè)知識(shí)點(diǎn)寫(xiě)一篇文章,約50篇。

在我的教程里,安排了很多課后作業(yè),課后作業(yè)有兩個(gè)目標(biāo):一是培訓(xùn)學(xué)生寫(xiě)程序的感覺(jué),熟悉寫(xiě)程序的方法;二是鞏固所學(xué)的知識(shí)點(diǎn)。還有,我的課后作業(yè)是實(shí)際開(kāi)發(fā)的需求為導(dǎo)向,作業(yè)內(nèi)容是程序員常用知識(shí)和編程技巧。

學(xué)習(xí)步驟

企業(yè)對(duì)C/C++程序員的需求中,至少70%以上是Linux系統(tǒng)平臺(tái)下的C/C++程序員,所以本教程的開(kāi)發(fā)環(huán)境為L(zhǎng)inux,Linux的開(kāi)發(fā)環(huán)境會(huì)讓初學(xué)者不適應(yīng),不習(xí)慣,但這是正確的方向,我不可能為了迎合學(xué)生的喜好選擇windows平臺(tái)。

1、基礎(chǔ)知識(shí)的學(xué)習(xí)

基礎(chǔ)知識(shí)包括C語(yǔ)言基礎(chǔ)、C++語(yǔ)言基礎(chǔ)和Linux編程基礎(chǔ)。

本階段重點(diǎn)在培養(yǎng)寫(xiě)程序的感覺(jué)和介紹C/C++程序員在日常工作中經(jīng)常用到的知識(shí)。注意,培養(yǎng)寫(xiě)程序感覺(jué)比C/C++的知識(shí)點(diǎn)更重要。

我個(gè)人認(rèn)為學(xué)習(xí)C/C++語(yǔ)言,如果是零基礎(chǔ),最艱難是基礎(chǔ)階段,這時(shí)期學(xué)生還不具備程序員的思維,也沒(méi)有寫(xiě)程序的感覺(jué),溝通比較費(fèi)勁,用廣東話說(shuō)就是雞同鴨講。

學(xué)生有了寫(xiě)程序的感覺(jué),上了道,就會(huì)慢慢順起來(lái)。

基礎(chǔ)知識(shí)的學(xué)習(xí)大概需要兩到三個(gè)月(全日制)。

學(xué)習(xí)完基礎(chǔ)知識(shí)之后,如果你的年齡在23歲以下,我建議你先去找工作,工資低一些沒(méi)關(guān)系,只要能養(yǎng)活自己就行了。在我看來(lái),先進(jìn)入這個(gè)行業(yè),有公司給你發(fā)工資,有實(shí)戰(zhàn)的環(huán)境,邊工作邊學(xué)習(xí)是最好的方案,生活沒(méi)有壓力,學(xué)習(xí)更有動(dòng)力。(23歲以下的年齡,是大學(xué)生畢業(yè)的年齡,在這個(gè)年齡段,不管是哪個(gè)學(xué)個(gè)畢業(yè)的,大家都是菜鳥(niǎo),不懂是正常的,如果你在面試的時(shí)候表現(xiàn)出積極上進(jìn)態(tài)度,找個(gè)實(shí)習(xí)的崗位不是太難的事情。)

如果你的年齡到了25歲,學(xué)習(xí)完基礎(chǔ)知識(shí)之后就去找工作可能不好辦,因?yàn)槟愕哪挲g與能力不符,公司未必會(huì)要你。(年輕人不懂很正常,年紀(jì)這么大了還不懂就不應(yīng)該)

2、職業(yè)技能的訓(xùn)練

第二階段的學(xué)習(xí)內(nèi)容以實(shí)際項(xiàng)目的需求為導(dǎo)向,把學(xué)生培養(yǎng)成職業(yè)的程序員,以能找到工作為目標(biāo),時(shí)間大概需要兩到三個(gè)月。

在我的課程中,不玩俄羅斯方塊,也不玩打地鼠、貪吃蛇、球球大作戰(zhàn)等無(wú)聊的東西。

企業(yè)對(duì)C/C++程序員的需求中,數(shù)據(jù)通信、數(shù)據(jù)處理和數(shù)據(jù)倉(cāng)庫(kù)的職位占了至少50%以上。

所以,我們要玩數(shù)據(jù)。

在我的基礎(chǔ)課程中,有socket通信、多進(jìn)程、多線程的課程,但這些都是基礎(chǔ)中的基礎(chǔ),離實(shí)際開(kāi)發(fā)還差得太遠(yuǎn)。

本階段的學(xué)習(xí)以掌握工具的使用為主,包括我的開(kāi)發(fā)框架和工具,提升socket通信、多進(jìn)程、多線程和數(shù)據(jù)庫(kù)的實(shí)戰(zhàn)技術(shù),數(shù)據(jù)庫(kù)以O(shè)racle為主(My SQL太業(yè)余),完成一個(gè)實(shí)戰(zhàn)項(xiàng)目的開(kāi)發(fā)(數(shù)據(jù)中心項(xiàng)目),還可以擴(kuò)展到手機(jī)APP項(xiàng)目,豐富自己的項(xiàng)目經(jīng)驗(yàn)。

通過(guò)本階段的學(xué)習(xí),大概可以達(dá)到我20-30%的功力,技術(shù)水平可以超過(guò)三年工作經(jīng)驗(yàn)的程序員,項(xiàng)目經(jīng)驗(yàn)約一至兩年。

學(xué)習(xí)完成后,不管你是什么年齡,都去找工作,問(wèn)題不大。

3、精英程序員

各位在工作之后再來(lái)進(jìn)入第三階段的學(xué)習(xí),在本階段,我將重點(diǎn)介紹我二十年來(lái)的實(shí)戰(zhàn)技術(shù)和項(xiàng)目經(jīng)驗(yàn)。主要包括以下方面:

1)提升程序員的工作效率;

2)提升服務(wù)程序的效率;

3)提升服務(wù)程序的穩(wěn)定性;

4)豐富項(xiàng)目經(jīng)驗(yàn)和實(shí)戰(zhàn)技能;

5)突破程序員的瓶勁。

本階段的目標(biāo)是提升程序員的能力,培養(yǎng)以一當(dāng)十的精英程序員。

有沒(méi)有萬(wàn)人敵的技術(shù)? 有,還真有。有這么一句話:流氓不可怕,就怕流氓有文化。如果能理解這句話的含義努力的學(xué)習(xí)文化,你必定成為精英,否則就是程序猿,一世為奴。

初級(jí)階段的學(xué)習(xí)方法

1、先把第一章到第十七章的視頻全部看一遍,大概了解一下,因?yàn)橛泻芏嘀R(shí)是交叉的,但是不要看課后作業(yè)。

2、再把第一章到第十七章的視頻內(nèi)容學(xué)習(xí)一遍,爭(zhēng)取完成簡(jiǎn)單的課后作業(yè)。

3、再再學(xué)習(xí)《gdb調(diào)試》章節(jié),在寫(xiě)程序的時(shí)候會(huì)用到它。

4、再再再把第一章到第十七章的視頻內(nèi)容詳細(xì)的學(xué)習(xí)一遍,爭(zhēng)取完成全部的課后作業(yè)。

5、之后的內(nèi)容,最好是一步一個(gè)腳印走下去,如果有什么不懂的地方,或以向別人請(qǐng)教或在QQ群中提出問(wèn)題。

6、我的課程內(nèi)容是精心整理的,某些知識(shí)點(diǎn)可能沒(méi)有提到應(yīng)用場(chǎng)景,但絕對(duì)不會(huì)是沒(méi)用的知識(shí)。課程中沒(méi)有提到的知識(shí)可以了解一下,但不必深入學(xué)習(xí),意義不大。

7、學(xué)習(xí)不要貪快,欲速則不達(dá)的道理大家應(yīng)該明白,學(xué)習(xí)的重點(diǎn)是培養(yǎng)寫(xiě)程序的感覺(jué)。

8、不要記筆記,不要記關(guān)鍵字,不要記函數(shù)的參數(shù),忘了就忘了,忘了是因?yàn)闆](méi)有實(shí)戰(zhàn),所以,到了項(xiàng)目實(shí)戰(zhàn)課程的時(shí)候,忘了內(nèi)容很自然的會(huì)全部想起來(lái)。

9、不要用手機(jī)看視頻,看著看著就想睡覺(jué),學(xué)習(xí)的過(guò)程是邊看邊寫(xiě),沒(méi)有看出來(lái)的程序員。趙括,知道不?就是那個(gè)空讀兵書(shū)的那個(gè)不成器的家伙,只看書(shū)看視頻不寫(xiě)程序,和趙括沒(méi)什么不同。

10、翹著二郎腿,嘴里叨著煙,揮舞二指禪,一副吊兒郎當(dāng)?shù)臉幼?,是成不了程序員的。

11、可憐之人,必有可恨之處,已經(jīng)過(guò)去的就算了,不要埋怨,也不用后悔。端正態(tài)度,現(xiàn)在開(kāi)始學(xué)習(xí)還來(lái)得及。將比別付出更多,這很公平。

本文標(biāo)題:C/C++語(yǔ)言學(xué)習(xí)的策略
標(biāo)題來(lái)源:http://www.muchs.cn/news24/100224.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、域名注冊(cè)、網(wǎng)站內(nèi)鏈關(guān)鍵詞優(yōu)化、云服務(wù)器、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)