close

興趣

首先要有的就是真正的興趣。 程式語言也講天份、講性格的,若您是因為別人叫你來學這個,自己卻沒有任何興趣與想法的話, 建議你趕快停下來,把時間用來做其他更有意義的事情!

你可以先問問自己,你喜歡電腦嗎?知道寫程式可以用來做什麼嗎?你真的喜歡做這些事情嗎?你的個性適合寫程式嗎? 或是,你心裡已經有想要做出的東西存在了嗎?(我想許多的小朋友應該都是想做某個遊戲,包括我) 如果以上的答案都是否定的,就不用再繼續往下看了; 而若你是因為不知道寫程式可以做什麼以至於無法回答,或是因為不知道寫程式應該具備什麼個性以至於不知自己是不適合, 那我會試著在幾篇文章的範圍內儘量提供你可做參考的背景知識,讓你可以及早判斷使否應該繼續閱讀。

練習

另一方面,我並不是神,沒有辦法讓所有看過我文章的人從此通曉C語言。 如果您抱持著的心態是只要看了孫子兵法就會成為戰神、看了古文觀止就會成為國學大師、看了聖經就會成為聖人的話, 我可以告訴你這些事情是絕不會發生的! 任何專業領域都需要透過付出時間精神努力的學習、充份的練習才有可能學得通。 所以如果您打從一開始就沒打算在電腦上實際動手寫程式碼玩電腦,只想把任何人寫的教學文章當消遣看的話, 請趕快停下來去打電動吧,這麼做應該比較實際!

「學習電腦程式語言的不二法門—用電腦不斷的練習」,這句話是當時我的老師告訴我們的,現在我把它說給你聽。 所以建議你最好擁有一臺電腦,並且每天保持著愉快的心情用它來練習。當然,請與你的家長約定好使用的時間,以保護你的眼睛、以及其它課業。 另外,建議這臺電腦最好是您可以完全掌控的電腦,雖然不是必須,但不建議與家人共用。 因為寫程式的人常常改動電腦的各種設定是很正常的,甚至把電腦玩壞(指軟體的損壞),以至於常常在重灌等等都不稀奇; 因此若有人與您共用電腦的話,你應該很快就會被人氣急敗壞的警告不准再動電腦了!

邏輯、英文、與數學?

有人說學習程式語言的人邏輯必須要很強,然而實際上我覺得並不是這樣,請不要被這樣的傳言嚇到了! 的確寫程式的人邏輯不能太差,還是需要有一般程度的水準;但若一個人寫出來的程式需要邏輯程度非常強的人才能看得懂的話,其實這是寫的人有問題! 因為寫程式的人頭腦混亂、層次不清、甚至不能好好的收拾自己的書桌,歸納出物品的擺放位置,以至於寫出沒有人看得懂的程式碼。 相較於邏輯能力,我認為更重要的是一個人做事情是否有條有理不含糊了事?行事前會習慣先做規劃還是習於隨意性起? 想想自己是否常常喜歡將「隨便啦!」、「都一樣啦!」等口頭禪掛在嘴邊? 做事的時候是謹慎小心還是馬馬虎虎?是喜好井然有序的房間還是對於散亂一地的雜物殘骸比較感到安心自在?

也有人說學習程式語言的人英文要很好,對於這點我也不是太同意。 基本上要學程式語言的人英文好不好沒有太大的影響,反正學了一陣子以後英文很自然的不會太差! 學習程式語言的功效之一就是提供閱讀英文的機會與環境,幾乎所有的程式關鍵字都是以英文單字組成。 往後需要閱讀其他人寫的程式、說明文件、甚至是論壇討論等,都免不了需要閱讀一點點英文。 所以英文差的人通常在這麼一點一滴的閱讀累積下還是會擁有一定的基礎功力的,請不用擔心。

雖然我不要求英文要好到什麼樣子,但還是希望入門者至少擁有最基本程度的英文,不然學起來可能會真的有點辛苦! 至少英文26個字母加上大小寫都會背會寫, 至少簡單的英文單字如read、write、I、you、he、me、they…等等都看得懂, 至少一些基本的介系詞如the、to、for、from…等等都要能明白, 否則你可能還是要去學校念一下英文再回來學程式語言。

又有人說學習程式語言數學要很好,對這個我持保留態度,就看你學程式是要做什麼用途?加密解密、航空氣象、還是貼圖小遊戲? 但至少在這個C語言學習的系列文章裡面,你只要會加減乘除、四則運算、正數負數、平方開根等等大約小六到國一程度的數學就足夠了! 當然如果你會多項式、X元X次聯立方程式、三角函數、甚至於微分積分的話,那是一定如魚得水的。

然後是對於電腦基礎知識的要求。 畢竟我的文章會放大部份的心力在教你程式語言,因此會假定您對於電腦的操作已經很熟悉了。 硬體上,電腦的幾個主要零件如螢幕、鍵盤、滑鼠、主機、電源等不能不知道; 若您還曾經拆解組裝過電腦主機的話就更好了。 軟體上,作業系統的基本操作,檔案、資料匣、以及檔案路徑等概念需要具備, 曾經親自安裝移除過其他軟體,以及調整過電腦的設定以適合自己的需要; 若您還曾為家人、朋友、同學排解過電腦的疑難雜症的話就更理想了。

不過,若你學習了一陣子後發現您不是程式不會寫而是電腦不太會用的話,建議您還是先去其他補習班惡補一下電腦基礎知識技能再說吧!

推理、質疑、想像力

前面告訴大家這麼多對於寫程式其實不太需要在意的能力,那麼寫程式的人需要什麼能力呢? 在我看來,除了需俱備小心謹慎又井然有序的行事風格外,就是無邊無際的想像力了!

想想你心理是不是已經想好一大堆想要用程式語言做出來的東西?當別人教你一些東西的時候你是不是常常會想像這些東西應該可以拿來做什麼出事情? 在學校學習的時候你是不是常常發問?對老師沒教、甚至沒提的東西你也很有興趣想要了解? 是否有時候會發現老師講的東西有些地方好像有點怪怪的?這時你會找老師詢問、或找同學討論、或回家問爸爸媽媽、甚至自己去查資料? 如果你有以上部份或全部的特質,恭喜你,你很適合做各種類型的研究、開發,當然也包括電腦程式的創作。

相反的,若你在學習上一直是個乖乖牌(學習上,不是品格上),老師教什麼就學什麼、甚至就背什麼, 從來不曾去探究你覺得不明白的東西,也從來不碰老師不教的東西。 什麼事情在你的腦袋裡思考的時候,只要耳邊傳來「這個考試不會考」,或「這個已經超出範圍」等關鍵字時,你就會毫不猶豫的放下並忽略這些問題。 那麼,您的性向並不適合做軟體開發! 這不代表你將無法學會程式設計,因為程式的語法等等只要經由適當的教學訓練是可以學會的;只不過要做出令人驚豔的軟體會有點困難。

我常說:軟體開發是半個工程半個藝術的創作行為。

作業系統環境

最後提一下有關於電腦作業系統的議題。 基本上C語言是不分作業系統都可以運作的,如果您遵照C語言標準寫作程式的話,基本上無需擔心有關作業系統的問題; 只有在一些工具軟體的操作上、作業系統的操作上、往後一些進階操作需要使用系統API的部份、以及跨平臺資料交換的議題上才會有較為明顯的差異出現。 不過,如果讀者有能力的話,我建議安裝一個Linux來用。

Linux對於寫程式的人來說親和力是非常強的,而且當代也出了許多容易使用的發行版如Ubuntu、以及教育部的ezgo等等。 本教學系列文件的操作大部份也會以Linux為預設環境,再搭配說明在其他系統上的操作差異。

若您只有Windows可以用的話,還好我小時候也用了許多年的Windows,有許多地方會儘量告訴你Windows與Linux的操作不同處。

若您家裡的電腦是Apple的話,我就愛莫能助了!並不是我歧視使用蘋果電腦的人,而是蘋果電腦比較貴,我從來沒有買過,當然也就完全不熟! 不過希望使用蘋果電腦的入門者不要氣餒,因為新的OS X系列其實是從FreeBSD發展來的,而FreeBSD和Linux其實是同一個家族的遠親。 也許蘋果用戶可以把蘋果電腦就當作是Linux來使用,依據我在3C賣場試用蘋果電腦的經驗來看(我真的很窮),大部分的檔案路徑結構、甚至是指令等都是相通的喔!

arrow
arrow
    文章標籤
    C語言教學
    全站熱搜

    夜行者 發表在 痞客邦 留言(0) 人氣()