2013年4月15日 星期一

為什麼要學習程式語言?


最近網路上有一段影片【What most schools don't teach(http://www.youtube.com/watch?feature=player_embedded&v=nKIu9yen5nc),是code.org放上去的,在肥蝦觀看此片時的點閱率已有一千萬人次。該影片在強調Coding是一個可以促進社會與個人最好生活的方式,希望大家都能學習程式開發的思維與程序。


程式開發是否真得那麼重要與絕對?對人類的生活真有那麼大的影響嗎?很多現在在台灣從是軟體開發的人員也許都不想讓自己的下一代繼續從事這行業(甚至包括肥蝦自己);很多軟體開發的從業人員也多將軟體開發視為一個比傳統產業還傳統產業的工作。何為?因素很多,但肥蝦深深覺得這是因為台灣環境與社會文化造成此種亂象,完全不代表程式開發是一個落沒的工作!(肥蝦不希望女兒們再從事此行,是私心的希望她們不會為了工作發展離開我的身邊!)

資訊化是一個必然的趨勢,人們的生活與資訊的連結日益密切,因此駕馭資訊的工作絕不會落伍與沒落。系統與程式開發是一種行業,卻不是產業。產業有興衰,但不管任何產業,資訊的處理正方興未艾,並期望能跟人的生活更緊實、更密切的配合。

程式語言百百種,也造成很多人學習的困擾,不知從何下手?此外,學習了特定一種程式語言,會不會報酬率太低?會不會該語言一下就被淘汰,需要不斷充實自己?

如果要學習程式語言,要從哪一種語言開始呢?就肥蝦個人的認知,不管學得是何種語言,不管是Java或是dotNet或是Perl或是SQL…基本上程式語言是一種工具,是一種思維,是一種與周遭環境溝通的文法。程式語言就像一般人文語言一樣,並且更簡單,它沒有人格、時態、不用背很多的單字或用語,整合開發環境(IDE)會幫助您解決這不關緊要的問題。程式語言要學習的是那每種語言背後的邏輯與思維,以及解決問題的思考。

程式語言會不會被淘汰?需不需要隨時充實更新?會,當然是會。但是這跟學習哪種程式語言無關!而是隨著社會不斷的進步,不管從事任何工作,都是不斷的進化,從業人員都需要不斷充實自我,而資訊只是滿足人類需求的工具之一,當然也是與時俱進。程式語言有興替,但語言所代表的涵意,尤其是解決人們遭遇問題與滿足人們需求的能力與思考卻從未有過太多的變化。(只是不知以後量子電腦出來後會不會有影響?不過肥蝦認為應該不會是突變,它的思維應該有一定的延續性,只是物體的屬性不同!)

隨著人類活動的多樣與頻繁,程式開發已脫離早期的自給自足或者農牧生活。隨著系統的擴大,程式彼此間的溝通與互動更趨緊密與龐大,而身為駕馭資訊的程式開發人員,跟其他成員間的互動與溝通也更加重要。任何程式或系統均在滿足人類的需求,而人類的需求是由一連串的活動、或作業、或動作所構成,因此程式語言學習除了跟機器的溝通外,也要跟遭遭的人與設備溝通,要更能廣懋地看到整體的要求與防範可能的錯誤。

微軟與臉書,或者現在任何人叫得出來的公司與產品;在code.org影片中所推薦人們學習程式語言的代言人,沒有人是光只會寫程式就成功的。他們之所以成功,或者覺得自己的工作有價值,在於有人去使用他們的產品或工具滿足了需求-溝通的需求、生活的需求、工作的需求一切切人類的行為與活動需求。就比如飲食業,十年前誰聽過王品集團呢?王品從賣台塑牛排到如今又經過多少學習與轉變。【摩爾定律】不管任何產業都適用,只是那個時間差是多少罷了!而且現在的間距一樣是愈來愈短。

程式語言的學習,如果您有那機會,您應該試試看!您不需要成為該語言的專家,只要瞭解、不害怕、願意親近它。重點是在程式語言背後所蘊含的思維與文化,解決問題的思維與溝通的文化。就如影片開頭,Steve Jobs的那句話:「Everybody in this country should learn how to program a computer…because it teaches you how to think.」重點就在那【it teaches you how to think】。

沒有留言:

張貼留言