20165315 C語言學習狀況與Java學習目標
1、出色技能的獲取經驗
我從小即是一箇中規中矩的人,在不少方面都是讓成績儘可能保持在前百分之二十到三十這個範圍內,好比我比較擅長的唱歌和乒乓球,但也不能算十分優秀,惟一算很擅長的大概也就是英語的學習了。html
我最開始接觸英語要回溯到幼兒園時期,那時候父母就讓我上的雙語班,還記得天天早上想要進教室必須經過老師的單詞考覈,這對於一個四五歲的兒童已是很不容易了。接着還有小學二年級就報了英語輔導班,一直補習到六年級,畢業時靠着我紮實的功底考上了全市最好的外國語初中。這種從小的耳濡目染帶給我了對英語學習的熱情與信心,在以後的學習中我也絲毫沒有鬆懈,每一個階段都爲本身定下了階段目標,英語就這樣一直做爲我最拿手的科目陪伴我跨入了大學。編程
我之因此能將英語掌握得這麼好,表面上是我從小就一直與英語課堂打交道,其實更深層次的緣由是我經過這些課堂不斷地鞏固基礎,而且在平時得測試中獲得了優異得成績,這些反饋給我了繼續前行的動力。windows
閱讀了婁老師的學習經驗後,我發現老師的經驗與我有許多共同點:數組
- 學習一門技能須要大量的練習鞏固基礎;
- 學習一門技能須要須要興趣愛好入門;
- 學習一門技能須要階段目標按部就班;
- 學習一門技能須要即時的反饋;
- 學習一門技能須要毅力堅持到底;
- ... ...
學習這件事,和健身同樣,作得好的永遠不中止,作很差的永遠不開始。編程語言
--引用自《天天一萬步,一週瘦十斤》模塊化
2、C語言學習狀況
- 我主要是經過三種途徑學習C語言這門課程。第一,上課聽講,學習新知識;第二,下課完成老師佈置的代碼任務(還記得要求是完成2000分的題目);第三,暑假的時候購買了計算機二級C語言部分的相關學習材料,刷題學習。當時以爲這已經算是足夠「對付」這門課了,但如今想來是徹底不夠的。我對於英語的學習態度永遠是精益求精,力爭上游,而對於C語言的態度則是達標就好,得過且過。這主要仍是因爲我對C語言不重視也沒熱情,平時練習量遠遠不夠。我但願在寒假的學習過程當中,將C語言與Java結合起來,按部就班深刻學習,最後能愛上這門課程。
- 之前我確實沒有統計代碼行數的習慣,只能粗略模糊的估算。參考他人的編寫代碼量,我大概編寫了2000到3000行的代碼?我對基礎的代碼編寫仍是比較熟練的,可是一旦涉及指針的概念,我就會有點混淆不清,我平時對指針的態度也是能不使用就不使用。對編程類的課程想要徹底掌握是很是須要練習量的,這個量是要根據具體狀況來控制,掌握得很差的部分更須要多加練習。並且不能爲了量多就一味胡亂編寫或者抄襲代碼,必定要作到量多質優,才能提升學習質量。
- C語言中基本概念理解
- 數組指針指的是定義一個指針變量,使它指向一個數組,數組中的元素並非指針,例如
int (*a)[5];
,數組中元素都是int型;而指針數組指的是定義一個數組,這個數組裏面的元素都是指針,指向的類型相同,例如int *a[5];
,數組中指針都指向int型。 - 函數指針指的是定義一個指針變量,使它指向一個函數,函數的返回值不是指針,例如
int (*lrd)(int a,int p);
,此函數返回值是int型;而指針函數指的是定義一個函數,函數的返回值是指針,例如int *lrd(int a,int p);
,返回的指針指向int型。 - 對於文件和流這一塊,學習C語言時老師並無細講,由於這部分不屬於期末考試範圍。我經過翻閱教材,瞭解到文件是能夠重複使用並永久保存數據的抽象存取方法,分爲文本文件和二進制文件,而流在教材上也被稱爲字節流,流對文件的存取是以字節爲單位,輸入輸出僅受程序控制,而C語言文件也被稱爲流式文件。流的概念比文件廣,流除了有文件流,還包含了其餘類型。
- 文本文件和二進制文件的差異在於存儲數值型數據的方式不一樣。文本文件中每一位數字都單獨佔用一個字節的存儲空間,而二進制文件中的全部數字所有做爲一個二進制數來存儲。能夠經過佔用的存儲空間來區分,佔用空間大的是文本文件,佔用空間小的是二進制文件。編程操做時,文本文件的後綴名爲「.txt」,而二進制文件的爲「.bin」,打開方式前者爲「w」、「r」、「a」等,後者爲「wb」、「rb」、「ab」等。
- 對於面向過程程序設計我並不很瞭解,在查閱教材和資料後,我理解爲這是一種模塊化、過程化的設計,便是將問題一項項列出來後,調用函數一項項解決的過程設計思路。
- 我認爲模塊就是C語言程序中擁有不一樣功能的「區域」,例如函數就是程序中模塊。我目前C語言掌握的通常,編寫偏向簡單化,沒有嘗試過編寫多個源文件的程序。
- 「高內聚,低耦合」這個概念是我在學習計算機二級C語言部分的時候接觸的,當時就比較感興趣的查閱了有關資料,「高內聚」指的是模塊內部聯繫十分緊密,爲實現這個模塊的功能相互做用、運行;「低耦合」指的是不一樣模塊之間的相互做用與影響很是小,各個模塊相互獨立。在進行高質量程序設計時,咱們要儘可能將程序進行清晰的模塊化,在修改、維護程序時更加方便,避免了思路混亂、修改時「牽一髮而動全身」的問題。
- C語言程序設計
- 數組指針指的是定義一個指針變量,使它指向一個數組,數組中的元素並非指針,例如
(1)把數組A的內容複製到數組B中函數
#include <stdio.h> #define N 100 int main() { int A[N],B[N],n,i; printf("input n:"); scanf("%d",&n); printf("input A[n]:"); for(i=0;i<n;i++) { scanf("%d",&A[i]); B[i]=A[i]; printf("%d ",B[i]); } }
(2)查找整數數組A中有沒有數字5學習
#include <stdio.h> #define N 100 int main() { int A[N],n=0,i; for(i=0;i<N;i++) { scanf("%d",&A[i]); if(A[i]==5) n++; } if(n>0) printf("數組裏有數字5"); else printf("數組裏沒有數字5"); }
(3)對整數數組A進行排序測試
(從小到大)url
#include <stdio.h> #define N 100 int main() { int A[N],i,j,m,q,temp; for(i=0;i<N;i++) { scanf("%d",&A[i]); } for(j=0;j<N-1;j++) { for(m=j+1;m<N;m++) { if(A[j]>A[m]) { temp=A[j]; A[j]=A[m]; A[m]=temp; } } } for(q=0;q<N;q++) printf("%d ",A[q]); }
(從大到小)
#include <stdio.h> #define N 10 int main() { int A[N],i,j,m,q,temp; for(i=0;i<N;i++) { scanf("%d",&A[i]); } for(j=0;j<N-1;j++) { for(m=j+1;m<N;m++) { if(A[m]>A[j]) { temp=A[j]; A[j]=A[m]; A[m]=temp; } } } for(q=0;q<N;q++) printf("%d ",A[q]); }
(4)統計代碼行數
這塊代碼須要運用到文件部分的知識,有必定難度,我只能敘述一下個人思路,但願老師給予指導。
先將電腦裏的全部後綴帶".c"的代碼文件一一掃描,每一個文件中以"\n"爲標識,遇到"\n"就讓計數器加一,並且還要考慮空格、註釋、tab鍵等因素。
- 斷點就是人爲設置的,在調試程序時切入的點,程序會從斷點開始逐步運行。當程序出現問題時,能夠經過設置斷點一步步調試程序的方法找出並糾正問題。
- 設置斷點
- 點擊"Run to cursor"鍵,黃色三角標識出如今斷點上
- 不斷點擊"Next line"鍵,直到輸入數據
- 打開"Debugging windows"中的"Watches"窗口,觀察各變量變化
- 若是須要進入子函數,則在黃色三角標識跳到調用函數的地方時,點擊"Step into"鍵,三角標識就會跳入子函數中
3、對教材內容的提問
- 第一章:什麼是反編譯?
- 第二章:在輸入基本型數據時,必須每輸入一個數據就按一次回車鍵嗎?仍是隻有例三中才是這樣要求的?
- 第三章:instanceof運算符具體在何時使用?怎麼使用?
- 第四章:每次編程固定要寫的語句有哪些?好比package語句、new運算符是必定要使用的嗎?
- 第五章:全部的類都有本身的子類嗎?
- 第六章:何時要使用接口?
- 第七章:如何啓用和關閉斷言語句?
- 第八章-第十五章:其實我從第四章開始就開始越看越吃力,新的概念和定義洶涌而來,這麼短短一週半的時間裏想要認真看徹底部ppt並理解對我來講很困難,何況我目前尚未嘗試本身寫Java程序,也不清楚應該怎麼寫,因此也不知道該提出什麼問題。我接下來細心看ppt會有問題補充的。我認爲對於這樣一門全新的,有點難度的編程語言,只看ppt沒有什麼顯著效果,真的可能看完就忘了,很是須要平時的練習、老師的指導和提點,也須要時間。我這些天大體看完了這十五章的內容,發現要學習記憶的東西仍是不少,主要是要在作中學,才能掌握得更好。還有想問老師一點:除了大量練習以外,老師有沒有什麼學習這門課程的小方法呢?(好比方便記憶的小妙招之類的)
4、對Java學習的具體目標
體育運動的初學者練習時候都須要重複動做,好比「學習打乒乓球時」要練習揮拍,揮拍成千上萬遍以後動做就會定型,也就是教練常說的「肌肉有了記憶能力」,之後實戰中能夠不假思索地作出來。
--選自《優秀的教學方法---作教練與作中學》
學習和運動同樣,須要大量的練習纔能有記憶。我學習Java的具體目標就是養成天天編程的習慣,不管多少,質量要獲得保障,實如今「作中學」。
技能的提高要「刻意訓練」
- 低水平重複是不行的,訓練時間再長都沒用
- 要擺脫「溫馨區」,進入「學習區」學習
- 要按部就班,不能進入「恐慌區」
--選自《優秀的教學方法---作教練與作中學》
我在學習C語言時的心態徹底是爲應付期末考試而學,不考的內容我就粗略帶過甚至徹底不去了解,這種學習態度給我帶來了惡果。因此在學習Java時,我但願我不只僅是成爲一名「合格的初學者」,要在平常練習中擺脫「溫馨區」,進入「學習區」,平時多和老師同窗交流。我真心但願我能熟練掌握Java這門語言,而不是想大一下學期末同樣自食惡果。
我但願我能將理論和練習相結合起來,平時多鞏固基礎,按部就班,及時向老師反饋學習狀況,真正作到在「作中學」。