你好。
我是 PRUM 股份有限公司的 masa。
這次,我從「在哪些場景中使用」「擅長什麼」的角度,整理了 Web 開發中主要的 5 種語言。
如果能成為您在選擇語言時的幫助,我會很高興。
「Ruby 和 Python 有什麼差別?該學哪一個比較好?」
我偶爾會接到沒有經驗的人提出這類語言選擇的諮詢。
也有人會說:「不知道該從哪裡學起,結果已經過了 3 個月了。」
我非常能理解這種心情。我自己剛開始的時候,也曾經瘋狂閱讀各種語言比較文章,一邊猶豫,看到別的文章又重新開始猶豫,最後有一段時間什麼都沒有真正動手做。
這篇文章將從「在哪些場景中使用」「擅長什麼」的角度,整理 Web 開發中常用的主要 5 種語言。
在選擇語言之前,其實有一個很多人會忽略的重點。
實際在現場工作的工程師,並不是只靠程式語言在工作。他們會用 Git 管理程式碼、使用 Linux 指令、和團隊成員互相做 Code Review,這樣才會完成一個功能或一個產品。
在學語言之前,先至少掌握這些 「共同基礎」,無論之後學哪種語言,都能舉一反三。
「我明明學會了〇〇語言,為什麼還是無法轉職?」
這類諮詢中,很多其實都是缺少這一部分,而不是語言本身不夠。
具體來說有以下 3 點:
這些不論學哪種語言都會共通使用。如果忽略這些,常常會變成即使學會了語言,也無法在團隊中工作。
接著來談主要語言。目前 Web 開發現場常見的語言,大致可分為以下 5 種。
Ruby 是以「寫起來很有趣」的設計理念所打造的語言。程式碼可以寫得很接近自然英文,因此常被選為第一個學習的語言。
Ruby 有一個很適合新創公司與新服務啟動的框架 Ruby on Rails,特色是即使人力不多,也能快速做出服務。
很適合「想用最短時間做出 Web 服務」的情況。
PHP 是為了驅動網頁而設計的語言,世界上相當多的網站都由 PHP 驅動。部落格系統 WordPress 的背後也是 PHP。
搭配 Laravel 這個框架,可以把大型服務也用良好的設計方式開發出來。對於「想在以網站製作為主的現場工作」的人來說,是很容易上手的語言。
Python 是在機器學習與資料分析領域擁有壓倒性市占率的語言。
如果想「做 AI」「把資料視覺化」,通常會先把 Python 列為候選。原因是它有非常多函式庫,可以用簡短程式碼寫出複雜的數學處理。
它也能用於 Web 開發,但特別適合想往資料科學或 AI 領域發展的人。
JavaScript 是在 Web 瀏覽器上運作的語言。要製作 Web 服務的前端(使用者直接操作的畫面端),實際上幾乎只能用它。
近年來,加入了「型別」概念的 JavaScript 變體 TypeScript 已成為主流。由於較能減少團隊開發中的錯誤,因此新專案常會採用 TypeScript。
如果你想「做畫面相關的工作」「想成為前端工程師」,從這裡開始是很自然的路線。
Go 是由 Google 開發的語言,處理速度非常快,也擅長能同時應付大量請求的「並行處理」(可同時執行多個處理的機制)。
在大型服務的後端,以及微服務建置上,採用率正在增加。雖然不太能說是入門者友善,但對已經對程式設計有一定熟悉度的人來說,很值得挑戰。
看到這裡,可能有人會想:「那是不是全部都學比較好?」
其實在現場也常有類似的討論。
後輩:「〇〇前輩,Ruby 和 Python 都會的話,應該比較容易被錄取吧?」
我:「比起兩個都只懂一點點,真正把一個做扎實的人評價會更高喔。」
後輩:「是這樣嗎?」
我:「面試時與其說『Ruby 有稍微碰過,Python 也有摸過一些』,不如說『我用 Rails 做過這樣的東西』,會具體得多。」
這不只是在招募現場如此,實際工作時也一樣。剛開始時,比起「廣泛了解所有語言」,「深入理解一種語言」更容易獲得更多可被交付的工作。
如果你還是很猶豫,這裡提供一個簡單的判斷標準。
「哪一個最有前景?」這個問題我也常被問到,但老實說,這幾種現在都還在實務中被使用。與其用「前景」來選,我認為從「自己想做的東西」回推,後悔會比較少。
「不知道該學哪種語言」而卡住的心情,我真的非常能理解。資訊太多,導致一直比較下去,反而正代表你很認真在思考。
但老實說,不管哪種語言,最初的門檻都是「開始寫」。比起等到語言選定得完美無缺才行動,先選一個開始做,反而更能加快成為工程師的速度。
如果你覺得「我想做 Web 服務」,那就先做一個 Rails 的入門教學看看吧。如果你想試著動態顯示畫面,就用 JavaScript 做一個「按下按鈕後文字會改變」的小作品。
比起選語言,我認為更重要的是先盡早決定一種語言,然後用它做出一些有成果的東西。一起繼續加油吧!
也推薦你補充一下 PRUM 股份有限公司所經營的文章網站中的知識。
我們分享最近常被閱讀的文章,如果有興趣的話,歡迎去看看。