巨匠電腦程式設計教學:想學Coding應該先下手的入門款程式語言

錚/

1507211049290.png
巨匠電腦程式設計教學:想學Coding應該先下手的入門款程式語言

許多人都在提倡學習 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  先著手是最適合的,因為這幾種工具,對你理解網頁「視覺」上的設計上最快,也是最簡單的途徑。

去哪學最快?

1. Codecademy (免費)

目前在免費網站中,最知名的應該就是它了。上面所有的程式語言課程都是免費(HTML & CSS 、jQuery、JavaScript、PHP、Python、Ruby),互動式的界面做的不錯,也有討論區可以跟別的學習者一起討論問題,每個單元結束時都會有實作的作業可以及時了解學習成效。

Codeacademy 的缺點是,單元練習時的介紹文字稍嫌簡略,對初學者來說可能不夠清楚,需要去 Google 額外的資訊來補充、理解。

建議初學者先從 Web Fundamentals ( HTML & CSS)開始,結束後再往 jQuery…… 學習。

2. Treehouse (付費:一個月 29 美元)

跟 Codecademy 的教學方式和特色都不太一樣,跟 Codecademy 不同的是,它是從「你想成為哪一種設計師、開發者」幫你做全盤的課程規劃,內容也相對完整許多。

舉例來說(下圖),你可以在「Tracks」選擇想學前端設計、網頁設計、iOS 開發、Android 開發、Rails 、PHP 等等課程,有許多基本的課像是 HTML、CSS、jQuery 都會在一些 Tracks 重疊。

另外,跟 Codecademy 不同的是,在 Treehouse 有真人(知名開發者)錄製的影片穿插在課程之間。


另外在幾個知名的線上學校裡,有幾個非常棒的電腦基礎課程(免費)也推薦給大家:

線上教育有幾個知名網站像 Udacity、edX ,裡面其實都有非常棒的電腦科學基礎教育、軟體開發等課程。不只是教材(講義、上課影片)完整,而且師資也都是麻省理工學院、哈佛大學、北京清華大學、Cornell 大學、Caltech 等全球頂尖資工學府的教授,值得大家參考。

  • 我想成為前端工程師(網頁設計師)

如果你想成為前端工程師上面提到的 HTML、CSS、jQuery 是少不了的,但另外你也必須了解一些後端語言像是 PHP 等等。一位資深程式設計師曾經給我的建議:「如果你是一個想成為前端工程師的初學者,我建議你先把『前端』學到精通,也就是非常熟悉 HTML、CSS、jQuery 。後端的東西,可以進去職場依公司慣用的開發語言的不同,再做學習。」

  • 我想成為 App 開發者

這就看你想在哪一種裝置上開發了,在 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

1. raywenderlich.com

2. Treehouse ( 可惜 Codecademy 上沒有 Mobile 方面的課程)

3. iOS path on Code School

Android

1. Udacity 的 Java 課程非常適合初學者一步步學習。

2. Android 官方的開發教學

3. Treehouse( Android 和 iOS 的開發課程都有,但需要付費)

  • 如果我的小孩想學 Coding,也要從 HTML 開始?

當然不用,其實專門給小朋友學習程式的資源非常多,甚至有針對孩子學習而設計的程式語言,通常都把學習程式的氛圍遊戲化了,像是 Scratch。Scratcch 是美國麻省理工學院(MIT)的媒體實驗室(Media Lab)在 2006 年所推出,專門設計給年約 8 歲的小朋友學習的程式設計語言 ,讓小朋友以熟悉的堆積木方式更快進入程式語言的世界。另外還有一套從 Scratch 分拆出來的學習工具 ScratchJr,讓年紀更小的孩子,也能接觸程式設計。

ScratchJr 在學習與操作上,比 Scratch 來的更容易一些。與一般複雜的一行行程式碼不同的是,這套語言是以一種可愛的圖像區塊式的學習方式,在遊戲中的種種挑戰裡,完成程式設計概念的學習。讓小朋友即使在還沒學會閱讀、寫作前,就可以學會程式語言的操作概念了。

另外一個適合小孩接觸的程式語言是 Tynker,在課程中, Tynker 在設計上也偏向簡單有趣,讓小朋友經由視覺程式語言,來學習程式語言的邏輯和架構,但沒有那些開發者常用的那些困難的技巧,小朋友可以用視覺程式語言來建立演算法的區塊,使得他們學習用邏輯性的語言來思考與解決問題。

除了上述的資源,你也可以讓小朋友上美國知名的線上 Coding 學校 Code School 上學習更進階的知識。

如果你有不錯的學習資源,也請分享給大家吧!

巨匠電腦也開設了程式/資料庫課程,教你程式設計以及大數據分析等等,快來巨匠電腦輕鬆學!

文章與圖片出處: http://goo.gl/OLXqcw

 

【程式/資料庫課程】Big Data的應用你瞭解了嗎?巨匠電腦告訴你

【程式/資料庫課程】巨匠電腦分享,「大數據分析」人才為什麼這麼搶手?

【程式/資料庫課程】巨匠電腦密技:9個必殺絕技殺進Big Data市場

【程式/資料庫課程】巨匠電腦分享,職場新寵兒!大企業爭搶「數據分析師」

巨匠電腦讓學員快速提升自我、快速充電

巨匠電腦學員葉信頤見證巨匠電腦快速提升自我

巨匠電腦學員葉信頤,目前任職仰哲科技程式設計師,原本就是資訊程式背景出生的他,因為當兵的關係,比較沒有再接觸程式,但他怕會因此而生疏失去職場競爭力,剛好當時巨匠電腦有推出104產訓就業班,巨匠電腦裡面就有推出相關的程式設計類的課程,而會選擇巨匠電腦另一個重要的原因是,巨匠電腦還會幫他安排面試,及安排面試求職的課程,這對於一個剛畢業想要充電進修及找工作的葉信頤來說,才是他最需要的服務,所以葉信頤沒有思考太多,就報名上課了。

雖然以前是念資訊管理科系畢業,但來到巨匠電腦上課後才發現,原來過去在學校裡面學的都太理論了,而且學的內容都不夠精實,當時就想還好有報名上課,不然應該會找不到現在這份理想的工作。

產訓專班專案式的教學課程,巨匠電腦的老師都會納入業界實際的case來當做教學的教材,所學的內容完全是符合業界目前實務上的需求,對於沒有工作經驗的巨匠電腦學員,其實透過每一個案例的學習過程,都是一個快速累積實際經驗的機會。

同時在結業前,為了讓同學們在結業後有實際的作品案例可以在面試中當作品,巨匠電腦就有安排結業專題製作,當時葉信頤的專案內容是負責製作電子書,主要是負責電子書後台資料庫的設計,在這樣的團隊式的專案管理經驗也讓他在現在的工作中能知道要如何與人溝通。

現在葉信頤在仰哲科技公司,主要是負責軟硬體工程師的工作,公司有承接高雄圖書館的網站維運,就完全應用到當時在巨匠電腦所學的課程內容,包括從前台的版面設計及後台的資料庫串聯,都是課堂中所教過的技能,完全符合當初巨匠電腦即訓即用的精神。

我想學→程式/資料庫,學電腦