如何成為程式設計高手對理論的掌握並不代表對知識的真正理解。對於一些所謂高深的理論都可以自己編寫程式來檢驗對其理解的程度。我的經驗是:只有你把程式流暢地寫出來,才是真正意義上對知識理解通透了。比如,我在大三學電力系統分析的時候,就自己用Matlab語言編寫了牛—拉法求潮流的程式,計算暫態穩定的簡單程式,計算髮電機短路電流的程式等。自然地這些專業課程都學得不錯。 Matlab是一門優秀的程式語言,在歐美非常普及。選擇一門順手的程式語言可以讓你在學習和工作中事倍功半。Matlab是一種語言因為它可以用作程式設計,也是一種軟體因為它自帶的工具箱具有類似軟體前臺的GUI介面以及能夠輕鬆實現人機通訊功能。
如何成為電腦高手
要掌握的知識包括:
電腦基礎----對計算機硬體、體系結構不瞭解是不行的。另外像二進位制、十六進位制、補碼、位運算(與、或、非、移位) 程式語言----有人你說C/C++,有人說Java,還有人說別的。還是要看將來會用什麼。資料型別、順序控制、子程式、函式等概念,多數程式語言(高階語言)都類似的,精通一門後可以觸類旁通。 網路知識----現在的電腦沒有獨立執行的了,資訊孤島時代已經過去了。很多軟體都是在網路上執行的。其中對TCP/IP協議一定要熟悉。如果你將來專門做網路程式設計,那就根據需要進一步學習了。 資料庫----資料庫應用是軟體中非常重要的部分。就算你不搞資料庫應用開發,也要對資料庫要了解。 資料結構----光會程式語言是不夠的,“演算法”就像程式的靈魂,會解決問題才能寫出好的程式來。 UML、軟體工程等----做“程式設計高手”,不是光靠自己聰明的腦瓜來寫程式的,現在是資訊爆炸的時代,做軟體經常是很大的專案,需要很多人來做。開始就算你做寫程式碼的最底層的程式設計師,也要根據設計人員的文件來寫;等你層次提高了,設計的任務歸你了,你就要能寫出各種文件來:需求分析、模組設計、詳細設計、測試用例.... 數學----“演算法”是哪裡來的?最終歸結為數學模型! 英語----少不了要看一些英語資料。雖說現在多數軟體工具都漢化了,但最簡單你要認識“if”“else”“for”“do”“while”“case”“this”“text”“list”等等吧。
電腦程式設計的基礎知識
1:如果你能夠熟練的使用Windows的話,你就可以開始你的程式生涯了! 2:首先從C語言開始。有的朋友可能認為C語言太難了,應該從VB開始。雖然,對於一個初學者來說,用一些控制元件堆砌成一個小軟體,是有一些成就感,但是,基礎才是最重要的!C語言對於資料型別的描敘,遠比VB裡面說的更為全面,清楚,明白,而這些卻是程式設計中的根本! 3:學C語言,從資料型別,基本表示式,再到條件語句,迴圈語句,然後學習函式,再加上一些簡單的陣列知識,就可以了!一句話,到現在為止,你只要理解結構化程式設計的思想也就夠了! 4:有了以上的基礎,就要開始學彙編了。彙編開始的時候是很難,那些各種各樣的暫存器,分段的記憶體地址,是很難理解,可是這些知識理解了以後,後面的內容就簡單了,學習8086的那些指令,再加上一些偽操作,還有DOS和BIOS中斷的呼叫,就可以看懂書上的彙編程式了。(著重是理解演算法,對於後面的那些彙編的應用有興趣的可以看一下!)到此,你應該會對計算機的理解更深一層! 5:有了彙編的基礎,再來學習C語言中的精華部分----指標,可謂如魚得水了。現在你要對C語言全全面面的學一遍了,譚版的教材要從頭到尾認認真真的看兩遍以上。 6:學完以上的內容,有必要研究一下資料結構了,線性表,堆疊,佇列,樹,圖,二叉樹,等等,都要滾瓜爛熟!(最好是清華嚴蔚敏老師的那本教材) 7:請時刻記住:浮躁是學習程式設計的大忌! 8:現在,你應該學習一些資料庫的知識,還有一些常用的演算法了! 9:如果以上的知識你都學精通的話,就可以開始C++的課程了,找本C++上手的書,用一個星期的時間大概瞭解一下C++,然後找一本VC上手的書,再花一個星期的時間學習VC的介面和用法,就可以做一些簡單的應用了! 10:要想學好VC,沒有紮實的C++知識是不行的,以下書籍是VC程式設計師必須翻的爛熟的:C++Primer,Effective C++,Thinking in C++,More Effective C++ 深入淺出MFC。 11:深刻理解C++面向物件的思想! 12:程式設計的時候,出錯是難免的,所以,MSDN一定要熟練使用;好的程式碼風格會使除錯的時候,更加簡單的查錯,所以,一定要養成良好的程式設計風格! 13:如果你嚴格的走好了以上的每一步,你才踏上了程式設計的門檻,可以混口飯吃了! 至於在以後,編譯原理,作業系統,還有軟體工程等等基礎知識,是必不可少的! 14:如果現在再來學習JAVA,C#等別的語言的話,應該是觸類旁通,拿來就用了, 到此,你才可以稱得上是一個高手!
如何培養自己成為Matlab程式設計高手
1. 紮實的基礎。精通一門程式語言(C#或Java等),深入理解其程式設計思想。之後,適當學習資料結構、離散數學、編譯原理等知識。(如果你有足夠多的時間可以深入學習這些知識,它們真的非常重要,但是如果沒有時間或暫時學不會,放一放以後再看,也不失為一種好方法)
2. 良好的程式設計風格。注意養成良好的習慣,程式碼的縮排編排,變數的命名規則要始終保持一致。大家都知道如何排除程式碼中錯誤,卻往往忽視了對註釋的排錯。註釋是程式的一個重要組成部分,它可以使你的程式碼更容易理解,而如果程式碼已經清楚地表達了你的思想,就不必再加註釋了,如果註釋和程式碼不一致,那就更加糟糕。
3. 韌性和毅力。這也許是\"高手\"和一般程式設計師最大的區別。A good programming is 99% sweat and 1% coffee。高手們並不是天才,他們是在無數個日日夜夜中磨練出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。你不妨做個測試,找個10000以內的素數表,把它們全都抄下來,然後再檢查三遍,如果能夠不間斷地完成這一工作,你就可以滿足這一條。
4. 對答案的渴求。人類自然科學的發展史就是一個渴求得到答案的過程,即使只能知道答案的一小部分也值得我們去付出。只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最後沒有得到答案,在過程中你也會學到很多東西。
5. 多與別人交流。三人行必有我師,也許在一次和別人不經意的談話中,就可以迸出靈感的火花。多上上網,看看別人對同一問題的看法,會給你很大的啟發。
6. 不鑽牛角尖。當你遇到障礙的時候,不妨暫時遠離電腦,看看窗外的風景,聽聽輕音樂,和朋友聊聊天。當重新開始工作的時候,我會發現那些難題現在竟然可以迎刃而解。
7. 豐富的想象力。不要拘泥於固定的思維方式,遇到問題的時候要多想幾種解決問題的方案,試試別人從沒想過的方法。豐富的想象力是建立在豐富的知識的基礎上,除計算機以外,多涉獵其他的學科,比如天文、物理、數學等等。另外,多看科幻電影也是一個很好的途徑。
8.最簡單的是最好的。這也許是所有科學都遵循的一條準則,如此複雜的質能互換原理在愛因斯坦眼裡不過是一個簡單得不能再簡單的公式:E=mc2。簡單的方法更容易被人理解,更容易實現,也更容易維護。遇到問題時要優先考慮最簡單的方案,只有簡單方案不能滿足要求時再考慮複雜的方案。
Matlab程式設計過程
(1) 資料處理
能對資料進行計算、分析和挖掘,資料處理函式功能強大,命令簡潔;
(2) 軟體工具箱
各式各樣的工具箱,包括神經網路工具箱、Simulink工具箱(雖然Simulink從底層開發出來的,但是我們認為也是工具箱的一種)、模糊工具箱、數字影象處理工具箱和金融工具箱等;
(3) 精緻繪圖
Matlab通過“set”命令重設圖形的控制代碼屬性,可繪製精準而美觀的圖形;
(4) 動畫實現
Matlab可以進行實時動畫、電影動畫和AVI視訊製作,並能在動畫中新增*.WAVE格式的音訊;
(5) 與軟硬體通訊
Matlab介面函式可以實現與軟體(比如C)和硬體(比如電子示波器)通訊;
(6) 平面設計
與全球最頂尖的平面設計軟體之一Adobe Photoshop聯袂使用,傳達震撼的視覺設計效果;
(7) 遊戲開發 利用Matlab語言可以開發一整套的遊戲,比如開發32關的推箱子游戲。 根據我對Matlab將近7年的學習經驗,學習Matlab程式設計就像讀一本書,剛開始讀時感覺這本書很薄,內容淺顯,容易上手,似乎感覺Matlab語言是最容易學會最簡單的一門程式語言;繼續讀下去感覺這本書其實很厚。初學Matlab程式設計過程中經常會遇到五大困惑:
其一,函式指令掌握太少,寫不出簡潔的程式甚至正確有效的程式碼也寫不出;
初學者閱讀一個Matlab程式設計高手寫出的一個相對複雜的程式,會發現不但整篇程式的思路難以理解,而且會碰見很多陌生的命令,就像一篇英文閱讀理解有很多單詞都不認識。自己動手寫程式想表達的意思表達不出來,力不從心。
其二,不能掌握Matlab函式複雜的語法格式;相比VB和C而言,Matlab
語法格式比較複雜。語法格式不正確程式就不能執行,同一個命令有很多種語法格式。格式不同,程式輸出的結果就大相逕庭。比如使用“streamribbon”命令建立三維流帶圖,其語法格式為streamribbon(x,y,z,u,v,w,sx,sy,sz那麼向量x,y,z,u,v,w,sx,sy,sz分別代表什麼意義,各向量之間滿足什麼樣的長度關係都必須真真切切地理解,否則因為不能鍵入正確的向量而不能畫出三維流帶圖。
其三,能套用別人程式自己卻絲毫沒有程式開發能力;比如在神經網路工具
箱中,各種建立、學習和訓練網路的函式命令眾多,語法格式複雜,套用別人已經編好的神經網路程式比較簡單,但是如果自己對照各個函式的用法書寫完整的神經網路程式卻不是簡單的事,因為你沒有從本質上理解這些命令。這就是說,你只能模仿別人的程式,卻不能觸類旁通自己開發程式。
其四,不能準確全面地理解指令實現的功能;比如在Matlab中實現排序功
能的命令是“sort”,而在C語言中如果想實現排序,那就必須依據“冒泡法”原理編寫一小段的程式實現排序;雖然Matlab命令用起來比C簡便,但是如果對“sort”命令原理不瞭解,就不能知曉“sort”是實現升序排列還是降序排列,對於矩陣是按行排序還是按列排序。所以當我們使用將繁瑣的原理封裝在Matlab裡的命令時,如果不熟悉該命令的原理,那麼使用時至少要在命令視窗中鍵入該命令以便試探它的用法。
其五,函式的引數不知道如何調整。比如使用命令“imadjust”對輪廓不明晰的數字影象進行處理時,處理過的影象也許輪廓分明,但是很多都是偽輪廓,已經改變了原始影象的品質,所以在使用該命令時一定要注意拿捏好校正因子的大小。又如在編寫BP網路源程式過程中,網路始終無法收斂且找不出原因,很多人都會懷疑是不是網路的拓撲結構設計有問題,其實很多情況下癥結都是出在網路學習速率引數的大小上,只要將引數調小一點,網路也許就會立即收斂。當你不知道引數的具體取值時,不妨多除錯幾次。 最後通過長時間紮實的學習,對Matlab主程式命令和常用的一二個工具箱已經基本掌握,寫起程式來才會思路湧湧而至,得心應手,輕車熟路,感覺這本書其實還是比較薄。由於MATLAB函式命令豐富,完全掌握沒有必要也很難,只要掌握經常用到的命令就可以了。科學研究表明,只要掌握知識的60%就可以運用了。對於碰見的一些生僻的函式用法時,可以查詢Matlab help命令尋求幫助或者身邊備用一本Matlab函式詞典。