主頁 > 後端開發 > 怎樣成為優秀的后端工程師

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

2023-05-10 07:38:38 後端開發

本文翻譯自國外論壇 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

標籤:其他

上一篇:Django筆記三十九之settings配置介紹

下一篇:返回列表

標籤雲
其他(158700) Python(38124) JavaScript(25407) Java(18024) C(15222) 區塊鏈(8262) C#(7972) AI(7469) 爪哇(7425) MySQL(7172) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5336) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4570) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1965) Web開發(1951) HtmlCss(1932) python-3.x(1918) 弹簧靴(1913) C++(1912) xml(1889) PostgreSQL(1875) .NETCore(1857) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • 怎樣成為優秀的后端工程師

    本文翻譯自國外論壇 medium,原文地址:https://medium.com/@pradeesh-kumar/how-to-become-a-good-backend-engineer-9da75202a104 讓我們一起看看國外開發者認為優秀后端工程師需要掌握哪些技能。 誰是后端工程師? 本質 ......

    uj5u.com 2023-05-10 07:38:38 more
  • Django筆記三十九之settings配置介紹

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記三十九之settings配置介紹 這一篇筆記介紹 Django 里 settings.py 里一些常用的配置項,這些配置有一些是在之前的筆記中有過介紹的,比如 logging 的日志配置,session 的會話配置等,這里就只做一下簡單的 ......

    uj5u.com 2023-05-10 07:37:28 more
  • 【redis】哨兵監控原理

    redis-主從模式弊端: 一、master節點例外shutdown后,從機原地待命,從機資料可以查詢(不可以寫入),等待主機重啟歸來 二、復制延時,信號衰減 redis-哨兵監控: 是什么? 哨兵即為吹哨人,可以巡查監控后臺master主機是否故障,如果故障可以根據投票數自動將一個從庫轉換為新的m ......

    uj5u.com 2023-05-10 07:32:04 more
  • 實驗五 Java多執行緒程式設計

    實驗五 Java多執行緒程式設計

    實驗目的
    1. 掌握Runnable介面實作多執行緒的方法
    2. 掌握Thread類實作多執行緒的用法
    3. 掌握Java語言中多執行緒編程的基本方法 ......

    uj5u.com 2023-05-10 07:26:53 more
  • 分享一個提高運維效率的 Python 腳本

    哈嘍大家好我是咸魚,今天給大家分享一個能夠提升運維效率的 python 腳本 咸魚平常在作業當中通常會接觸到下面類似的場景: 容災切換的時候批量對機器上的組態檔內容進行修改替換 對機器批量替換某個檔案中的欄位 對于 Linux 機器,咸魚可以寫個 shell 腳本或者直接批量使用 sed 命令就能 ......

    uj5u.com 2023-05-10 07:26:45 more
  • Spring AOP官方檔案學習筆記(四)之Spring AOP的其他知識點

    1.選擇哪種AOP (1) 使用Spring AOP比使用完整版的AspectJ更方便簡單,因為不需要在開發和構建程序中引入AspectJ編譯器以及織入器,如果我們只希望通知能夠在Spring Bean上執行,那么選用Spring AOP就可以了,如果我們希望通知能夠在不由Spring所管理的物件上 ......

    uj5u.com 2023-05-10 07:26:24 more
  • 關于并發編程與執行緒安全的思考與實踐

    并發編程的意義是充分的利用處理器的每一個核,以達到最高的處理性能,可以讓程式運行的更快。而處理器也為了提高計算速率,作出了一系列優化 ......

    uj5u.com 2023-05-10 07:21:07 more
  • 由淺入深學MySQL之事務全攻略

    前言 從今天開始本系列就帶各位小伙伴學習資料庫技術。資料庫技術是Java開發中必不可少的一部分知識內容。也是非常重要的技術。本系列教程由淺入深, 全面講解資料庫體系。 非常適合零基礎的小伙伴來學習。 全文大約 【1707】 字,不說廢話,只講可以讓你學到技術、明白原理的純干貨!本文帶有豐富案例及配圖 ......

    uj5u.com 2023-05-10 07:19:57 more
  • Python3.10動態修改Windows系統(win10/win11)本地IP地址(靜態IP)

    一般情況下,局域網里的終端比如本地服務器設定靜態IP的好處是可以有效減少網路連接時間,原因是程序中省略了每次聯網后從DHCP服務器獲取IP地址的流程,缺點是容易引發IP地址的沖突,當然,還有操作層面的繁瑣,如果想要切換靜態IP地址,就得去網路連接設定中手動操作,本次我們使用Python3.10動態地 ......

    uj5u.com 2023-05-09 08:37:46 more
  • Python3.10動態修改Windows系統(win10/win11)本地IP地址(靜態IP)

    一般情況下,局域網里的終端比如本地服務器設定靜態IP的好處是可以有效減少網路連接時間,原因是程序中省略了每次聯網后從DHCP服務器獲取IP地址的流程,缺點是容易引發IP地址的沖突,當然,還有操作層面的繁瑣,如果想要切換靜態IP地址,就得去網路連接設定中手動操作,本次我們使用Python3.10動態地 ......

    uj5u.com 2023-05-09 08:31:53 more