怎樣成為優秀的後端工程師

waynaqua發表於2023-05-10

本文翻譯自國外論壇 medium,原文地址:https://medium.com/@pradeesh-kumar/how-to-become-a-good-backend-engineer-9da75202a104

讓我們一起看看國外開發者認為優秀後端工程師需要掌握哪些技能。


誰是後端工程師?

本質上,軟體開發有兩個要素:前端和後端。當訪問者登陸網站時,他們會看到 UI 與之互動,即前端。前端與使用者互動,收集輸入,然後將其傳遞給後端進行進一步處理。後端處理從前端收到的請求,並將結果返回給前端,顯示在UI中。

前端工程師需要 HTML、CSS、Js、設計、圖形等 UI/UX 開發知識,而後端開發人員需要 Java、Python 和 Javascript 等程式語言以及框架、工具和資料庫的知識。

如何成為一名優秀的後端工程師?

後端開發人員的角色是專注於構建架構等元件,以及編寫與網站、資料庫、訊息代理、安全等其他系統互動的程式碼。

1. 程式語言

選擇一種程式語言並掌握它。學習程式語言的所有基本庫和框架。 Java、Python 和 JS 等程式語言現在很流行。深入瞭解最基本的程式設計功能,如基本結構、oops、基本資料容器(如列表、佇列、堆疊、對映/字典和執行緒程式設計等)。

博主作為一名 Java 開發工程師,當然是推薦大家從 Java 入門啦。學習完了 Java 語言後,在學習 Python、Php、JavaScript等都是非常 easy 的?。

2. 資料結構與演算法

大多數人在最初階段忽略了這一點,後來遭受了損失。永遠不要犯這個錯誤!瞭解資料結構和演算法可以使您的基礎更牢固,並幫助您瞭解其他大型系統的內部工作方式。學習基本的資料結構和演算法,例如堆疊、佇列、連結串列、樹、圖、雜湊、排序和搜尋演算法。

資料結構和演算法非常重要!資料結構和演算法非常重要!資料結構和演算法非常重要!(重要的事情說三篇!)

3.資料庫

後端系統最基本的功能是儲存和檢索使用者資料。有幾種型別的資料庫可用於根據需求和領域來持久化資料。學習關聯式資料庫,如 Postgresql、Mysql 或 Oracle。此外,學習資料庫概念,如規範化、索引、連線、查詢最佳化、ACID、事務、物件關係對映、縮放等。

如今,由於 NoSQL 的簡單性和擴充套件能力,大多數專案都使用 NoSQL 而不是 RDBMS。學習一種或多種NoSql資料庫,如MongoDB、Couchbase DB等。

NoSql 資料庫中流行的還有 Redis,博主這裡補一句。

4.框架和庫

根據您選擇的語言學習流行的框架。 Java 最流行的框架是 Spring 框架。有一些流行的庫可用於執行最常見的操作和實用程式。例如,base64 編碼、驗證、字串實用程式等。不要重新發明輪子。庫可幫助您避免使用大量樣板程式碼,並讓您只專注於使用較少程式碼的業務邏輯。

5.容器化

容器化就是將您的軟體程式碼與執行程式碼所需的作業系統庫和依賴項打包在一起,以建立一個稱為容器的單一輕量級可執行檔案,該容器可在任何基礎架構上一致執行。學習 Docker 和 Kubernetes。它們是用於容器化應用程式的最流行的工具。

容器化已經成為了應用程式釋出部署的新技術。多學習容器相關的知識才能適應當前技術發展趨勢。

6. 開發運營

DevOps 是當今必備的一項技能。 DevOps 就是建立基礎設施,例如計算機、基礎設施、網路、伺服器和資料庫,將它們連線在一起並在基礎設施中執行您的應用程式。

以下是百度對於 DevOps 的說明:

DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用於促進開發(應用程式/軟體工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。

它是一種重視“軟體開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟體交付”和“架構變更”的流程,來使得構建、測試、釋出軟體能夠更加地快捷、頻繁和可靠。

它的出現是由於軟體行業日益清晰地認識到:為了按時交付軟體產品和服務,開發和運維工作必須緊密合作。

簡答來說 DevOps 幫助軟體開發部署更加自動化,提升交付效率。

7.網路

對網路的瞭解使您可以建立有效且安全的通訊渠道來在系統之間傳輸資料。學習 Web 伺服器、TCP 與 UDP、HTTP 協議、WebSockets、gRPC、TLS、NAT、代理和反向代理以及負載平衡器。

網路程式設計相比系統程式設計而言,博主覺得是更有意思的。在分散式系統中,如果瞭解網路程式設計相關知識,那麼對於分散式系統之間如何進行協調通訊、實現原理也就更加容易理解。

8.非同步處理

有時使用者不需要立即對輸入資料執行操作。我們可以將輸入排隊等待稍後處理,並在準備就緒後將結果通知給使用者。這種處理稱為非同步處理。瞭解基本的釋出者-訂閱者模型、佇列和主題、apache active-MQ、Kafka 等。

佇列除了非同步處理的作用,還有流量削峰峰、程式碼解耦的作用。

9. 安全和加密

隨著網路攻擊和惡意軟體風險的增加,安全編碼實踐是開發人員必須瞭解的關鍵。學習和了解最常見的安全風險,例如 SQL 注入、中間人攻擊、身份驗證失敗等。此外,瞭解如何透過清理輸入資料、傳輸時加密資料和強身份驗證來保護您的應用程式來緩解這些風險和授權。

10. GitHub 上的個人專案

使用您學到的技能建立個人專案將幫助您更深入地瞭解它。學習框架/技術堆疊不同於透過組合所有技術堆疊來構建實際應用程式。您可能會遇到錯誤,並有機會了解並修復此類錯誤。它還將使您隨時瞭解最新技術。繼續開發個人專案並在您的 LinkedIn 個人資料和簡歷中提及它們,這有助於招聘經理瞭解您的編碼標準和技術技能。

說到 GitHub 博主就有話要說了,作為開源時代的參與者,個人專案能提升自我價值,深度參與開源世界,也有助於他人瞭解自己。這裡推薦一波博主的開源專案?,感興趣的朋友關注博主,點個 Star:

最後感謝大家閱讀,希望這篇文章能為你提供價值。公眾號【waynblog】每週分享技術乾貨、開源專案、實戰經驗、高效開發工具等,您的關注將是我的更新動力?。

相關文章