一位VC愛好者的入門之路(轉)

看到那些對VC不知從何下手而苦苦掙扎的朋友,希望我的學習之路能給他們一下借鑑。學VC並不是傳說的那麼難,可不下些功夫是學不成的。學編程急不得,沒有編程的基礎知識上來就學VC肯定碰一頭灰,說VC難就難在這點上了。如果硬上,意志堅強的話還能挺過來,但最後還得回頭來補習基礎知識。意志不堅強的話,很有可能就此放棄,並留下一個VC難得不得了的印象。其實,只要踏踏實實一步一步來,學VC很簡單。對於沒有編程基礎的人首先要學習編程的基礎知識,如變量,語句,基本的算法等,然後寫一些小的程序,實現些常用算法對自己的思維是很好的鍛鍊,對以後的學習大有好處。起碼要能排排序,求個八皇后,算個漢羅塔,再知道一點深、廣度優先搜索。如果你已經有一些編程的基礎知識了,自然就可以跳過這步。在對編程有一定的認識之後,就應該開始進軍C++了。注意,C++是一門語言,而VC則是講解如何在VC環境下使用MFC類庫,學習VC應建立在充分了解C++的基礎上的。
        學完了C++,最好先找本Win32編程的書,Win32編程是指用Windows API編程,MFC是將衆多的API函數進行了封裝的類庫,用起來方便了不少,但如果沒有一些API編程基礎,對相關概念不瞭解,學起來MFC來可能會很費解。API函數有2千多,不需要都學。其實只要知道如何創建窗口、對話框、控件、消息循環,瞭解了句柄的含義就差不多了,最好再瞭解一點GDI編程。這個階段的關鍵是要理解Win32程序是如何運作的,把握各種窗口間的關係。因爲你以後應該很少直接用Win32 SDK編寫程序,所以關鍵是理解整個結構,記住幾個函數並沒有什麼意義。函數用的時候可以現查。打好了基礎,現在進軍VC的障礙都已經掃清了。不過還是應做好充分的思想準備,事情不會那麼順利的。剛開始你就要面對一個瓶頸,大量的緊密關聯的知識,使你必須一下理解一個整體,而很難一點點來。可以說學VC最難得就是剛開始。情況有些類似於第一次創建窗口時面對的那長長的程序,很多人就是在此被它難住,放棄了學習。事實上,這幾乎是Windows編程的一大特點,突破了這個瓶頸之後便是一片海闊天空,而有着紮實基礎的你是一定能闖過去的。建議不要等徹底弄明白一句纔看下一句,等能做出個菜單、對話框時便回頭再看一遍,幾遍之後應該就可以大概明白MFC程序的運作了。這裏有個關鍵,一定要用心體會面向對象編程的精神,努力將眼前的程序與之前的知識聯繫起來。通過比較成員函數和對應的API函數間的區別,嘗試去理解MFC是怎樣封裝相關的API的。例如,相當多的宏,看起來很奇怪,但你不必理會其實現方法,只要知道如何使用便可,這點也很重要。還有,對於其生成的代碼要自己進行分析,偷懶就不能真正理解MFC。這是我一個人的學習經驗,不過經驗要因人而異,所以還要根據個人的情況決定。開始時,教材讓怎麼辦就怎麼辦,比貓畫虎的做出個菜單、對話框,然後試着添加控件。等到不看教程便做出這些時,開始逐字逐句的試着理解MFC程序的組織。若看不懂就跳過看下面的。就這樣一遍一遍來。如果覺着頭大就先歇上2天,等清醒了再接着來,最好在這期間多找些介紹MFC框架的文章。然後便可試着寫個定時器、名片夾之類的小東東,熟悉一下各種控件的使用。突破了開始的瓶頸之後再學下去便會越學越容易,因爲你可以一點一點的積累知識,而不用擔心被卡着了。再過不久,你就可以使用API函數完成一些功能,如在系統托盤加圖標,自畫列表框等。這時,你也會體會到學習Win32編程的好處了。最後,建議有時間的話研究一下各種算法。數據結構是一定要看的。不一定要記住,但至少要知道有那麼回事,萬一碰到問題可可以知道問題出在哪裏。其實,常見的鏈表等結構以及排序等算法在C++標準模板中已經實現了,不用你去費勁,但有些瞭解總是有好處的。至於離散數學、線性代數什麼的,對於複雜的算法是必要的,其中離散數學是數據結構的基礎。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章