你好。
我是 PRUM 股份有限公司的 masa。

這次,我從「在哪些場景中使用」「擅長什麼」的角度,整理了 Web 開發中主要的 5 種語言。

如果能成為您在選擇語言時的幫助,我會很高興。

前言

「Ruby 和 Python 有什麼差別?該學哪一個比較好?」

我偶爾會接到沒有經驗的人提出這類語言選擇的諮詢。

也有人會說:「不知道該從哪裡學起,結果已經過了 3 個月了。」

我非常能理解這種心情。我自己剛開始的時候,也曾經瘋狂閱讀各種語言比較文章,一邊猶豫,看到別的文章又重新開始猶豫,最後有一段時間什麼都沒有真正動手做。

這篇文章將從「在哪些場景中使用」「擅長什麼」的角度,整理 Web 開發中常用的主要 5 種語言。

在選擇「哪種語言」之前,先知道這些事

在選擇語言之前,其實有一個很多人會忽略的重點。

實際在現場工作的工程師,並不是只靠程式語言在工作。他們會用 Git 管理程式碼、使用 Linux 指令、和團隊成員互相做 Code Review,這樣才會完成一個功能或一個產品。

在學語言之前,先至少掌握這些 「共同基礎」,無論之後學哪種語言,都能舉一反三。

「我明明學會了〇〇語言,為什麼還是無法轉職?」

這類諮詢中,很多其實都是缺少這一部分,而不是語言本身不夠。

具體來說有以下 3 點:

  • Git 和 GitHub:管理程式碼變更歷史的工具。團隊開發必備
  • Linux 基本指令:用於操作伺服器與建置開發環境
  • 演算法思維:將問題拆解並落實成步驟的思考能力

這些不論學哪種語言都會共通使用。如果忽略這些,常常會變成即使學會了語言,也無法在團隊中工作。

Web 開發中常用的 5 種語言

接著來談主要語言。目前 Web 開發現場常見的語言,大致可分為以下 5 種。

Ruby — 重視「人類容易閱讀的程式碼」的語言

Ruby 是以「寫起來很有趣」的設計理念所打造的語言。程式碼可以寫得很接近自然英文,因此常被選為第一個學習的語言。

Ruby 有一個很適合新創公司與新服務啟動的框架 Ruby on Rails,特色是即使人力不多,也能快速做出服務。

很適合「想用最短時間做出 Web 服務」的情況。

PHP — 為 Web 而生的語言

PHP 是為了驅動網頁而設計的語言,世界上相當多的網站都由 PHP 驅動。部落格系統 WordPress 的背後也是 PHP。

搭配 Laravel 這個框架,可以把大型服務也用良好的設計方式開發出來。對於「想在以網站製作為主的現場工作」的人來說,是很容易上手的語言。

Python — AI 與資料分析的「世界標準」

Python 是在機器學習與資料分析領域擁有壓倒性市占率的語言。

如果想「做 AI」「把資料視覺化」,通常會先把 Python 列為候選。原因是它有非常多函式庫,可以用簡短程式碼寫出複雜的數學處理。

它也能用於 Web 開發,但特別適合想往資料科學或 AI 領域發展的人。

JavaScript / TypeScript — 唯一能在瀏覽器中執行的語言

JavaScript 是在 Web 瀏覽器上運作的語言。要製作 Web 服務的前端(使用者直接操作的畫面端),實際上幾乎只能用它。

近年來,加入了「型別」概念的 JavaScript 變體 TypeScript 已成為主流。由於較能減少團隊開發中的錯誤,因此新專案常會採用 TypeScript。

如果你想「做畫面相關的工作」「想成為前端工程師」,從這裡開始是很自然的路線。

Go — 以處理速度與大量存取能力見長

Go 是由 Google 開發的語言,處理速度非常快,也擅長能同時應付大量請求的「並行處理」(可同時執行多個處理的機制)。

在大型服務的後端,以及微服務建置上,採用率正在增加。雖然不太能說是入門者友善,但對已經對程式設計有一定熟悉度的人來說,很值得挑戰。

現場對話中常出現的話題

看到這裡,可能有人會想:「那是不是全部都學比較好?」

其實在現場也常有類似的討論。


後輩:「〇〇前輩,Ruby 和 Python 都會的話,應該比較容易被錄取吧?」

我:「比起兩個都只懂一點點,真正把一個做扎實的人評價會更高喔。」

後輩:「是這樣嗎?」

我:「面試時與其說『Ruby 有稍微碰過,Python 也有摸過一些』,不如說『我用 Rails 做過這樣的東西』,會具體得多。」


這不只是在招募現場如此,實際工作時也一樣。剛開始時,比起「廣泛了解所有語言」,「深入理解一種語言」更容易獲得更多可被交付的工作。

迷惘時的選擇方式

如果你還是很猶豫,這裡提供一個簡單的判斷標準。

  • 想快速做出 Web 服務 → Ruby(Rails)
  • 想做畫面、UI → JavaScript / TypeScript
  • 對 AI 或資料分析有興趣 → Python
  • 想做 WordPress 等 CMS 或廣泛的 Web 服務開發 → PHP
  • 想做大型、高速系統 → Go(適合在有一定基礎後再挑戰)

「哪一個最有前景?」這個問題我也常被問到,但老實說,這幾種現在都還在實務中被使用。與其用「前景」來選,我認為從「自己想做的東西」回推,後悔會比較少。

總結

「不知道該學哪種語言」而卡住的心情,我真的非常能理解。資訊太多,導致一直比較下去,反而正代表你很認真在思考。

但老實說,不管哪種語言,最初的門檻都是「開始寫」。比起等到語言選定得完美無缺才行動,先選一個開始做,反而更能加快成為工程師的速度。

如果你覺得「我想做 Web 服務」,那就先做一個 Rails 的入門教學看看吧。如果你想試著動態顯示畫面,就用 JavaScript 做一個「按下按鈕後文字會改變」的小作品。

比起選語言,我認為更重要的是先盡早決定一種語言,然後用它做出一些有成果的東西。一起繼續加油吧!


也推薦你補充一下 PRUM 股份有限公司所經營的文章網站中的知識。
我們分享最近常被閱讀的文章,如果有興趣的話,歡迎去看看。

從零經驗到工程師的轉職路線圖


原文出處:https://qiita.com/masa20057/items/8de518e172395d48a269


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝15   💬3   ❤️3
625
🥈
我愛JS
📝2   💬3   ❤️3
114
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登