首頁>Club>
66
回覆列表
  • 1 # HAOTech

    鞏固知識——寫程式設計題

    學完C語言語法之後就可以開始嘗試刷一些練習題,比如PAT的Basic級別的題目,嘗試一下用所學知識能不能實現題目中的輸入輸出,鍛鍊自己的程式設計思維和解決問題的能力。

    學習資料結構

    當你寫到後面的題目你就會發現,只靠前面學的語法知識已經遠遠不夠了。這個時候你需要去學習一門新的課程——《資料結構與演算法分析》。

    參考書推薦下面這本,課程推薦中國大學MOOC中浙江大學的資料結構課程。

    如果你能掌握其中線性表、連結串列的內容並熟悉幾種基本的排序演算法那麼你的解決問題能力又會有新的提升。

  • 2 # C語言基礎

    這個問題的噱頭太大,要真的寫起來, 足夠寫一本書了。

    本人是過來人, 結合自身的體會和大家交流一下,希望新人能少走彎路。

    每個人的情況不一樣,我下面的描述可能並不適合每一個看到的人。

    一、C/C++語言

    如果你的基礎很差, 建議不要一開始就學C++語言,從C開始學起,對程式有個初步的認識,循序漸進。C語言的書嘛,先買一本 300 頁以內的,把書中的每一個例子都透過鍵盤敲打進去到 Visual studio裡面去,然後單步執行,逐行除錯去看各個變數的值。或者自行新增一些printf語句去輸出變數的值。這樣當你看完一本書後, 你就有編寫小程式的感覺了。

    記住,千萬不要偷懶,不敲進去,自以為聰明, 能看懂, 或者直接從光碟複製。偷懶的代價是會花費更多的時間學習,最後還沒有學會,給自己的自信心造成巨大打擊,再也不想學程式了。

    c語言看完一本書後,下來你就可以買一本C++的書看了。 C++的書也是一樣, 必須300頁以內的那種,不要一來就想學《C++ Primer中文版》這樣的好書, 因為太厚了,怕你沒有信心能夠看完,即使你很有信心,花費一年的時間才看完,不值得。這種經典的厚的好書, 適合作為資料查閱,不適合挨個細節都看。

    還是要提醒各位,一定要把書中的例子挨個敲打到電腦裡面, 單步執行。一定不要從光碟複製, 一定要單步執行。

    經過兩本書的磨練, 估計你對C/C++肯定有比較深入的瞭解了, 下來應該可以進入實戰了。

    二、帶介面的應用程式

    學會了C/C++語言本身,可能還沒有什麼成就感,畢竟都是控制檯的程式, 老是輸出一串字串, 整天面對各黑框框,成就感估計不是那麼爽。要是能搞個帶UI介面的程式就爽了。

    下來就看個人的志向了, 如果走微軟路線, 那你下來學MFC好了,如果要走開源路線, 那開源跨平臺的介面庫多得是。

    走到這一步, 恭喜你,可以照葫蘆畫瓢的搞個小應用程式了, 還帶介面。

    三、網路應用程式

    語言搞懂了,UI程式也會了, 下來該學學網路咯, 現在那個程式不需要聯網啊,懂網路對你理解很多程式非常有幫助。但是網路應用程式從哪裡入手呢 ?

    我來告訴你,從《UNIX網路程式設計》這本書入手吧,這本書可以教會你網路套接字的底層原理,把上面的例子好好學習,自己動手寫一個迴應伺服器。寫一個伺服器端,在寫一個客戶端。伺服器端請務必學會 select 這個簡單的多路複用模型,這樣你才能慢慢的深入裡面 poll , epoll ,IOCP 之類的模型。

    四、檔案操作

    所有的程式,基本都會用到檔案的讀寫操作,windows系統有自己的檔案操作API, 比如CreateFile, DeleteFile 等,請新手不要學windows的檔案操作API, 新手請學標準C語言的檔案操作函式,簡單易學還跨平臺。就那麼幾個函式,三下五除二你也就學會了, fopen, fclose, fread , fwrite, fseek, ftell 就這麼幾個而已。

    五、深刻理解記憶體與指標的關係

    作為一個C/C++程式設計師, 從學習程式的頭一天開始,就要和記憶體的分配釋放作鬥爭。你必須理解記憶體與指標的關係。怎麼樣才能理解呢, 請大家去看 《高質量C/C++程式設計》裡面自帶的幾個經典例子吧。把那幾個例子搞得清清楚楚, 基本能夠理解其中的原理了。

    六、仔細研究apache原始碼

    學程式非特別是C/C++程式,非3年之功可以出山,三年對一個C/C++程式來說是一個從量變到質變的過程,三年的專案實戰經驗,可以讓你接觸到一個完整的應用程式所需要具備的骨架。但是這個階段你寫的程式碼,可能充滿BUG, 會宕機,執行效率很差,自己回頭看看一年前寫的程式碼,可能自己都感覺噁心, 看不下去。沒有關係,這種感覺是每一個進步青年都會有的。要提高自己的程式碼水平, 還是要像高手學習。你可能要問,公司同事的水平一般, 水平好的人家也不願意給我講。沒有關係,開源的程式碼就是你像高手學習的最佳途徑,開原始碼是高手留下的練功秘訣, 你看了後你會突然感覺茅塞頓開, 感覺自己的水平差人家太遠了。我為何要推薦apache的原始碼呢?

    apache的原始碼是高手中的高手寫的,執行效率和程式架構堪稱一絕。裡面的很多思想是所有程式都通用的,搞懂了, 很多模組你也可以直接拿來使用。apache對記憶體池的使用, 對執行緒池的使用, 對模組結構的封裝,非常具有實際意義。要是你能把apache的原始碼吃個透徹,每一個細節都搞明白了為何人家要這麼實現,我可以給你說,“恭喜你 , 你離傳說中的高手已經不遠了。”

    七、修煉C++

    我上面說的基本都是修煉C的, 要修煉C++, 還得再花3年功夫, 才有可能練成C++高手。C++太博大精深了,其中最複雜的莫過於泛型程式設計思想,不要以為能寫個模板類就認為泛型程式設計不過如此而已。仔細看看STL原始碼, Boost 原始碼, 你就知道泛型程式設計有多麼的博大精深了。修煉C++, 可以從用C++封裝的MFC入手, 看高手如何透過C++語言, 封裝這樣龐大的UI庫,裡面應用了很多的C++機制, 最典型的就是多型機制, 還有很多的設計模式應用可以研究。

    八、深研設計模式

    設計模式是程式設計的靈魂,是通用方法,當你面對一個大型專案的時候,如何設計一個有彈性的系統,是所有系統分析員應該掌握的技能。在設計模式的研究上,要結合實際的專案進行。

    九、一起共勉

    程式設計源於興趣,興趣忠於能會,能會忠於勤學。如果你又興趣,不妨一起共進,學習不缺興趣,重要的是你去發現。

  • 3 # 碼中尋樂

    學完C語言語法先確定是否學好了吧?教程章節裡附帶的練習題,是否都能用程式碼實現?寫出來的程式碼能否編譯透過?編譯出來的程式執行時得出的結果是否正確?如果能完成這幾點疑問,那麼恭喜你,C語言基礎你已經過關了。

    學完C語言基礎程式設計知識,接下來就是《資料結構》了。

    這門課程非常重要,是進階課程。涉及到許多資料儲存概念:連結串列、樹(有多種樹型結構)等,還有許多常用演算法。相較於之前的C語言基礎的學習難度是有很大提高的,它會訓練你的抽象能力、邏輯表達能力,學好它才能真正意義上的進入程式設計領域。

    因為在實際的軟體開發中,就是不停的處理資料。資料到底應該怎樣處理?用什麼方法處理資料才是高效的?資料應該在記憶體裡如何快取?這些邏輯思維都離不開資料結構的範圍。

    接下來可以學習資料庫方面的知識,瞭解關係資料庫SQL語法,先熟悉增刪改查操作的SQL語句如何寫,再一步一步瞭解更深入的知識。

    如果選擇帶介面的開發:可以學習MFC,QT,這兩個是基於C++語言的,也可以選擇C#.net。

  • 4 # 騎著摩托去取經的唐僧

    程式語言設計現在從初中就開始有課程教授了,可見未來對程式語言設計是越來越普及,很可能在初中就能完成之前在大學才能完成的課程。

    程式設計主要還是邏輯的結構設計,一個優秀程式設計師,應該使用最簡單明瞭的簡短的程式碼來實現所需的模組功能。

    在清晰語法之後,研習資料結構,以便更好理解程式設計要義。

    C語言是一種面向過程的語言,其指標為難啃的部分,瞭解語法後,應該要加強實操編碼能力,多寫案例,多閱讀優秀開發者的程式碼,會讓你受益匪淺,也會讓你有驚人的進步。

    有幾基本書必須拜讀,如資料結構與演算法分析、C語言入門經典等。

  • 5 # 華語天地1990

    可以聯絡一些簡單的小練習,練習多了,對語法熟悉了,再去做一些小專案。比如:

    用C語言實現ping程式,可以加深對TCP/IP的理解。

    附贈練習題:

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

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

    幾個數相加由鍵盤控制

    2、一個數如果恰好等於它的因子之和,這個數就稱為"完數".

    例如6 = 1 + 2 + 3.

    找出1000以內的所有完數

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

    求它第10次落地時,共經過多少米?第10次反彈多高

  • 6 # Hdxnx

    簡單語法學完了,再看看用到了幾個c標準庫,標準庫裡面的能讀懂了幾個?然後以標準庫為方向逐個拓展!

    個人意見是先用完標準庫,讀懂標準庫的程式碼!

  • 中秋節和大豐收的關聯?
  • 按身高把人類縮小100倍然後和一隻螞蟻拔河能贏嗎?