因爲本人還算有些編程語言基礎,故還跟得上老師進度。經過一個星期的學習發現,編程仍是特別注重平時的積累,必定要多敲多練,老師講的每個練習必定要搞懂,而且要在不看源代碼的狀況下獨立的敲出來,這樣才能達到消化掌握的目的。java
編程語言與外語同樣,首先是做爲一個龐大的學科而創建起來的,以前對其過於輕視。不一樣的語種,對應java,C++等有着徹底不一樣的使用習慣和內容。就連基於C和C++的軟件也有matlab,qt,vc等等不一樣的版本,雖然if,while等都存在,但使用的方法有着各自不一樣的區別。就像一門語言的不一樣方言,聽着差很少,但真的去使用還要有一個過程。
那麼,在重視了編程語言的學習態度以後,如何很好的掌握這門語言呢?首先回顧一下我以前的學習方法。第一次接觸編程應該是在學校的時候學習C++,徹底是按着教材老師在上面講課咱們在下面聽,而後把教材給的例子搞懂敲到電腦上。熟練了之後再根據例子作一些改變編本身的程序。這種學習方法爲之後埋下了隱患,由於養成了面對一個新的問題先去找相應相似的例子再修改的習慣,極其低效。
那麼如何可以脫開例子獨立的完成一段程序或者至少是一個功能呢?我想最重要的有幾點:
1. 瞭解全部程序共通的基本框架。對於QT來講,就是ui,cpp和頭文件之間的關係以及初始定義。
2. 要能對於幾個基本的經常使用的類及其經常使用的函數很熟悉。可以熟練運用。好比qpaint,qevent等。
3. 要能在須要的時候找到相關的類(注意,不是相關的例子),並可以經過QT幫助讀懂,知道怎麼在程序中使用,並確切的落實下來。
在搭建一個完整的程序的過程當中也要注意:
a. 由簡單到複雜,逐漸增長程序的功能。先搭出基本框架,再在其上添枝加葉。這個過程能夠不斷的本身作一些小的程序來試,最後整合成一個具備多種功能的完整project。
b. 也是全部相似的項目共通的,作一件事的時候專心作,好比今天的任務就是裏面的一個小功能,那作的時候就不要老想着和其餘功能的銜接啊什麼的,只作一件事,而且作好。
說了這麼多,咱們回過頭來看如何達到上述的目標。1很簡單,hello world看懂就行,每一本教材的第一章基本都會給出這方面說明。2和3就比較難了,從書中很難快速的達到咱們的要求。想一想有什麼常規的學習手段:
I. 書本及其後附例子,這無疑是最多人使用的方法。然而看書太慢,並且編程主要仍是要會用。並且千萬別用電子書,這種嚴肅的學習必定是要用實體書的。書的做用主要是對這個語言有一個初步的系統瞭解,並完成要求1,而後在一些和課題很相關的書上又正好有這方面內容的地方(這種可能性極少)仔細翻閱,瞭解原理。
II. 網上資源:
國內我的博客:優秀的我的博客是一個牛人的成長史,看看這些能夠少走不少彎路。
國內論壇:交流經驗和問題,共享資源。缺點是裏面的水平良莠不齊,且找到的問題不少也沒有人給出解決方法。能夠在上面找找資料。源代碼的話最好不要從上面下,可能會被誤導。
國外論壇:這是重頭,要想真正學好一門語言,我以爲這很重要。之前沒有重視。
官方網站:多半是一些幫助和下載。
III. 一個好的軟件自己就應該會教你怎麼使用它,去學。
IV. 高校網絡能夠找到一些優秀的論文。
肯定了基本的學習途徑以後咱們如何來學習?基本的思路是:先了解基礎,再在戰鬥中學。具體的想法我也只是一個初步構想:
1)先找最經典的教材,看頭幾章瞭解一下這個軟件。
2)搜索優秀的論壇和博客,看看上面有什麼好的學習建議。
3)按照軟件的指導來學。
4)找到經常使用的類,並看幾遍例子,懂了之後拋開例子本身寫一段稍加修改的程序。
5)瞭解可以被利用的類,在真正用到的時候能知道怎麼找出來並會用。
6)給一些大型程序寫註釋,時間容許的話本身編一個同樣的。
7)開始着手作項目,先在上述的資源裏找相似的以啓發靈感避免重複勞動,而後get to work。編程