亚洲伊人网站-亚洲伊人精品-亚洲伊人电影-亚洲一在线-久久国产一区二区-久久国产一区

高分網 > 通用學習方法 > 學習方法 >

c語言學習方法

時間: 如英2 學習方法

  對于C語言的學習,不同的人有不同的經歷和不同的方法,當中許多方法都具備相對完整的步驟和不錯的功效。以下是學習啦小編要與大家分享的:c語言學習方法,希望對大家的學習有幫助!

  c語言學習方法一

  C語言相比C++的優點之一就是最小驚訝原則,一是一二是二,不會在私底下產生一些莫名其妙的額外產物。用C++做個例子,比如這樣一個函數原型void PassWithClassValue(COneClass clsParam1),稍微了解C++的朋友都會知道,如果你沒有實現COneClass的拷貝構造函數,編譯器會好心的幫你實現一個,而且在調用這個函數PassWithClassValue的時候,偷偷地調用拷貝構造函數產生一個臨時對象作為參數傳遞,對于某些情況,比如編寫操作系統這類必須優化性能的情景下,這些自以為是的東西是非常邪惡的事情。

  C語言本身只提供必要的語言特性,其它復雜一點功能如文件處理、數學計算等等都以庫函數方式提供,甚至連malloc、free這種“必須有”的功能,也是以標準庫函數的方式提供,而不是作為C語言核心出現。在偉大的著名的無所不包的《K&R》開頭部分就提到了,for其實可以通過while來完成,只不過for可以寫的更簡潔,言外之意,對于C語言for其實不是必要的。跑題一點說,在其它程序語言中Lua可以說繼承了C語言簡潔的設計哲學,甚至連continue這種幾乎必備的關鍵字都一直拒絕加入,在Lua的maillist以及wiki里都提到過continue這個問題,Lua語言維護者認為continue對于Lua而言不是必要的,也不考慮在后續版本中添加這個關鍵字。這種簡潔哲學也讓C語言的可移植性、便攜性特別優秀,也使得很多嵌入式系統依然使用C語言作為主要編程工作語言。

  Java語言有一個口號:“一次編寫,處處運行”,就是跨平臺這個噱頭。實際上C語言從早期開始就幾乎達到了“一次編寫,處處編譯”,在ANSI在1989年統一了C語言標準以后(稱之為C89),只要特定平臺上的編譯器完整實現了C89標準,而且你的代碼沒有使用某些特殊的擴展(GCC以及微軟都有自己的編譯器特定擴展),那么代碼一定可以編譯通過,再實現一下操作系統相關的函數庫,C語言的移植就是很簡單的事情??梢杂肔ua作為例子,Lua本身是完全遵循C89標準,沒有使用任何特定擴展,這也保證了有C語言編譯器的平臺,都可以編譯使用Lua??梢跃幾g運行C語言的硬件平臺可以從A排到Z,真是非常有意思的事情。

  C語言也是一個比較少見的應用領域極為廣泛的語言。比如編寫操作系統這種高難問題,只有C++、匯編語言可以做到。C語言可以編寫服務器端軟件如Apache、Nginx,或者編寫GUI程序,如GTK。大多數程序語言的第一版是通過C語言實現,借助前面提到的“一次編寫處處編譯”,最大的保證了這些程序語言的可移植性。在Web開發領域,C語言的應用相對較少,這也是一種取舍的結果,Web開發需要使用PHP、Ruby、Python這樣的動態語言,可以快速上線快速修改,可以最大程度滿足用戶時時變化的需求,這也是C語言的弱項。如果把程序語言的應用領域從硬件到管理軟件、Web程序做一個很粗略從下到上的排列,C語言適合領域是比較底層靠近硬件的部分,而新興語言比較偏重于高層管理或者Web開發這種相對貼近最終用戶的領域。比較流行的混合開發模式是使用C語言編寫底層高性能部分代碼或后臺服務器代碼,而使用動態語言如Python做前端開發,充分發揮它們各自的優勢力量。

  提到C語言的缺點,常常是它缺少這種或者那種特性,比如有人建議加入GC,有人建議加入并行或者并發支持,有人提到沒有一個比較完整的類似C++的異常策略。這些特性有的可以通過引入第三方庫來實現,但C語言的設計哲學其實決定了它不會像C++那樣“非常強大”。即使引入了某些人期望的特性,依然會是某些人喜歡某些人不喜歡的情形,現在的功能對于C語言應用領域來說已經夠用,其它特性可以通過特定程序語言實現,并且通過C API與C語言編寫的程序進行交互。任何一個工匠都不可能只使用一個工具完成他的工作,不同工具結合起來才能更快更好的完成任務。

  提到C API,也稍微介紹一下,我們知道windows操作系統的api也好,Linux的系統api也好,或者是想給Ruby、Python編寫擴展模塊,C語言形式的函數定義都是唯一的選擇。C語言就好像是一個中間層或者是膠水,如果想把不同編程語言實現的功能模塊混合使用,C語言是最佳的選擇。

  提了這么多關于C語言的好處,那么學習C語言是否適合就看你自己的判斷了,例如要進行一個嵌入式項目,或者需要進行服務器端開發,或者寫一個性能相關的組件等等,C語言都是比較好用的選擇。另外也可以在C++的使用過程中有意的使用C語言的思考方式,汲取C語言簡潔明快清晰地設計思路,對編程設計水平會有很大的提高。

  c語言學習方法二

  有人認為,現在是java和.net的時代,有誰還需要C以及匯編呢?孰不知,java和.net是建立在軟件之上的,是為了壟斷市場而建立起來的體系,猶如挖好一個金壁輝煌的坑,請你往下跳,還自以為站在巨人的肩膀上,事實上成了坑底之蛙。要成為一個真正的程序員,并期望成為一個程序員高手,必須從機器出發,從cpu到操作系統,再到軟件體系,高手的境界就是悟道后的明鏡靈臺,軟件設計出神入化,我就是程序,程序就是我。

  旁觀者李四說:此人大笨也!我用鼠標隨便拖幾個控件,就是一個xxx管理系統了,你用C語言怕是一年也寫不出來吧!好吧,我要承認,講這話的都已經是mS的奴才了,別的我不了解,MFC本身就是一個封閉的架構,從MFC入手學習,你只會形成一種封閉的思維模式,因為MS希望很多人只學會表面的東西,不致成為高手,所以它大力推薦所謂的可視化的程序開發工具,也真有很多人愿意上他的當,最后真正迷失方向。說他坐不了程序吧,他也可以作,但是如果程序復雜一點,出現問題時,問題出再哪里就搞不清楚了,反正是不清楚!

  梁肇新,大牛啊,他說:"我就搞不懂了,用鼠標怎么寫程序呢?在我的公司里,高手的鍵盤響個不停,鼠標偶爾響一下,新手是鼠標響個不停,鍵盤偶爾響一下,他們的薪水相差的就不是一倍那么多了!"

  C語言是各大操作系統的基礎,Unix、Linux、Windows其內核都清一色是C語言開發的,(某些地方是和匯編語言混合開發的),君不見WindowsAPI都是C語言函數的接口?Unix/Linux絕大多數應用都是C語言開發的;Windows應用程序用純API開發已然不多,大多都是依靠某種ApplicationFramework,比如所謂的VC++,其實就是指VCIDE+C++語言+MFC(現在重點已轉向ATL、WTL),但是Windows服務、網絡、驅動程序等底層軟件,還是C語言開發的。各種語言的編譯器,包括java虛擬機,都是用C語言開發的。各種嵌入式設備,如手機、PDA也都是C語言開發的。

  第一個要裝進行囊和你一起前進是"規范的格式" 。所以說,規范的格式是入門的基礎。那這個規范的格式包括什么呢?不少啊,要堅持才能做到!長標志符命名,代碼縮進,一對大括號范圍不超過一屏幕,等等。

  第二個要裝進行囊的是耐心,所謂工欲善其事,必先利其器。要想成功,沒有一個相對平淡的過程是不可能的。這不僅僅指你在學習過程中要有耐心,要循序漸進,而起也說的是另一個重要的方面:調式程序。調試是寫程序過程中一個重要的方面,如果有人能一次寫成程序,牛啊,而且是大牛,不光是大牛,還是老子騎的那頭青牛,凡人是做不道的!調試是每個程序必定經歷的歷程。

  第一招,學什么呢?打狗棍法!呵呵

  有一個偉人說過:"重復權威是成熟的必經之路",這是站在巨人的肩膀上的做法,習武之人首先要學的都是各種套路,比方說辟邪劍法,然后才能融會貫通,開宗流派;我們學習寫程序也要這樣來,這是一個捷徑,幫你走得更遠得捷徑。

  看書,看好書!書中所寫,是前人數十年經驗所寫,看十本書,就相當于汲取了前人數十年的功力,那么你的內功也會迅速上升1甲子。:)書當然要看好書,只有好書才營養豐富。要做到讀書破萬卷,編程如有神;枯燥的看書是很郁悶的,很容易變成化石!現在很多是書都是用源碼說明問題的,源碼就像是動畫、就像是幻燈片,把書中的招式一一演練給你看。 自己手工輸入這一步不能省略,現在很多書有配套源碼,很多同學或者成年人學習的時候都耍小聰明,直接把源碼復制過去編譯運行,hoho,這是沒有效果的。

  TC至少有一個好處,可以鍛煉我們使用組合鍵的習慣,可以鍛煉我們使用鍵盤編程的習慣。

  一、要讀就讀好書,否則不如不讀

  Kernighan和Ritchie的《TheCProgrammingLanguage》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標準C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的?!禖語言參考手冊》就是《CReferenceManual》,是C語言標準的詳細描述,包括絕大多數C標準庫函數的細節,算得上是最好的標準C語言的工具書。順便提一句,最新的《C程序設計語言》是根據C89標準修訂的,而《C語言參考手冊》描述的是C99標準,二者可能會有些出入,建議按照C99標準學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《PointersonC》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書并不十分適合初學者,如果你曾經學過C語言,有那么一些C語言的基礎但又不是很扎實,那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。

  如果你已經啃完了一本C語言教材,想要更進一步,那么有兩本書你一定要看。首先是《CTrapsandPitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,里面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什么壞事。然后你可以挑戰一下《ExpertCProgramming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完并能透徹理解,你便可以放心大膽地在簡歷上寫"精通C語言"了。

  切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然后再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。

  二、Unix/Linux還是Windows,這是個很大的問題

  不同的編程環境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發環境,比如VisualStudio,而Unix程序員更加鐘愛Makefile與控制臺。顯而易見,集成開發環境更容易上手,在Windows上學習C語言,只需要會按幾個基本的VisutalC++工具欄按鈕就可以開始寫Hello,World!了,而在Unix下,你需要一些控制臺操作的基本知識。有人也許認為Unix的環境更簡潔,但習慣的力量是很大的 。

  所以我建議初學者應該以VisualC++6.0(不是VisualC++.NET)或者DevC++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今后你一定要轉向Unix環境的。VisualC++6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持并不好,而DevC++使用gcc編譯器,對C99的標準都支持良好。使用順帶提一下,很多大學的C語言課程還在使用TurboC2.0作為實驗環境,這是相當不可取的,原因其一是TC2.0對C標準幾乎沒有支持,其二是TC2.0編譯得到的程序是16位的,這對今后理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC2.0編譯出32位程序,不過那過于復雜了)。

  等你學完一本C語言的教材,你一定要轉向Unix平臺繼續學習,幾乎所有的C語言高級教程都是基于Unix平臺的(比如《C專家編程》)。轉變的過程是痛苦的,你需要面對的是各種紛繁復雜的命令,完全不同于Windows平臺的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,你可以找到無數優秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數的聯機手冊,還可以看到最優秀的代碼風格(說到代碼風格,我會專門寫一篇文章詳細敘述)。

  歸結起來就是一句話:初學C語言,建議使用Windows系統和集成開發環境,在準備向"高手"方向努力時,請先轉向Unix平臺。

  三、萬事俱備,你就是東風

  書已選定,環境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什么基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經具備。看完前言,還要瀏覽一下目錄,了解一下書的整體結構,順便給自己安排一下學習計劃。

  例子之后就是習題了,我建議初學者把所有的習題都獨立做一遍。

  也許你認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等你學到后面才發現自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今后繼續學習的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統計),時隔多日,我早已記不清Windows的系統編程了,但只要花幾分鐘翻出以前的代碼看看,便會重新了然于胸。所謂好記性不如爛筆頭,就是這個道理。

  仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最后將所有的代碼留下,成為自己的經驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,你還要具體情況具體分析。

  寫到最后,還有非常非常重要的一點沒有提及──代碼風格,從最開始學習就必須強迫自己模仿最優秀的代碼風格。因為代碼風格太重要內容也太多,我會用專門的一篇文章來詳細討論,請大家關注《程序員之路──關于代碼風格》。

  在這里停一下,上面說的便是我學習的風格:總要經歷一番波折,瞎折騰幾下,然后才會有偶然間的明悟-開竅了!我甚至沒見過幾個人有我這么笨,現在明白過來了,我總是一開始把事情想得過于復雜,造成狗咬刺猬的難堪的局面,然而竟然有意想不到的收獲!但是不建議大家模仿這種風格,起碼追女朋友的時候不能這樣,生活中很多機會在于接手的那一瞬間,失去就永遠找不回來了。

  現在回來,后來偶然間,我看懂了一行代碼,是print語句,當時興奮得要命,又仔細看了這個看了那個,一下子看懂了很多東西,像是在霎那間被什么給擊中似的,立刻間醍醐灌頂。。。。

  可是,還是那句話不破不立,不阻不行。就像我現在有了電腦,整天泡在互聯網的海洋里,感受著快餐文化,好久都沒靜下心來好好想點東西了。

  談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是"讓我歡喜讓我憂。"歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了后,你就可以理直氣壯地對他人說"我是電腦高手!",而且以后若是再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如"少林武功"一般博大精深,太難學了。其實就筆者認為C語言并非是"difficult(困難)"的,只要你能理清思路,掌握它的精髓,那么自學C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面著手。

  就個人感觸,無論學習哪門語言首先應該了解一下自己所學語言的背景,也可以說它的發展史。C語言屬于高級程序語言的一種,它的前身是"ALGOL"。其創始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時是帶有很大的局限性,因為它只能用于UNIX系統上。然而隨著科學技術的進步,計算機工業的發展,C語言逐漸脫離UNIX。1987年美國標準化協會制定了C語言的國際標準,簡稱"ANSIC",從此以后它便成為一種廣泛使用的程序語言。C語言的優點很多,主要的有如下四點:

  兼備高級語言與低級語言的優點,屬于一種中間語言。

  它是一種結構化程序設計語言,非常適合結構化程序設計。

  有較豐富的數據類型、運算符以及函數供以選用。

  直接與內存打交道,使修改、編輯其他程序與文檔變得輕松,簡單。

  怎樣才能學好c語言?想盡快上手就得掌握計算機的特點,計算機的特點包括:

  計算機在問題的處理方式上要求全,將所有的可能都要告訴它。

  計算機要求程序的描述精確,無二義性。

  計算機編程是要求有很強的全局性和邏輯性,不存在起伏的問題。

  計算機要求它的主人,考慮問題要全面,所有可能的情況及處理都要告訴它,要求學會沉穩,心態要穩定,要求交流的語句一定要明了含義單一。

  怎樣才能很快的學會c語言,更快的度過磨合期呢?C語言的語法規則記憶理解當然是不可少的,除此之外還應注意以下幾個方面:

  平衡心態,雖然不能做到"不以物喜,不以己悲"的水平,但至少不要浮躁,不要急于求成,欲速則不達。

  培養自身的全局意識,既能小無內,也能大無外,才行。

  嚴格按照程序設計過程設計程序,不要跳脫,天馬行空,沒有規矩是不成方圓的。

  努力提高自身的綜合素質。程序是人思維的表達形式,是人處理問題思路和語言的結合體。你對客觀看成到什么程度和你掌握的知識成正比。如果你對處理的問題不理解,不會處理,你怎么也寫不出程序。

  學會交流,多交流,相互補益,同時團隊合作也是很重要的。

  c語言學習方法三

  學好C語言的秘訣就是1234:“一字真言,兩種態度,三個框架,四項注意”。

  一、一字真言

  各位看官,學好C語言,其實只需一個字,那就是“編”。

  (一)編。

  學習C語言,乃至學習所有的語言,都講究一個動手——不是動手打人,而是動手編程序。你必須通過編寫程序來熟悉知識、理解知識。倘若只學不編,只看別人的程序,自己不動手寫,是不能從入門到精通的。要知道,在計算機界,只說不練的人很欠揍。試想一下,你在哪里辛辛苦苦的編程序,他卻站在一邊,如老板一樣喋喋不休,對你提出這項意見,那項思路,甚至暢談自己編程將會如何如何,好像很牛皮的樣子,但就是不編一行代碼。估計大家碰上如此之人,只會一個動作,那就是點擊“踩”。

  一個“編”字就可以學好C語言嗎?真的如此簡單嗎?不是的,僅僅“編”是不夠的,你還需要“我編”。

  (二)我編。

  請注意修辭,“我”編!這個“我”其實就是只“你”,也就是學習C語言的人。

  大家在學習C語言時,要多編寫程序,比如學習鏈表時,要自己編寫鏈表程序,甚至自己編寫俄羅斯方塊等游戲程序來練習。不過有個前提條件,你必須自己編寫這些所有的程序才有效果,如果你從網絡上下載了某某源代碼,或者拷貝了同學的程序,任何大言不慚的說是自己編寫的,那么我也只能大言不慚的告訴你,這樣做出了養成偷竊的習慣外,沒有任何效果!

  有同學會問,那么“親自”編程序總可以精通C語言了吧,其實還差一點點,僅僅“編”是不夠的,只是“我編”還不足以精通,為了達到C語言的最高峰,你還需要“我編編編”。

  (三)我編編編。

  “編”字重復三次,這里的“三”,代表多,意思是你必須多多的編寫程序。親自編寫10行代碼等于沒有編,親自編寫1000行代碼是遠遠不夠的,親自編寫1萬行代碼還馬馬虎虎,親自編寫10萬行代碼,你絕對成為程序員中的戰斗員。

  乍一看10萬行代碼,估計有同學會先直挺挺的躺下去,然后又眼珠一轉站了起來——他們想起了壞主意。“不就是10萬行嗎,容易!現在的編程工具都有代碼生成功能,隨便在VC中用鼠標拖曳幾下,搞一個MFC窗口程序,系統就自動生成了幾百行的代碼。在搞幾個三方控件,幾千行代碼就生成了!”

  再次聲明,“編編編”是有前綴的,那就是“我”,也就是學習者自己,使用代碼自動生成工具產生的代碼難道是“學習者”編寫的?

  要不上有政策,下有對策,“不用代碼生成器,那么就抄,照著輸入代碼就行!”哎,人不能無恥到那種地步!這十萬行代碼要“你”親自完成,親自在腦海中發芽、生根,再親自逐行輸入。這又不是什么政績任務,也不是什么形象工程,欺騙別人最終只能是自欺欺人。

  二、兩種態度

  一般人提起C語言,常常一個字如影隨形涌上心頭,那就是“難”!害怕啊,C語言真是太恐怖了,傳說中的指針真是太鋒利了,一不留神就把系統劃破,搞出幾個死機重啟都是太正常不過了。

  其實沒有必要這么擔心,本朝太祖曾經說過:“在戰略上藐視敵人,在戰術上重視敵人。”

  (一)戰略上藐視C語言

  其實,C語言也就是一個普通的語言而已,別把它想象的太難!與Java相比,C語言也只是程序復雜一點、代碼冗長一點、庫函數少上一點、三方控件難學一點,編譯工具簡陋一點、指針麻煩一點,其他的都差不了多少,程序設計思想總是一樣、程序構建總是相同的、程序語法總是類似的、程序邏輯總是差不多的。

  沒有必要對C語言談虎色變,把他當成一門普通的語言就行了。要知道,就算C語言再難,總比匯編語言容易掌握、比機器語言容易記憶、比英語容易掌握。所以要自信!一切C語言都是紙老虎。

  (二)戰術上重視C語言

  雖然我們在C語言面前保持了激昂的斗志,雖然我們無所畏懼。但是真正在學習得過程中,還是務必保持謙虛謹慎的態度,戒驕戒躁,不要因為搞了一兩個俄羅斯方塊游戲程序就洋洋自得,以為老子天下第一,甚至只遍了10行代碼,就到博客中到處罵人,到處“踩”人的帖子。要知道,“雄關漫道真如鐵,而今邁步從頭越”,無論你學了多少,只要還沒有走上工作崗位,那么萬里長征就只是才邁出了第一步,還有很長的道路等待著你。

  三、三個框架

  學習C語言,“編”不是問題,問題是“編什么”、“怎么編”、“編多深”,下面就來解決這些問題。

  (一)靜心不靜

  1、靜心。

  學習的過程,是一個漫長而枯燥的過程,學習者必須要有吃苦耐勞的準備,靜下心來,從大家的視覺中消失,經受一個長時間的編程學生過程。吃盡苦中苦,方成人上人!等你重新回到大家的視野時,你會有一個蛻變,那時一切的痛苦都將化為甘甜。

  溫瑞安先生有一部武俠小說,叫做《請借夫人一用》,我們這里也借用一下。當然不是借用別人的女朋友,而是了解一下主人翁的學習歷程。主人翁韋青青青出場時渾然是一個高手,他把一千零一招的功夫柔和在一招之中,但是在其出場之前,江湖上沒有人知道韋青青青這一號人物,因為他正在十年如一日的專心練功,正是這種練功時的不為人知,才造就了了日后的溫瑞安小說高手。

  不談武俠,來個IT版的例子。在遙遠的大洋彼岸,在微軟的IE橫行之前,在互聯網剛剛起步之時,有一個叫做“網景”的瀏覽器占據了市場99%的份額,網景公司在當時的美國更是比易中天還如日中天。可是,大家知道這個“網景”瀏覽器是誰開發的嗎?是一個學生,他在大學中不顯山不漏水,別的同學每天考慮著泡MM,他卻每天除了上課就是泡機房,是上也泡,下也泡,終于泡出了瀏覽器。

  所以說,靜下心來,無論其他同學在多么興奮的展示他們的某某系統,他們的某某網站,既然你選擇了學習C語言,那么以韋青青青為榜樣吧,總有一天,你會一舉成名天下知的。

  2、不靜

  學習C語言,務必不可以急躁,務必一步一個腳印,此乃靜心。但是,學習C語言,也不可以太過沉默,一個人呆在機房里閉門造車妄想著創造出某個絕世程序然后成為中國的比爾蓋茨是不可能的。

  學習靠自己,所以大部分時候我們需要自己思考、閉關修煉。但是一個人的力量終究是有限的,很多時候我們需要借助外力。比如不懂的地方咨詢老師,不明白的地方可以與同學相互討論等等,都是可以的。

  有很多同學,學習時碰上困難,遇上了麻煩,于是自己冥思苦想——這是對的——還是得不到結果,于是故意回避不聞不問——這是自欺欺人。有同學說,那是因為無人可問,問老師,貌似大學老師總是神龍見頭不見尾,根本找不到;問網絡大蝦,網絡大蝦們經常不在線,就算在線,面對洋洋灑灑的留言也視而不見,更別提回復了;問同學,別提了太丟面子!大家同學而已,為什么要問他,問他豈不是說明自己低人一等嗎,不問!

  其實,大學之中同學之間相互討論是最可行的一種做法,畢竟一個王重陽沒有時間指點全真七子,網絡大蝦比投名狀中的兄弟還不可靠,所以除了自己多思考就是同學之間多討論了。不要擔心問問題會低人一等,老祖宗有一句話叫做“不恥下問”,雖然你的水平比我低上一點點,但是,我不覺得向不如自己的問提問是恥辱。多好的阿Q精神啊,用這點!

  只有靜心,才可以更好的學到知識;只有不靜心,才可以更快的學到知識。

  (二)深入不深

  1、深入

  學好C語言,就一定不能浮躁,要深入的學習知識。

  其實,以上的話就極其浮躁,極其不深入。誰不知道要深入學習啊,但是你的告訴大家,到底什么內容屬于深入學習的內容。

  其實,浮躁就是學習知識就是浮于表面,沒有深入理解專業知識。表現在編程上就是只想編寫一些所謂漂亮的、能夠拿得出手的程序,而對于一些底層的支持程序置之不理。

  有的同學喜歡編寫一些漂亮的程序,比如設計漂亮的網頁,使用某某工具開發某某‘大型’系統等等,當然這都是人之常情。正如魯迅先生所說,文章寫出來總是希望擁有更多的讀者,除非是寫給戀人的。程序編出來,總是希望擁有更多用戶,除非是專門為愛人開發的。但問題是,只編寫這類程序是不夠的,是有缺陷的。

  這些所謂的程序,往往只需要對知識應用,并不需要刨根究底研究知識的本身,甚至有很多加入了很多相當專業的內容,并不適合于初學者學習。比如VC中的MFC就是一個典型的誤導初學者的工具。利用MFC可以很方便的編寫出DIAG界面程序或者視圖文檔程序,從表面上看風光無限,但對初學者卻禍害無窮!假如使用VC學習C++,大部分時間將用于消息的處理,控件的處理,還要閱讀大量的視圖文檔結構類庫說明,這些操作將耗費了你大量的時間,得不償失。而且VC++的大部分編程是在某些位置插入代碼,至于C++部分系統自動實現了,留給你的是純C語言操作。同學請注意,你學習的是C++,不是VC類庫,也不是VC操作!

  比如使用數據結構,就必須自己編寫有關鏈表、隊列和棧等內容,你是在學習,又不是工作,當然得用自己編寫的東西呢。

  又比如說C語言的內存分配函數,就是那個malloc和free。一般人直接調用就行了,但是計算機專業的學生不應該止步于此,而應該思考這兩個函數的系統實現方法,并且編程序模擬內存分配和釋放。設計這樣的程序,不但可以增強動手能力,還可以加深對計算機知識的理解,一舉多得,何樂而不為。

  2、不深

  深入學習C語言是極其應該的,但是大家也必須有所側重,不能胡子眉毛一把抓,所有的東西統統深入,具體表現在兩個方面:

  其一、一些知識范圍不可過于深入。

  有一些知識,屬于偏僻的內容,既不是基礎,日后工作中也很難碰上,而且還極度困難,像這樣的東西,了解即可,完全沒有必要深入。比如說某同學心血來潮,要編寫一個漂亮的輸入法軟件,于是苦心學習了有關輸入法的所有知識,還妄圖氣死清華紫光,餓死搜狗拼音,于是仔細研究輸入法的犄角旮旯。其實這些知識均相當偏僻,了解即可,完全沒有必要打破沙鍋問到底。

  其二、一些界面或者不必要的功能不可過于深入。

  大家編寫的程序,往往伴隨大量的交互式界面設計。事實上,編程有個二八原則,即編寫80%的核心內容將耗費你20%的時間,而另外20%的功能將耗費你80%的時間。實際上,作為C語言學習,深入編寫好那80%的核心功能就可以了,耗費80%的時間去深入完善那些20%的功能,得不償失!

  所以,練習用的程序,最好是一些基礎的、底層的實現,不要有太多花俏的圖像和交互式操作。當然也可以設計一些簡單的具備圖形界面的小游戲,但此時你應該將精力更多注重于游戲本身的設計,而不是游戲的畫面風格和動畫效果上。

  學習C語言,有所為有所不為。

  (三)枯燥不枯

  1、枯燥

  學海無涯苦作舟,學習當然是一個枯燥的過程。用語言設計程序,表面上程序漂漂亮亮風光無限,其實風光的背后是黑漆漆的屏幕和冗長的代碼。程序員是把美麗獻給別人,把枯燥留給自己的職業。

  所以,學習C語言,就必須多設計一些枯燥的、無趣的實例。當flash程序員在展示圖片時,C語言程序員要去學習空洞的0和1的圖片格式;當Java程序員設計網站時,C程序員要去理解抽象的HTTP協議;當.net程序員使用對象托管時,C程序員總是要考慮內存的申請與釋放;當C++程序員在歡樂的使用STL庫時,C程序員必須自己搭建所有的數據結構。

  在C語言的學習路上,絕對沒有學習其他語言那么多鮮花,這是每一個C語言愛好者必須接受的事實。

  2、不枯

  其實,人都是需要動力的,憑什么別的程序員可以通過漂亮的程序享受MM的崇敬和同學的贊嘆,而C語言程序員就只能在0和1的世界中與電腦溝通。其實,學習C語言的過程完全可以是快樂的。

  大家在基礎內容了解的差不多時,完全可以循序漸進設計一些簡單的趣味游戲程序,從貪吃蛇到俄羅斯方塊,從搞怪碰碰球到連連看,從掃雷到雷電,甚至還可以是植物大戰僵尸和憤怒的小鳥,編寫一些在界面上簡化的趣味游戲程序來,同意可以激起自己的興趣并獲取老師、同學尤其是MM的陣陣掌聲。

  枯燥,是因為學習并非玩耍。不枯,是因為要像玩耍一樣的學習。

  四、四項注意

  (一)錯誤觀點:C語言低人一等

  由于C語言常常應用于一些服務器程序,沒有漂亮的界面,在一些同學的心目中,C語言程序員就成了IT民工的代名詞。類似于煤礦工人,整天生活在地底下。而那些Java程序員,.net程序員則成了白領麗人。

  (二)錯誤觀點:C語言高人一等

  與第一種情況相反,一部分同學則認為C語言才是語言正統。俗話說:真正的程序員用C,聰明的程序員用delphi。那么其他的語言統統是神馬牌浮云,不值一提。其他的程序員,無論聰明也好,愚蠢也罷,都是盜版水貨。

  (三)錯誤觀點:C語言是忠貞情人。

  弱水三千,只取一瓢。有人在愛情上的忠貞,有人去在語言上忠貞,有人如斯內普般一生只愛一個女人,有人欲效仿之,一生只使用一種語言。

  正如人生而平等一樣,其實,語言也沒有高低貴賤之分,只有適合于不適合之分。Java適合做WEB開發,C語言適合服務器,C++適合做游戲,等等。真正的程序員,不是只使用C語言的人,而是到什么山唱什么歌。任何語言、任何數據庫、任何操作系統對他來說都只是工具,呼之能來、來之能戰、戰之能勝、揮之能去。當JQuery方便時,我不直接用JavaScript;當速度優先時,我不用Java;當穩定優先時,我不用Windows??傊?,倚天劍也好,屠龍刀也罷,統統是工具,為我所用,為我所奴役。

  (四)光說不練假把式

  學習C語言的真言是“編”,但是也有同學會反駁,“這么簡單的程序,也需要我親自編寫嗎?”、“這個程序我看一眼就知道怎么做了”、“跳過這個程序,直接編寫后面的程序”、“不要把天才浪費在這種小程序上”等等之類的言論不絕于耳。

  上面其實就是典型的“眼高手低”。

26442 主站蜘蛛池模板: 黄视频免费观看网站| 财税2010121号原文| 项目负责人任命书| 我的冠军男友| 花宵道中1| 永远是少年电影免费观看| 六扇门电影大全| 我爱你在线观看| 王渝萱的电影| free hd xxxx moms movie777| 叶子楣地下裁决| 沉默的较量| right here waiting中文版| va视频在线| 又见阿郎电视剧免费观看| 回响电视剧演员表| 奋进的旋律演员表名单| 刀客家族的女人演员表| laizi| 南昌起义 电影| 老司机免费在线观看| 精品视频| 最佳的一击电视剧全集免费 | 北京卫视今晚节目表| 我们的祖国是花园简谱| 青山知可子冲绳草莽英雄1969| 邓为个人资料及简历| 索玛花开 电视剧| 节目单| 请假单| 新条由芽| 伟大的转折| 小宏人司机版| 任喜宝| 69视频免费看| 郭亚菲| 爱爱内含光在线播放| 电影林海雪原| 影库| 藏文作文| 1881年|