標籤:android java 資料 sp 問題 c 代碼 r 演算法
學習程式設計語言林林總總也不算少,課堂學過C\C++對進階語言編程中的面向過程和物件導向、基本文法有了基本瞭解,自學過資料結構C版的內容,也曾簡單學過用Java開發的Android應用。現在開始讀研一,研究所裡做項目面向windows程式開發,周圍的人都在用C#,於是開始轉向C#開發並自學。
以前,學習軟體開發,練習編程,都是從語言這個學科去考慮,更多的是糾結具體的知識點,某個文法、函數怎麼寫等等,這種學習作為打基礎無可厚非,寫出來的代碼都是a,b,c,a1,b1,m等命名格式,寫下倆的完整程式也就幾百行,遠遠不足以去競爭好公司的眾多應聘者;現階段,需要提高自己的眼光和品鑒力,對於學習編程而言,需要考慮怎樣寫出好的代碼,優秀的代碼,規範的程式和從整體把握編譯器的運行機制,從商業標準來要求自己。這是對於自己目前階段的心得和想要的能力提升。現在就從幾個方面來“看看”菜鳥需要瞭解的地方:
1. 什麼是優秀的代碼?
2.windows架構和編程設計的運行機制是怎樣的?
3.高手是通過敲出來的還是看書看出來的?
4.有什麼樣的好書推薦,協助提高編程能力和眼光?
這裡一一道來:
1.如何寫出優秀的代碼?
優秀代碼,需要考慮的東西無非一下幾點: 命名的規範性,函數封裝與介面,靈活性,演算法設計效率。這些規則,我將會用一段代碼來具體說明。
2.windows程式設計的運行機制怎樣的?
windows與程式運行之間的關係是利用訊息機制來互動的,程式設計中考慮的是如何利用作業系統的介面來實現功能,所以充分挖掘作業系統的潛力比關注如何具體實現這個功能更重要,舉個例子,利用printf來列印字串,程式關注的是調用系統函數printf,並將字串代入printf的參數就可以列印,至於字串在記憶體中怎樣經過處理到外設中並在螢幕中顯示出來,C語言做不到,能做到的是作業系統。
windows作業系統的重要特徵是搶佔式即時多任務。如果兩個程式同時運行,記憶體該如何分配和管理?作業系統一個很重要的作用就是處理機管理,一個程式運行是以進程為單元的,進程開始於程式被調用,結束於程式停止運行。如果多個程式同時運行,處理機怎樣響應不同的程式並保持高效呢?每個進程只有佔有記憶體並被處理機調用才被執行,而且進程執行通常需要接受外設輸入;作業系統為了充分使處理機處於忙碌狀態,不會等待過長。所以處理機機制就是為瞭解決這個問題,讓進程處在不同狀態。
3.學習太極時,光看師傅每招每式,看千遍萬遍始終不會出手;只有在看的基礎上自己去打出每一拳,每一個動作,才會知道哪裡犯錯哪裡需要強記,才能體會每一個要領。要看也要練手。
4.一本好的參考書,相當於一本武功秘笈,指匯入門到精通都是有跡可循的;這裡推薦帶有“微軟技術叢書”的標誌,都是比較好的windows開發叢書。另外需要經常訪問MSDN,擷取網路資源。
下面就範例程式碼來講講編程規範:命名方法、代碼靈活性、函數封裝和介面、演算法複雜度。
持續更新中。。。
windows編程入門所必須知道的機制和規範