[閒聊] 未來三年程式設計的學習方向
常常有人問我:「老師,我想學程式設計。但是我不知道該學什麼?」通常我會再追問:「為什麼你想學程式設計呢?」如果答案是:「可以賺大錢」,那我會勸他趕快回火星去,地球是很危險的...
如果是:「興趣」,那我勉強還可以聊一下。根據我非~~常個人的觀察,未來三年比較流行的程式設計領域有下列四個:
(1) 網頁程式設計:
就是 HTML5/CSS3/JavaScript 這些東西。這些技術夾著跨平台之賜,可以拿來做網頁,可以拿來寫手機 App,還可以拿來寫遊戲、讓人彼此偷菜... XD。加上入門門檻又不高,進可攻、退可守。實在很適合完全不會程式設計的人,當成敲門磚。
(2) 手機 App
這個不用我再強調了...憤怒鳥、轉來轉去的糖果...都跟這個領域有關。如果你本身已經會 C 語言,建議您走 iOS,因為 iOS 的官方語言 Objective-C,語法跟 C 語言很像。學起來會很輕鬆。如果您會的是 Java,建議您走 Android。因為 Android 背後的官方語言就是 Java。
如果拿「賺不賺錢」這件事來考量,手機 App 能賺錢的不到 1%,賠錢的是大多數。所以抱著「做 App 賺大錢」的人,我會勸你去買張獎券還比較有希望。如果真要說賺錢,根據統計,iOS 雖然市佔率沒有 Android 高,但是 iOS 的使用者很習慣掏錢買軟體。而 Android 使用者比較偏好「免費軟體」。所以,如果要賺錢的話,您可以走 iOS 試試看。
(3) 嵌入式系統(自動控制、機器人)
如果您跟我一樣不怕死、不是硬體出身的卻對控制硬體有莫大興趣,還願意常常掏錢買不同的開發板、齒輪、電料...(這些可沒有免費的可以「下載」... XD),那歡迎您加入嵌入式系統這個煉獄...呃...錢坑...也不對!「樂園」;-) ...。如果您是從軟體跨過來的,我會建議您先買一塊 Raspberry Pi 來玩。如果您是硬體過來的,那麼買塊 Arduino UNO 來玩,您一定會覺得如魚得水的。
這一行要能閱讀大量的原文,因為能寫「硬體+軟體」的書籍作者不多。此外,C 語言是一定要學的。不過學成後,您可以自己做個自走車、機器手臂什麼的,現給人家看,很有成就感喔!
(4) 海量資料(Big Data)、分散式運算(Distributed Computing)、雲端運算(Cloud Computing)
上面這三個名詞事實上都是一件事的不同面向而已,對我來說是同一件事。這也是這一兩年新興的領域,我十分看好!所謂「海量資料」,是由想分析 Internet 時代收集而來的巨大資料,並從中算出某種趨勢而來。舉例來說,每天有上萬人在 Amazon 買書。你怎麼從這些人的購買資料,得知他/她的喜好?
海量資料有三樣東西要考量:(1) 怎麼儲存這些海量資料? (海量資料)(2) 怎麼平行運算這些資料、以便在最短的時間內得到結果? (分散式/雲端運算)(3) 怎麼用最清晰的圖表,讓人一看就了解趨勢,而非只是條列式呈現算出來的結果?國外是以「Store、Compute、Present」三個字來代表。
說到如何「儲存」海量資料,目前最流行的就是 NoSQL 家族。包含 MangoDB、HBase、CouchDB...等。這些資料庫與傳統資料庫不同的是,您可以將資料庫「分屍」放在上百台機器,然後它們還能彼此運作得起來。這點傳統資料庫就做不到!能將資料「分屍」還能運作,才能獲得「叢集運算(Cluster Computing)」的好處。
MangoDB: http://zh.wikipedia.org/wiki/MongoDB
HBase: https://zh.wikipedia.org/wiki/HBase
第二點是「分散式運算」,也就是談怎麼把本來由一台電腦做的事情,分散到上百台電腦做好,然後把成果收集回來。這點,Hadoop、Scala 是目前箇中翹楚。
Hadoop: http://zh.wikipedia.org/wiki/Apache_Hadoop
Scala: http://zh.wikipedia.org/wiki/Scala
第三點就是怎麼用最清晰的圖表,動態呈現這些海量資料運算結果了。目前我看到 Tableau 這家公司非常投入這塊。他們也在昨天掛牌上櫃,股票首日大漲 64%,前景一片看好。
Tableau 官網: http://www.tableausoftware.com/
Tableau 新聞: http://www.bnext.com.tw/Article/view/cid/103/id/27875
閒聊至此!如果您不知道想往哪個方向走,或者您還有問題想問,歡迎留言在下面喔!我會儘快回覆您的!
arduino wiki 在 維基百科為什麼要叫做「Wiki」pedia? | 超邊緣冷知識第82集 的推薦與評價
許多人常用的資料網站- 維基 百科,為什麼當初要命名成「 Wiki 」pedia,它的 Wiki 是怎麼來的呢?支持啾啾鞋▷https://goo.gl/JzXgfv 啾啾鞋整理資料的 ... ... <看更多>
arduino wiki 在 'arduino-ide' tag wiki 的推薦與評價
This open-source IDE makes it easy to write code/sketches and upload it/them to any Arduino board. The IDE runs on Windows, macOS and Linux. Virtually all ... ... <看更多>
arduino wiki 在 Library Manager FAQ · arduino/Arduino Wiki - GitHub 的推薦與評價
Arduino IDE 1.x. Contribute to arduino/Arduino development by creating an account on GitHub. ... <看更多>