北大青鳥在讀學員教你如何學好accp軟件開發課程!如果你跟我一樣:記憶力差、邏輯思維不強文化底子薄;并且沒什么耐心,感覺學習壓力大。那么我愿意分享一下在北大青鳥學習一年總結出來的ACCP(軟件工程師課程)幾點學習方法,這些對我學習成績的提高有很大的幫助,希望也能幫到同在這條路上奮斗的你。
請同學們記住,在找到一套行之有效的學習方法之前:作業不會做、代碼看不懂;導致熬夜、灰心、鬧情緒;壓力過大時甚至覺得自己不適合學 IT,這些都是很正常的。請沉下心來,不要輕易否定自己。
分享方法前,請同學們帶著以下來幾個提問(務必看完) 往下看:
1、假如某天,我們想給辛勤的父母做頓午飯,我從上午11點開始,一直忙活到下午4點才把飯做完(這里是假如)。請問這頓飯還有意義嗎?
2、假如我們為了搞懂某項IT技術,花了5年時間去研究;而這項技術只在IT行業應用了3年 就被新的技術淘汰了(這里是假如)。請問我們花的那5年時間 有意義嗎?
3、記得我們爺爺奶奶那一代異地溝通靠書信交往,而我們現在基本都用QQ、微信或者其他工具。書信幾乎已經被淘汰了吧?
問題總結:任何實物它都是具有時效性的,明白這個道理我們再繼續往下看。
學習常見問題之題不會做:
題不會做又大致分兩種:一是腦子里完全沒有解題思路;二是有思路但只會做一點點或者做到一半又不知道怎么做了。對于這種兩種情況 一定要制定做題時限。
對于第一種情況,建議思考不要超過10分鐘,沒思路就先換別的題做;為什么?因為這種情況就像碰到 腦筋急轉彎,思路不在同一條線上,始終是答非所問。就算你花長時間去糾結死磕這道題,意義也不大。為什么?我曾經多次因為一道題不會做,把自己關在房里糾結好幾個小時,最后還是做不出。后來經過學長或者教員指點之后,每每都好想扇自己一耳光,因為題目本身很簡單你也會做,只是當時你的解題思路和題意不在同一個點上而已。
其實有時我們所糾結的問題并非什么大問題,很多時候是我們自己跟自己過不去,賭氣鉆牛角尖非得要把這題做出來不可,這是沒有意義的;為什么?因為題是做不完的,如果你每碰到一道不會做的題都糾結這么久,糾結個10道8道的話,老師在講下一章甚至下一周課的時候,你還在糾結;此時就會造成惡性循環。要是下一章講的內容正好是上一章內容的升級版,有更好更簡單的方法去解決你上一章所糾結的題目,那你就會郁悶死。
前期我們學的很多知識點,都是在為后期打基礎。我覺得編寫程序,注重的是對邏輯思維和對業務需求的掌控;這個一旦形成良好的思維則是終生受用。至于技術和方法,它每天每時都在更新,今天牛逼的技術可能明天就淘汰了(注重方法和技術的時效性)。這里拿Java第一本書的內容,我例個淺顯的列子。
對于第二種情況,建議也是制定做題時限,超過時限就先擱置做其他題;為什么?因為這種情況大多由書本知識掌握不牢固,方法應用還不熟練所造成的。學新知識時不要求你立馬就對新知識運用的行云流水,你知道個大概就行,重在理解,切記太過深入鉆牛角尖;為什么? 因為我們當前所學的并非是世界最尖端的技術,而是最實用的技術,實用的技術你會用就行了,只有站在最尖端技術的基礎上,你再去往死里鉆研,去創造出更牛逼的技術。
另外Accp教程的每一章課后練習里的題目都有著連貫互通性,就是假如你題1不會做,那么你先做題2 或者題3,很多時候我都是做完題2 題3后,腦子里就有了題1的解題思路。如果實在沒思路,切記別糾結太久,盡快求助同學或教員。
這時候你可能會問,如果我碰到題不會就去請教別人。那以后我自己還有什么編程思想,和開發軟件的能力呢?
其實這并不矛盾,因為我們目前是在學東西,而不是在開發東西。我們所學的東西都是前輩們糾結的死去活來總結出來的經驗和方法做成了書,傳授給我們,我們學就是了。只有我們在學好之后,出去開發軟件的時候,因為開發的軟件是所有人都沒做過或經歷過的軟件,我們花大量的時間精力去鉆研它才會有價值有意義。
這里和總部老師講的“廣深廣”的學習方法是相同的:就是先廣泛粗略的了解下要學的知識,然后再深入的去了解以前學過去的知識,最后再廣泛的去了解更多的新知識。
所以,采用別人(同學或者教員或者百度)總結出的解決方案即可以保證學習的質量,又可以省去自己摸索的時間,何樂而不為呢?(做題時多跟同學和教員溝通,做題時限過了,就大膽去請教別人,切記不要怕丟臉怕麻煩,一個人閉門造車)。
學習常見問題之想的太多:
這里想的太多,是指老去想一些能力范疇之外的東西。
譬如我在S1 第一本書第二章,學習從控制臺輸入數值時;記得當時是要導入一個java包:import java.util.Scanner; 然后new 一個Scanner的對象:Scanner input =new Scaneer(System.in); 便可以隨心所欲的輸出了。我當時也是剛接觸IT,感覺就很神奇,你輸入什么它立馬就顯示什么,興奮的很。不過立馬我就為了這兩句代碼糾結了差不多一個星期時間;為什么? 因為我老在想為什么要導包?包里有什么東西?要什么又要這么new一下?系統它是怎么知道我輸入的值的? 我問同學,同學不懂;我問老師,老師說:我說了你目前也不會懂。我就一直到老師講第五章課的時候我還在想這個控制臺。。。
現在回過頭來看關于為什么要導包,在S1第一本書第十四章詳細講解的。在學了S2的部分知識后,對為什么要導包,為什么要new一個Scanner的對象,也有了更深一層次的了解。
可能你會問,為什么第二章就要用到的導包概念,非得要搞到十四章去講解?
舉個例子:
比如張三帶著他只有三歲的女兒去逛超市,結賬的時候女兒就問:爸爸,你為什么要給阿姨(收銀員)錢呀?張三回答女兒:買了東西就是要給錢啊。女兒回答:哦,買了東西就要給錢,我們買了阿姨的東西,就要給錢給阿姨,爸爸我說的對不對?然后周圍一群大人集體夸贊張三女兒乖巧又聰明。到這里,就走完了一個基本的付款流程。
但是如果當時張三是這樣回答女兒的:因為社會分工不同,產出不同,貨幣作為流通手段,阿姨在超市上班,超市要給阿姨發工資,所以我們買了超市的東西就要付錢給超市。此時估計張三女兒已吐血。。為什么?因為她根本聽不懂!
亦或者當時張三女兒的是這樣回答爸爸的:爸爸,為什么買了東西 就是要給錢啊?估計張三也會吐血。。因為張三沒辦法跟一個三歲的女兒解釋貨幣流通這種事情,因為解釋了也聽不懂。
張三很糾結,女兒同樣糾結,但又不得不一起逛超市。。。
如果我們教員當時跟我說,Java有很多包,包里面有很多類,類里面封裝了很多方法,方法又有不同的應用場景。估計我也會吐血。。因為根本聽不懂。
綜合上述例子,回想起我們教員常說的:不要去糾結一些沒有營養的問題,現在還不是時候;這話是很有道理的。但我是后知后覺,老鉆牛角尖,浪費了很多時間走了很多彎路。
總結:這里的不糾結,不是不讓你把知識學透學扎實;而是讓你在對的時間做對的事,兩者是有區別的。往往真正的糾結是在日后工作的開發中,到那時你不去糾結都不行。
學習常見問題之不預習:
預習的重要性,這里也舉個例子:
張三和李四學習成績差不多,但考試那天,張三提前知道了考試的答案,他們兩誰會考的更加輕松些?
結果不言而喻。如果你做足了預習,那么上課時老師要講什么你心理一清二楚,這時老師再講一遍,你就已經相當于是在復習了。對知識的理解和記憶又加深了一遍!
推薦預習時,把不懂的問題做好記錄;待上課時問教員。
以上皆屬個人在學習上總結的一些方法,并非是最好最優的學習方法(學習方法也具有時效性)。
這里講個通病:幾乎所有學過第三學期知識的同學,都會說第一學期的知識好簡單;而我們當時在學的時候,幾乎所有同學都覺得都好難。很多事情是要回過頭來看的。
所以:不要因為一時的成績好壞而否定了自己。
通過不斷的發現、思考、應盡早總結出一套屬于自己行之有效的學習方法。