本文翻譯自國外論壇 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:
-
waynboot-mall:一套全部開源的微商城專案,包含商城前臺、運營后臺以及后端介面,
原始碼地址:https://github.com/wayn111/waynboot-mall
-
newbee-mall-pro:該專案是newbee-mall商城的pro版本實作了推薦系統、生產可用的秒殺、優惠卷專區,滑塊驗證碼,支付寶支付,中文分詞檢索等高級功能,
原始碼地址:https://github.com/wayn111/newbee-mall-pro
-
crowd-admin:一個基于 Spring Boot、Shiro、Redis/ehcache、Mybatis 的通用后臺權限管理系統,
原始碼地址:https://github.com/wayn111/crowd-admin
最后感謝大家閱讀,希望這篇文章能為你提供價值,公眾號【waynblog】每周分享技術干貨、開源專案、實戰經驗、高效開發工具等,您的關注將是我的更新動力??,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/551992.html
標籤:其他
下一篇:返回列表