2020 年 Web 開發者學習路線

2020 年 Web 開發者學習路線

原文連結:chinese.freecodecamp.org

freeCodeCamp 閱讀更多技術文章

在你往下閱讀之前,可以先看這三個要點:

  • freeCodeCamp 最新版課程將於 2020 年上線,完全改版為專案實踐,新增 Python 課程,敬請期待。 目前版本的中文課程在 freeCodeCamp.one,我們正在 GitHub 協作校對中文課程翻譯,稍後將其上線到 freeCodeCamp.org 官方網站,歡迎參與貢獻
  • 如果你想協作翻譯 freeCodeCamp 的文章或視訊,請看這篇文章
  • 歡迎關注微信公眾號(freeCodeCamp)瞭解社區最新進展,可掃描二維碼關注:

weixin.qq.com/r/Cy_CmrP (二維碼自動識別)


今天,我最喜歡的老師之一,Brad Traversy,發佈了一個視頻,主題是在 2020 年,要成為一名 Web 開發者需要學習哪些知識。

Brad 主要強調了一點——也是我經常強調的——那就是:學習的時候不要感到畏懼或者手足無措。

我想提醒讀者:freeCodeCamp 的課程涵蓋了 Brad 所介紹的大部分工具,已經説明 40,000 多名學員獲得開發者工作。 如果你猶疑不決,大可以專注在 freeCodeCamp 學習。

Brad 過濾掉你在社交媒體上聽過的各種炒作宣傳,給出實事求是的建議。 他的建議是切實可行的,他所建議學習的所有知識我幾乎都贊同。

為了方便起見,我在下面總結了他的一些主要見解。 同時,我建議你在 YouTube 觀看他的完整視頻,連結位址:youtu.be/0pThnRneDjw。 除了本文所總結的內容之外,他還在視頻中詳述了許多細節。 這是一個時長 73 分鐘的視頻。

2020 年的 Web 開發:概述

該視頻的主要目的是使你熟悉一些可供 Web 開發者使用的更主流的 Web 開發工具。

"我並不想用海量技術淹沒你。 這些只是你擁有的選擇...... 目前存在很多技術,當你聽到類似 Nuxt 或 Gatsby 的聲音時,我想讓你知道它是什麼。 然後你可以選擇是否要學習。 ”

Brad 首先鼓勵人們先問自己想做什麼:是在一家產品公司工作,還是擔任顧問,還是成為自由職業者,或者是構建自己的產品?

他關於學習什麼的很多建議都歸結為你的目標是什麼,從這個角度出發來梳理知識框架。

首先,他建議學習所謂的"必需品"。

該截圖和後續截圖均來自 Brad 的視頻,下劃線表示他個人推薦的工具

他指出了一件反直覺的事:你不需要花哨的計算機來進行 Web 開發,"這不像遊戲引擎開發之類的東西,因此你可以使用一台中檔筆記本或者台式機,有些情況下甚至一台低檔電腦就夠用了」。

Brad 使用MacOS,Windows 10和Linux配置雲服務和一些媒體服務。

他非常喜歡 VS Code 的編輯器,並使用 Chrome 及其內置的 DevTools 進行基於瀏覽器的調試。 另外,他認為 Firefox 也已經很成熟,並且是可行的替代方案。

他建議從標準 HTML 和 CSS 開始,並學習更新的 CSS 工具,例如 Flexbox 和 Grid。

他認為在 2020 年學習回應式網頁設計是必須的,"你創建的每一個正式項目應該在各種設備上運行良好」。

他建議你練習構建自己的模組化 CSS 元件,以便在整個專案中重用,而不是依賴於 Bootstrap 之類的 CSS 框架。

說到這,他認為你在為不同僱主開發專案時可能會遇到選擇 CSS 框架的問題。

Bootstrap 目前仍然是最流行的 CSS 框架,但是也有其他一些被廣泛使用的框架。

他特別提到了 Tailwind,這是我以前從未聽說過的。 Tailwind 與其他 CSS 框架略有不同,它著重於 "utility classes",你可以將其組合以完成設計樣式。

意料之中的是,Brad 推薦你掌握 JAvaScript。

這是一些你應該掌握的基礎知識,Brad 有這些主題的大部分視頻,freeCodeCamp 課程中也包含其中大部分內容

在實踐中學習

在 Brad 的整個指南中,他反覆強調實用性的必要性。

是的,每件事都有最佳實踐。 但是在很多情況下,有一種足夠好的方法可以説明你更快地前進並完成更多的工作,而不會陷入工具的泥潭。

他說過的最有趣(或許也是最和主流觀點唱反調的)的一句話是:

"無需為小型網站學習 DevOps 和 AWS 以及所有這些東西。 託管站點或託管主機網站(如 InMotion 或 Hostgator)就可以了,它可以讓你直接在瀏覽器中進行部署。 不需要讓事情變得太複雜。 ”

他認為,即便是在2020年,也不要追逐熱門,而應該使用你自己熟悉的工具。

對於剛接觸 Web 開發的人員,Brad 建議要首先能夠成為基本的前端 Web 開發人員,這樣你就可以作為自由職業者為本地企業建立網站。

"潮人會說你絕對需要使用前端框架,我不贊成。 如果你想在不使用前端框架的情況下在伺服器上渲染範本,我認為這是完全可以的,但是有很多很多的工作要求你具有使用類似 React 或 Vue 框架的技能。 ”

但是一旦你準備好應對前端框架,他建議你探索 React,Vue 和 Angular。 "嘗試所有三個,找出最喜歡的一個"。

他還認可了 Svelte——它不是一個框架,而是一個編譯器。 但他表示,這可能太新了,無法在 2020 年嘗試實用。

他討論了伺服器端渲染(SSR)的日益普及。 基於檔案系統的路由意味著你不必創建複雜的路由檔,相反,你可以將檔放在任何你認為合適的目錄中。

兩種流行的伺服器端渲染工具是 Next.js(用於 React)和 Nuxt.js(用於 Vue)。

另一個新興的趨勢是靜態網站渲染,他說,你不需要學習,但你應該知道。 例如,Gatsby 網站非常快,不需要伺服器。

後端開發工具

Brad 的視頻截圖,其中包含每種語言最流行的框架

對於伺服器端開發,Brad 更喜歡 Node.js的速度,因為它的速度快,並且他可以在前端和後端都使用 JAvaScript。 對於伺服器端開發框架,他建議學習 Express,因為它是最流行的,而且"它給了你很多自由,可以按照自己的方式構建東西"。 他還在一些專案中使用 Python,並推薦使用它。 "Python 有兩個很棒的框架,Django 是一個大型的,功能齊全的框架,Flask 更加簡約。 它提供了你所需的內容,但你可以做出其餘的決定。 老實說,我對這兩個框架沒有偏好,我兩個都喜歡,將它們用於不同需求。 "他快速簡要地為 PHP 辯護:"很多人都討厭 PHP,這很不幸,因為 PHP 可以是一門很棒的語言,它很實用,並且可以在任何地方輕鬆部署。 PHP 非常適合需要快速出手的自由職業者。 如果你打算在一家大公司工作,PHP 可能不是最佳選擇,但是如果你要自由職業和構建個人專案,PHP 可能是個不錯的選擇。 抨擊 PHP 現在是很流行的行為。 PHP 是我學到的第一門語言,我仍然非常喜歡它...... 如果你查看 Laravel 代碼,它非常優雅。 "Brad 還快速介紹了一下数据庫,並推薦了長期受歡迎的 PostgreSQL。

他在移動應用程式開發中的第二個選擇是 React Native,如果你已經知道 React,就很容易上手。

然後 Brad 很好地解釋了什麼是漸進式 Web 應用(PWA)以及它們的一些好處。 這是幻燈片,但我還是強烈建議你們看他的完整視頻。

然後,他談到了 Electron,它使你可以使用 JAvaScript 構建桌面應用程式。 他最初表示懷疑,但提到他最喜歡的一些桌面應用程式(例如 VS Code 和 Discord)現在使用 Electron 構建。 他提到了 JAMstack(用戶端 JavaScript,可重用 API 和預建構標籤 Markup)和 serverless 架構。 這些都是更高級的主題,他的頻道和 freeCodeCamp 的 YouTube 頻道都提供了視頻教程。

然後他描述了2020年的大趨勢。

機器學習和 WebAssembly

儘管其他所有人都在談論機器學習,但是這不意味著你應該放棄所有東西來學習它。 這是他的整個視頻分享的基調。

是的,你也可以使用 JAVAScript 進行機器學習。

"Python 是機器學習的首選語言。 不過,如果你也可以使用 JAVAScript 裡的 TensorFlow.js 和 Brain.js 來創建神經網路並做一些非常酷的事情。 ”

從他談論 WebAssembly 的方式可以明顯看出,他對此感到非常興奮。

"WebAssembly 仍處於早期階段,但我認為我們今年會看到更多。 傳統上,我們在網頁上使用 JAVAScript 來操縱 DOM 並運行計算。 JavaScript 在速度方面有局限性。 一種語言就像 C 或 C++ 比 JavaScript 快得多。 因此,WebAssembly 是一種高效的低級位元組碼,可以由瀏覽器執行,並且速度非常快。 它可以由 C,C++ 和 Rust 等語言生成。 ”

Rust 是 WebAssembly 可以使用的語言之一(除了 C 和 C++),它比 C 和 C++ 更容易學習和使用。

但是需要特別注意的是,學習 WebAssembly,你仍需要學習 JAvaScript。

"你幾乎可以將 JavaScript 視為老闆,它可以告訴 WebAssembly 該怎麼做。 因此,它使我們能夠在我們的 Web 應用程式中使用非常快速的低級語言(例如 C++),這為我們提供了更多功能——例如下一代影片遊戲和視頻編輯工具,就可以在瀏覽器中找到,這是 JavaScript 所無法想像的。 ”

最後他說:「你學得越多,再學習更多就變得越容易,將所有這些技術融合在一起也就越容易。 請不要原地躊躇,一次邁出一步,做一些研究,弄清楚你想做什麼。 ”

我要再次感謝 Brad Traversy 為我們分享這段全面的視頻介紹。

人們總是問我「如果我想成為一名web開發人員,我應該學習什麼? ”

我的回答是"把freeCodeCamp作為你的核心課程,然後擴展到其他學習資源。 ”

我很高興地說,Brad 的 Traversy Media YouTube 頻道是我最推薦的其他資源之一。 Brad,如果你正在讀這篇文章,恭喜你的 YouTube 視頻已運營十年,期待下個十年!

“全棧開發已死?”

2020 年 Web 開發展望