{eval=Array;=+count(Array);}

成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

問(wèn)答專欄Q & A COLUMN

學(xué)完C語(yǔ)言語(yǔ)法之后該做什么?

Terry_TaiTerry_Tai 回答0 收藏2
收藏問(wèn)題

8條回答

skinner

skinner

回答于2022-06-28 15:34

這個(gè)問(wèn)題的噱頭太大,要真的寫起來(lái), 足夠?qū)懸槐緯?shū)了。

本人是過(guò)來(lái)人, 結(jié)合自身的體會(huì)和大家交流一下,希望新人能少走彎路。

每個(gè)人的情況不一樣,我下面的描述可能并不適合每一個(gè)看到的人。

一、C/C++語(yǔ)言

如果你的基礎(chǔ)很差, 建議不要一開(kāi)始就學(xué)C++語(yǔ)言,從C開(kāi)始學(xué)起,對(duì)程序有個(gè)初步的認(rèn)識(shí),循序漸進(jìn)。C語(yǔ)言的書(shū)嘛,先買一本 300 頁(yè)以內(nèi)的,把書(shū)中的每一個(gè)例子都通過(guò)鍵盤敲打進(jìn)去到 Visual studio里面去,然后單步執(zhí)行,逐行調(diào)試去看各個(gè)變量的值?;蛘咦孕刑砑右恍﹑rintf語(yǔ)句去輸出變量的值。這樣當(dāng)你看完一本書(shū)后, 你就有編寫小程序的感覺(jué)了。

記住,千萬(wàn)不要偷懶,不敲進(jìn)去,自以為聰明, 能看懂, 或者直接從光盤復(fù)制。偷懶的代價(jià)是會(huì)花費(fèi)更多的時(shí)間學(xué)習(xí),最后還沒(méi)有學(xué)會(huì),給自己的自信心造成巨大打擊,再也不想學(xué)程序了。

c語(yǔ)言看完一本書(shū)后,下來(lái)你就可以買一本C++的書(shū)看了。 C++的書(shū)也是一樣, 必須300頁(yè)以內(nèi)的那種,不要一來(lái)就想學(xué)《C++ Primer中文版》這樣的好書(shū), 因?yàn)樘窳耍履銢](méi)有信心能夠看完,即使你很有信心,花費(fèi)一年的時(shí)間才看完,不值得。這種經(jīng)典的厚的好書(shū), 適合作為資料查閱,不適合挨個(gè)細(xì)節(jié)都看。

還是要提醒各位,一定要把書(shū)中的例子挨個(gè)敲打到電腦里面, 單步執(zhí)行。一定不要從光盤復(fù)制, 一定要單步執(zhí)行。

經(jīng)過(guò)兩本書(shū)的磨練, 估計(jì)你對(duì)C/C++肯定有比較深入的了解了, 下來(lái)應(yīng)該可以進(jìn)入實(shí)戰(zhàn)了。

二、帶界面的應(yīng)用程序

學(xué)會(huì)了C/C++語(yǔ)言本身,可能還沒(méi)有什么成就感,畢竟都是控制臺(tái)的程序, 老是輸出一串字符串, 整天面對(duì)各黑框框,成就感估計(jì)不是那么爽。要是能搞個(gè)帶UI界面的程序就爽了。

下來(lái)就看個(gè)人的志向了, 如果走微軟路線, 那你下來(lái)學(xué)MFC好了,如果要走開(kāi)源路線, 那開(kāi)源跨平臺(tái)的界面庫(kù)多得是。

你下載后看具體的例子, 把里面的例子程序敲到你的 visual studio 里面, 去調(diào)試, 看運(yùn)行的結(jié)果, 你也可以試著去修改例子, 添加按鈕,響應(yīng)按鈕事件等。

走到這一步, 恭喜你,可以照葫蘆畫瓢的搞個(gè)小應(yīng)用程序了, 還帶界面。

三、網(wǎng)絡(luò)應(yīng)用程序

語(yǔ)言搞懂了,UI程序也會(huì)了, 下來(lái)該學(xué)學(xué)網(wǎng)絡(luò)咯, 現(xiàn)在那個(gè)程序不需要聯(lián)網(wǎng)啊,懂網(wǎng)絡(luò)對(duì)你理解很多程序非常有幫助。但是網(wǎng)絡(luò)應(yīng)用程序從哪里入手呢 ?

我來(lái)告訴你,從《UNIX網(wǎng)絡(luò)編程》這本書(shū)入手吧,這本書(shū)可以教會(huì)你網(wǎng)絡(luò)套接字的底層原理,把上面的例子好好學(xué)習(xí),自己動(dòng)手寫一個(gè)回應(yīng)服務(wù)器。寫一個(gè)服務(wù)器端,在寫一個(gè)客戶端。服務(wù)器端請(qǐng)務(wù)必學(xué)會(huì) select 這個(gè)簡(jiǎn)單的多路復(fù)用模型,這樣你才能慢慢的深入里面 poll , epoll ,IOCP 之類的模型。

四、文件操作

所有的程序,基本都會(huì)用到文件的讀寫操作,windows系統(tǒng)有自己的文件操作API, 比如CreateFile, DeleteFile 等,請(qǐng)新手不要學(xué)windows的文件操作API, 新手請(qǐng)學(xué)標(biāo)準(zhǔn)C語(yǔ)言的文件操作函數(shù),簡(jiǎn)單易學(xué)還跨平臺(tái)。就那么幾個(gè)函數(shù),三下五除二你也就學(xué)會(huì)了, fopen, fclose, fread , fwrite, fseek, ftell 就這么幾個(gè)而已。

五、深刻理解內(nèi)存與指針的關(guān)系

作為一個(gè)C/C++程序員, 從學(xué)習(xí)程序的頭一天開(kāi)始,就要和內(nèi)存的分配釋放作斗爭(zhēng)。你必須理解內(nèi)存與指針的關(guān)系。怎么樣才能理解呢, 請(qǐng)大家去看 《高質(zhì)量C/C++編程》里面自帶的幾個(gè)經(jīng)典例子吧。把那幾個(gè)例子搞得清清楚楚, 基本能夠理解其中的原理了。

六、仔細(xì)研究apache源碼

學(xué)程序非特別是C/C++程序,非3年之功可以出山,三年對(duì)一個(gè)C/C++程序來(lái)說(shuō)是一個(gè)從量變到質(zhì)變的過(guò)程,三年的項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn),可以讓你接觸到一個(gè)完整的應(yīng)用程序所需要具備的骨架。但是這個(gè)階段你寫的代碼,可能充滿BUG, 會(huì)宕機(jī),運(yùn)行效率很差,自己回頭看看一年前寫的代碼,可能自己都感覺(jué)惡心, 看不下去。沒(méi)有關(guān)系,這種感覺(jué)是每一個(gè)進(jìn)步青年都會(huì)有的。要提高自己的代碼水平, 還是要像高手學(xué)習(xí)。你可能要問(wèn),公司同事的水平一般, 水平好的人家也不愿意給我講。沒(méi)有關(guān)系,開(kāi)源的代碼就是你像高手學(xué)習(xí)的最佳途徑,開(kāi)源代碼是高手留下的練功秘訣, 你看了后你會(huì)突然感覺(jué)茅塞頓開(kāi), 感覺(jué)自己的水平差人家太遠(yuǎn)了。我為何要推薦apache的源碼呢?

apache的源碼是高手中的高手寫的,執(zhí)行效率和程序架構(gòu)堪稱一絕。里面的很多思想是所有程序都通用的,搞懂了, 很多模塊你也可以直接拿來(lái)使用。apache對(duì)內(nèi)存池的使用, 對(duì)線程池的使用, 對(duì)模塊結(jié)構(gòu)的封裝,非常具有實(shí)際意義。要是你能把a(bǔ)pache的源碼吃個(gè)透徹,每一個(gè)細(xì)節(jié)都搞明白了為何人家要這么實(shí)現(xiàn),我可以給你說(shuō),“恭喜你 , 你離傳說(shuō)中的高手已經(jīng)不遠(yuǎn)了?!?/p>

七、修煉C++

我上面說(shuō)的基本都是修煉C的, 要修煉C++, 還得再花3年功夫, 才有可能練成C++高手。C++太博大精深了,其中最復(fù)雜的莫過(guò)于泛型編程思想,不要以為能寫個(gè)模板類就認(rèn)為泛型編程不過(guò)如此而已。仔細(xì)看看STL源碼, Boost 源碼, 你就知道泛型編程有多么的博大精深了。修煉C++, 可以從用C++封裝的MFC入手, 看高手如何通過(guò)C++語(yǔ)言, 封裝這樣龐大的UI庫(kù),里面應(yīng)用了很多的C++機(jī)制, 最典型的就是多態(tài)機(jī)制, 還有很多的設(shè)計(jì)模式應(yīng)用可以研究。

八、深研設(shè)計(jì)模式

設(shè)計(jì)模式是程序設(shè)計(jì)的靈魂,是通用方法,當(dāng)你面對(duì)一個(gè)大型項(xiàng)目的時(shí)候,如何設(shè)計(jì)一個(gè)有彈性的系統(tǒng),是所有系統(tǒng)分析員應(yīng)該掌握的技能。在設(shè)計(jì)模式的研究上,要結(jié)合實(shí)際的項(xiàng)目進(jìn)行。

九、一起共勉

編程源于興趣,興趣忠于能會(huì),能會(huì)忠于勤學(xué)。如果你又興趣,不妨一起共進(jìn),學(xué)習(xí)不缺興趣,重要的是你去發(fā)現(xiàn)。

評(píng)論0 贊同0
  •  加載中...
zhou_you

zhou_you

回答于2022-06-28 15:34

鞏固知識(shí)——寫編程題

學(xué)完C語(yǔ)言語(yǔ)法之后就可以開(kāi)始嘗試刷一些練習(xí)題,比如PAT的Basic級(jí)別的題目,嘗試一下用所學(xué)知識(shí)能不能實(shí)現(xiàn)題目中的輸入輸出,鍛煉自己的編程思維和解決問(wèn)題的能力。

學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)

當(dāng)你寫到后面的題目你就會(huì)發(fā)現(xiàn),只靠前面學(xué)的語(yǔ)法知識(shí)已經(jīng)遠(yuǎn)遠(yuǎn)不夠了。這個(gè)時(shí)候你需要去學(xué)習(xí)一門新的課程——《數(shù)據(jù)結(jié)構(gòu)與算法分析》。

參考書(shū)推薦下面這本,課程推薦中國(guó)大學(xué)MOOC中浙江大學(xué)的數(shù)據(jù)結(jié)構(gòu)課程。

如果你能掌握其中線性表、鏈表的內(nèi)容并熟悉幾種基本的排序算法那么你的解決問(wèn)題能力又會(huì)有新的提升。

評(píng)論0 贊同0
  •  加載中...
aervon

aervon

回答于2022-06-28 15:34

編個(gè)小程序,練練手

評(píng)論0 贊同0
  •  加載中...
tabalt

tabalt

回答于2022-06-28 15:34

你學(xué)這個(gè)干嘛?語(yǔ)法學(xué)完就可以實(shí)戰(zhàn),比如寫寫算法等!

評(píng)論0 贊同0
  •  加載中...
dreambei

dreambei

回答于2022-06-28 15:34

可以聯(lián)系一些簡(jiǎn)單的小練習(xí),練習(xí)多了,對(duì)語(yǔ)法熟悉了,再去做一些小項(xiàng)目。比如:

用C語(yǔ)言實(shí)現(xiàn)ping程序,可以加深對(duì)TCP/IP的理解。

附贈(zèng)練習(xí)題:

1、求S = a + aa + aaa + aaaa + a…a的值

其中a是一個(gè)數(shù)字,例如2 + 22 + 222 + 2222 + 22222(此時(shí)是5個(gè)數(shù)相加)

幾個(gè)數(shù)相加由鍵盤控制

2、一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為"完數(shù)".

例如6 = 1 + 2 + 3.

找出1000以內(nèi)的所有完數(shù)

3、一個(gè)球從100米的高度自由落下,每次落地后反彈回原高度的一半,再落下

求它第10次落地時(shí),共經(jīng)過(guò)多少米?第10次反彈多高

評(píng)論0 贊同0
  •  加載中...
morgan

morgan

回答于2022-06-28 15:34

程序語(yǔ)言設(shè)計(jì)現(xiàn)在從初中就開(kāi)始有課程教授了,可見(jiàn)未來(lái)對(duì)程序語(yǔ)言設(shè)計(jì)是越來(lái)越普及,很可能在初中就能完成之前在大學(xué)才能完成的課程。

程序設(shè)計(jì)主要還是邏輯的結(jié)構(gòu)設(shè)計(jì),一個(gè)優(yōu)秀程序設(shè)計(jì)師,應(yīng)該使用最簡(jiǎn)單明了的簡(jiǎn)短的代碼來(lái)實(shí)現(xiàn)所需的模塊功能。

在清晰語(yǔ)法之后,研習(xí)數(shù)據(jù)結(jié)構(gòu),以便更好理解程序設(shè)計(jì)要義。

C語(yǔ)言是一種面向過(guò)程的語(yǔ)言,其指針為難啃的部分,了解語(yǔ)法后,應(yīng)該要加強(qiáng)實(shí)操編碼能力,多寫案例,多閱讀優(yōu)秀開(kāi)發(fā)者的代碼,會(huì)讓你受益匪淺,也會(huì)讓你有驚人的進(jìn)步。

有幾基本書(shū)必須拜讀,如數(shù)據(jù)結(jié)構(gòu)與算法分析、C語(yǔ)言入門經(jīng)典等。




評(píng)論0 贊同0
  •  加載中...
jerryloveemily

jerryloveemily

回答于2022-06-28 15:34

簡(jiǎn)單語(yǔ)法學(xué)完了,再看看用到了幾個(gè)c標(biāo)準(zhǔn)庫(kù),標(biāo)準(zhǔn)庫(kù)里面的能讀懂了幾個(gè)?然后以標(biāo)準(zhǔn)庫(kù)為方向逐個(gè)拓展!

個(gè)人意見(jiàn)是先用完標(biāo)準(zhǔn)庫(kù),讀懂標(biāo)準(zhǔn)庫(kù)的代碼!

評(píng)論0 贊同0
  •  加載中...
wwolf

wwolf

回答于2022-06-28 15:34

學(xué)完C語(yǔ)言語(yǔ)法先確定是否學(xué)好了吧?教程章節(jié)里附帶的練習(xí)題,是否都能用代碼實(shí)現(xiàn)?寫出來(lái)的代碼能否編譯通過(guò)?編譯出來(lái)的程序運(yùn)行時(shí)得出的結(jié)果是否正確?如果能完成這幾點(diǎn)疑問(wèn),那么恭喜你,C語(yǔ)言基礎(chǔ)你已經(jīng)過(guò)關(guān)了。

學(xué)完C語(yǔ)言基礎(chǔ)編程知識(shí),接下來(lái)就是《數(shù)據(jù)結(jié)構(gòu)》了。

這門課程非常重要,是進(jìn)階課程。涉及到許多數(shù)據(jù)存儲(chǔ)概念:鏈表、樹(shù)(有多種樹(shù)型結(jié)構(gòu))等,還有許多常用算法。相較于之前的C語(yǔ)言基礎(chǔ)的學(xué)習(xí)難度是有很大提高的,它會(huì)訓(xùn)練你的抽象能力、邏輯表達(dá)能力,學(xué)好它才能真正意義上的進(jìn)入編程領(lǐng)域。

因?yàn)樵趯?shí)際的軟件開(kāi)發(fā)中,就是不停的處理數(shù)據(jù)。數(shù)據(jù)到底應(yīng)該怎樣處理?用什么方法處理數(shù)據(jù)才是高效的?數(shù)據(jù)應(yīng)該在內(nèi)存里如何緩存?這些邏輯思維都離不開(kāi)數(shù)據(jù)結(jié)構(gòu)的范圍。

接下來(lái)可以學(xué)習(xí)數(shù)據(jù)庫(kù)方面的知識(shí),了解關(guān)系數(shù)據(jù)庫(kù)SQL語(yǔ)法,先熟悉增刪改查操作的SQL語(yǔ)句如何寫,再一步一步了解更深入的知識(shí)。

如果選擇帶界面的開(kāi)發(fā):可以學(xué)習(xí)MFC,QT,這兩個(gè)是基于C++語(yǔ)言的,也可以選擇C#.net。

評(píng)論0 贊同0
  •  加載中...

相關(guān)問(wèn)題

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過(guò)該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說(shuō)句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<