[閒聊] 未來三年程式設計的學習方向
常常有人問我:「老師,我想學程式設計。但是我不知道該學什麼?」通常我會再追問:「為什麼你想學程式設計呢?」如果答案是:「可以賺大錢」,那我會勸他趕快回火星去,地球是很危險的...
如果是:「興趣」,那我勉強還可以聊一下。根據我非~~常個人的觀察,未來三年比較流行的程式設計領域有下列四個:
(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
閒聊至此!如果您不知道想往哪個方向走,或者您還有問題想問,歡迎留言在下面喔!我會儘快回覆您的!
tableau wiki 在 Neo4j Tableau Integration via WDC - GitHub 的推薦與評價
Since Tableau 9.1 the Web Data Connector SDK can be used to connect Tableau to any web data accessible over HTTP. You can follow the WDC Tutorial to read ... ... <看更多>
tableau wiki 在 Importing a table from an HTML file directly to Tableau - Stack ... 的推薦與評價
... <看更多>
相關內容