http://techorange.com/2014/02/25/which-coding-language-is-right-for-you/
許多人都在提倡學習 Coding ,但卻很少人告訴我們,該從哪種語言下手。 美國知名媒體 Business Insider 最近一篇文章 <The 100 Best Jobs In 2014> 討論美國 2014 前百大最佳職業,第一名就是「軟體工程師」,平均年薪 90,060 美金(約 270 萬台幣、70 萬港幣、11 萬新幣、30 萬馬來幣),而且相關人才需求在未來仍然持續成長。這幾年美國、亞洲興起大量程式設計學校積極培養軟體人才,因應需求。 但是,這麼多的程式語言:Javascript、Java、Python、C、C++、C# 、Ruby、Objective – C …… ,如果你是一個想成為一個軟體開發者的初學者,到底該先學習哪一種程式語言當入門第一課 ? 我請教幾位在不同產業的軟體工程師,他們都認為,在跳進任何一種語言前你最好先問自己:想成為哪一種應用的開發者,想做什麼樣的產品。想設計網站、開發 App ( 在 Android 上還是 iOS 上?)、遊戲 …… 還是現在只是想要學,還沒有具體要做的產品或專案? 曾聽到一位設計師在演講中說:「最好的設計師不是先學技術,而是先想出欲創造的點子,再從產品的需求端拉技術進來」,學習程式也裡當如此。 但如果你和我一樣還不知道該創造什麼樣的產品,我認為可以從網頁端先開始,從學習過程中邊走邊看,找出比較想開發的產品和必須學習的語言和工具。而且,最好的程式設計師並不會只專注在一種語言上,而是必須具備學習「任何一種語言」的能力,並把「不斷學習」當作程式設計師的責任。就如同美國知名程式設計學校 Hacker School 的名言: 「 學程式永遠不會有畢業的一天。」
前端語言入門款:HTML、CSS、jQuery 回歸主題,我認為剛開始還是從網頁的基礎設計語言 HTML(正確稱呼為『標籤語言』) 、 CSS 先著手是最適合的,因為這幾種工具,對你理解網頁「視覺」上的設計上最快,也是最簡單的途徑。 去哪學最快? 目前在免費網站中,最知名的應該就是它了。上面所有的程式語言課程都是免費(HTML & CSS 、jQuery、JavaScript、PHP、Python、Ruby),互動式的界面做的不錯,也有討論區可以跟別的學習者一起討論問題,每個單元結束時都會有實作的作業可以及時了解學習成效。 Codeacademy 的缺點是,單元練習時的介紹文字稍嫌簡略,對初學者來說可能不夠清楚,需要去 Google 額外的資訊來補充、理解。 建議初學者先從 Web Fundamentals ( HTML & CSS)開始,結束後再往 jQuery…… 學習。 跟 Codecademy 的教學方式和特色都不太一樣,跟 Codecademy 不同的是,它是從「你想成為哪一種設計師、開發者」幫你做全盤的課程規劃,內容也相對完整許多。 舉例來說(下圖),你可以在「Tracks」選擇想學前端設計、網頁設計、iOS 開發、Android 開發、Rails 、PHP 等等課程,有許多基本的課像是 HTML、CSS、jQuery 都會在一些 Tracks 重疊。 另外,跟 Codecademy 不同的是,在 Treehouse 有真人(知名開發者)錄製的影片穿插在課程之間。 另外在幾個知名的線上學校裡,有幾個非常棒的電腦基礎課程(免費)也推薦給大家: 線上教育有幾個知名網站像 Udacity、edX ,裡面其實都有非常棒的電腦科學基礎教育、軟體開發等課程。不只是教材(講義、上課影片)完整,而且師資也都是麻省理工學院、哈佛大學、北京清華大學、Cornell 大學、Caltech 等全球頂尖資工學府的教授,值得大家參考。 如果你想成為前端工程師上面提到的 HTML、CSS、jQuery 是少不了的,但另外你也必須了解一些後端語言像是 PHP 等等。一位資深程式設計師曾經給我的建議:「如果你是一個想成為前端工程師的初學者,我建議你先把『前端』學到精通,也就是非常熟悉 HTML、CSS、jQuery 。後端的東西,可以進去職場依公司慣用的開發語言的不同,再做學習。」 這就看你想在哪一種裝置上開發了,在 Android 上你必須要學習 Java ,在 iOS 上你必須要學習 Objective – C 。當然,如果你已經學會了 HTML 、CSS 、jQuery 等前端工具,你也可以用 PhoneGap 的技術做出 Android 、iOS App 出來(只是效能沒有 Native App 的好,除非你真的把前端的技術學到精通,才有可能用 PhoneGap 做到『幾乎』一模一樣。」 但以一個初學者而言,你必須要考慮到「直接」進入 Java 、Objective- C 的學習門檻相對於 HTML、CSS 、jQuery 來說是比較高的(其中 iOS 的門檻對於資訊背景出身的人比 Android 更高,因為在學校都教 Java、C++)。但除果你發願想成為一個 iOS 、Android 開發者,那這就是你的必經之路。 以下提供幾個學習資源: iOS 2. Treehouse ( 可惜 Codecademy 上沒有 Mobile 方面的課程) Android 1. Udacity 的 Java 課程非常適合初學者一步步學習。 - 如果我的小孩想學 Coding,也要從 HTML 開始?
當然不用,其實專門給小朋友學習程式的資源非常多,甚至有針對孩子學習而設計的程式語言,通常都把學習程式的氛圍遊戲化了,像是 Scratch。Scratcch 是美國麻省理工學院(MIT)的媒體實驗室(Media Lab)在 2006 年所推出,專門設計給年約 8 歲的小朋友學習的程式設計語言 ,讓小朋友以熟悉的堆積木方式更快進入程式語言的世界。另外還有一套從 Scratch 分拆出來的學習工具 ScratchJr,讓年紀更小的孩子,也能接觸程式設計。 ScratchJr 在學習與操作上,比 Scratch 來的更容易一些。與一般複雜的一行行程式碼不同的是,這套語言是以一種可愛的圖像區塊式的學習方式,在遊戲中的種種挑戰裡,完成程式設計概念的學習。讓小朋友即使在還沒學會閱讀、寫作前,就可以學會程式語言的操作概念了。 另外一個適合小孩接觸的程式語言是 Tynker,在課程中, Tynker 在設計上也偏向簡單有趣,讓小朋友經由視覺程式語言,來學習程式語言的邏輯和架構,但沒有那些開發者常用的那些困難的技巧,小朋友可以用視覺程式語言來建立演算法的區塊,使得他們學習用邏輯性的語言來思考與解決問題。 除了上述的資源,你也可以讓小朋友上美國知名的線上 Coding 學校 Code School 上學習更進階的知識。 如果你有不錯的學習資源,也請分享給大家吧! |