2011年9月15日 星期四

程式設計要怎麼入門?

image

2015/03/24 補註:由於本篇留言踴躍,已經超過 Google Blogger 顯示於同一頁的留言上限。如果您留了言,卻沒看到您剛剛寫的訊息,可以捲到本頁最底部,有個「載入更多」的超連結,點擊後,就可以載入更多留言。您可以一直點擊到看到您的留言為止。造成不便,敬請見諒!

不知道您是怎麼看待會寫程式的人?宅男?有錢人?雅痞?新貴?還是永遠有用不完新鮮肝臟的神人(您應該猜得到新鮮肝臟什麼時候用吧)?

由於我平常在電腦補習班教授程式設計相關課程。常常被問到:「老師,我完全不會寫程式,請問要怎麼入門呢?」一般我都會先問同學們想學程式設計的動機,再決定要怎麼回答這個問題。若動機不強、心態不正確、或者不是出於有興趣,例如像「不想再被程式設計師欺負」、「想賺大錢」這類理由,我都會勸同學打消學程式設計的念頭。「不想被程式師欺負」的話,給程式師一點甜頭比學一套程式簡單、經濟、又快速(相信我,大部分的程式設計師的脾氣,多可靠著連續一週服用一包 10 元的「生活廣場奶茶」,而得到絕大改善)。至於「賺大錢」嘛…開家公司,招募些擁有新鮮肝臟的程式師,保證比你去貢獻肝臟給人家,賺錢機率絕對大得多。寫程式的過程中,有許多挫折與磨難,若不是靠著一股興趣支撐,是很難嚐到最後的甜美果實的。

若您很確定自己對程式設計有興趣,我非常願意分享如何從完全不懂程式設計,到能寫出簡單的程式的入門方法。



根據目標,選定想學的電腦語言

如同汽車修護會分為板金、電路、引擎、機構…不同領域一樣,想入門程式設計的人,必須先問自己:「學會程式設計後,我想幹麼?」。有些人想為自己架設的站台,寫些程式,就得學「網頁程式設計」。有些人想寫一些手機程式賣錢,就得學「手機程式設計」。也有人對五光十色的電玩世界,非常心馳神醉,希望有朝一日,可以成為「遊戲程式設計師」,那就得學「遊戲程式設計」。各個領域所慣用的電腦語言都不同,如:「網頁程式設計」常用「ASP」、「JSP」或「PHP」,「手機程式設計」常用「Java」(Google Android 系列)或「Objective-C」(Apple 系列),「遊戲程式設計」常用「C」或「C++」語言。每種語言,大多要經歷兩~三年左右的磨練,才能運用自如。所以,入門程式語言的第一件事,就是要依照自己的目標,選定一種專攻的電腦語言。若您無法確定哪種語言是您應該學的,很歡迎您留言告訴我您的狀況,我非常樂意協助您找到適合您的電腦語言。

架設環境

想考上汽車駕照一定得弄台車來練習,不管這輛車是從哪個冤親債主借來的,自己買的,還是教練場的。程式設計也是一樣。想學好它,就得準備練習程式設計所需要的「軟硬體」。硬體一般而言,就是一部效能稍微好一點的電腦,找「價錢 = (最貴 + 最便宜)/ 2」的,大概就可以了。軟體的話,一般要有下列這三種東西:
  • 「文字編輯器(Editor)」:讓您可以很方便地寫程式。
  • 「編譯器(Compiler)」:可以讓您把程式,翻譯成電腦懂的 0 與 1。
  • 「除錯器(Debugger)」:可以在程式發生錯誤時,幫您找到錯在哪裡。
某些電腦語言,也提供把「文字編輯器」、「編譯器」、「除錯器」整合成一套軟體的工具。這種工具稱為「IDE(Integrated Development Environment,整合式開發環境)」。至於實際要下載哪些軟體,會根據您所學習的語言不同而不同。若您無法確定,也請留言告訴我,我會提供協助的。

選擇一位好老師

初學電腦語言,我會建議找一位有耐心、懂方法的老師,引領您入門。他會在您遇到困難時,誘發您往正確的解決方法前進。當然,若您想靠書籍、網路資料、或錄影帶等,自修學會程式語言也無不可。但若遇上無法解決的難題時,您可能要有無比的耐心與堅持,嘗試用各種方法,找出正確的解答。不然很容易因為挫折,半途而廢。此時一位好老師,就能幫您省下大量的摸索時間,培養您正確的思考方式,好讓您將來獨立後,也能自行解決問題。

我個人從 1989 年開始從事程式設計教學,至今已經 21 年。對如何將一位完全沒有程式設計經驗的朋友引領入門,有大量的經驗。您也可以留言給我,我可以建議或安排適合您的課程,讓您踏出正確的第一步。

書籍的選擇

除了好老師引領入門外,您還需要一本好書,讓您在閒暇之餘閱讀,讓您的功力更紮實。下了課還會拿課外讀物練習的朋友,肯定會比下課後把講義放到冷凍庫、下次上課前再解凍,要進步得快。一般而言,學習一個語言我會建議購買三本書籍:
  • 教學手冊:一本由淺入深,可以在下課時代替老師,講解電腦語言特性的書。
  • 範例集:一本全都是該語言範例的書。
  • 參考手冊:一本將該語言的指令,依照英文字母順序排列,讓您寫程式時,方便查閱使用。
若因為預算因素,只能買一本,那我會強烈建議購買「範例集」。這種書每一頁都是「題目 + 解答」、「題目 + 解答」、「題目 + 解答」。我常會建議同學,學會一項程式設計技巧後,去範例集內找三個相關題目,把解答遮起來,看看自己是否能寫出正確答案。我一直跟學員們強調,老師講的,只是基本原理。要實際掌握,還是得透過大量的實例演練去掌握。

至於怎麼找到「好書」,您可以詢問您的老師。一般老師能教一門課,大多能提出一份「建議書單」。或者把您想學的語言告訴我,我會依據個人經驗,提供一些書給您參考。

練習、練習、再練習

天底下的學問分為兩類:「知識類」與「技能類」。前者是那種一旦您當下了解,馬上就能運用自如的學問。後者是您就算了解,還得透過大量練習,才能掌握其中精要的學問。程式設計,與學騎腳踏車、學游泳,都屬於「技能類」。腳踏車與游泳的動作都很簡易單調,但要作到能平衡,或能出水面換氣,還是得透過練習才行。程式設計也一樣,老師講的語法、指令,其實都是死板板的,很單純。但怎麼把這些單純的東西,依照不同順序排列組合,讓它執行出您要的結果,這就只能「練習、練習、再練習」了。所以我才會說,您至少要購買「範例集」這樣的書,透過一次次挑戰不同的問題,進而心領神會,最後能輕易地把程式寫好。

希望這樣的說明,能幫助您對如何學好程式設計,有進一步的認識。最後,如果您喜歡本文,麻煩老爺夫人們打個賞。要的不多,一個「讚」或一個「分享」,就能滿足敝人在下我小小的虛榮心。

Technorati 的標籤:,

430 則留言:

  1. 請問要怎麼跟你聯絡呢??我想詢問程式入門打好基礎問題

    回覆刪除
  2. 您好:

    請問您想學習哪一種語言呢?還是說,你想往哪個方向走(網頁設計?遊戲設計?手機設計?...)?麻煩您在這裡留言,我好方便協助您找到方向。

    由於我平常都在上課,會上網的時間大概只有短短地 8AM~9AM,以及深夜 11pm 之後,其它時間大多手機都得關機,也因為得專心在課堂上,無法上網。所以對您比較方便的方法,可能是留言在這裡,系統會自動通知我來看。謝謝您!

    回覆刪除
  3. 請問製作類似 控制電路 的軟體,是屬於哪一種類型呢?

    回覆刪除
  4. 您是說,製作一個軟體,來「控制」電路?還是製作一個軟體,來「繪製」控制電路?前者是「嵌入式軟體」,後者是「CAD (Computer Aid Design,電腦輔助設計)」。不過不論哪一種,大部分都是使用「C 語言」這種語言。

    回覆刪除
  5. 我想問黑客是不是自學的?

    回覆刪除
    回覆
    1. 功力強到可以當 Hacker,大部分都是自學的。況且那些 Hacking 技巧,大多不會見諸正式的書籍,因為也不是什麼見得了光的知識。所以多流傳於某些特定 Hacker 的部落格。

      刪除
  6. 回覆
    1. 以「4 + 5」這樣的式子來說,「+」就是「運算子(Operator)」,剩下兩個「4」、「5」就稱「運算元(Operands)」。

      刪除
  7. 如果我想做電腦保安如何自學?

    回覆刪除
    回覆
    1. 先確定一下您指的是否為「Computer Security?」若是,您可以到書局找書名就是「電腦保安」的書,然後從書中看看是否提到哪些主題是您不懂、有興趣的,再去找相關書籍自己讀。就照這種方法一直研究下去。等到您累積到一定的閱讀量,您的程度應該也不錯了。

      刪除
  8. 老師您好 : 自學程式語言, 純屬興趣. 我的目標是寫一個能在 PC 上跑的紫微斗數排盤程式, 不需要陽曆與陰曆的轉換. 對 C 語言僅於讀完螞蟻書, 剛接觸 GTK 而已.
    對此目標還茫茫然, 還請老師提點該加強那裡? 或是有參考資料? 謝謝

    回覆刪除
    回覆
    1. 如果您想做出紫微斗數排盤程式,我會建議學 VB (微軟的 Visual Basic)會比較方便實作。VB 內有強大方便的工具,可以讓你事半功倍。用 C 語言寫紫微斗數不是不行,只不過 C 語言拿手的並非在 PC 上寫類似「紫微斗數」這類程式。

      這就像,您學會開車的目的,只是為了想假日載著全家出遊。那麼學「自排車」(VB)就可以了。特地去學「手排車」(C 語言)雖然也能達到相同目的,但是總是會花上多點時間。

      不過由於 VB 比較強的也只有製作 PC 上面的程式,所以局限性較大。這就像學了自排車,雖然可以達到全家出遊的目的,也比較輕鬆,但充其量也只能滿足「全家出遊」這個目的而已。對於將來想用汽車「蹺孤輪」、「跳火圈」(如:手機 App 程式、自動控制...),還是得學「手排車」(如:C 語言、Java 語言)不可。

      VB 的書籍很多,大多也寫得不錯。您可以到書局站著看,哪本順眼帶走即可。希望這樣的說明有幫助。

      刪除
  9. C++中的Cout代表什麼?
    什麼時候會用

    回覆刪除
    回覆
    1. 您好:

      cout 原名「Console OUTput」,就是代表您的螢幕。

      至於何時會用,當您想列印文字到螢幕時就會用。如:您想在螢幕上印出「How are you?」,就可以這麼寫:

      cout << "How are you?";

      其中的 << 可以念成「輸出至 XXX」的意思。所以整句話的白話文就是:「把 "How are you?" 輸出至 cout(螢幕)」。

      刪除
    2. 為什麼不用"printf"都是張文字輸出至螢幕?

      刪除
    3. printf 也行!只是 printf 是 C 語言時代留下來的,而 cout 是 C++ 才有的。C++ 為了保持與 C 語言相容,所以同時保有 cout 與 printf。

      就像游泳,蛙式與自由式都可以游到對面,您也不能說:「能用自由式游泳,幹嘛發明蛙式?」道理是相同的。

      刪除
  10. 請問老師 想學Objective-C 可以從哪一本書開始入門

    回覆刪除
    回覆
    1. 您好:

      Objective-C 的前半部與 C 語言無異。所以如果您沒學過 C 語言,建議先學這本,根基會比較紮實:

      C語言教學手冊(四版)
      http://www.books.com.tw/exep/prod/booksfile.php?item=0010360466

      至於 Objective-C,我還沒遇到非常完美的教科書。目前勉強及格的有:

      學會Objective-C的24堂課 第二版
      http://www.books.com.tw/exep/prod/booksfile.php?item=0010528626

      希望這樣的回答有幫助。

      刪除
  11. 老師你好,請問如果我想寫android app自學java該怎麼學,我自己看過幾本書自學但都不太理解,後來看高橋麻奈寫的書用圖示解說才略懂,但是如果要更深入研究又卡住,我應該怎麼學比較好.

    回覆刪除
    回覆
    1. 我會建議您去找一門課程,跟老師好好學一次。

      一般人玩遊戲「卡關」,會尋找所謂的「祕技」。而這些祕技,大多要花錢買本「攻略集」,度過後才能再有一次飛躍性的成長。學電腦語言也是這樣,想透過買書自修來達到「武林至尊」,要不就是得花數十年的功夫慢慢磨,要不就得是天縱英才,光看書就能融會貫通。當你學到卡關時,我覺得這時候花錢上個課,會蠻有用的。因為補習班老師大多會給你書上沒有得「祕技」,拓展您的視野。之後您就可以買些更進階的書籍來看,這樣就會再次進步了。

      刪除
  12. 老師您好,我想學網站程式設計與後台資料庫架設,請問可以推薦書籍給予建議嗎?謝謝您!

    回覆刪除
    回覆
    1. 您好:

      網站設計建議先學前台的三大技術: HTML5, CSS3, JavaScript。您可以參考這本書:

      http://www.books.com.tw/exep/prod/booksfile.php?item=0010576916

      至於後台,大概就是 PHP 與 MySQL 了吧?如果是這樣,建議您看這本書:

      http://www.books.com.tw/exep/prod/booksfile.php?item=0010486450

      刪除
    2. 老師 謝謝您的建議!我去找來學習!

      刪除
  13. 老師好,我純粹是想考國營事業資訊管理這科的新手,因為計算機概論,資訊管理還有網管我有一定的基礎,但唯獨程式設計這科我根本從未碰過,請問我要如何針對考試學程式設計??ps:小弟以30歲了

    回覆刪除
    回覆
    1. 如果是針對考試,我覺得與其去學程式設計,不如多做考古題,強迫取分比較實際。因為「寫程式」跟「考程式」是兩回事。這有點像「考駕照」跟「學會道路駕駛」是兩碼子事是一樣的。很多人開車一把罩,但要他去考駕照,卻不一定考過是一樣的道理。

      刪除
  14. 老師你好,我是一個一直找不到正確方向的資管大學畢業生
    第一份工作是以java為基礎的網頁開發
    在這工作期間 一直被主管說java的基礎很薄弱
    請問老師 可否推薦 一本關於java的範例集讓我加強一下
    非常感謝老師!!!

    回覆刪除
    回覆
    1. 這本雖然舊,但是範例還不錯。給您參考:

      http://shopping.pchome.com.tw/?mod=item&func=exhibit&IT_NO=DJAA04-A49973042

      刪除
    2. 非常謝謝老師所提供的資訊~~~

      刪除
  15. 老師你好
    我學的是C#
    常常覺得有許多的語法和物件不知道該怎麼使用
    我覺得我的邏輯應該還可以
    請問老師有沒有推薦的C#的書籍
    謝謝老師

    回覆刪除
    回覆
    1. 您好:

      您的問題不在於理解度不夠,而在於熟練度不夠。學習程式,跟學習游泳是一樣的。了解程式的數理邏輯,跟了解自由式的標準動作相同,都不會很難。難的是找時間多多下水練習,直到一天「心領神會」。您說您許多語法與物件不知該怎麼使用,但又說數理邏輯還可以,就是「熟練度」不夠的症狀。

      所以您需要的不是另外一本解釋 C# 語法的書籍,而是一本範例集,那種打開沒有太多廢話,就是一題一題題目,然後底下附解答的那種。使用方法是,把每一題的答案遮起來,然後一題題練習。卡關後,偷看一下關鍵的那一行,然後再蓋起來。這樣練完一半,您就有「感覺」了。我當初學程式時,也跟您有一樣的疑問,後來是靠這種方法再上一層樓的。

      至於哪一本範例集比較好?那個因人而異。所以只能靠您去書局找到這樣的書,把「順眼的」帶來回就可以了。重點是要每天練一~兩題(當初我是逼自己一天五題),一兩個月後,您的問題就會自然不見了。這跟減肥一樣,道理很簡單,難在持之以恆。

      刪除
  16. 老師您好:
    我是一個完全不懂程式的人,我現在是在網站平台公司上班,擔任產品企劃
    由於要時常與工程師討論功能及需求,但常常都是有聽沒懂,導致寫出來的東西也很沒邏輯,也沒辦法協助解決問題,請問如果我要學程式,從那方面入門比較好呢

    回覆刪除
    回覆
    1. 既然您在網站公司上班,那我會建議您學習路徑為:

      1. HTML
      2. CSS
      3. JavaScript

      如果還能學好 jQuery,那您的程度就跟一般中上的工程師沒兩樣了。不過學完這三樣,對於產品企劃應該就十~~分足夠了。

      刪除
  17. 老師您好:
    我是一個完全不懂程式的人,但因為親戚長久一來,一直拜託我幫他寫分析樂透規律的程式,已經拜託十年了。十年中親戚也有請專人代寫,但是因為時常有新想法,修正後,之前的程式只能作廢,花了不少錢。
    想請教老師,如果是這種情況,我該學習何種程式語言,才能以最小時間,得到最大效益?
    1.看了老師上面文章,我是不是學VB即可呢?
    2.如果是VB,您是否有VB推薦書籍呢?王國榮的VB書,老師覺得如何呢?
    3.如果不是VB,老師您可否推薦適合的入門書呢?
    謝謝老師

    回覆刪除
    回覆
    1. 您好:

      回答如下:

      1. 您的例子,使用 VB 應該很適合,也應該就足夠了。
      2. 王國榮的 VB 書還不錯,雖不到我「跌倒了爬起來再推薦」的程度,不過還算是「看得上眼」的。

      希望這樣有幫助。

      刪除
    2. 紀老師您好:
      謝謝您的有趣回覆^^
      因為王國榮的書是先做功課,google上網友推薦的。想知道老師站在專業的立場,您「跌倒了爬起來再推薦」的VB書是哪本呢?
      看了一下老師的FB,老師大部分時間都在北部,那高雄、台南地區,您有比較推薦的老師嗎?

      刪除
    3. VB 近幾年退燒,所以一些好書都絕版了,目前王國榮那本恐怕是最好的了。

      我沒有認識中南部的老師耶!所以也沒辦法推薦!

      刪除
  18. 紀老師您好:
    謝謝您的熱心回覆,感謝您
    祝您順心平安
    謝謝

    回覆刪除
  19. 老師我想學控制機器人(遙控和自控,向樂高機器人的那種機器人)的程式應該從何開始,我應該要先讀什麼書把基礎打好,要用什麼的軟體,java嗎?
    還要懂什麼,我指的機器人是把寫好的程式要自己親手寫入電路板的機器人,不是像樂高機器人那樣用nxt,只要寫好程式就可以了,可是我才國二不知道能否做那麼難的機器人,當然是先從最簡單的控制機器人(遙控車之類)的左右等等一些基本的動作就可以,我從以前就一直很想寫程式,我的夢想是航空工程師(航空電子 自控...),機器人是我的興趣,麻煩老師回答我的問題

    回覆刪除
    回覆
    1. 想學機器人與自動控制,首先要具備這方面的軟體與硬體。然後天天把玩,自然能熟能生巧。就像想學電腦,得先去買一台電腦(硬體),然後灌 Windows(軟體)來摸、來學是一樣的。

      機器人與自動控制的入門硬體(我們稱「開發板」)有很多,我會推薦 Arduino (發音類似「阿嘟以諾」)這一塊入門用的開發板。板子本身大概 500 ~ 600 元,再買些電阻電容...等的東西,大概不會超過 1000 元。可以在 Google 下達「Arduino 購買」這樣的關鍵字,就可以找到很多賣家。

      至於軟體,只要你有一台安裝了 Windows 的桌機或筆電,就可以了。那台 Windows 桌機或筆電,是用來讓你寫程式。然後把寫好的程式,往 Arduino 肚子裡灌,在 Arduino 把你的程式跑起來後,就可以控制與 Arduino 相連的電子元件。

      自修的書籍方面,我目前強力推薦這一本:

      http://www.books.com.tw/exep/prod/booksfile.php?item=0010582306

      這是我目前看過 Arduino 最簡單的入門書了!沒有基礎的人,也能一步步照做,學會很多自動控制基礎。裡面也教你用藍牙控制一個簡單的機器人(第 14 章)。

      至於接下來的進階部分,大概就是好好把 C 語言學好。因為自動控制領域,大多使用 C 語言。不過在你達到這一步之前,我前面講的東西已經夠你玩一兩年了。所以,到時候如果你志向仍然不變再說吧!

      刪除
    2. 老師,那不能用java嗎?

      刪除
    3. C 語言有一種稱為「指標」的東西,可以用來儲存「記憶體位址」。自動控制中,如果想對某個硬體下指令,大多會告訴你「此硬體的位址在 XXX」。你只要拿著這個位址,就能讓硬體聽命於你。 Java 沒有「指標」這種東西。所以自動控制不太用 Java 語言。

      刪除
  20. 老師,請問是否有那種寫好程式後直接再電腦裡模擬的那種軟體

    回覆刪除
    回覆
    1. 不知道您指的是哪一種電腦語言?要模擬的平台(指 CPU+ 作業系統)又是哪一種?

      一般而言,您說的東西應該是指「模擬器」。模擬器做得再好,絕對不可能取代真正的開發版的。像超音波、GPS、加速度計、陀螺儀...這些感知器材,非得把程式跑在實際的機器上,才有辦法動。因為模擬器是跑在類似 Windows 這種作業系統的純軟體。這種純軟體,只能把程式的執行結果「輸出」,像陀螺儀這種需要「外界輸入」之後,交由軟體判斷,再決定要如何「輸出」的情境,模擬器就做不到。所以,如果您有興趣的是自動控制,還是趁早斷了「模擬器」這個念頭。

      刪除
  21. 老師,我要的模擬器是那種程式寫好後用電腦執行,不是用機器人執行,我想要的是看結果而已,因為有時候沒機器人可執行,無法看到結果,剛開始我想寫一些簡單的程式就好,例如:機器人的行走方向,或是再複雜一點點的控制方向加一些動作(機械手臂...)
    ,或是更進階,一樣是控制方向加動作,但動作更複雜,我的意思是可以把程式整合(我不知該怎麼表達,因為我不懂那些術語)。我指的那種模擬器,功能跟真正的機器人只差在一些感應器無法使用,但馬達可以用。
    還有老師,我想請教一個問題,我想學c語言,想買書來看,但不知值不值得買,因為聽人家說,這種電腦書很快就會過時。我說想買的書是c語言的基本語法,還有一些c語言最基本的東西,也就是我看完那本,或許多本,也看懂,了解,熟悉。之後要寫c語言,只要變化變化就可以了,是否有那種書,麻煩老師推薦給我。感恩

    回覆刪除
    回覆
    1. 沒有「模擬器」可用的原因,是自動控制界沒有像 x86 這樣的「標準硬體」。既然沒有「標準」,那「模擬器」當然無所本,也就做不出來了。每個自動控制硬體,都是工程師配合需求自行設計的,所以無法事先知道「硬體長得什麼樣」。既然不知道「硬體長得什麼樣」,「模擬器」也會不知道該怎麼設計了。

      自動控制界,光常用的 CPU 就有 8051 系列、ARM 系列、MIPS 系列、PowerPC 系列。每個系列的變動都很快!不瞞您說,的確有「模擬器」的存在,向「ARMware」、「QEmu」...等。但相信我,用過之後你就會發掘與實際硬體差太遠,所以也不甚好用,無法貼近真實情況到 75%、80% 這樣,導致有太高的機率是模擬器跑沒問題,但一上板子馬上出事的,所以到最後大家乾脆都不太用。如果想知道機器人行走的方向正不正確,我們大多會在螢幕上印「Up...Up...Down...Left...」這樣的字樣,比較切合自己的需求。

      C 語言從 1971 年發明至今,已經 40 幾年了。語法沒啥變化,用的人仍然很多。或許其他語言會過時,但個人覺得 C 語言應該不會。我推薦的入門書是這本:

      http://www.books.com.tw/exep/prod/booksfile.php?item=0010360466

      希望這樣對您有用。

      刪除
  22. 老師,請問一下還有什麼辦法可在無測試體時執行程式,看程式的結果。
    老師,請問我要學會寫程式、自動控制及一些飛機上的一些控制系統,如雷達、導航、飛控...之類的,我必須要先讀什麼書,把基礎打好,但我說的寫程式、自動控制及一些飛機上的一些控制系統,如雷達、導航、飛控...都跟寫程式有關,麻煩老師跟我說明一下,感激。

    回覆刪除
    回覆
    1. 自動控制牽涉到硬體,而且是高度客製化的硬體(線路大多由工程師自行設計),所以據我所知,大多會買個麵包板,買齊材料,然後實際在麵包板上插件測試。因為不會太難,價錢也不貴(50 ~ 150 左右即可搞定),大部份人都是走一趟電料行就買齊了,很少「無測試體時執行程式」的狀況。您的要求有點像寫軟體時,「沒有電腦,卻要能夠看到執行結果」一樣,有點不是很容易達成。

      至於您詢問的「雷達、導航、飛控...」要看什麼書,我個人是軟體出身,對於自動控制,也僅止於玩家,還不到專家的地步。您說的那些領域(雷達...),我個人也還沒接觸到,所以恐怕也無法回答您。真是抱歉!或許您可以詢問網路上這方面出身的專家,應該有更好的答案。

      刪除
  23. 老師,請問麵包版跟一般的電路是不是沒差,只是不用焊接而已,也可以執入程式嗎?
    還是說用一個線連接電腦,讓電腦的程式輸入進去,然後裝上電子零件,接馬達或一些感應器,還是說不能接感應器或馬達,因為我看麵包版上都是小孔,根本沒辦法接。
    麵包版是不是等於電路板,功能是不是一樣。謝謝

    回覆刪除
    回覆
    1. 麵包版可以讓你不用銲接,就能安插你想要的電路,當然也可以植入程式。不過麵包版無法承受 100 MHz 或更高的振盪時脈。但因一般的自動控制大多低於這個數值。所以大部分的工程師,都在麵包板上測試電路正確後,再設計正式的電路板。

      刪除
  24. 老師,請問這本書好不好http://www.books.com.tw/exep/prod/booksfile.php?item=0010586841

    回覆刪除
    回覆
    1. 這本書我沒有看過,所以不方便評論。抱歉。

      刪除
  25. 老師您好,我目前想要了解程式語言這方面的內容,至於是甚麼方向,個人想先從簡單的學起,然後,再學比較困難的。
    沒有甚麼特定的目標或者是想要製作出甚麼類型的,只是想要了解這類型的東西,並且能實際操作並且正常運作。
    個人對電腦方面非常有興趣,所以想從目前的階段(只懂皮毛)晉升到更進階的階段來討論電腦,所以想從程式語言這裡下手。
    想請老師提供一些意見,或者書籍、部落格等等,以上,謝謝您。

    回覆刪除
    回覆
    1. 如果你只是告訴我對程式語言有興趣,但沒有特定的目標,我恐怕很難給你建議。這就像你去找醫生,告訴他我想要變健康,卻告訴他我沒什麼特定症狀,醫生也會無所適從。所以可能還是得麻煩您告訴我面對哪一方面有興趣,比如說手機程式設計、網頁設計、自動控制,我才能提供給您正確的建議。不同方向的建議是不一樣的,您也不希望醫生開給你一堆維他命,然後告訴你每天吃,總有一天你會健康的這樣吧?

      所以還是得麻煩您告訴我你有興趣的方向,我才有辦法給出正確的建議。

      刪除
    2. 那以網頁與遊戲製作來說,提供叫簡單的種類吧,以老師的觀點來看
      而C與C++差別是甚麼,還請老師解答
      謝謝耐心回復

      刪除
    3. 網頁程式設計與遊戲製作是兩個方向,雖然到最後可以合在一起,做出在網頁上執行的遊戲,不過學習的時候,還是得分開學習。

      先跟您說明網頁程式設計的學習路徑:
      1. HTML5
      2. CSS3
      3. JavaScript
      4. jQuery(非必要,不過強烈建議學習)

      HTML5 與 CSS3 我會推薦這本:

      http://www.books.com.tw/exep/prod/booksfile.php?item=0010546014

      JavaScript 與 jQuery 我會推薦這本:

      http://www.kingstone.com.tw/book/book_page.asp?kmcode=2014713333421

      遊戲程式設計我個人不是這一方面的專家,所以就沒有特別要推薦的書籍了。

      至於 C 與 C++ 的差別,應該說 C++ 完全包含 C 語言的語法,然後在這之上又擴充了很多新的語法。C 語言採用的是「程序導向法」來寫作程式,就是把你想做的事情,依照步驟,寫成一個個的函數,然後依序呼叫。C++ 採用的是「物件導向法」,他並不是定義想做的事情有哪些,而是把類似的「事情」分類在一起,打包成一個「物件」。每次操作,就針對「物件」一口氣操作數個「事件」。問 C 語言與 C++ 語言有何區別,有點像問「腳踏車與機車都需要平衡,那它們的差別在哪裡」是一樣的。我雖然可以告訴你腳踏車的平衡靠人力,機車的平衡靠機器。但實際要能會他們的不同,還是得先學會騎腳踏車與機車之後再說比較容易了解。

      現階段我會推薦您專心學一樣,畢竟追二兔不得一兔。如果您對網頁程式設計有興趣,我會建議您把推薦的書籍買來研讀。之後如果有任何問題再問,這樣可能比較實際。

      刪除
    4. 謝謝老師的用心回復。
      想問老師這些書去書店問應該也買的到吧,因為不太習慣網路訂購

      刪除
    5. 還有就是....大概多久可以學會,因為近期要準備複習考,但又不想拖到一年後(考完試),所以取個大概值,時間允許的話就挪出來用,謝謝

      刪除
    6. 如果是網頁程式設計,大概半年就會有小成。

      刪除
    7. 謝謝,我會盡力挪時間

      刪除
  26. 老師,我想問那些黑客是用甚麼程式語言來寫程式,如果我想編一個保安程式或做一個黑客程式又應該用甚麼程式語言?!其實我的電腦已經中很多次毒,如果我想成為一個厲害的黑客來反擊他們-_-需要多久時間??

    回覆刪除
    回覆
    1. 大部分是使用 C 語言,或是組合語言。

      電腦中毒買防毒軟體就好了,不必為了中毒,就去當黑客。就像一般人常生病,去找醫生就好了,沒有必要為了常生病,就去當醫生。成為一個厲害的黑客,一般都要五到十年的磨練。所以,生病還是買藥吃比較實際,中毒還是買防毒軟體比較實際。為了「報仇」或「反擊」而散播病毒是違法的,要去坐牢的。加上你很難知道散播病毒的黑客到底是誰,根本很難直接攻擊對方。你不能因為曾經被小混混捅了一刀,就立志當個小混混捅回來。所以我還是會建議您打消「為了反擊而變成黑客」的念頭。

      另外,黑客(Cracker)是不好的名詞,請不要往自己身上套。國外稱呼「電腦技術很厲害的人」,根據他的行為動機,分為「技客(Geeker)」、「駭客(Hacker)」、「黑客/怪客(Cracker)」。技客是指拿厲害的技術,來替人解決困難的人,類似警察。駭客偶而會遊走在灰色地帶,可能做出入侵人家電腦的事情,留下一張圖片顯示自己來過,但不做任何破壞行為,類似某些私家偵探,會用一些警察不太用的手法解決問題,但基本上不傷害他人。黑客就只是單純做下毒、破壞他人電腦的事的人,類似不良的小混混。所以可能的話,不要自稱「黑客」,這看在一些了解 Geeker、Hacker、Cracker 分別的人,會讓您冠上某些不好的標籤。

      刪除
  27. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 您有 Apple 的電腦或是筆電嗎?如果沒有的話,建議先買一台,從 Apple 電腦的基本操作開始學起。因為 Apple App 目前是在 Apple 電腦的環境下開發的。如果您基本的環境操作不熟,猶如完全不會 Windows 卻想在 Windows 內學習程式設計一樣困難。這筆錢我當初也考慮了半年才投資,所以我不會催促你現在買的。不過依照我個人的經驗,從很排斥 Apple 產品、酸葡萄地說那是「天龍國人用的電腦」,到現在變成「蘋果粉絲」,我是沒有後悔啦!給您參考。

      等您會了 Apple 基本操作後,接下來建議您安裝 Xcode 這套軟體,然後學 C 語言、接著學 Objective-C 語言、再學 Apple App 製作,這樣的路徑會比較順。屆時您再來留言,我再建議適合您的書籍。

      刪除
  28. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 推薦您看這本書:

      http://www.books.com.tw/exep/prod/booksfile.php?item=0010360466

      可能的話,請多多做範例。學電腦語言跟學游泳一樣,只看會教練示範的正確動作是沒有用的,得下水多多練習。大概半年就會有小成。

      刪除
  29. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 對不起!最近案子多,回晚了。

      由於 C 語言牽涉「變數」、「函數」、「邏輯 AND / OR / NOT」等概念。個人認為國二~國三有「變數」、「函數」等概念後來學比較好。不過國外也有七歲就會 C 語言的「神童」。所以這個問題恐怕沒有絕對的答案。

      刪除
  30. 老師您好:
    想請問,如果想做出像三國志12的遊戲,c語言能做得到嗎?
    (不知問題是否恰當...

    回覆刪除
    回覆
    1. 可能是用 C++ ... C 語言寫遊戲有點辛苦....。

      刪除
    2. 請問有更適當的軟體嗎?

      我想要自己做三國志的遊戲。(SLG)
      以前是學機械的,對於電腦軟體一竅不通。

      我覺得日本的遊戲,畫面都很精美。但是某些遊戲設定,覺得可以更改進。

      於是想要自己做一款遊戲。不管要花多久的時間。10年~15年~都嘛可以。
      想利用工作之餘寫遊戲。(只有時間,沒有經費)

      所以想請教老師,可以推薦軟體嗎~~~?

      刪除
    3. 寫遊戲沒什麼特別的軟體。看您使用 Flash、HTML、還是 C++ 寫遊戲。如果是 Flash,那就是 Adobe Flash CS6。HTML 的話可以挑 Dreamweaver 還不錯。 C++ 的話,可以用微軟的 Visual Studio.NET,因為用 C++ 寫遊戲,大概都會動用微軟的 DirectX 函式庫。所以軟體也會用 VS.NET。

      刪除
  31. 您好,我是個13歲的國一學生,因為某些原因,開始對電腦程式有很大的興趣,但卻不知從哪入門,看了許多網站,自己懵懵懂懂做出了一個殺毒軟體,功能不但不好而且已經崩潰,所以來請教您寫電腦程式必懂的重點和選購電腦的訣竅

    回覆刪除
    回覆
    1. 建議您先靜下心來,排除雜念,先把一種語言「徹徹底底」地學好,先不要這個碰一點、那個碰一點。武俠小說倚天屠龍記張無忌也是先練好九陽神功,之後才有辦法在短短幾個時辰學會乾坤大挪移的。

      至於學哪個語言好,您可以選擇 Java 或是 C 語言。這兩種是資訊系畢業生在外混飯吃的基本功。學的時候建議買一本範例集,就是打開後只有一題一題題目+答案的那種書。然後蓋住答案,試試看自己能不能寫出來。卡關時,偷看一下關鍵點,隨後又馬上遮住。這樣練個一陣子,相信您應該就能把程式設計學好。

      選購電腦沒啥訣竅。現在的電腦都做得很好,選擇便宜適合自己用的就行。

      刪除
    2. 抱歉,最近稍忙,直到最近才回覆您。

      要買哪些書得看您想學那樣東西,我才有辦法回答。比如說:C 語言?Java 語言?每個領域都有不錯的書。

      刪除
  32. 老師你好,我是今年剛從資工系畢業,也順利考上研究所,在大學時期總覺得成績有過就好,所以程式能力很基本,研究所是走密碼學領域的,不知道要開始重新從那個語言學起 才能夠使自己的程式能力更精進? 先謝謝老師回答了

    回覆刪除
    回覆
    1. 抱歉,最近因為忙專案,所以直到現在才回覆。

      依照我個人在業界的經驗,我覺得只要能把 C 語言與 Java 語言兩種語言學得透徹,你以後要學什麼語言都快。C 語言夠低階,也有指標的概念。學完後走機電整合、機器人...領域應該沒問題。Java 語言的物件導向概念完整。學完後再學其它物件導向語言,都可以靠著 Java 奠定下來的功力,快速上手。如果您自己目前做的東西比較偏軟體,那我建議先從 Java 學起。如果偏硬體,那我建議先學 C。

      學習的方法無非大量做練習題。您可以去買本「範例集」,把答案遮住,練個兩百題應該就沒問題了(我以前自己是把一本 C 語言 500 題的範例集,紮紮實實練完了)。任何語言的語法,對一個研究生來說都不難懂。若說要在哪方面贏過人家、且其他人不太追得上,那大概就是熟練度了。這個理由跟騎腳踏車一樣。學會不難,但能撐過枯燥的天天練習,就能表演出腳踏車的極限運動動作了。

      希望有幫助。

      刪除
  33. 從 Java 入門應該不會太難。但精通得花 2 ~ 3 年的時間。這點覺悟您們可能得先準備好。

    Java 學習路徑,依照我個人的經驗是:Java 基本語法 (變數、運算子、陣列、函數...等)--> Java 物件導向(類別、繼承、介面、套件...等)--> Java 進階主題(錯誤處理、檔案處理、多工、泛型...)--> Java 視窗程式設計(選修,包含 AWT、SWT、Swing...擇一即可,不必全學)--> Java 資料庫程式設計(JDBC)---> Java 各類程式框架(Framework,如 Spring, Hibernate...)--> Java 設計模型(Design Pattern)...

    當然,這個答案不是標準答案,只是照我個人經驗得出的答案。而且您們也不用學全了才「下山殺敵」,大概學到 JDBC(資料庫)結束後,就可以下山小試伸手了。剩下的一邊做一邊學,應該就可以了。

    入門書的話,我個人蠻推「朱仲傑」先生的 Java 書的。您可以用「Java 朱仲傑」當關鍵字,找找博客來的網站就行。

    回覆刪除
  34. 老師您好,我想要自己架設網站 、 寫網頁 可以從哪個網頁程式語言入門
    ? HTML ? PHP? or ...? 謝謝 =)

    回覆刪除
    回覆
    1. 抱歉,最近一直都在忙案子,晚回了。

      如果只是要架站,並非對撰寫語言有興趣,可以直接學「架站機」即可。不用寫一行程式碼,安裝時一直按「下一步」(當然也可以稍作修改啦),就可以構築出您要的「部落格」或「商務網站」。比較有名的「架站機」有:

      * 部落格: WordPress,可以參考這本書: http://www.books.com.tw/products/0010587318
      * 商務網站: TWE Commerce,可以參考這本書: http://www.books.com.tw/products/0010613847

      如果您真的是想學網頁程式設計,建議從: HTML --> CSS --> JavaScript --> jQuery --> Apache --> MySQL --> PHP 這樣的順序會比較好。推薦書籍如下:

      HTML & CSS: http://www.books.com.tw/products/0010546014
      JavaScript & jQuery: http://www.books.com.tw/products/0010541193
      Apache、MySQL、PHP: http://www.books.com.tw/products/0010486450

      希望有幫助。

      刪除
  35. 請問,學習CSS.C語言.JAVA,會需要購買軟體嗎?最近有錢可以買書了XD
    還請老師為我解惑:D因為要買軟體的話,我想到時候在一起買

    回覆刪除
    回覆
    1. CSS、C、Java 都有免費軟體:

      CSS:可用 Aptana Studio 3 代替 Dreamweaver CS6。
      C:下載 Orwell Dev-C++ 即可。
      Java:下載 Eclipse 或 NetBeans 7 即可。

      以上軟體都是免費的,把軟體名稱當關鍵字丟入 Google 中,就可找到下載網站。

      刪除
    2. 先謝謝老師回覆,但我又有好多疑惑了....
      問題1:看到上面那則留言,似乎覺得學C語言與JAVA比較重要
      想問老師,網頁設計學好再來學這些語言會相對簡單嗎?

      問題2:
      老師有推薦C++的書嗎?

      問題3:
      而我有GOOGLE一下,發現有C#,與C、C++有甚麼差別嗎?

      問題4:
      Visual Studio 2013這個軟體也是我搜尋編輯器找到的,它可以用來製作甚麼語言?與,他需要付費嗎?
      (因為老師沒有說到,應該是要錢,但網頁上看起來似乎不用)

      刪除
    3. 1. 網頁(指 HTML/CSS)跟 C/Java 語言是不同的東西,先學之後對於學後者幫助不大。就像學會騎腳踏車對於學開車,幫助不大是一樣的。
      2. 您先學好 C/Java/Web 其中一項吧? C++ 比較進階,先不要碰。
      3. C 包含於 C++,也就是 C 的功能 C++ 全有,還加上別的。 C# 基本上語法比較像 Java,反而不像 C/C++。只是名字像 C/C++ 而已,血統上比較接近 Java(當初是參考 Java 改寫出來的)。
      4. VS2013 可以寫 C++(含 C)、C#、VB 三種語言。它只有簡易版不用付錢,進階功能要付錢。不過簡易版的功能一般人也夠用就是了。

      刪除
  36. 老師~最近我有在學JAVA快一年了!!但總感覺就是一直再讀書,要自己上機打出程式,就不太行(也不是說不行,就是會卡卡的,但看JAVA程式碼都OK都懂),只知道大概的觀念~老師救救我!!老師能分享一下學習方法嗎??

    回覆刪除
    回覆
    1. 看來是「練習不足」所造成。

      這個狀況有點像「您已經學會游泳了,但換氣一直換不順,怎麼辦?」這樣的問題根源,是相同的。都是「練習不足」所造成。

      猜測您平常的學習習慣,大概是把書上的原理看懂,範例打打看,這樣就覺得「學會」了。其實真正作法應該是:去買一本 Java 範例集,就是翻開書後,從第一頁到最後一頁,都是「題目-->解答、題目-->解答、題目-->解答...」這樣的書。然後把解答蓋起來,光看題目,看你能寫到哪裡才卡住。卡住後偷看一下答案,懂了後不要看著照打,要把答案蓋起來再打。卡住了再偷看一點、蓋起來再打...一直到整題寫完後,把寫好的程式碼「刪掉」!是的!不要留戀!刪掉!然後不要寫下一題,原題目蓋住重寫一次。直到你可以一行不看,把整題寫完為止,再依相同方法進行第二題。

      這種方法是我當年學 C 語言時用的。記得我當時練了 300 多題吧?第一題就用掉一個半月,才達到一行不看可以寫完的地步。但後來的題目就越來越快了。練完 300 題大概花了我將近兩年。不過之後我的 C 語言功力,在同儕中大概算前幾名的吧?您可以試試看。

      這種方法跟減肥一樣,「少吃多動」,沒啥秘訣。難是難在持之以恆。希望對您有用。

      刪除
  37. 可是這樣感覺好像打到背起來??@@謝謝老師^^

    回覆刪除
    回覆
    1. 寫程式本來就有一點背誦成分在內。如果你每個指令,如 System.out.println()、Math.sqrt()...都不會背、都得用查的,那您就沒辦法把心思放在更深層的「程式邏輯」上了。這裡磨練的是「熟練度」,而「熟練度」本來就包含一點「背誦」的成份在。

      做前十題,或許您會覺得都像在「背」程式,但超過 50 題開始,您就會頓悟如何把「問題」轉化為「程式邏輯」中間的微妙技巧。這有點像您一直嗆水,還是不放棄一直練換氣,突然有一秒鐘你會換了,接下來您大概一輩子都不會忘記換氣怎麼換。寫程式會覺得「卡卡的」,那就類似練習量不夠,還沒把「換氣」微妙的變化「心領神會」。只能鼓勵你加油,一旦學會了,那個東西會一輩子跟著你,不論你學哪一種語言都會很快的。就像學會蛙式後,要學自由式、仰式、蝶式,都不會像一開始學蛙式那樣挫折感那麼重。

      刪除
  38. 好的!!老師謝謝~但我剛剛查了一下,沒有找到像你說的JAVA範例級..只有題目和解答的...能麻煩老師推薦一下給我參考看看嗎?再問一個JAVA問題有關IO的問題,關於FileInputStream和FileReader兩者不是都可以讀取嗎??差別?我知道差別在於一個是位元導向,一個是字元導向,那為何不都用FileReader就好都可以讀啊!!??

    回覆刪除
    回覆
    1. Java 範例:

      1. http://www.books.com.tw/products/0010589686 : 比較新,雖然題目偏數學(如:找出 100 內質數...之類的),但磨 Java 功力一樣好用。
      2. http://www.books.com.tw/products/0010193066 : 有點舊,但範例一樣是不錯的。

      FileInputStream 會把 0 與 1 讀出後不轉換,直接丟給你。適合拿來讀圖檔、聲音檔...二進位資料。 FileReader 會把 0 與 1 讀出後(不要忘了就算是文字檔,最底層還是以 0 與 1 構成),轉換成字元再丟給你,適合用來讀文字檔。

      刪除
  39. 老師你好,學C語言應該如何開始? 一些基礎的觀念有,但要寫出一支程式還是沒有頭緒往往都像無頭蒼蠅般,基礎的C語言寫程式都不會,未來對embedded工作比較嚮往,之前有上過老師的embedded的課程,發現對於C語言還是不知如何下手,希望老師可以給我一些建議、書籍,謝謝老師。

    回覆刪除
  40. 您的狀況跟上述 abcdefg3744 兄差不多。只不過他學的是 Java,您學的是 C。很可能是「練習不足」所造成。也就是看完一本 C 的書,或上完一門 C 的課程,就覺得「我應該會了」。殊不知,那跟您從駕訓班剛畢業,有駕照卻不會道路駕駛的狀況一樣,都是缺乏「道路駕駛經驗」。解決之道是買本範例集,把答案遮起來,然後反覆寫到不用看就可以把一題解出來,再繼續下一題為止。這跟減肥「少吃多動」的道理一樣,很淺顯、但沒幾個有恆心做完。不過我敢保證做得下去的人,練 100 題絕對有感覺!因為我當初學 C,是狠練 300 題練出來的。雖不敢說 C 語言第一,但程度在同儕之中也算前段班就是了。

    書籍部分推薦您看這本:

    http://www.books.com.tw/exep/prod/booksfile.php?item=0010360466

    希望有幫助!

    回覆刪除
    回覆
    1. 謝謝老師,馬上實做!

      刪除
    2. 想在請教老師一下,目前我想朝製作醫療設備的embedded system不曉得這方面的資訊有哪些?目前該往哪方面去準備呢?google大神上好像比較多都是以繪圖居多,不曉得目前這市場如何.謝謝老師

      刪除
    3. 抱歉!您這則留言 Google 並沒自動通知我,遲至今日捲動時才看見。Sorry!

      我個人並非醫療體系出身,所以可能很難回答您的問題。如同一個駕訓場教練,您問他「計程車這行是如何調度車輛」,除非該教練開過計程車,否則應該答不出來。所以我無法回答您「朝醫療設備」的資訊有哪些?市場如何這些問題。不好意思!

      刪除
  41. 老師您好,我是一個從沒接觸過程式的人,但因緣際會下來到了間寫程式公司上班,工作內容是寫一些大公司的網路稽查表單,大致上有用到資料庫,ASP.NET MVC4,CSS,HTML,Jquery,可能還有些我不知道,上班快2個月了,就是感覺一直在看書,找資料,目前公司也沒什麼案子,偶爾同事會教我怎麼寫一些功能,但我都有聽沒有懂,都先用模仿的寫法,總覺得好像很多東西要學,但又不知道到哪個比較重要,同事也常常跑去客人那維護,上班的時候都感覺很茫茫然很無助,可以請老師給點建議嗎?要重哪方面著手會比較穩當,謝謝老師 ^^

    回覆刪除
    回覆
    1. 先學 HTML5 吧!接下來再依照 CSS --> JavaScript --> jQuery --> 資料庫 --> ASP.NET 這樣的順序學。勤快一點的,以上這些大概也要學一年~一年半。要有耐心喔!

      HTML5 推薦書籍是這兩本:
      http://www.books.com.tw/products/0010546014 (看前半 HTML5 即可,講解語法很清楚)
      http://www.books.com.tw/products/0010592831 (從無到有示範如何建置一個完整網站。可以讓你語法學了後不會不知怎麼用)

      之後就等你完成 HTML5 再說囉,你迷茫的時候給太多建議反而不好。

      刪除
  42. 老師您好
    我是一個對程式完全沒有概念的人
    但有極大的興趣想學
    請問如果要寫外掛程式跟遊戲軟體的話
    要用哪種語言比叫好上手
    如果要買書自學哪本比較好
    還有我看寫程式時一推代碼
    請問那個需要英文知識嗎!?
    還是要用背的
    請老師幫解答

    回覆刪除
    回覆
    1. 遊戲的話,C跟C++應該是基礎。C的推薦書本篇留言推薦過,您往上捲找一下。英文知識要一點,但不用太深。不用背,要訣跟學游泳一樣,多練,然後用身體記住。

      刪除
  43. 老師你好,我們大三下要做專題,可是我的程式功力真的很差,我對我的未來感到很緊張,專題可能會用到HTML5 CSS3,我可以再重新來過學起來做好我的專題嗎?

    回覆刪除
    回覆
    1. (抓頭)您這部份屬於政治問題不是技術問題耶⋯重新來永不嫌晚,是否能做好您的專題⋯這可能我就回答不了了。

      刪除
  44. 其實我最大的問題是,改怎麼提升自己的邏輯,有時候都會看著螢幕,但都不知道該怎麼從無到有開始寫程式!!

    回覆刪除
    回覆
    1. 您的情況與「abcdefg34772013年11月9日 下午4:04」與「JonasHsu2013年11月22日 下午3:49」這兩則的解法都相同。您可參考一下我的回答。希望對您有幫助。

      刪除
  45. 老師您好:我是設計所的學生,敝姓陳。
    如果我想寫一些user的體驗程式應該如何入門呢?如果有問題是否可時常麻煩您呢。感謝回答。

    回覆刪除
    回覆
    1. 您指的「User 體驗程式」可以描述得再清楚一些嗎?比如說,描述您的東西使用者可以怎麼用它之類的。感謝!

      因為我白天也有正職,故您若有問題可以留言。晚上我回到家時會回覆。

      刪除
    2. 不好意思,我指的是。
      類似app應用程式,或是我想做一些實驗程式,類似反應測試跟時間迴圈的一些小程式。大概是這樣。

      刪除
    3. 作者已經移除這則留言。

      刪除
    4. 另外,我也想請問老師。
      各項程式,有何優點與專長之處呢??
      我需要全學嗎???
      還是專精一種,需要到補習班上課嗎???
      能否推薦書籍呢??感謝

      刪除
    5. 「反應時間」與「迴圈耗時」這些工作要用哪種語言,沒有一定。是跟著「你想測的是哪個平台」跑的。

      如果你想測的是 Android,那就得學 Java,因為 Android 使用 Java 語言。如果你想測的是 iPhone/iPad... 等,你就得學 Objective-C,因為該平台使用 Objective-C 這種語言。如果你想測的是「網頁」,那就得學 JavaScript(若牽涉到後台資料庫的話,也許還得學 PHP 支流)。

      每樣程式沒什麼誰比誰強,就像 Toyota 與 Nissan,你不會說哪一種有絕對壓倒性優勢於另一種。如果你 Android、iOS、Web 都得測,那就得全學,逃不掉。如果您沒有程式底子,第一個語言最好去補習班上課。之後的語言可以自修。因為語言之間多少有共通性。

      我沒辦法一下子推薦您所有的書籍。您得告訴我您想先專精於哪一樣,然後我來建議,會比較好。

      刪除
    6. 謝謝老師,我之前有學過c語言,不過很久沒用了。如果要去補習,老師可以推薦一下由什麼語言入門會比較好呢???
      感謝老師

      刪除
    7. 您還是得告訴我您想專精於哪個領域?Android? iOS? Web? ... 如果要建議您 A --> B 地怎麼走比較好,首先得麻煩您告訴我您想去哪個方向,我才有辦法建議「哪個語言入門比較好」這個問題。

      刪除
  46. 老師,我是一名國三的學生,因為很熱愛遊戲,所以想趁早先學習寫程式,未來可能會往這條路走,所以我想請問老師,在寫程式之前要先具備哪些能力?

    回覆刪除
    回覆
    1. 您好:

      只要國中以上,學過「變數」x, y, z... 這類概念,就可以開始來學。您已經國三,我想應該沒問題。

      剩下的就是跳進去實際學了。學程式跟學游泳一樣,基礎只要「不怕水」(學會「變數」概念),剩下就是跳進去水中從悶氣開始學了。最忌諱的就是一直在岸上買一堆「游泳入門」的書猛看,想要藉由「多看點游泳入門,看到跳入水中馬上有參加奧林匹克的水準」這樣的同學。講白話一點,就是一直買書、一直參加課程、結果問他「開過電腦沒?安裝了程式設計寫作軟體沒?」答案都是「還沒」。

      只要記住程式設計是一種「技能」,而非一種「知識」。所以應該「實作」大於「背誦」就應該能學得很好了。

      以後有問題還是歡迎您回來詢問。歡迎加入這條「不歸路」... :-D

      刪除
  47. 老師,你好,我是32歲的職業婦女,平常一個人帶二個小孩,原本在公司是做資材人員,但是公司需要長期在公司服務的資訊人員,所以我自告奮勇調到資訊部,現在跟著主管學SQL SERVER2005與Visual FoxPro來寫ERP資訊管理系統,提供公司人員運作業務、資材、會計、品管…等,但是主管說未來要改版,應該也是因為VFP已經少人在用了,你可以給我寫程式的意見嗎?要改用什麼來寫ERP系統?

    回覆刪除
    回覆
    1. 辛苦了~目前 ERP 系統有改用「Web-based(網頁)」的傾向。所以如果您現在要學 ERP 系統的寫作技術,建議往「網頁程式設計」這條路走。學習的順序如下:

      1. HTML5
      2. CSS(若能加學 LESS 更好)
      3. JavaScript(若能加學 jQuery 更好)
      4. PHP
      5. MySQL、PostgreSQL、或 MariaDB 其中之一(以上為資料庫)

      我知道您看完上面這一串清單會倒抽一口涼氣。但現在的 ERP 常常會被要求除了要能跑在桌機上,也要能跑在平板、手機等設備。這種「跨設備」要求的程式,說老實話,不好寫。但,沒辦法,目前趨勢就是這樣。不過一旦學完了,您做好的 ERP 系統就已經可以橫跨桌機、筆電、平板、手機。任何人想使用,給他一個網址,連安裝軟體都不用,就可以使用。代價就是寫這種系統的人要很辛苦。

      另外一條路就是拿「免費的 Web-based ERP 來改」。由於「開源軟體(Open Source)」的流行,網路上出現很多「免費、附原始碼」的 Web-based ERP。具體清單可以參考這個:

      http://refly.net/softwares/php-erp軟體的選擇續/

      不過 ERP 與公司企業流程緊密結合,每家公司做生意的規矩與習慣大多不同,所以很難下載下來後,完全不改就能用。如果想改,也是得學會 HTML、CSS、JavaScript、PHP、MySQL 這五樣。因為這些免費 ERP 就是用這五種技術做出來的。不會這些技術,別說修改了,程式碼攤開在您面前您都會茫然不知所措。

      所以如果想抄捷徑,先去下載幾套免費的 ERP 下來安裝玩玩看。選定最適合自己用的一套後,再「且戰且走」,看該學什麼,就去學什麼。這樣或許比「按部就班」來得快些。

      希望這樣的回答有幫助。

      刪除
  48. 老師您好,我是高二生,我也是因為玩遊戲而對於遊戲設計這方面有些興趣,其實早在國中就想學習了,但因為「遊戲」這種東西把自己害死...包括課業...這幾天把自己在國中時買的「C++教學手冊 第三版」翻出來想要好好學習,不知道對於新手是不是好的第一步?還有學程式設計要先學好英文嗎?

    回覆刪除
    回覆
    1. 我會比較建議先學 C,再學 C++。C++ 包含 C 的所有功能,所以先學 C,個人會覺得比較簡單。此外,C 語言也是 Java (Android 手機官方語言)與 Objective-C (Apple 手機官方語言)的基礎。所以先學會 C,之後再學 C++、Java、或 Objective-C 都會很順利。

      C 語言我會推薦這本書:

      http://www.books.com.tw/products/0010360466

      學語言跟學游泳一樣,光拿著一本「游泳入門」一直在岸上「腦補」,是永遠學不會的。得跳入水中吃幾口水才容易學會。建議每天找個固定的一小時,給自己的目標盡量小(如:安裝完 C 語言開發用軟體),這樣才會有成就感。總之,要實作 > 閱讀。甚至於直接實作,自我提問(如:「現在怎麼安裝軟體?」),然後到書中找答案,找到後就把書闔起來。這種主動學習的方式,還會比把書從第一頁看到最後一頁還要好!

      刪除
  49. 紀老師您好:
    我想請教,我本身在負責公司鼎新ERP的管理,我想學習撰寫報表程式(直接從SQL SERVER撈取鼎新ERP資料),另外報表結果還能將其轉換為EXCEL檔案,不知道哪種程式會比較適合我,再麻煩您指導,感恩。

    回覆刪除
    回覆
    1. 感覺您的需求學「VisualBasic(VB)」會比較合適。因為 VB 以容易入手見長,Microsoft Office 系列內建採用的語言,是由 VB 簡化而來的「VBA」(Visual Basic for Application)。SQL Server 用 VB 接取也毫無困難。所以根據以上幾點,我會推薦您學習 VB。

      刪除
  50. 老師您好:
    我目前就讀資管系大一,一直都有不少困擾。就是系上的老師上學期一開始先教JavaScript,但其實我是一個對程式有興趣但還沒有能力的初學者,所以他教JS的時候我實際上只懂了一些些觀念但根本無法寫出一個完整的架構。
    現在下學期,教的是Java,不知道是不是我太資質駑鈍,我還是一知半解,可能練習不夠多所以太生疏...。但我想請問老師一些些教學上的問題,就是我們第一堂課很簡單,稍微講解基本的宣告方式等等,第一次作業也只是使用println自我介紹;到第二堂課,我們就要交出有interface的程式...。不知道這樣是合理的進度,還是有點一步登天?然後第三次作業就要用到Swing...

    因為覺得學校教的不夠扎實,所以我買了Java的書,稍微能夠理解一些,目前的狀況算是盡力補齊學校老師的超英趕美。
    最近我算是有去補習C/C++的程式設計班(剛開始沒多久),想以此重新站穩腳步,把C和C++學好,再回頭學Java。想請問老師這樣會不會太貪心或者是步驟不對?

    其實我想念的是資工,未來也想繼續走程式設計或開發(但為什麼要念資管就不提了...),之後還想考資工所...
    除了程式設計以外,是不是還要學習資料結構、演算法這類的相關知識,才能把一個程式的效能發揮得比較好?

    其實我自己也知道資工和資管的實力差得蠻多的,但我還是想繼續學下去,要花上五年、十年我也願意...

    問題有點多><還懇請老師撥空解惑QQ

    回覆刪除
    回覆
    1. 您好:

      1. 我無意批評您們的老師,但第一堂教 system.out.println,第二堂教 interface,絕~~~對是有問題的。我會推薦你買下列這本書,易懂、順序正確,買了絕對不會後悔:
      http://www.books.com.tw/products/0010485281

      我建議你可以把這本書當「標準本」,跟你們老師上課內容做比對。把上一堂課教哪裡、這一堂課教哪裡,在高橋麻奈這本裡面找到,中間被漏掉的,就是你們老師沒教、而你補齊後就能「完敗」其他人的知識。上課時還是很認真聽講,一邊聽課,一邊比對老師上課內容在該書的哪裡(先做點預習會好一點),筆記也先抓一張活頁紙寫下,夾在該書特定章節當參考。回家後馬上補齊你們老師兩堂課之間的漏洞。如果你能這樣撐完一學期,我相信你 Java 一定會學得很好!

      2. 學 C/C++ 再學 Java 當然好!但沒有絕對的必要。就像有人說,先學會騎機車,再學開車會比較好,我完全贊成。但學開車之前一定要先學會騎機車,那倒不一定。我會建議您,先把心力集中在這學期要學的 Java,補習班 C/C++ 那邊看看能不能延課(一般都可以)?等你好好地把這學期的 Java 學完,暑假再去「復課」都可以!追二兔不得一兔,這是亙古不變的道理。

      3. 拿武術來比喻,Java、C/C++ 這些是「外功」,「資料結構」與「演算法」是內功。你可以把「資料結構」與「演算法」當成資訊科學的「電玩秘笈本」,上面記載了一堆「古人」對於常見問題,神妙到你會拍桌而起的「絕招」。學會「資料結構」與「演算法」,如同一個內外兼修的武功高手,同樣一拳,學過內功的人就能「摘葉飛花皆可傷人」。我個人的經驗是,沒學過資料結構與演算法前,我解決一個問題可能需要寫 200 行程式。學過後,相同的問題我可能只要 50 行就寫完了。沒學過的人會看了三四遍,一臉羨慕地問你:「我拆開看每一行都懂,但為什麼合起來這麼短可以達到這樣的效果,你可不可以教教我?」(大概就是這種感覺)。所以,沒學也能解開問題,但是行有餘力,強烈建議學習。

      希望這些回答有幫助。

      刪除
  51. 老師你好:
    我剛接觸程式設計,本身已是個社會人士,因為興趣希望之後希望轉換跑道能從事相關工作。目前已自學兩個月c語言,教材為c語言教學手冊。因為現在在迴圈遇上了撞牆期,我本身並不是一個會完全按書中的作法去做的人,有時的學到一個新的指令用法時,我會加入我的一些想法去修改書中code,也因此對於一些我認為不好用的指令,就沒有花太多心思去學習,不曉得這個會不會養成不好的習慣?例如:可能迴圈指令中for、while、do while中,我認為for應該是目前用的最好的,接著是do while,最末是while。因此如果題目for可以解決,我就不會用到另外兩個。那如果要先判斷輸入的值,我就會選擇do while加上for使用。也因此可能上述三種都可以寫出九九乘法表,我目前就只會寫for、while, 用do while就寫不出來,如果這樣下去是不是會學得不夠扎實?另外還一個問題,其實我數學學的不好,如果有公式給我去套用我可以寫的出來,但如果像做1^2-2^2+3^2-4^2這種題目,我就完全不曉得該如何去處理它,不曉得到底是我邏輯推理不好,還是數學不好,現在遇上了挫折,也許我知道要用什麼指令去要處理,但下面的公式我卻設不出來不曉得該怎麼辦

    回覆刪除
    回覆
    1. 您好:

      1. 程式語言最好先依照書上的指示做,再慢慢調整成自己喜歡的樣子。這跟學游泳的道理一樣,先依照教練教的標準動作做,之後再改成適合自己體型的游泳姿勢。如果一開始就不按照教練的動作做,有可能會有運動傷害。所以「認為不好用」就「沒花太多心思學習」是還蠻不好的習慣。

      就像你嫌自由式雙腳打水太累,喜歡蛙式的「夾水」,結果就自創「自由式的手、蛙式的腿」那樣的游法。前進仍然會前進,但就像你說的,學了一陣子會進入「怎麼也游不快」的「撞牆期」。因為游泳高手看來,你自創的「自由手、蛙式腿」,根本是自我抵消前進動力的作法。所以想要「自創」,還是得先經過一年~一年半左右「標準動作」的學習之後,才去做的事。

      2. 遇到題目無法把「大題目拆解成小題目」,然後踏實的從「解決小題目」,累積成「解決大題目」。這個症狀大部分是「練習題做太少」所致。講個比喻你就會了解。一般人剛學開車時,能在教練場上指定的關卡,照著教練的「公式」考一百分。但自己「道路駕駛」時,就會手忙腳亂,不知所措。其實該有的技能,教練場你都學會了。你差的只是「透過大量練習,養成『熟練度』,最後結晶成『經驗』」這件事而已。這跟您現在「有公式給您套用,您就寫得出來。沒有公式給您套用,您就會茫然不知所措」,其實背後的原因道理,都是一樣的。

      解決方法是,去買一本「範例集」,那種沒有廢話,整本就是「題目、解答、題目、解答...」的書。接著就把解答蓋住,拿著題目開始寫。卡關了,就偷看一行答案,直到寫完為止。一題寫完後,把那題殺掉,再寫一遍。要寫到那一題「一次都沒偷看解答」就成功,才能繼續下一題。其實很類似「王羲之寫黑一缸水」的精神,重複做同樣的事情到閉起眼睛來都會。這時候,你才真正擁有寫程式另一項不可或缺的武器 --- 「熟練度」。

      加油!這部份跟減肥一樣,沒啥捷徑。只能每天做、持之以恆而已。熬得過去的人就學得會。本篇上方很多留言,我都提到「熟練度」的重要,您也可以參考一下我怎麼建議別人的。或許對您有幫助。

      刪除
    2. 謝謝老師的指點,我會重新讓自己再重新把書重看一遍,改掉壞習慣。
      另外關於「範例集」的書不曉得老師有推薦的嗎?

      刪除
    3. 您好:

      範例集沒有特別推薦的。您可以去書局,看順眼的帶回來即可。

      刪除
  52. 老師你好,就你接觸程式這麼多年來看,
    請幫我分析一下我的想法正常與否?
    無論你覺得我瘋狂與否
    請你給我建議
    拜託你,我想了很久...

    1.程式這種東西上網就可以找論壇學了
    比起傳統行業別來說學習媒介比較方便
    轉行的門檻比較低
    2.如果會程式之後可以想辦法跳到外商上班
    福利絕對比本土企業還好
    3.新興科技業本身就比較開放
    沒有傳統組織思維的架構
    再裡面上班比較輕鬆
    4.不學程式以後會被時代給淘汰掉
    http://www.bnext.com.tw/article/view/id/29572
    5.程式是一種低資本的產業
    (電玩遊戲程式例外)
    只要有台電腦就可以創業
    比起台灣盛行的小額加盟詐騙
    創業翻身成功率應該更高
    6.受資本規模影響比較低
    傳統產業就是比誰的資本規模大
    台灣代工製造業最會搞了
    但是我不時看到一些新聞網路公司收購小公司
    這些小公司規模比大公司小很多
    可是卻被收購了
    照理講大公司錢很多啊
    他們自己灑錢競爭絕對可以幹掉這些小公司的
    為什麼還要花錢去收購
    顯示在程式世界中資本規模不是絕對
    7.如果可能我要創造一個程式公司
    員工得到合理的利潤
    公司上下相處階級不明顯

    回覆刪除
    回覆
    1. 您好:

      1. 程式要入門很容易,的確如您所說,抓一本書或上網學一學或許就可以了。但是「好」程式設計師的價值,在於「發生問題時,多快可以頓悟問題出在哪裡」。這部分可能就得綜合一些天份與努力了。結論就是「易學難精」。

      2. 外商不一定比本土企業福利「絕對好」,因為我現在就在外商工作,也曾經在本地企業工作過,所以知道。這部分還是得看公司,不能用刻板印象說「外商『絕對』好」。外商砍人很兇的,會下午五點告訴你不用做了,叫人資盯著你收書包,不准拷貝或碰你平常用的電腦一下。這點本土企業就比較有人情味,至少會給你一週左右辦個交接。

      3. 「沒有傳統組織思維架構」只有像 Google 這樣非~~常少數的公司喔!90% 還是都「照年資來」的。資訊工作「爆肝」我想您應該常聽到,所以「比較輕鬆」這個結論,恕我無法接受喔!不過「一陣緊,一陣鬆」我很同意。緊的時候,你會忙到想死,鬆的時候大概就是專案結束後,打打結案報告那樣。其實還是很傷腦筋「要寫什麼」的。

      4. 如果您有看過人力銀行先前的一份統計資料,就知道「做吃的」薪資都超過「程式師」喔!程式師能領到 5~7 萬算不錯了,而且走到那一步大概得坳個十年(一開始大概從 30K 左右爬)。但是賣吃的只要一年~兩年,就可以賺 5 ~ 7 萬沒問題了(前提當然是不難吃)。所以「會被時代淘汰掉」這麼斬釘截鐵的結論,我也不太同意。行行出狀元,不一定非得做程式師。

      5. 程式初始資本很低沒錯,但是要「竄出頭」很不容易。因為「程式」的競爭,是跟「全世界」,不像小吃,同樣賣「大餅包小餅」,台北那一攤跟屏東那一攤就可以和平共存。因為屏東人不會無緣無故坐車到台北來,只是為了要吃「大餅包小餅」。因為「資訊產品」可以靠「網路」簡易的全世界流竄、下載,沒有「地域性」。但「吃的」就很有「地域性」,不必跟全世界競爭,只要跟你所處商圈同質攤位競爭即可。況且,「資訊」常被要求要「免費」,大如 Facebook,到現在還是兢兢業業地靠「廣告」賺錢,更別提規模比 Facebook 小的網路服務或 App 新創公司了,根本就是「錢燒光了,開始去上班還債」這樣。

      6. 「資本規模低」這點我同意。但是資訊業不是比資本規模,是比「創意」,這個不是說你「錢多」,就「有創意」的。創意是錢買不到的。所以軟體公司大多在成功後,申請專利。大公司為了麻煩,也不想觸法,乾脆把整個公司買下來。

      7. 的確軟體公司的上下階級不明顯,但不代表沒有上下階級。但重點是,你能不能「清楚傳達」你想去的方向是哪裡,然後「大家同意」且「願意合作」往那個方向前進,最後「該方向還賺錢」。這才是重點。不然您員工的「合理利潤」哪裡來?

      刪除
  53. 老師您好,想請問您。如果要學習網頁撰寫跟設計,我該如何入門?
    有找了一些資料,我應該先從JavaScript+jQuery再到css3或css,最後再學習html5嗎??請老師解除我的疑問。非常感謝。

    回覆刪除
    回覆
    1. 建議用 HTML > CSS > JavaScript > Apache > MySQL > PHP 這樣的順序來學。雖然學習路徑較長,但保證不卡關。

      簡單來說,HTML 負責標示文章段落從哪裡到哪裡、哪裡是主標、哪裡是副標...等。CSS 負責排版。JavaScript 負責與使用者互動。Apache 負責儲存 .html / .css / .js 這三種檔案,給他們一個家。MySQL 其實就是資料庫,儲存姓名啦、電話啦...這些。PHP 主要是負責去資料庫「撈」正確的資料(當然還有其他功能),然後呈現給前方的使用者。

      如果只學 HTML (*.html) / CSS (*.css) /JavaScript (*.js),網頁只能放在你自己的本機,給自己看爽的。要放到有 Apache 這個「容器」裡面,才有可能「給別人一個網址,來看你做好的 HTML/CSS/JavaScript (內容+排版+互動)」。

      如果你不需要資料庫功能,或許可以不學 MySQL 與 PHP。如果你需要把客戶輸入的資料存入資料庫(如:MySQL),以備將來可以下達指令(如:使用 PHP)「只撈必要的資料」回來,那最好學一下 MySQL 與 PHP。

      希望這樣說明有解答您的問題。

      刪除
  54. 老師您好,小弟目前是大三非本科系的學生,目前對寫程式感覺很久興趣,有去借過洪維恩老師的c語言教學手冊第四版來讀過,也是如同上面幾位學生一樣處於練習不充足的情況,目前正在讀C++ Primer Plus 5/e 中文豪華版


    1.想請問您,現在大概剩1年畢業還有1年當兵期間,我不太了解目前本科系的大學生都學了多少,就目前有經濟壓力無法在考研究所或轉系多讀幾年,所以目前像我剩兩年就要出社會了才想轉學程式是否來得及找的到工作?

    2.小弟目前想先學會c/c++、java、c#的基礎,想請問您,目前一些人力銀行招收的大部分好像是偏向寫網業設計,是否現在在台灣要先學這類型的才比較好找到工作呢? (目前我希望未來能找偏向使用c/c++類型的工作)

    3.小弟目前還未了解這個業界的趨勢,想請問老師,目前業界在台灣的市場比較偏向哪個方面,或是現在比較缺乏哪方面的人才,需要用到哪些程式語言呢?

    4.小弟目前在c++卡在class的this指標,爬了幾篇文還是無法相當明確的理解它的用途,希望能得到老師得教導。

    懇請老師撥空解惑

    回覆刪除
    回覆
    1. 您好:

      1. 雇主不太在乎「你學了什麼」,比較在乎「你用你學的東西『做』了什麼」?很多人都宣稱他們會 Java、會 C/C++。但是面試進來後,員工所宣稱的「會」,在雇主看來只是「用皮膚接觸過」而已(笑)。兩年的時間是有點不夠。這種情況,與其正規地抱著書本一行行念、做練習,不如做出一個專案面試的時候用還比較有效率。比如說,你想進「遊戲程式設計」領域,你就拿網路上的復古遊戲「貪食蛇」,加一點簡單創意後,用 C++ 把它做出來。面試時,拿著筆電展示:「這是我寫的貪食蛇...我加了『路障』這個要素...」接著把原始碼全部印出來,像期末專題一樣請影印店上個膠裝封面,「咚」一聲丟在面試官面前,說:「這是我寫的程式碼...您可以參考看看...」。更甚者,就把執行檔、原始碼放到網路,寫入履歷表,讓你在一堆履歷中「立體突出」(梗:美加補習班某文法老師的口頭禪)。我覺得比你只在履歷上寫一行「我會 C++」要有吸引力、說服力。

      2. 網頁設計需求量大沒錯,但供給量也大(因為網頁易學難精,很多人學了之後就宣稱「會」,然後削價競爭)。所以薪水不會比 C/C++ 工程師高。

      3. 前一陣子的 App 人才現在需求比較趨緩了。現在需求量大、但供給量也大的是網頁人才,如果這類網頁人才還是從「行銷」跳過來的,那更是含著金湯匙微笑了。通常是「行銷」不懂「網頁」,「網頁」不懂「行銷」。另一個需求量看似不大,但缺工缺得一塌糊塗的是「嵌入式系統」工程師。因為這類工程師多半位於「自動化控制」、「機器人工學」...等領域。得掌握「電子」、「軟體」、「機構」三者之二,才比較有機會「好用」。如果是「網頁」,大致就是依照 HTML > CSS > JavaScript/jQuery > Apache > MySQL > PHP ... 這樣的路徑學下來。如果是「嵌入式系統」,「Linux 命令列」一定要熟,C 語言是基本功,還要能懂一點電子電路。大概就這樣。

      4. 您的問題稍微大了點。您只說「卡」在 this 指標,沒講「怎麼個卡法」,旁人比較難幫忙。就像跟醫生說「我不舒服」,但是問哪裡不舒服卻沒說,是一樣的。可能得麻煩您詳細描述這部份的「困難」或是「症狀」有哪些。

      刪除
  55. 老師您好,
    我覺得我的邏輯很差,老是學不好程式語言,讓我挫折感很大,尤其最近在自學PHP,不是說很順利,不知道老師能夠給我甚麼樣的建議,感覺自己很沒有天分。

    回覆刪除
    回覆
    1. 您是:

      1. 看不懂書上的文字說明。
      2. 看得懂文字說明,但看程式碼就頭昏腦脹。
      3. 看得懂文字說明,也看得懂作者寫的程式碼,但自己寫就寫不出來。

      哪一種症狀呢?

      刪除
    2. 我覺得這三個症狀會輪流出現,簡單的程式碼和說明都看得懂,但是一出現很多行的的程式碼就會頭昏腦脹,自己就沒辦法寫出來,就像從無到有把程式給寫出來。

      刪除
    3. 您的症狀看起來比較像「基本功」沒紮好就上陣了。就像練武的人,沒有紮馬步練好腿力,就去打套路、散打,被人一勾就倒「秒殺」。

      這樣的話,建議您找一位老師,好好跟他學一次,有問題就面對面問他,這樣比較快。等您紮實地學過一種語言後,再用自修學其他語言,應該就會比較駕輕就熟了。

      刪除
  56. 紀老師您好:

    我是一位POS收銀系統的從業人員,擔任的是管理階層的職務,
    公司的POS軟體是從外引進銷售,而非自行開發,
    從事這個工作有幾年的時間,身兼業務、美編、網路工程技師、創業顧問等身份。

    除了不斷進修各種銷售知識與實作創立公司的習題,
    更花了許多的時間思考産品方向。

    近來找尋了許多資訊,拜讀了您在youtube所發佈的影片,
    了解到語言之父:C。

    因此決定先從C語言開始學習,
    日前購入C語言教學手冊(四版),現已開始自修C語言,
    在此要謝謝您的影片,開導我不少的入門知識。

    想請問紀老師的部份為:

    1.POS收銀、POS報表、軟體驗證方式(走單機架構,不走web架構)
    (ans) 程式語言:開發軟體:

    2.ERP
    (ans) 程式語言:開發軟體:

    3.CRM
    (ans) 程式語言:開發軟體:

    4.MS-SQL想和上述程式做連結(網路後台總部帳務資料管理系統)
    (ans) 程式語言:開發軟體:

    5.Mobile資料交換(如:無線平板點餐程式)
    (ans) 程式語言:開發軟體:

    6.Android商用軟體:如記帳程式
    (ans) 程式語言:開發軟體:

    7.ios商用軟體:如記帳程式
    (ans) 程式語言:開發軟體:

    上述相關開發學習,想請教老師的建議,
    望請老師能在百忙之中撥空賜教,感激不盡。

    回覆刪除
    回覆
    1. 您好:

      一般在 Windows 端執行、Client-Server 架構的 POS、CRM、ERP、SCM,大多用 Visual Studio.NET 這套軟體開發,程式語言可以選 VB 或是 C#。若要與 MS-SQL 連接,或是透過 Wi-Fi 與資料庫後端相連,也是用 VB 或 C# 即可。所以您 1 ~ 5 的答案都是:

      1~5: 語言:VB 或 C# 開發工具: Visual Studio.NET

      至於 6, 7 與手機作業系統有關,因此:

      6: 語言 Java 工具:官方推薦的 Android Studio 或開放源碼社群慣用的 Eclipse 皆可。

      7: 語言 Objective-C 工具:Xcode(官方)

      刪除
    2. 您的建議讓小弟撥雲見日,
      十分感謝紀老師在百忙之中回覆。(感恩ing)

      待C語言入門學的差不多時,打算再來報名上老師的課。

      另外有幾個問題想再請教老師:

      1.目前我是從C語言入門開始學習的,在基本課程結束後,
      是否有需要學演算法呢?
      1-2.又,老師能推薦一些演算法入門書單嗎?

      2.我目前使用dev c++來學習C語言,
      如果改用Visual Studio 2013來學C語言是不是比較好?
      又,是否該修正方向,
      2-2:改從C#語言學習比較好?
      2-3:改從VB語言學習比較好?

      3.關於Visual Studio的部份,老師有推薦的入門書單嗎?
      4.關於C#和VB的部份,老師有推薦的入門書單嗎?
      5.關於MS-SQL的部份,老師有推薦的入門書單嗎?

      再次感謝您。

      刪除
    3. 您好:

      1. 「資料結構」與「演算法」,並稱資訊系兩大內功。學完後,可以讓本來需要用一兩百行的程式,只要用一二十行就能做出來。不過,這兩門功夫要遇到複雜的程式才顯得出它們的長處。像接取資料庫這樣的程式,實在沒有它們的用武之地。就像把時間花在練內功,結果基本的實戰(程式語言技巧)都沒有,只會老實地出「正拳」,結果被街頭小混混「完爆」,那也不好。所以我暫時不想推薦任何書單,也不建議您現在就去想它。先專心把一種語言學好比較要緊。

      2. 問使用 Dev C++ 或 VS2013 學 C 語言哪種比較好,跟問去高雄要開 Nissan 還是 Toyota 比較好是一樣的多餘問題。哪一種都好,反正只要能把 C 語言原始碼轉成執行檔就可以了。

      至於該學什麼語言看您將來想做什麼。以您提及的 POS、ERP、CRM...這類軟體的開發,目前有兩大流派。一派是「網頁派」,認為整套系統用網頁開發,客戶不管用 Windows、Mac、手機,只要有瀏覽器就能操作,也不用另外安裝軟體。這樣的系統比較多是依照「HTML -> CSS -> JavaScript -> Apache -> MySQL -> PHP」這樣的順序來學習的。 POS、ERP... 用網頁開發會比較累,但對客戶來說比較方便,只要有瀏覽器就可以用了,所以最近有漸漸流行的趨勢。

      另一派是「主從派」,就是沿用以前「主從架構」,後端只有資料庫,剩下的機制都做在客戶端的執行檔。這類系統會要求客戶安裝一個程式,而且客戶如果有 Windows、Mac,還得為每個平台開發不同的執行檔。不過這種架構的開發由來已久,稱手工具也比較多,對開發者有利,對客戶而言,每次換一台機器就得裝一次軟體,會覺得有點煩。這類架構多用 C#、VB、或 Java 來開發,C 語言就真的比較少聽見(C 一般用於自動控制、機器人工學領域較多)。

      如果您真的很有心學程式,從您目前想做的方向來看,建議從 C# 學比較好。C# 入門可能會比 VB 難一點,不過它與現在流行的語言(Java、C...)語法相近,將來要切換到其他語言的難度較低。VB 好入手,但它的語法與其他語言差異性較大,除非你一直呆在 VB 這個領域,否則學 VB 將來要切換到其他語言會比較累。

      3~5 的書單我就不建議了,貪多嚼不爛,您先想好要先著手哪一塊再來推薦比較不會害到你。

      刪除
    4. 了解……,
      從買書到自修,目前為止花了兩周,好不容易學好書的一半內容了,
      本來是以為要先打好C語言基礎後,
      再來學其它語言C#→JAVA→Objective-C等時就學的比較順,
      不過畢竟有現實上工作時間調配的考慮,沒有太多時間能浪費(-_-||)

      感謝老師您的建議,讓我及時修正方向。


      最後請教的問題:
      C#與JAVA的入門書該找那些呢?

      刪除
    5. C#:「深入淺出 C#(第三版)」
      http://www.books.com.tw/products/0010632191

      Java:「最新Java2程式設計實例入門與活用」
      http://www.books.com.tw/products/0010485281

      刪除
  57. 老師您好

    1.我是一名三年級電子系的私立大學生,想請問您,如果我以後想從事嵌入式系統工程師,該學哪些語言跟作業系統呢?

    2.想問目前台灣上市的公司嵌入式系統工程師的職缺是否多呢?
    (很怕以後找工作職缺少又因私立關係連面試機會都沒有)

    回覆刪除
    回覆
    1. 您好:

      1. 嵌入式的話,首重 C 語言與 Linux。所以建議您先學 Linux ,等到環境熟了以後,您才有辦法在 Linux 上學 C 。

      2. 嵌入式的職缺蠻多的,不過搶的人也很多。的確有些公司有公立大學情節,但是畢竟是少數幾家很大很大的。您到 104 查「嵌入式」,就可以看見幾家人數在百人以下、可是名字沒聽過的公司。這類公司由於搶不過鴻海、廣達、仁寶...這些公司,所以還蠻願意接受私立大學畢業生的。選擇百人以下、但名字沒聽過,那就是該公司已經有規模,可惜還沒爬到 Top。這類公司普遍比較善待員工,因為他們自知吸引不到一流人才,所以對於態度好、學習能力強的員工,都很願意培養善待。

      順便一提,我也是私立大學畢業的...(笑)。

      刪除
    2. 感謝老師
      小弟還想請問,104的嵌入式都是要求c/c++,可是聽說c++很少用在嵌入式,是否我該繼續學習c++或是回頭著重在c語言呢?

      另外想問在Linux上的c語言有爬一下文,似乎都指出是因為編譯器的不同,可確沒講兩者有哪些差別,我目前是用devc++得編譯器,想問與Linux的編譯器在寫c語言時有哪些差別?

      刪除
    3. 您好:

      如果您已經在學 C++,那就直接把 C++ 學好即可。因為 C++ 完全包含 C 的所有語法與特色,學完 C++,您就不知不覺地已經把 C 也一併學完了。

      用 Linux 寫 C 與在 Windows 下寫 C,唯一不同處在兩個平台提供的「系統呼叫」(即:作業系統已經幫你寫好的函數)不一樣。就像 Toyota 與賓士兩者的儀表板一定有所不同,不過基本開車的方法還是一樣的。故,您可以任選一個平台先學好基本動作,將來就算換平台,那也是花個兩三個禮拜就可以適應的水準。因此不用擔心。

      刪除
  58. 你好:

    我於醫院工作每天接觸檢驗儀器,希望能了解及設計科內的儀器連線程式
    那是要如何學習及學習何種程式?

    回覆刪除
    回覆
    1. 您好:

      很抱歉,由於我不是醫檢出身,也未曾從事醫檢相關工作,所以您們醫檢儀器所使用的連線程式到底該學哪種程式,我並不知道。所以可能無法提供建議。

      您可以用閒聊套話的方式,問賣你們儀器的公司,看看裡面用哪種程式語言。之後再問「我想學 XX 語言,該如何入門」我可能就幫得上忙了。

      刪除
  59. 老師您好~想請問一下~如果想將javascript或PHP裡一些基礎程式觀念打好,學習Java或C語言或Ruby會有所幫助嗎?謝謝~

    回覆刪除
    回覆
    1. 直接學 JavaScript 或 PHP 即可。

      這個問題就像「我想學開 Toyota 的車,是不是先學 Nissan 打好基礎?」是一樣的喔!^_^

      刪除
  60. 老師您好~我之前二技學的是visual studio express 2005 VB但是也學得2266,我想重新學習,電腦現有版本2010改版很多且我想學C#,坐在電腦前軟體打開就呆住,不知道該從哪開始,完全像沒學過的初學者,所以想請問老師我該如何自學,謝謝老師。

    回覆刪除
    回覆
    1. 建議從「模仿」開始。

      先買一本 C# 的書,按照裡面描述的,把環境架好,並且每題練習不管是否看懂先上機照打一遍。盡量不要太「自作聰明」,這個階段學武俠小說「郭靖」裡的笨功夫精神,對你比較有益。

      因為程式設計是一門「技能」,不是「知識」。很多人買本書,把程式碼看懂了,就急急忙忙看下一章。這跟想學游泳,買本「游泳入門」,急急忙忙看完整本,就認為自己「會了」。然後跳下泳池嗆水後,才跟教練「抱怨」:我什麼都做了、書也看了、東西都懂了,為何還學不會游泳?

      如果你把一本書看完了,也讓自己上機經驗豐富,接下來就得去買本範例集。答案遮起來,一題一題做。做到卡關偷看一下,不過只要一偷看,就得把剛剛寫好的原始碼刪除一小段重做。久了就會了。

      「技能」類的東西沒辦法投機取巧,就跟跑步、游泳、開車一樣,不多練只看是沒用的。

      C# 的書推薦這一本:「深入淺出 C#(第三版)」
      http://www.books.com.tw/products/0010632191

      希望這樣回答對您有用。

      刪除
    2. 是不是像郭靖初學降龍十八掌一樣,依樣畫葫蘆的練習,等有一天遇到相同的模式,就自然的套用書裡的做法去應用。買範例來練習是增加經驗與熟練度,就好比郭靖遇到不同的敵人就隨機應變的出招,是這樣嗎?如果是的話,老師您的說明真是太給力了。

      刪除
    3. 是的,您說的完全正確!你的領悟力比郭靖強一百萬倍,接下來只要跟他一樣努力多練、多「實戰」,練成「降龍十八掌」已經指日可待了。

      可惜的是,現在的人資訊太多,老是到處去江湖上找「有沒有什麼秘技,看完後功力就秒增一甲子的?」結果歲月就在追尋根本不存在的東西中虛度了。等到快畢業了,或更慘的是到職場了,才有被「秒殺」的危機感,太慢了!

      所以,別當程式設計界東張西望的兔子,當個眼中只有終點的烏龜,才比較容易跑到終點喔!

      刪除
  61. 請問一下 我是要升大四的學生,但目前要碰到關於開發ANDROID的專題,迫使我有強烈的危機意識,要趕緊接觸程式這塊了。
    不知道要直接接觸ANDROID的入門書 ,還是先把自身的JAVA的書先全部實作一遍再來看會比較好。 小的C也不學好 大三也都忘光了

    也因為這樣不知道這一年拼不拚得起來,很怕以後畢業沒有專長出去沒有工作,希望老師能給點建議我應該要如何起步。

    回覆刪除
    回覆
    1. Android 的 App 整個都是 Java 語法寫成的,如果您 Java 的功力沒有培養好,建議還是先培養 Java 的底子。

      如果要找 Java 入門書,建議買「高橋麻奈」那本。我個人覺得那本寫得很好:

      最新Java2程式設計實例入門與活用(第四版)- 博碩、高橋麻奈
      http://www.books.com.tw/products/0010485281

      研讀方法要以實作為主,在實作中,注意自己「哪個環節不太熟」(如:迴圈不熟...等等),然後去翻書籍,理解不熟的地方後,再回到實作為主。因為程式跟游泳一樣,是門「技術」,不是「知識」。不像歷史地理,懂了就馬上會。比較像游泳,懂了自由式的姿勢後,沒有嗆個十幾次水,是不可能會的。

      所以,若你趕時間,就以「實作為主、理解為輔」。先殺第一題範例,中間那些文字廢話全跳過去,然後看範例時,寫下你不懂的地方,如「import 是什麼意思?」「system.out.println() 是做什麼的呢?」聽懂了沒?寫、下、來!然後用最快的速度,去「翻書找答案」(這個考試作弊時人人必備的絕技,不要跟我說你不會... XD),只要你紙上問的問題全部被解答了,不要猶豫!馬上跳下一題範例!不是文字喔!是範例!然後再重複上面的「提問 --> 找答案 --> 下一題 --> 提問 --> 找答案 ...」直到這本書的最後一頁為止。這是我針對您「趕時間」,希望在最短期限內,搾出最高效率的「藥方」。否則一般方法,應該是慢慢看,不是直接殺範例的。

      Android 也是比照辦理。希望這些建議對您有用。

      刪除
  62. 老師你好,本人從未學開有關程式上的知識,現在工餘時間在www.khanacademy.org 學習程式,可是我連自己學習的屬於哪一套語言都不太清楚,就這樣傻傻的按他的進度慢慢寫,
    請問老師有沒有什麼議建可以給我這種完全不懂的新人呢?
    如果要從文章中說的三個不同領域作選擇也有點難道,我對三者都有點興趣阿~"~
    希望老師能解答一下吧,謝謝!!

    回覆刪除
    回覆
    1. 如果您現在還沒確定方向,建議您先確定一下,別人才有辦法幫你。就像您上 Taxi,沒告訴司機您要去哪裡,司機就算再怎麼熟路況,還是沒辦法發車。所以這部份得麻煩您先確定好一個方向,別人才有辦法給您建議。

      Khan Academy 不錯啊!只要能照著他指示地做,應該就能學好一門電腦語言才是。接下來就找個自己想做的題目,挑戰看看。做不出來就上網找答案,或者到類似「程式設計俱樂部」( http://www.programmer-club.com.tw )這種專門論壇去詢問潛藏在裡面的「高手」。久了就會進步了。自學只能這樣,如果要求快,只能花些銀子找老師學了。希望這樣的回答有幫助。

      刪除
    2. 感謝老師,其實本人已經是社會人了,不過才24歲,應該還算年輕吧
      學習程式也算是希望掌握多一門知識吧,未來世界的方向好像會很普及吧,不想將來後悔為什麼現在沒好好去了解去學習

      我想了一下,感覺比較希望從製作網站那邊開始,就是網頁程式設計,網頁程式設計跟製作網頁是一樣的嗎?

      Khan Academy方面,一直傻傻的在學code,終於去找了一下資料
      終於知道在寫的是processing js,請問這套語言具體有什麼作用呢,
      另外還有一個比較笨的學習上的問題:
      在這套語言中,有一個bezier的code,是用來繪畫曲線的,然後我覺得自己掌握得不太好,就去google了一下,結果找到了這東西http://zh.wikipedia.org/zh-hk/%E8%B2%9D%E8%8C%B2%E6%9B%B2%E7%B7%9A
      想請教老師,在寫程式的時候,會遇到不少利用數學邏輯的東西吧,
      我們有需要去弄明白這些東西嗎,設計程式需要先計好整個組合的結果嗎?還是先寫出來,看結果,再修改呢?
      當中的數學原理,需要去明白嗎?

      謝謝老師,本人數學不太好,看到這些東西時打擊還很大的~"~

      刪除
    3. 您好:

      先回答您的問題:「網頁製作」與「網頁程式設計」有一點點不一樣。「網頁製作」是做出網頁的「皮」或「外觀」,「網頁程式設計」是在做好的「皮」或「外觀」裡,埋下「功能」。前者是「肉眼看得到的部份」,後者是「肉眼看不到的部份」。像一個網頁的文字、圖片、表單外觀,那是「皮」,屬於「網頁製作」。若談到輸入帳號密碼後,把帳密抓到資料庫去做「比對」這一連串的動作,是肉眼看不到的,屬於「功能」,是「網頁程式設計」的範圍。不知道這樣回答您是否能理解?

      如果您想走網頁設計這個方向,建議先不要去學 Processing.js。這有點像不會游泳的人,去參加「蝶式」游泳課一樣,不能說一定不行,但有可能因為難度較高,讓學習者心生畏懼。比較推薦的學習順序是:「HTML5 --> CSS --> JavaScript」,之後如果您還想學 Processing.js,可以接在學完 JavaScript 後比較好。Processing.js 是另外一個電腦語言「Processing」的網頁版,奠基在 JavaScript 之上(所以才附上 .js 的結尾)。該語言擅長的,是製作與使用者互動的「功能」,所以比較偏向我說的「看不見的部分」。我仍建議先學「看得見的(HTML5 & CSS)」,再去學「看不見的(JavaScript,或 jQuery、Processing.js...等)」,這樣比較好。

      至於 Bezier Curve(斑氏曲線)的原理,就算是程式設計的老手,也很少人去追究它的。大多是直接用人家寫好的「斑氏曲線」函數,學習怎麼把正確的參數傳進去,能夠畫出自己想要的曲線就好了。這就像開車十幾年的老手,也很少人去學「汽車修護」的,車壞了大多叫修車行來修就可以了。你要學的就是知道修車行「正確的電話號碼」而已。所以,對於你數學不好什麼的不用太在意。開車的也沒幾個汽車修護很行的。這麼比喻希望您能了解。

      刪除
    4. 老師,謝謝你的解答,
      所以可以說就是前台跟後台的分別嗎?

      那麼我按老師的步驟去學的話請問應該如何開始呢?
      其實我自己有偷偷買了老師上面留言說到的幾本書:
      HTML&CSS:網站設計建置優化之道
      HTML5+CSS3+JavaScript 開發實力養成:365 個範例全方位提升你的網頁設計概念(附CD)
      PHP 6 & MySQL 6 網頁資料庫程式設計演繹(附光碟)
      該從哪本先入手學習會比較好呢?還是另外也在網絡上找一些類似Khan Academy的能夠學習程式的網站來學習?

      最後看到老師的這個比喻真的令我信心回來,實在是感謝喔!

      刪除
    5. 您好:

      前台有「外觀」(用 HTML 與 CSS 做的)與「功能」(用 JavaScript 做的)部分。後台也有「外觀」與「功能」的部份。不能說「前台就是外觀」,「後台就是功能」。

      學習順序就依照「HTML > CSS > JavaScript > MySQL > PHP」這樣吧!結束了麻煩您再告訴我一下。自修的話,這樣就夠你忙一年~兩年了。

      刪除
    6. 好的,謝謝老師!!!
      真的十分感謝了!!!!

      刪除
  63. 老師您好~本人已27歲~因為對寫程式有點興趣,想自學JAVA寫手機相關程式
    因為我也不是念對這有相關的科系,一點基礎都沒有~
    但工作一小段時間主管都說我數學跟邏輯觀念不錯~
    (我做的是倉管,但總覺得沒甚麼前途)
    要是我自己買書來看,有沒有可能學成後工作往這方面發展?
    書就上面老師您有推薦其他人的
    〈Java SE 7全方位學習〉作者: 朱仲傑
    跟〈最新Java2程式設計實例入門與活用-超值增訂第四版〉作者: 高橋麻奈
    或者對我這啥都不懂得有甚麼更好的辦法?
    請老師指點迷津一下~感謝!!!

    回覆刪除
    回覆
    1. 建議用「高橋麻奈」那本比較適合初學者。朱仲傑的書好是好,但比較適合學過一種語言、但沒學過 Java 的人看。

      學程式跟學游泳差不多。看書只是學會游泳的基本動作:手該怎麼划、腳要怎麼打而已。真正要學會,得跳下水,也就是多做範例。一開始先完全看範例解答,看你有沒有辦法全部理解。接下來就遮住範例原始碼,試著自己寫寫看。

      一開始應該會一個字都寫不出來,此時要看個兩三行,然後回到螢幕,不要看書打個兩三行。最忌諱的就是眼睛盯著書,然後不看鍵盤盲打。這樣你乾脆拿份報紙打也是一樣的。如果兩三行漸漸可以一口氣打完,試試看看個五六行,打個五六行看看。這樣一直拉長距離,最後你能看題目,一口氣打完都不看,相信你就會握拳暗爽的說:「喔!原來這樣就是寫程式啊!」

      你的情況我就建議用這種方法試試,還不行再告訴我囉!記得跟練跑一樣,要有耐心。每天最好能抽出一個半小時來看書,做範例。大概半年會有小成。

      刪除
    2. 了解!!非常感謝你抽空給我的建議!!!我會試試看的!!!感謝!!!!!

      刪除
  64. 老師您好~我想當遊戲程式設計師這方面的
    如果是用C# 有推薦的書 還有 學習方法嗎~

    回覆刪除
    回覆
    1. 您好:

      走遊戲程式設計學 C# 有點不太建議喔!目前用 C# 來寫遊戲的,只有微軟的 XBox 而已。如果想朝遊戲設計的方向前進,最終還是學 C++ 會比較好。目前使用 C++ 來寫遊戲的有:任天堂的 Wii 系列、Sony PlayStation 全系列、還有一些網路連線對戰遊戲都是。至於手機遊戲,iPhone/iPad 用的是 Objective-C,Android 用的是 Java。而網路小遊戲,類似 Facebook 開心農場那種,用的是 JavaScript 。所以,走遊戲程式設計比較建議學習的是 C++,其次是 Java 或 Objective-C。就看您要往哪個方向(桌機遊戲、手機遊戲、網頁遊戲)前進了。

      刪除
    2. 摁摁摁 謝謝~
      不過 我有個小問題哈哈
      老師可以給我信箱嗎~
      我想要請您幫我看看我的作業...

      刪除
    3. 很抱歉,詢問一般性問題我可以回答您,因為回覆給您的答案,其它人也有參考價值。但回答個人問題(作業、專案...),可能就沒有普遍性,別人看了也不會得到太多好處。

      如果您真的想要我幫您看作業,除非您願意依照我個人收費標準支付相應的鐘點費,我們可以再聯絡。

      請見諒!就像您詢問醫生「怎麼減肥」,他可以免費提供一些諮詢。但如果問:「可以幫我看看怎麼減肥嗎?」我相信一般醫生都會請你去掛他的門診收費,而不是無償回答您的問題的。

      您如果真的想要無償得到一些幫助,或許可以去 PTT 的程式板,或者是「程式設計俱樂部」(台灣蠻知名的程式論壇) http://www.programmer-club.com.tw/ ,或許會有隱藏其中的高手,願意無償幫助您。

      刪除
  65. 老師您好:
    我又來問問題了,請問老師:我的電腦是win8.1安裝visual studio 2012 express,當我要開啟新網站時出現:『ASP.NET 4.0 尚未在Web 伺服器上註冊,您必須針對Asp.net4.0手動設定Web伺服器,您的網站才能正常運作,如需詳細資訊,請按F1的訊息』;但是在控制台開啟IIS6均已設定完成,framework 4.5也已安裝完成,請問老師我還疏忽哪些部分未完成嗎?

    回覆刪除
    回覆
    1. 您好:

      這個部分屬於「系統管理」,就不是「程式設計」了。說老實話,這部分非我所長,我也不知道該怎麼幫你「抓漏」。看起來有可能是 IIS 與 ASP.Net 裝好,兩邊卻還沒「稼接」上的感覺。所以這一部份,可能得請您去問網路上其它的高手了。

      刪除
  66. 老師您好,很謝謝您用心的經營網誌,回覆問題,很開心看到這個網誌~
    我想做一種遊戲,像是以前單機版遊戲那種,有對話可以選擇,然後結局會不一樣。其實說是遊戲,它應該更像是小說,以劇情為主,並沒有太多打鬥動作,可能會銜接一些小遊戲或動畫...
    不知道這一種是屬於「遊戲程式設計」嗎?另外想請問如果是做成app,那是不是就算是「手機程式設計」的範疇了?

    另外想請教老師我該從哪些知識開始學起呢?不知道是不是先學一些數學會比較好入門呢?像是哪一些數學呢?
    那關於我即將要接觸的程式語言,老師有推薦的書嗎> <?
    不好意思,問題有點模糊...謝謝喔!^ ^

    回覆刪除
    回覆
    1. 還要補充兩件事,第一,我想認識程式只是有興趣想研究看看,目前沒有迫切和資金補習Q Q...(抱歉..)所以希望書本事可以讓我自學的~謝謝喔^^
      第二,忘了問一個問題就是,我現在的電腦是6年前的筆電,我是不是應該買台新的才能學@@...?

      刪除
    2. 您好:

      1. 是的!您講的應該是那種「Story Game」,而且是多重主線那種。它仍然屬於遊戲程式設計的範圍。

      2. 是的,做成 App,就算是「手機程式設計」的範圍。

      3. 要從哪裡開始學,得看您想把遊戲先做在那個平台來決定。如果要先做在桌機,那我會推薦學 C++。不過如果你以後都只做「Story Game」,打死不碰其它類型的 Game,那學 VB 也是可以的。

      如果要做在 Apple 手機,目前是 Objective-C 這一種語言沒得選。如果是要做在 Android 手機,目前是 Java 這一種語言沒得選。如果是要做在網頁上,讓不管人家用手機、桌機都能玩,那就得依序學「HTML --> CSS --> JavaScript」,最好還能學點 PHP 與 MySQL。所以,「要從哪些知識開始學」,得麻煩你先告訴我,你想把遊戲先做在那個平台上。

      4. 數學不用很難,程式用到的數學都絕對不會難超過國中程度(我保證)。大概只會用到國中程度的「變數、函數、矩陣」,以及「若 A 為真,B 為真,則『A 且 B』為真」這樣而已。絕對不會比我剛剛講的難,請不要任意往糟糕那個方向想去。所以這點不用擔心。

      5. 推薦的書,也是得等你告訴我「我想先把遊戲做在那個平台」,我才有辦法回答。

      6. 關於設備問題,如果要做「手機」程式設計,由於得在你的電腦「模擬」出一台「假的」手機,然後把寫好的程式在那台「假的」手機上試跑,所以機器最好要有「雙核」、「2 GB 記憶體(4GB 更好)」這個水準。如果你要寫的是桌機或是網頁遊戲,那就不必買新機器,沿用舊的就很夠了。

      刪除
    3. 先謝謝老師!我先針對你提到幾個語言去查一下資料~確定從哪裡開是之後再來請教老師用書的問題!非常感謝^_^

      刪除
    4. 作者已經移除這則留言。

      刪除
    5. 作者已經移除這則留言。

      刪除
    6. 剛好看到「翠星上的加爾岡緹亞」動畫片,為了宣傳用網頁做的「Story Game」。給你參考,感受一下網頁做 Story Game 的感覺。

      http://fly.gargantia.jp/

      刪除
    7. wow~看起來還不錯呢!不過不知道是不是電腦的關係, 有點跑不動...
      請問老師知道這個是用什麼語言做出來的呢? 謝謝喔~

      刪除
  67. 老師您好,小弟目前想走嵌入式系統,可是卻對未來工作所學習方向有點不知所措,想請問您:

    1.走嵌入式方面的話,是該從8051開始學習或是從現在比較熱門的arm,又或是目前有更熱門的選擇呢?

    2.小弟是電子系的學生,所以沒修過演算法、資料結構、統計學之類的,如果要走嵌入式是否也要熟讀這幾本書呢?

    3.對linux需要學習到哪些應用呢?

    4.想了解一般業界在嵌入式方面會對硬體電路了解到何種程度,是否需加強基本電路或電子學,會應用哪些儀器,考到乙級數位電子對這方面有用嗎?

    還懇請老師解惑

    回覆刪除
    回覆
    1. 您好:

      1. 業界比較常用的是 ARM,如果您是志在業界的話,可以先嘗試 ARM 為主的平台。

      2. 只要會 C 語言就行。演算法與資料結構是加分的,但非必要條件。

      3. 一般就三個層次:「Linux 命令列使用」,「將 Linux 移植至 ARM 開發版上」,以及「撰寫 Linux 上的硬體驅動程式」。會這三樣,應該就很夠了。

      4. 如果是寫「韌體」的話,看得懂 Schematics 就可以。如果是做「硬體」,只要能看懂原廠參考電路,知道怎麼加上一些簡單零件(按鈕、LED 嬁...),應該就可以過關了。用到的儀器大概只有三種:「三用電表、示波器、邏輯分析儀」。比較少會在意你是否有乙級數位電子的資格。

      刪除
  68. 老師您好:
    我是一名升四年級的電子系學生,由於對程式有興趣打算在暑假自學些專業能力,並希望能應用在未來職場。
    之前曾學習過Delphi、SQL、Android及C++,將來想進入國外的遊戲工作室也知道C語言這方面的能力是必需的,但是相關課程也只有修過系上資料結構而已,所以想向您請教這方面我該如何用位來這一年的時間來補強,並精進我自身的專業能力。

    回覆刪除
    回覆
    1. 其實要進入遊戲設計界,以你學過的東西已經夠了。主要就是 C++ 與資料結構。剩下的就是看哪間公司願意收,你就一邊做一邊學。

      你可以在這一年自己寫一個遊戲,不用是新遊戲,完全模仿一個已經存在的遊戲,然後把程式碼攤給面試官說:「這是我模仿 XX 做出來的」相信很多公司都會願意給這樣的人一個機會的。

      刪除
  69. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. 外掛有兩種:簡單的就是用 Visual Basic 寫一個「滑鼠/鍵盤自動點擊」程式。另一種就很難了,得學組合語言或是 C 語言,直接衝破遊戲所在的記憶體,去修改屬性值到 999 之類的。後者要學到自由運用,大概要五年的苦工吧?詳情可以參考這篇在「伊莉討論區」的文章:

      [問題]想學寫線上遊戲外掛程式不知如何著手:
      http://www.eyny.com/thread-387702-1-1.html

      刪除
    2. 作者已經移除這則留言。

      刪除
    3. 您好:

      如果您想往「遊戲程式設計」走,學 Java 只有一個可能,那就是學完後去做 Android 手機的遊戲。不然我覺得 Java 或 Java Web 實在跟遊戲程式設計扯不上邊。所以,在您「往遊戲程式設計走」的大前提不變下,請您去學 Java 與 Java Web,我的意見是「他們講的方向不太正確」,或是「頂多擦到遊戲程式設計的邊」這樣。

      程式設計課程的行情,大約是每小時 400 ~ 600 元。看他答應你的時數有多少,乘以 400 當下限,乘以 600 當上限,大該就有譜了。

      一切還是以您自身考量為準,我的話您可以僅供參考就好。畢竟每個人的學習情況不一,我講的是大部分人的狀況,沒辦法保證每個人都一定適用。

      刪除
    4. 作者已經移除這則留言。

      刪除
    5. 您好:

      C 語言的話,可以從這一本入門:
      http://www.books.com.tw/products/0010360466

      之後再去學 C++,就可以思考你想做哪一類的遊戲了。

      刪除
  70. 老師您好我又來問問題了:想請老師幫忙看看這段程式碼的問題點在哪裡?Response.Write("性別:" + (gender = true ? "男" : "女") + "
    ");
    因為我多次核對書上的做法應該沒錯,但錯誤清單顯示(無法將類型 'string' 隱含轉換為 'bool')。再請老師指正,感謝您!

    回覆刪除
  71. 作者已經移除這則留言。

    回覆刪除
  72. 老師您好,我對於視障的語音輔助軟體,例如導盲鼠、NVDA有興趣,想請問老師可以從哪方面開始學起呢?謝謝~

    回覆刪除