Ⅰ 如何從零開始學編程
1、具備計算機基礎及數學基礎
首先應該具備一些計算機基礎原理及操作的相關知識。從計算機發展和應用的歷史來看計算機的數學模型和體系結構等由數學家提出,最早計算機為數值計算而設計。學好計算機要有一定的數學基礎,初學者具備高中水平一般就夠用了。
2、培養邏輯思維能力
學編程要有一定的邏輯思維能力,邏輯思維能力的培養要長時間的實踐鍛煉。在學習的過程中培養編程思想,反復實踐、觀察、分析、比較、總結中逐漸地積累。有些問題通過實踐後才能明白,通過實踐把老師和書上的知識變成自己的。
3、學習編程思想
學習一門語言或開發工具,除了掌握其語法結構和功能調用,更重要的是學習編程語言的思想。
零基礎新手能學會編程。
1、學編程需要不斷實踐聯系
編程起步階段要經常動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,是培養邏輯思維的好方法。
2、養成良好的編程習慣
編程入門不難,但入門後不斷學習提高比較難,相對來說是較為漫長的過程。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量,良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
3、學會利用網上資源
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載,所以要利用好網上的學習資源。
4、學編程理論結合實戰
要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件後開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。當你發現編到一定程度很難再提高的時候,要鞏固計算機科學和數學基礎理論彌補短板。經過不斷的學習,再努力地實踐,編程水平會不斷提高。
Ⅱ 鎴戞兂瀛︾紪紼嬨傛垜鐨勬暟瀛﹀熀紜宸鐨勮佸懡錛屽垵涓姣曚笟錛屽仛榛戝㈣佸﹂偅縐嶇紪紼嬭璦錛熸垜璇ヤ粠閭i噷寮濮嬪晩
1. 濡傛灉浣犳兂鎴愪負榛戝錛岄栧厛闇瑕佸硅$畻鏈烘妧鏈鏈夋繁鍏ョ殑鐞嗚В錛岃屾暟瀛︽槸璁$畻鏈虹戝︾殑鐏甸瓊銆
2. 鎴戝緩璁浣犳寜鐓уぇ瀛﹁$畻鏈虹戝﹁劇▼鐨勬ā寮忔潵鎻愬崌鑷宸辯殑鎶鏈姘村鉤錛屼粠鏁板﹀垎鏋愩佺繪暎鏁板﹀紑濮嬪︿範銆
3. 鎺屾彙鏁板﹀熀紜鍚庯紝緇х畫瀛︿範C璇璦鍜孋++錛岃繖涓ら棬璇璦鏄緙栫▼鐨勫熀紜銆
4. 鎺ヤ笅鏉ワ紝瀛︿範鏁版嵁緇撴瀯鍜岀畻娉曪紝浠ュ強鎿嶄綔緋葷粺錛岃繖浜涢兘鏄璁$畻鏈虹戝︾殑鏍稿績鐭ヨ瘑銆
5. 鍦ㄨ繖浜涘熀紜鐭ヨ瘑鎺屾彙涔嬪悗錛屼綘鍙浠ヨ漿鍚戠綉緇滄柟闈㈢殑瀛︿範錛屼簡瑙i槻鐏澧欍乀CP/IP絳夌綉緇滅煡璇嗐
6. 鍏充簬VB璇璦錛屼釜浜哄緩璁浣犲彧闇瑕佹帉鎻″熀鏈鐭ヨ瘑鍗沖彲銆傝櫧鐒跺畠鏄涓縐嶉珮綰ц璦錛屼絾瀹冪殑璁捐℃濇兂鍜屼唬鐮侀庢牸騫朵笉鍒╀簬璁$畻鏈烘妧鏈鐨勬彁楂樸
7. VB涓昏佹槸闈㈠悜Windows榪欎竴鐗瑰畾鎿嶄綔緋葷粺鐨勶紝鑰屼笖鏄瀹屽叏闈㈠悜瀵硅薄鐨勶紝榪欏逛綘璁$畻鏈烘妧鏈鐨勬彁鍗囧苟涓嶅埄銆
Ⅲ 學編程要怎樣水平的數學基礎
學編程需要一定的數學基礎,從計算機發展和應用的歷史來看,計算機的數學模型和體系結構等都是由數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,具備高中水平就差不多了。
邏輯思維能力的培養也是學程序設計的重要部分,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。
選擇一種合適的入門語言也很重要,面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類:本地開發應用軟體開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。以上不同的環境下幾種開發工具中 VB 法簡單並容易理解,界面設計是可設化的,易學、易用。
掌握編程思想是學習一門語言或開發工具的核心,語法結構、功能調用是次要的,最主要是學習它的思想。例如學習 VC 就要學習 Windows 的內在機理、什麼是線程......;學習 COM 就要知道 VTALBE 、類廠、介面、idl......,關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
多實踐、多交流也是提高編程水平的重要途徑,掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。
養成良好的編程習慣也很重要,編程風格的好壞很大程度影響程序質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
加強計算機理論知識的再學習也是提高編程水平的關鍵,在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。
上網學編程可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載。例如網站「編程課堂」(http://best.yeah.net/)主要以 VB 和 Delphi;教學和交流為主,提供大量實用技巧;網站「現在時編程學園」(http://pshool.yeah.net/)是專門介紹C、VC、VB、Delphi 等的綜合編程網站。
通過不斷的學習和實踐,編程水平一定會不斷提高到一個新高度。
Ⅳ 怎麼去學習編程c語言,我沒有一點數學基礎 還有就是看不懂裡面的代碼 需要怎樣去學 謝謝!
一、C語言是最值得學習的語言
學習C語言,首先要明確地告訴自己:C語言是世界上最值得學習的語言。
如今決定學習任何一門其他語言之前,都要先考察這個語言有什麼成功項目嗎?唯獨C語言沒有必要問,因為世界上所有最最重要的的系統中,都必然有C語言的身影。比如操作系統內核、高級語言底層等等。
為什麼C最適合擔任系統核心?主要原因可能是C語言具有和匯編語言的對應性,一條C語言代碼,對有經驗的人來說,可以轉換為一條或多條匯編代碼,也就是說編譯結果具有可預測性。C代碼不會在被編譯時被加上奇奇怪怪的修飾,也不會在二進制兼容性方面帶來大問題。這種穩穩當當的語言,一切都在掌握之中,一切榮耀歸屬於coder,一切錯誤也歸罪於coder。
學習C語言的同時,就自然而然的理解了硬體與操作系統的淺表一層。比如int有幾個位元組的問題,已經是QQ加群驗證是否是程序員的一個標准了(笑),這從側面說明了學習C語言時確實會關心底層軟硬體的實現。C語言簡單的基於值類型的數據類型體系(引用靠指針,指針本身也是值類型),保持了和硬體底層的一致性(即內存、緩存、寄存器只能保存值),不會出現其他語言比如C#那樣既有值又有引用反而對理解底層實現製造了障礙。
從某些角度上講,C語言從設計上來說並不是為了讓我們更好的寫邏輯代碼而設計的,它真的是「只能是這樣」,沒有對錯好壞之分。因為計算機體系結構就是這樣的、匯編就是這樣的,所以C語言大致也只能是這樣的,誰也不能隨意捏造它。它足夠簡單,評論它的設計優劣意義不大。
廢了這么多口舌,是為了堅定思想,端正態度,只有抱著「最好」的態度,才能排除雜念,勇往直前。時代在進步,某些東西易逝,而另一些東西持久。很多編程大師都用親身經歷告訴你,C語言永遠值得用最純粹的態度去學習。
二、學習C語言的初步路線
我們說學習任何東西,都有先把書讀厚,再把書讀薄的過程。也就是說,先學習大量知識和細節,然後總結歸納、提綱挈領,就徹底掌握了這門知識。
而學習C語言,一開始就不那麼厚 : ) 。大道至簡,只需一本:
<img src="https://pic2.mg.com/50/v2-_hd.jpg" data-rawwidth="286" data-rawheight="337" class="content_image" width="286">
賞析一下書中前幾個問題:
第1章 正則表達式匹配器
第2章 Subversion中的增量編輯器:像本體一樣的介面
第3章 我編寫過的最漂亮代碼
第4章 查找
可能是知識結構不足,本書後面的例子我讀起來有點不清晰。對C語言學習者來說,前幾個例子非常值得一讀,可以迅速意識到自己的不足並迅速成長。本書建議先找電子版試讀。
PS:關於C語言開發環境
1、Windows平台,請使用Dev-C++。不要用Visual Studio,對C語言支持不完整。
2、安裝Linux虛擬機,桌面版本的,比如Ubuntu,現在貌似「深度Linux」挺火,沒試過。
三、關於進階
C語言的進階會遇到兩個主要問題:
1、明白基礎以後,缺少大量練習。而大量練習本身會非常費時間,因為在顧及語法的同時要顧及邏輯問題,捉襟見肘。這時候的初學者,邏輯抽象能力和語法使用都是半吊子,非常難受。
2、閱讀代碼方面,C語言的成熟工程代碼一般會比較冗長,函數中間夾雜著很多宏和指針操作,我閱讀的感覺是讀後面忘前面,非常難入手。如果不明白某個函數的功能,強行將其讀懂非常費時費力,容易放棄。
這樣一來,學完基本知識之後的進階之路真的非常陡峭。
我個人大膽給出C語言進階的一個相對緩和的路線:
1、實現鏈表、可變長數組、哈希表等基本數據結構,實現方便的string結構體。然後大膽的用在自己寫的程序中。不要怕寫的有BUG,也不要怕效率不高。現代編程中容器是非常關鍵的武器,沒有容器寸步難行。而編寫容器時會練到封裝、指針、內存分配,都是C語言進階時極其重要的方面。
2、如果工作學習中用到C語言就再好不過,比如現在很多本科、碩士畢業論文都要用C語言實現,那麼這時候抓住機會多練練,是最好的。
3、嘗試ACM競賽題,ACM競賽和OnLineJudge平台,比如
http://tyvj.cn/
類似有很多,北大、北郵這種大學都有類似的網站,上面不僅有題目,還有演算法、有答案、有提示,還能直接在網頁上做題。刷題可以獲得及時反饋,一旦你AC了3道題,那種成就感可以讓你繼續下去,哈哈。不過除非你興趣就是演算法本身,那麼刷30道題基本就可以了,畢竟這種刷題會猛烈地提高演算法能力,但是對架構能力的提升幾乎沒有任何作用,對大多數人來說不建議刷太多。
4、非常重要的私貨:如果除了做練習題以外沒有練習機會,那麼請把C語言放一下,快速學習Python(首選)、Lua(次選)、JavaScript(或TypeScript更好)等能夠立即實現功能效果的語言。學習好的動態語言有兩方面好處:
第一:表層來說,能迅速提高邏輯代碼的編寫能力。用C語言構思半天才能寫一點的功能,用動態語言會快速的多,動態語言將我們從內存分配、容器等基本問題中解脫出來,直接實現我們想要的效果。用動態語言實現之後,可以用C語言仿寫這些邏輯代碼,相當於按圖索驥,直達目的。
第二:深層來說,較高級的語言對底層的語言編寫有強烈的指導意義。我個人在工作中使用C++用了很長時間,但是總感覺遇到瓶頸無法突破。直到我學習了Python,寫了一兩個比較復雜的工具,從另一個角度突破了邏輯設計的屏障,才感覺到編程水平有了明顯提高。
第三:在掌握了Lua或Python後,再找資料一邊學習一邊看Lua和Python的C源碼,對提高C語言水平有實質性的幫助。
這里舉一個簡單的例題:一個文件中有很多對ID和欄位,這些ID和欄位對分別代表另一個文件。而另一個文件內容可能會鏈接到更深一級的文件。怎樣讀取這些文件組成一棵樹呢?
這個問題對能力達到一定水平的人是基礎問題,而對於初學者來說可能是一個門檻。這種問題我的建議是用Python或Lua的表、字典來解決,然後理清思路之後,改寫為C代碼。