1. 程式人生 > >我想學程式,但到底該從哪個語言入門?

我想學程式,但到底該從哪個語言入門?

只是想學程式 vs 想要做出一個__

一般來說,想學程式的初學者大致可以分為兩種,第一種是純粹想要學習寫程式,沒有特別目標的,也就是那些會說:「感覺寫程式很好玩,來寫寫看程式好了。」、「程式之後一定很重要,學一下鍛鍊腦袋也不吃虧。」的人。

第二種則是有很明確想要實作出的目標,例如:想要寫出一個自己的個人網站、想要寫一個好玩的 App 等等。

在這篇文章中,我們會先針對第一種沒有特別目的的人,詳細介紹兩個最多人學習,使用領域也非常廣泛的語言:Python 與 C++。

至於已經有特別目標,想要做出網站或 App 的人,在之後的幾篇文章中我們也會詳細介紹相關的知識,以及推薦學習的語言。

Python

講到入門該先學哪個語言,現在最多人推薦的,大概就屬 Python 了。的確,Python 在 2014 年就已經

成為美國頂尖大學資工系最受歡迎的入門語言,也在多項票選中,被視為最適合初學者學的語言。綜觀來說,Python 擁有三個對新手很友善的特點,讓它成為新時代的入門語言。

Python 的好棒棒之處:

  • 好理解
  • 好偷懶
  • 好作弊

好理解:

寫 Python 就像在跟電腦講英文一樣。

因為 Python 的程式語法設計的非常簡潔,讓讀 Python 所寫的程式碼就像在讀英文一樣的直觀。舉例來說,如果我今天要寫一個叫電腦印出「Python 好棒棒」的程式,我只需要對電腦說:

print(“Python 好棒棒”)

但同樣的事情,如果我要用 C++ 印出「C++ 好棒棒」,我卻需要跟電腦說:

#include <iostream.h>int main(){cout << “C++ 好棒棒” << endl;}

如果是第一次看到這串程式碼,想必有些人已經黑人問號掉滿地了。

include 後面那坨是什麼?為什麼要有{}?cout 庫特*是我沒學過的英文單字嗎?此時,身為一個程式麻瓜只能暗地裡崩潰,感嘆為何學 C++ 非得要用這種怪腔怪調。

註* Cout 唸作 c out,不是唸作庫特。

好偷懶:

Python 的語法設計讓電腦自動幫了你很多忙。

Python 希望讓你需要打的字越少越好,一方面加速你寫程式的速度,一方面也符合它訴求程式碼簡潔美麗的原則,所以 Python 會把能讓電腦幫你完成的,盡量留給電腦。以程式語言裡一個叫宣告變數的簡單動作為例:

在 C++ 中,如果我要規定 x 這個變數等於 3 時,我需要先說 x 是個整數 int,接著說他等於 3 ,最後再加個分號。在程式碼裡,它會是

int x = 3;

但在 Python 中,你可以直接說 x 等於 3 就好,他是整數的這件事,Python 自己叫電腦幫你判斷了。在程式碼裡,它會是

x = 3

可別小看這些小小的差異。雖然對於程式老鳥來說,很多像這樣的小細節就像反射動作一樣能夠自動反應,但對剛入門的初學者而言,少一個 ; ,忘記宣告一個 int ,少加一個分號導致程式無法執行乃是家常便飯,無形中也更增加了初學者學習的痛苦與浪費的時間。

好作弊:

Python 有很多好用的工具,讓你可以把需要複雜的程式碼才能完成的功能像作弊般用幾行簡單程式碼就能輕鬆解決。

Python 的使用社群提供了非常豐富且強大的模組(在這裡我們可以把這個優勢想像成前人留下的智慧)。簡單來說,模組就是別人已經寫好的程式碼,這些程式碼中預留了一些填引數的空間,讓你可以客製化自己想要結果。

實際舉例,假設程式麻瓜 A 先生今天想要用 Python 來做線性迴歸的資料分析,他不用自己純手工釀造把統計學裡那套最小平方法等等等的東西一筆一畫刻程序式碼裡,他只要使用前人的智慧,例如:sklearn 模組,把裡面寫好的線性迴歸分析功能叫出來,然後把自己的資料丟進去,咻咻咻的就在 regressor 這個東西裡面做完全部的線性回歸的事了。在程式碼裡大概長這樣*

#擷取前人的智慧from sklearn.linear_model import LinearRegression
#把前人的智慧放程序式碼regressor = LinearRegression()
#把自己的資料丟進去,看著魔法發生,讓模組處理好所有事情regressor.fit(X_data, y_data)

什麼,你說你還想看資料視覺化?要視覺化我們可以再使用前人的智慧,例如:matplotlib 模組。接下來把所有資料丟進去,咻咻咻,視覺化的圖就噴出來了。

#擷取前人的智慧 againimport matplotlib.pyplot as plt
#設定自己的資料用紅點點標示好plt.scatter(X_data, y_data, color = ‘red’)
#設定 regressor 裡面處理好的回歸分析+預測用一條藍色的線標示好plt.plot(X_data, regressor.predict(X_data), color = ‘blue’)
#把圖秀出來plt.show()
用前人的智慧輕鬆製圖

這些強大的工具包括資料視覺化的 Matplotlib、資料分析的 Pandas & Numpy、機器學習的 scikit-learn、深度學習的 TensorFlow、爬蟲的 BeautifulSoup、網頁用的 Django 等等,網路上也有一些 Python 教學是針對這些模組直接應用的,如果很想趕快應用的話可以先從這些教學開始,但也別忘了程式本身的基礎還是很重要的。

註* 這邊的程式碼省略了資料前處理以及真正在做回歸時應該要分成 train set / test set 的部分,但大致上使用模組的感覺就是這樣的簡單(但行有餘力還是可以多去了解模組是如何運作的呦)。