在之前的許多文章中,我偶爾會提到程式語言的重要性。資訊相關科系或是從事相關工作的人當然知道程式語言是什麼,但是對其他人來說可能就霧煞煞。網路上有許多關於程式語言的解釋,但大多講得太教科書化。
因為親友們知道我從事IT相關的職業,所以「程式語言是什麼」這個問題我就成了常常會被問的對象。既然網路上的解釋不是那麼好懂,那我乾脆就寫篇文章,用最白話易懂的方式來解釋一下程式語言是什麼好了。
不過既然是用最白話的方式說明,一定會有一些地方沒那麼精準,還請程式高手看到這篇文章時多多包涵;畢竟寫這篇文章的目的並非為了程式語言的教學,而是讓更多不清楚程式語言的人大概了解一下程式語言是什麼。
究竟程式語言是什麼呢?用最簡單無腦的一句話解釋,就是「和電腦說話要使用的語言」。我們如果要和日本人說話,自然得說日語;要和德國人說話,就得說德語;要和英語系國家的人說話,自然得說英語。若是要和電腦說話呢?當然要說電腦聽得懂的語言,這類的語言統稱程式語言(Programming Language)。
但電腦畢竟不是人類,無法理解人類自然語言的邏輯,目前的科技也尚未能設計出聽得懂人類自然語言的電腦,所以想讓電腦聽得懂人類說的話,就必須使用電腦能懂的程式碼。而程式碼既然是由人類所設計,自然會加入些許自然語言的字彙(通常都是簡單的英文單字),以增加程式碼的易讀性。
程式語言也不是只有一種,人類根據不同的工作與目的,創造出很多種適合的程式語言,像是適合架設網站的PHP與JavaScript、開發Android APP的JAVA(不是JavaScript喔)、開發iOS APP的Swift、開發遊戲的C++、大數據分析與機器學習的Python等。雖然每種程式語言都有適合的領域,但不代表不能跨界,也有人會使用Python建立網站,使用JAVA開發遊戲等。
跟電腦講話能幹嘛?當然是讓電腦幫你做事啊!大家都知道電腦的速度(尤其是運算)比人類快太多太多了,雖然電腦不會思考,但若能是把一些只需要運算或是反覆執行的工作交給電腦來做,那可是能有效的節省人力、物力甚至成本啊!
隨著電腦科技的日益進步,程式語言也有著巨大的進化。早期的程式語言艱深難懂又難學,一直發展到最近諸如Perl、Python等等,已經加入大量的人類語言字彙取代機械碼,而且也在資料庫中建立很多模組,讓使用者可以直接調用不用重寫,大大的降低學習程式語言的難度。
那麼初學者該學哪一種呢?我的回答是:看你想要幹嘛,就學哪一種。如果你學程式語言的目的是想開發Android APP,那就學JAVA;想開發iOS APP,就學Swift;想架設網站,就選JavaScript或PHP;想進行大數據分析或機器學習,就學Python。
若暫時沒有任何目的、只是單純想學程式語言要學哪一種呢?我建議就選Python吧,因為簡潔的語法大大提高程式碼的可讀性,讓Python成為最簡單易學的程式語言。有了Python當基礎,就算改天再學其他的也會比較容易;這道理就如同先學會乘法,之後學除法就不會這麼難了。
不過,想「學會」程式語言不難、想「學精」卻是很不容易;就跟英文一樣,大多數人都有一定的英文基礎,但想和外國人流暢交談可沒那麼簡單。那如何才能學精呢?不二法門就是:不斷練習。
另外,學習程式語言最重要的不是語法,而是邏輯;所以邏輯好的人學起來比較快,邏輯不好的人學起來就會慢一點。
好在程式語言的邏輯是可以訓練的,方法還不少種,之前曾介紹的「訓練孩子程式邏輯的網站」就是其中一種。所以我建議,在學習程式語言之前,不妨先加強自己的邏輯能力,這樣學起來才會事半功倍。上一篇文章介紹的那幾個線上積木網站又不是只限定小孩,大人也可以玩啊。
前幾天的一則新聞中,蘋果執行長庫克表示,如果想學習第二語言,他建議不如就挑程式語言吧。除了庫克,諸如臉書執行長祖克伯,微軟創辦人比爾蓋茲、推特創辦人傑克多西等人,也都極力推薦每個人都應該學習程式語言。
這些成功人士之所以建議學習程式語言,並非要你變成一個程式設計師,而是因為現今人類的生活,已經脫離不了網路和軟體,不管哪個行業、哪種工作都會利用程式語言來輔助;如果你除了本身的專業領域之外又會寫程式,那不就如虎添翼了嗎!
↓比爾蓋茲、祖克伯、傑克多西等人聊聊為什麼要學習程式語言