天天看點

抓住興趣點,安排出自己的學習

您好!賀老師!

  很抱歉,打擾您寶貴的時間,我是一名大二計科專業學生,過去的半年裡我看完了一本c++程式設計,現在我正在看《c++primer》,但是在編寫程式的過程中總覺得缺少自己的界面,就感覺自己編寫的程式像玩耍一樣(因為我感覺基本上真正的程式都應該有自己的界面)。我在網上看了一下,做界面都要用到api函數,但是我感覺調用api函數就像碼轉一樣,沒有自己的思想在裡面,很别扭!

  還有,由于我們學校計科的專業課基本上都在大二下學期及大三,c++是我自學的,是以·····

  1.....我不知道我現在是否有必要學習c++的api程式設計(好像還有mfc,不過不太了解)?

  2.....怎樣看待api程式設計呢?

  3.....必要編寫稍大一點的程式來鍛煉自己嗎?(我是指耗時一兩周程式)

  希望賀老師能在閑暇時間給我一點寶貴的建議,打擾之處還請見諒!謝謝!

【回複】

  其實從學習程式設計角度,程式的核心和專業的基本功并不在界面中。然而希望自己的應用有個視窗界面也不錯,有一個很重要的學科方向是人機互動,目前很多産品的優勢就在于使用者使用的體驗好,你既然關注到這兒,我贊成你順着自己的興趣将界面的問題深入體驗一番,且不說以後你可能在這方面做工作,借此有任何收獲都值得。抵觸調用api,我覺得這個不需要。在開發工作中,總是要在一定的層次上做的。有的人做底層,有人做中間件,有人直接調用元件做應用,你現在正在學習初期,很多問題尚不明白,最佳的方法就是不管哪一層,隻要關注到了,就去了解和實踐,借此也就開啟了貫通各層的征程。否則,你将總是在“總覺得”、“感覺到”之類的詞彙中兜圈子。

  鑒于你對界面感興趣,可以學習api,一邊學,一邊做些小應用。了解小應用後,構思組合做些大應用,根據自己學習的感受去安排。大程式會帶來新的問題,有必要去體驗。通過在api層面上工作,可以對底層更明白些。至于mfc,是在api基礎上進一步的封裝,如果更想體驗面向對象的方法,學習mfc也不錯。

  該學什麼,從課外自學的角度看,沒有絕對标準。感興趣就探一探,尤其對于大一大二的學生,是最好的方法。這樣到高年級時,知識面就寬了,因為在多個方向上有過嘗試和體驗,容易找出适合自己的方向,進而往縱深處深究下去。

  不要猶豫,有感覺,就照着感覺走下去。

【再來信】

  感謝賀老師能在百忙之中給予小子回信!

  我一定認真考慮賀老師的建議和意見——“可以學習api,一邊學,一邊做些小應用。了解小應用後,構思組合做些大應用,根據自己學習的感受去安排”,接下來可能會同時學習《c++primer》、《算法導論》、《windows api程式設計》。

  我現在學習算法會過早嗎?因為我在學它的時候有很多地方都無法徹底了解,像前幾天學到“決策樹”,結果發現還要先學id3算法建構才行(我們已經學了離散數學,但那上面都隻是簡單的介紹一些,不夠全面),感覺有點力不從心。

  再次感謝!

【再回複】

  隻要願意,何時都可以去學。并且學習一定是多次反複的,不要指望一次就“學完”,前面的看不懂,可以往後面看,随着了解的加深,再看一遍時,原有的疑惑将會解開。正如你體會到的,學離散時,有些沒有深入,那時深入也沒有動力,現在看算法發現要用着了,不要追求将算法導論快快看完,而是可以再補補課。這種“非線性”的學法很有效,需要注意的是要有節奏,不要一非線性就讓自己跑得不知所蹤了。

  祝安排出有效的學習。