進度條

[入門教學] 我想學程式語言,但這麼多該從什麼開始學起呢?

最適合初學者的程式語言是哪個呢,C、JavaScript、Ruby還是Swift?

作者: 進度條編輯群 更新日期:

拜自動化、科技化的福,這世界的工作越來越少。

 

如果有嘗試經營Facebook粉絲團發廣告的就會發現,這廣告生意好像滿好賺的,系統自動提醒回饋,大數據修正。讓你跟機器人溝通就可以一直賺進把把的鈔票。讓人好生羨慕,想說自己也可以做個一樣的賺錢機器就好了。

 

 

 


當然上面只是個例子,不過現在幾乎每個行業都跟程式脫離不少關係。

不會寫程式也要會用程式。如果自己當老闆,發包客製化程式或是買國外程式回來再請員工修改都是很常見的。但是真實情況總是霧裡看花,請工程師改個程式改老半天,總覺得不太對卻又非得接受不可。

總之各式各樣的原因,無論是為了更好的生活,或是想讓事業更加牢固地掌握在自己的手上。越來越多人開始學寫程式,或是說,想開始學寫程式。

 

那從哪裡開始好呢?

 

 


前面鋪梗鋪太久了,這裡直接講我認為的結論與理由: 

 


如果你是有特定的目標,就直接朝著目標前進吧 !!

 


以前很多人都說如果要學寫程式就從C語言開始,它可以打好你的根基。這是相當正確的。

如果你懂C語言,去看JAVA 、C#、Swift、JavaScript、PHP都會不太難理解,而這幾個程式語言各別可以讓你寫手機網站與遊戲程式,也就幾乎是所有你想要做的事情。而且它們都是所謂C-like language 類C程式語言 (WIKI)。

 

但這也是大部分的人”放棄“寫程式的原因。C語言對初學者相當的不友善,一般學生學到“變數”都還不會有問題,通常都會死在”指標“。因為他跟“變數”的邏輯不同。而有趣的是,其他常被認為更容易理解的程式語言,幾乎只有“指標”,所以學不好並不完全是“指標”的問題。(專有名詞各位應該還看不懂,不用在意)。


所以在這裡提供幾個不同的方向:

 

1. 如果你的工作是平面藝術美工相關

那就會是照著 HTML -> CSS -> JavaScript 來開始會比較好。可以先嘗試用photoshop 或是 Sketch產出的圖檔可以直接變成HTML去修改。JavaScript在最初初階的網頁設計主要是讓網站看起來比較有互動性,不見得再最一開始要會。所以不會很難。

下一步看是要繼續往前端走(Front-end)或是要接觸一點後端(Back-end)。

 

 

如果目標是前端(Front-end)的話,恭喜你,就是Javascript用到底了。

什麼jQuery, Angular或React都只是Javascript延伸,是用特殊的包裝讓你做複雜的架構功能可以更簡單。而Bootstrap, Foundation等則也是HTML / CSS / Javascript的再包裝。

 

 

 


後端(Back-end)的話

 

現在中小型系統比較多人選擇的有Ruby on Rails,  PHP, Python 與 nodeJS。當然可以學最多人會的PHP,或是選擇接案神器WordPress

一般來說全端的薪水會比較高,但近年來前端的薪水也高漲許多,常常看不出差距。這跟工程和商業的邏輯有關。

 

工程的骨架很重要,以建築來講,是會死人的,但室內裝潢就比較沒有這層顧慮。

 

幾乎沒有大樓逢年過節在整修補強建築物的樑柱,而每季百貨公司專櫃或是馬路上開了又倒倒了又開的餐廳裝潢的需求倒是很大。有質感的設計是會直接跟生意收入有關,而不是與你的餐廳的樑柱超粗,防震係數超高有關。

前端就是裝潢、後端就是骨架,可以這樣去想。但是也有公司把基本的CRUD操作當作前端的部分。因此除非純設計,不然前端工程師最好還是選一個網站框架來練練。(好Rails不練嗎?)

 

延伸閱讀:快速開發後端程式,為何Ruby on Rails工程師可以常年佔據高收入排行榜前幾名?

 

 

2. 如果你想要寫遊戲的話

 

C#可能是你最好的選擇,但我完全不推薦新手做這樣的夢。因為遊戲關係著很多面向,遊戲故事、流程、美工、動畫。隨便做可能都半年跑不掉。

 

但你真的想寫的話,大概會用到 Unity 這套程式工具。用Swift / Objective - C是可以寫出遊戲,但完成品會比較偏向一般APP。(因為預設的可用的開發工具幾乎都是用來開發一般商業程式用的)。

要做到一般人心中所謂的遊戲還是用遊戲引擎比較快,自己開發"有用的"引擎是相當有經驗的人才辦得到。

 

 

最近比較熱門的是Unity(使用C#) 與 Unreal Engine 4(使用C++)。

 

C# 除了可以用來做遊戲外,還可以用來寫Windows 桌機程式與網站。但是用微軟的方式架網站而不用盜版,沒先支出個3萬、5萬是架不起來的。用C#現在也可以透過Xamarin同時寫Android 與 iOS程式,不過目前筆者測試起來的結果是找罪受。它目前的用途比較像是公司不用為了寫APP再去找Android與 iOS人才,但是時間完全沒有省到。

透過Xamarin確實可以用一套Code寫出跨平台的簡單程式,但是兩個程式沒辦法長的完全一樣,行為也無法一樣。如果要完全一樣的話必須對兩個平台做優化的動作,最後做出來還是兩套程式的量,沒有不同。

3. 如果你只是想寫個手機軟體來跟朋友炫耀。

要寫Android 還是 iOS 就很明顯了。Android沒得選,就是JAVA(2018/07補充,現在有Kotlin,但是"還"不建議新手去賭這把)。

iOS的話 Swift 會比 Objective-C 好懂一些。如果你如果沒有Mac 那就無法寫 iOS, 就算是用上面提的Xamarin,它在編譯iOS版本程式也需要一台Mac。

 

延伸閱讀:我想寫手機程式,但我不知道該選iOS還是Android

 

接者就是看你手上的手機是哪個作業系統。學習最重要的就是有成就感,所以儘管放上手機去炫耀吧!!

(2018/07更新:iOS開發者目前雖然可以把作品直接放在手機上Demo,但是只能擺7天,

如果想放久一點或是讓別人也試用的話,建議還是選擇交每年99美金的保護費開發者授權。)

 

 

再來舉個反例

 

 

4. 如果你是對真實互動裝置有興趣的話

那你該學的就是C語言(我們也有提供課程喔,包含上面說的"指標"的教學試看!!)。不過不應該從第一章開始學,而是直接買一塊Arduino來玩。

他雖然是C語言,但因為提供了很多功能,所以寫起來向下指令。

因為他的初衷是讓藝術家可以很輕鬆地做出互動裝置,所以本來就是為不會程式的人製作的套件。

用這當成C語言的開始,會比在終端機畫聖誕樹來的好玩的多。

 

 

延伸閱讀:從藝術視覺音樂互動到自走車與真人密室逃脫,軟硬整合開發「Arduino」讓你創意不受拘束!

 

 

 

最後做個列表來做結論

"初學者"來說

1. 如果完全沒有想法就先學HTML,然後一直推到JavaScript。

(很多人覺得HTML不算程式語言,可以參考我們的課程)

2. 如果想寫App, Android 就寫Java, iOS就寫Swift。

3. 如果想寫遊戲,請打消這個念頭,或是享受苦難。

4. 如果要做互動裝置,請玩Arduino寫C語言

5. 無論是用C語言, Python, JavaScript, 叫人畫聖誕樹其實滿無聊的。

6. 選可以做出有圖形化介面的程式或網站開始會比較好。

7. Windows桌面程式還算好寫,當入門沒問題。 Mac 桌面程式資料很少,最好不要以這為目標。

 

最後,新手沒有必要以全語言制霸為目標,也沒必要跟風當紅的名詞(雖然很難),先培養興趣比較重要,而興趣來自於成就感。

 

如果一開始就把短期目標設為獲得高薪,那應該隔一個星期就放棄了...要會的東西太多了。建議先完成一個好玩的、別人看起來沒用但是自己覺得很開心的小程式,再來開始強化知識與內容,如果有轉職需求,這時可以開始看比較一般的語言入門書籍去背名詞。然後先想辦法獲得一份工作,因為業界比較需要"即戰力",尤其是高薪的工作。沒有經驗會很吃虧,請大家多多充實作品集。

 

另外作品集要的不是多、是精。

你把一個網站的各個元素拆成50個作品也不比一個包含50個功能元素的網站要來的令人驚艷。不過也不要把不相關的東西全部塞在一起,公司非常怕弄不懂需求整天空轉的員工喔!

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Small logo

進度條編輯群

進度條編輯團隊