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