2021-02-10 分類: 網(wǎng)站建設(shè)
斷章取義
C語言出現(xiàn)50年了,有很多內(nèi)容已過時(shí),至少有百分之二十的內(nèi)容沒有實(shí)用價(jià)值。
C++更過份,對程序員來說,至少有百分之七十的內(nèi)容沒有實(shí)用價(jià)值。
Linux系統(tǒng)也是,命令上千個,對程序員來說有用的不超過50個。
人的精力是有限的,沒必要去折騰那些沒有實(shí)用價(jià)值的知識點(diǎn)。各位當(dāng)中有些人可能已經(jīng)有基礎(chǔ),會發(fā)現(xiàn)在我的課程中會缺一些內(nèi)容,如鏈表、排序算法、二叉樹、紅黑樹、C++的輸入輸出和流、stl等,缺了是因?yàn)檫@些知識沒有實(shí)用價(jià)值,學(xué)了之后除了用來吹牛別無用處。
現(xiàn)有的C/C++的教材中,大部分是教授寫出來的,沒有幾本是程序員寫出來的,毫不夸張的說:沒有經(jīng)過實(shí)戰(zhàn)的教授在精英程序員面前,始終就停留在小學(xué)生水平。
我學(xué)習(xí)C語言是從譚浩強(qiáng)的《C程序設(shè)計(jì)》開始的,這本書過時(shí)很久了,譚浩強(qiáng)已經(jīng)仙逝多年,他的書也應(yīng)該隨他一起進(jìn)入天堂,不應(yīng)該成為出版商賺錢的工具。
《C Primer Plus》和《C++ Primer Plus》這兩本書寫得不錯,作者功力深厚,每本書有1500多頁,拿在手上非常有份量。但是,在我看來,實(shí)在是太啰嗦,只介紹知識,沒有重點(diǎn)。
網(wǎng)上也有不少視頻教程,但是,大部分的教程只是把書本上的內(nèi)容搬到視頻中,沒有新意。
培養(yǎng)程序員的感覺
在自然界,每種動物都有它們交流的方式,山中的野雞、樹上的小鳥,如果懂得它們的語言就容易抓住它們,只是普通人不知道而已。
與人類的語言相比,動物的語言非常簡單。
與人類的語言相比,計(jì)算機(jī)的語言也很簡單,初學(xué)者認(rèn)為難是因?yàn)椴贿m應(yīng),不習(xí)慣。
所以,對初學(xué)者來說,培養(yǎng)寫程序的感覺是最重要的事情。
如何培養(yǎng)程序員的感覺
首先,程序員是寫出來的,不是看出來的。
去過紫禁城的人都知道,不管你有多么聰明,繞多幾個彎,迷路是大概率的事情,但是,那些在紫禁城中搞衛(wèi)生的工人一定不會迷路,是你不如搞衛(wèi)生的工人夠聰明嗎?肯定不是,是你不習(xí)慣,不熟悉。
各位在網(wǎng)上看過的美女圖片或視頻成千上萬,不管看什么樣的美女,你肯定是臉不紅心不跳,但是,如果有一個美女真的出現(xiàn)在你的面前,估計(jì)你會手足無措,言語結(jié)吧。
一個知識點(diǎn),看懂的難度如果是一,自己實(shí)現(xiàn)的難度就是三,熟練使用的難度是八,融匯貫通應(yīng)用在項(xiàng)目中的難度是十。就像是練武學(xué)招數(shù),看別人打很容易,自己練習(xí)就難了,各種招數(shù)融會貫通和對手實(shí)戰(zhàn),需要時(shí)間的積累。那些《從入門到精通》的教材都是屁話,屁話為什么也有人信,原因很簡單,它利用了人性占便宜走捷徑的弱點(diǎn)。如果真的能從《入門到精通》,程序員就不值錢了。
任何事情,不管看多少遍,都不如做一遍。寫程序也是這樣的,編程語言并不難,而是你不了解,不習(xí)慣,不熟悉。有些人還可能會害怕動手。
看別人的程序,看別人寫程序,和自己動手寫程序的感覺是不一樣的,就像網(wǎng)上的美女和現(xiàn)實(shí)中的美女一樣,那感覺是完全不同的。
怎么做?行動起來,多寫程序,就習(xí)慣了,熟悉了。開始的時(shí)候,寫出的程序很垃圾也沒有關(guān)系,大家都是這么過來的,天賦異稟的人是極少的。就像畫家,我從未聽說某畫家從小就是畫家,他們小時(shí)候畫的畫和平常人畫的也沒什么區(qū)別,達(dá)芬奇不也是從畫雞蛋開始的嗎。
其次就是應(yīng)用的經(jīng)驗(yàn)了,應(yīng)用的經(jīng)驗(yàn)要通過做項(xiàng)目積累。
在有些的C語言教程中,經(jīng)常讓學(xué)生用C語言去做一些與實(shí)際開發(fā)無關(guān)的題目,最討厭的是數(shù)學(xué)題,這是大的敗筆,因?yàn)橐瓿蛇@些題,考的是數(shù)學(xué)方面的知識而不是程序員的知識。
我回憶起當(dāng)年我是菜鳥的學(xué)習(xí)過程,詳細(xì)了解初學(xué)者的困惑,把C/C++語言的基礎(chǔ)知識做了總結(jié),每個知識點(diǎn)寫一篇文章,約50篇。
在我的教程里,安排了很多課后作業(yè),課后作業(yè)有兩個目標(biāo):一是培訓(xùn)學(xué)生寫程序的感覺,熟悉寫程序的方法;二是鞏固所學(xué)的知識點(diǎn)。還有,我的課后作業(yè)是實(shí)際開發(fā)的需求為導(dǎo)向,作業(yè)內(nèi)容是程序員常用知識和編程技巧。
學(xué)習(xí)步驟
企業(yè)對C/C++程序員的需求中,至少70%以上是Linux系統(tǒng)平臺下的C/C++程序員,所以本教程的開發(fā)環(huán)境為Linux,Linux的開發(fā)環(huán)境會讓初學(xué)者不適應(yīng),不習(xí)慣,但這是正確的方向,我不可能為了迎合學(xué)生的喜好選擇windows平臺。
1、基礎(chǔ)知識的學(xué)習(xí)
基礎(chǔ)知識包括C語言基礎(chǔ)、C++語言基礎(chǔ)和Linux編程基礎(chǔ)。
本階段重點(diǎn)在培養(yǎng)寫程序的感覺和介紹C/C++程序員在日常工作中經(jīng)常用到的知識。注意,培養(yǎng)寫程序感覺比C/C++的知識點(diǎn)更重要。
我個人認(rèn)為學(xué)習(xí)C/C++語言,如果是零基礎(chǔ),最艱難是基礎(chǔ)階段,這時(shí)期學(xué)生還不具備程序員的思維,也沒有寫程序的感覺,溝通比較費(fèi)勁,用廣東話說就是雞同鴨講。
學(xué)生有了寫程序的感覺,上了道,就會慢慢順起來。
基礎(chǔ)知識的學(xué)習(xí)大概需要兩到三個月(全日制)。
學(xué)習(xí)完基礎(chǔ)知識之后,如果你的年齡在23歲以下,我建議你先去找工作,工資低一些沒關(guān)系,只要能養(yǎng)活自己就行了。在我看來,先進(jìn)入這個行業(yè),有公司給你發(fā)工資,有實(shí)戰(zhàn)的環(huán)境,邊工作邊學(xué)習(xí)是最好的方案,生活沒有壓力,學(xué)習(xí)更有動力。(23歲以下的年齡,是大學(xué)生畢業(yè)的年齡,在這個年齡段,不管是哪個學(xué)個畢業(yè)的,大家都是菜鳥,不懂是正常的,如果你在面試的時(shí)候表現(xiàn)出積極上進(jìn)態(tài)度,找個實(shí)習(xí)的崗位不是太難的事情。)
如果你的年齡到了25歲,學(xué)習(xí)完基礎(chǔ)知識之后就去找工作可能不好辦,因?yàn)槟愕哪挲g與能力不符,公司未必會要你。(年輕人不懂很正常,年紀(jì)這么大了還不懂就不應(yīng)該)
2、職業(yè)技能的訓(xùn)練
第二階段的學(xué)習(xí)內(nèi)容以實(shí)際項(xiàng)目的需求為導(dǎo)向,把學(xué)生培養(yǎng)成職業(yè)的程序員,以能找到工作為目標(biāo),時(shí)間大概需要兩到三個月。
在我的課程中,不玩俄羅斯方塊,也不玩打地鼠、貪吃蛇、球球大作戰(zhàn)等無聊的東西。
企業(yè)對C/C++程序員的需求中,數(shù)據(jù)通信、數(shù)據(jù)處理和數(shù)據(jù)倉庫的職位占了至少50%以上。
所以,我們要玩數(shù)據(jù)。
在我的基礎(chǔ)課程中,有socket通信、多進(jìn)程、多線程的課程,但這些都是基礎(chǔ)中的基礎(chǔ),離實(shí)際開發(fā)還差得太遠(yuǎn)。
本階段的學(xué)習(xí)以掌握工具的使用為主,包括我的開發(fā)框架和工具,提升socket通信、多進(jìn)程、多線程和數(shù)據(jù)庫的實(shí)戰(zhàn)技術(shù),數(shù)據(jù)庫以O(shè)racle為主(My SQL太業(yè)余),完成一個實(shí)戰(zhàn)項(xiàng)目的開發(fā)(數(shù)據(jù)中心項(xiàng)目),還可以擴(kuò)展到手機(jī)APP項(xiàng)目,豐富自己的項(xiàng)目經(jīng)驗(yàn)。
通過本階段的學(xué)習(xí),大概可以達(dá)到我20-30%的功力,技術(shù)水平可以超過三年工作經(jīng)驗(yàn)的程序員,項(xiàng)目經(jīng)驗(yàn)約一至兩年。
學(xué)習(xí)完成后,不管你是什么年齡,都去找工作,問題不大。
3、精英程序員
各位在工作之后再來進(jìn)入第三階段的學(xué)習(xí),在本階段,我將重點(diǎn)介紹我二十年來的實(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)十的精英程序員。
有沒有萬人敵的技術(shù)? 有,還真有。有這么一句話:流氓不可怕,就怕流氓有文化。如果能理解這句話的含義努力的學(xué)習(xí)文化,你必定成為精英,否則就是程序猿,一世為奴。
初級階段的學(xué)習(xí)方法
1、先把第一章到第十七章的視頻全部看一遍,大概了解一下,因?yàn)橛泻芏嘀R是交叉的,但是不要看課后作業(yè)。
2、再把第一章到第十七章的視頻內(nèi)容學(xué)習(xí)一遍,爭取完成簡單的課后作業(yè)。
3、再再學(xué)習(xí)《gdb調(diào)試》章節(jié),在寫程序的時(shí)候會用到它。
4、再再再把第一章到第十七章的視頻內(nèi)容詳細(xì)的學(xué)習(xí)一遍,爭取完成全部的課后作業(yè)。
5、之后的內(nèi)容,最好是一步一個腳印走下去,如果有什么不懂的地方,或以向別人請教或在QQ群中提出問題。
6、我的課程內(nèi)容是精心整理的,某些知識點(diǎn)可能沒有提到應(yīng)用場景,但絕對不會是沒用的知識。課程中沒有提到的知識可以了解一下,但不必深入學(xué)習(xí),意義不大。
7、學(xué)習(xí)不要貪快,欲速則不達(dá)的道理大家應(yīng)該明白,學(xué)習(xí)的重點(diǎn)是培養(yǎng)寫程序的感覺。
8、不要記筆記,不要記關(guān)鍵字,不要記函數(shù)的參數(shù),忘了就忘了,忘了是因?yàn)闆]有實(shí)戰(zhàn),所以,到了項(xiàng)目實(shí)戰(zhàn)課程的時(shí)候,忘了內(nèi)容很自然的會全部想起來。
9、不要用手機(jī)看視頻,看著看著就想睡覺,學(xué)習(xí)的過程是邊看邊寫,沒有看出來的程序員。趙括,知道不?就是那個空讀兵書的那個不成器的家伙,只看書看視頻不寫程序,和趙括沒什么不同。
10、翹著二郎腿,嘴里叨著煙,揮舞二指禪,一副吊兒郎當(dāng)?shù)臉幼樱浅刹涣顺绦騿T的。
11、可憐之人,必有可恨之處,已經(jīng)過去的就算了,不要埋怨,也不用后悔。端正態(tài)度,現(xiàn)在開始學(xué)習(xí)還來得及。將比別付出更多,這很公平。
網(wǎng)站名稱:C/C++語言學(xué)習(xí)的策略
分享網(wǎng)址:http://redsoil1982.com.cn/news/100224.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)公司、域名注冊、自適應(yīng)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容