⑥ - 后端工程师通识指南

news2024/11/26 23:45:55
  • 📖 该文隶属 程序员:职场关键角色通识宝典

  • ✍️ 作者:哈哥撩编程(视频号同名)
    • 博客专家·全国博客之星第四名
    • 超级个体·COC上海社区主理人
    • 特约讲师·谷歌亚马逊演讲嘉宾
    • 科技博主·极星会首批签约作者

  • 🏆 推荐专栏:
    • 🏅 程序员:职场关键角色通识宝典
    • 🏅 程序员:职场效能必修宝典
    • 🏅 程序员:文心一言指令词宝典
    • 🏅 Python全栈白宝书
    • 🏅 ChatGPT实践指南白宝书
    • 🏅 产品思维训练白宝书
    • 🏅 全域运营实战白宝书
    • 🏅 大前端全栈架构白宝书

文章目录

  • ⭐ 后端工程师的诞生
  • ⭐ 后端工程师做什么
  • ⭐ 后端工程师的工作职责
  • ⭐ 后端工程师的核心技术
  • ⭐ 后端的职业发展与路径

就像是在上一章节介绍的那样,在互联网早期是没有前后端的说法的。技术相对简单,前端和后端的界限并不明显。但随着Web技术的不断发展和用户需求的日益复杂化,前后端分离的架构逐渐成为主流。这种架构将前端负责的用户界面和后端负责的数据处理与逻辑运算分开,使得两者能够更专注于自己的领域,并提高了开发效率。

⭐ 后端工程师的诞生

也是在这样的背景下,后端开发工程师的角色逐渐凸显出来。他们主要负责处理服务器端的逻辑运算、数据处理以及与数据库的交互等工作。随着技术的不断进步和应用场景的不断拓展,后端开发所涉及的技术栈也逐渐丰富和复杂化,包括后端语言、数据库、Web服务器、缓存系统、消息队列等等。

当然了,随着现在的云计算、大数据、人工智能等技术的一个兴起,后端开发工程师所需要承担的责任也就越来越大,一名合格的后端开发工程师的学习成本也是越来越重的,需要不断学习和掌握新的技术,以适应不断变化的市场需求和技术趋势。

⭐ 后端工程师做什么

“后端” 的说法其实就是相对于 “前端” 而言的,正式的称呼应该是 “软件开发” 或者是 “软件研发” 工程师,承担着软件后端开发的工作。如果说 “前端” 处理的是与用户交互的工作,那么 “后端” 处理的就是那些用户无法感知到的服务器端的逻辑运算、数据处理以及与数据库的交互等工作。

除此之外,后端开发工程师还需要负责 后端系统架构设计接口的设计需求功能的实现数据库设计与维护故障排查与系统调试 等等。

  • 后端系统架构设计:搭建后端所需要的支撑服务,以确保这些设计符合业务需求和性能要求。比如说系统的整体结构、模块划分、接口定义等等。
  • 接口的设计:针对不同的业务需求进行相应功能接口的设计,比如接口的协议定义、数据传输格式、正确的响应或者错误的返回状态等等。
  • 功能的实现:就是通过编写高质量的代码,完成具体的业务功能逻辑的实现。

目前在国内排名靠前的编程语言包含有 JavaC语言PythonGO语言PHP 等等。得益于当年阿里对 Java 的推崇,Java 的占比与需求在国内市场一直都是最大的;再比如Golang,出了背靠谷歌这种世界级的互联网大厂之外,字节与米哈游的异军突起也带起了国内对于 Go开发工程师 的市场需求;Python 就更不用说了,人工智能与大模型的飞速发展,更是让 Python 这种脚本性质的胶水语言一度占据编程语言排行榜第一的宝座。

所以,利用这些编程语言去完成对应软件程序的研发任务,就是后端开发工程师们的首要工作。

⭐ 后端工程师的工作职责

知道 “后端开发” 做什么,那么工作职责就清晰了。既然是做开发,就肯定会与产品经理打交道,就必然会参与到 “项目的需求分析与设计” 中去,再前置的话,可能也会参与到 “头脑风暴” 当中去,与产品经理产生第一次思维上的碰撞。

在需求确定之后,后端开发就会展开系统的设计与研发工作,制定产品交付的标准。在研发的过程中,最核心的其实就是研发了,这个过程需要进行代码的研发、单元测试等工作,以保证项目开发的进度和质量,在这一过程中,与后端开发打交道最多的,应该就是测试工程师了,一个与研发工程师相爱相杀的职业角色。

除了写代码之外,后端开发还负责相关的技术文档的撰写。在完成了测试工程师对项目的测试之后,配合产品经理一起完成上线与验收的工作。

需要注意的是,并不是说产品一上线就万事大吉了。也会针对线上出现的一些偶发性生产问题进行及时的响应,以保障系统的稳定运行。这些就是后端研发工程师的主要职责~

⭐ 后端工程师的核心技术

其实单单从 “后端工程师的核心技术” 来拆解的话,其实不是特别的严谨。因为光是主流的编程语言都不下十余种,比如 JavaC语言C++C#PythonGolangPHP.netRuby 等等。

这么多编程语言,都要学习么?并不是,一般情况下,那些掌握了三门以上编程语言的程序员,我们都会认为这是一个大佬。其实这是一个伪命题,如果与这些大佬接触的足够的深、足够的久,就会发现这些大佬掌握多种编程语言背后的逻辑其实就是他们掌握了计算机最根本的知识,也就是 操作系统数据结构计算机网络算法,还有一些 协议 ,这才是最根本的。

编程语言只是一个工具,在什么样的场景下,什么语言最合适就选择什么样的编程语言。如果一个程序员需要保持自己能够快速的接收新的知识,能够不被那么多纷繁复杂的技术所困扰,还是要回归到技术的本质上去,也就是计算机原理。如果基础知识足够的扎实,就可以很快的做出判断。一个优秀的程序员,基础最重要,因为基础不牢,地动山摇。当一个新的技术出现的时候,不要被那个新名词所迷惑,因为这种纷繁复杂的技术名词的背后,都存在着商业诉求在里面。

这些是从编程语言的角度所阐述的一个观点,在实际的开发工作中,也往往需要后端工程师掌握着多种编程框架。比如说使用 Java 的工程师就需要掌握 Spring全家桶Python 的后端开发就需要掌握 DjangoFlask 这两种分别适合大型、小型的 WEB开发框架,即使是作为新人的 Golang也有着自己的框架,GinBeegoEcho等等。其实大家也能看出来昂,每种语言都有自己所对应的必学必会的一些框架。

除了框架之外,还需要熟练使用多种数据库软件。像关系型数据库的 MySQLOracleSQLServerPostgreSQL ,非关系型的 MongoDBRedis ,如果是大数据方向的后端工程师,还需要掌握 HbaseNeo4J这种列存储数据库与图型数据库。

如果是开发的大型项目,随着系统的复杂度上升,为了提高系统的响应速度还需要引入ES、Redis做缓存,消息队列、MQ等中间件确保实现异步通信的可靠消息传输。常见的消息队列包括 RabbitMQKafkaActiveMQRocketMQ,课以满足不同场景下的需求。

在项目开发完成后,版本更新与迭代的过程中,还需要完成 持续集成和持续交付的动作,也就是 CICD。现在不懂没关系,以后学到了就懂了。在持续的版本更和迭代的情况下,持续交付和持续集成也是必须掌握的知识点。比较常用的有 Jenkins、Docker、K8S(Kubernetes)等容器技术,帮助我们进行发布与部署。

项目上线后,随着访问量的日益增加,原有的架构可能无法满足流量增加后的负载。这时候还需要引入分布式系统,所以这就要求后端工程师掌握一些分布式的系统设计、微服务等知识。

同时,为了保证我们系统的稳定,以及对生产环境的故障定位,也需要引入一些追踪的功能。比如说 Prometheus全家桶,除了这些核心组件外,通常也会将 Prometheus 与一些可视化工具(如Grafana)结合使用,可以通过更直观的数据展示和警报通知快速的定位故障。

以上这些就是 后端开发工程师 所涉及到的一些核心的技术,无论是深度还是广度,都是需要花费较多的时间进行技术的打磨的。

⭐ 后端的职业发展与路径

后端开发的职业发展路径是非常具有代表性的,大部分的技术大佬、CTO、技术合伙人几乎都是这么过来的。据不完全统计,大多数互联网的技术侧的高管,都是后端开发出身。从初级、中级到高级,再到资深这个级别的分水岭,选择走管理路线是多数后端工程师的不二选择。

随着这几年一些不好的声音被无限的放大,相信众多小伙伴最关心的就是后端工程师的收入是怎么样的,还有没有必要继续学习后端。

以上海工作3-5年的java开发为例,java的下位和上位差距更大。有的人工作个三年,年薪刚刚突破十万,而有的人已经超过三十万了,高位的差距足足超过了前端研发十万,年薪超过二十万的占比更是有43%。所以,看到这里,大家还会质疑后端开发的前景吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1631710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于STM32单片机的心率、血氧、温度检测系统设计与实现

基于STM32单片机的心率、血氧、温度检测系统设计与实现 摘要:本文主要设计并实现了一个基于STM32单片机的心率、血氧和温度检测系统。该系统使用MAX30102传感器采集心率和血氧浓度,LMT70传感器用于温度检测,同时通过OLED显示屏展示实时数据。…

[BT]BUUCTF刷题第25天(4.28)

第25天&#xff08;共3题&#xff09; Web [CISCN 2019 初赛]Love Math 打开网站就是一段泄露的源代码&#xff1a; <?php error_reporting(0); //听说你很喜欢数学&#xff0c;不知道你是否爱它胜过爱flag if(!isset($_GET[c])){show_source(__FILE__); }else{//例子 c…

使用 xe2 调整 3dTileset 模型位置并获取模型矩阵 modelMatrix

使用 xe2 调整 3dTileset 模型位置并获取模型矩阵 modelMatrix Demo 获取改变后的模型的 modelMatrix src\examples\tile\edit\offset\index.html 目录下&#xff0c;设置 3dTileset 地址&#xff0c;拖动模型&#xff0c;监听 modelMatrix 变化。

Linux(Centos 7)环境下安装wget,并且更换阿里云镜像

Linux(Centos 7) Minimal 安装后&#xff0c;由于没有预装wget&#xff0c;在使用wget命令去下载安装相关应用时&#xff0c;提示&#xff1a;“wget: command not found” 先在Linux服务器窗口中&#xff0c;输入如下命令&#xff0c;检查Linux服务器有没有安装过wget。 rpm -…

ubuntu22.04 修改内核源码教程

1. 确认当前内核版本 uname -a 2. 去ubuntu官网下载对应版本内核源码 6.5.0-28.29 : linux package : Ubuntu (launchpad.net) 3. 准备编译环境 sudo apt-get install libncurses5-dev libssl-dev build-essential openssl flex bison libelf-dev tar -xzvf linux_6.5.…

【多模态大模型】AI对视频内容解析问答

文章目录 1. 项目背景2. 直接对视频进行解析进行AI问答&#xff1a;MiniGPT4-Video2.1 MiniGPT4-Video效果 3. 对视频抽帧为图片再进行AI问答3.1 视频抽帧3.2 图片AI问答3.2.1 阿里通义千问大模型 Qwen-vl-plus3.2.2 Moonshot 1. 项目背景 最近在做一个项目,需要使用AI技术对视…

Python 语音识别系列-实战学习-语音识别特征提取

Python 语音识别系列-实战学习-语音识别特征提取 前言1.预加重、分帧和加窗2.提取特征3.可视化特征4.总结 前言 语音识别特征提取是语音处理中的一个重要环节&#xff0c;其主要任务是将连续的时域语音信号转换为连续的特征向量&#xff0c;以便于后续的语音识别和语音处理任务…

qt学习篇---C++基础学习

本学习笔记学习下面视频总结&#xff0c;感兴趣可以去学习。讲的很详细 【北京迅为】嵌入式学习之QT学习篇_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1tp4y1i7EJ/?spm_id_from333.337.search-card.all.click&vd_source8827cc0da16223b9f2ad8ae7111de9e2 目录 C…

Spring ai 快速入门及使用,构建你自己的ai

第一步&#xff1a;创建springboot项目 jdk必须是17及以上 1.8用不了 第二步 选择web和ai的依赖 选择openai 第三步 需要配置openai key 配置 分享个免费或的apikey的地方New API 会免费赠送1刀的token spring.application.namespringAI spring.ai.openai.base-urlhttps://ap…

封装形式,进化,DIP封装及键出方法

本文主要讨论芯片封装的主要形式&#xff0c;概念&#xff0c;以及芯片封装的演化&#xff0c;最后以DIP封装为例&#xff0c;分析键出方式。 1-IC封装的形式 IC 封装是指将组成电子器件的各个组成部分&#xff0c;包括半导体芯片、基板、管脚连接线等&#xff0c;按照要求布局…

【maven】pom文件详解和延伸知识

【maven】pom文件详解 【一】maven项目的pom文件详解【1】maven项目的目录结构【2】根元素和必要配置【3】父项目和parent元素【4】项目构建需要的信息【5】项目依赖相关信息&#xff08;1&#xff09;依赖坐标&#xff08;2&#xff09;依赖类型&#xff08;3&#xff09;依赖…

文件上传安全以及防止无限制文件上传

文件上传安全以及防止无限制文件上传 在网络应用中&#xff0c;文件上传是一项常见功能&#xff0c;用户可以通过它上传图片、文档或其他媒体文件。然而&#xff0c;如果没有适当的安全措施&#xff0c;文件上传功能可能成为安全漏洞的源头。本文将探讨文件上传过程中的安全风…

在网站源码后台增加响应式布局

一本教材上的网站源码&#xff0c;后台在手机上查看还是按照电脑的页面样式&#xff0c;不方便查看和发布新内容。教材上讲了响应式布局。对于页面结构简单的网站&#xff0c;可以利用响应式&#xff0c;使页面自动适用各种屏幕的分辨率。 今天在一个网站源码的后台使用了响应…

夸克网盘免费领取1TB空间的方法

夸克网盘背靠阿里这颗大树&#xff0c;经历了这两年的发展&#xff0c;用户规模早已是千万级体量&#xff0c;用户体验个人也觉得非常不错&#xff0c;并且在日臻完善的路上&#xff0c;必会越走越远。现在已经不能领取一个月会员&#xff0c;也没有了2TB免费空间的说法&#x…

基于python-flask技术的社区信息交流平台【数据库+15000文档】

预览 介绍 系统只需使用者通过电脑浏览器即可实现系统的访问和操作的WEB模式的信息化系统。为了保证系统数据的准确性、安全性的数据存储&#xff0c;系统应用MySQL数据库进行系统数据存储服务。根据对社区工作的深入调研和对社区居民的走访调查&#xff0c;详细分析整体系统的…

vue2左侧菜单栏收缩展开功能

目录 1. Main.vue页面代码 a. 修改侧边栏属性 b. 修改头部导航栏 c. 定义我们的变量 d. collapse函数 2. Header.vue页面代码 3. Aside.vue页面代码 vue2左侧菜单栏收缩展开目前是非常常见的&#xff0c;我们在日常开发过程中经常会碰到。这一小节我们就详细了解一下这个…

Spring IOC(二)

1. Bean的定义与获取 1.1 定义Bean 在Spring 中定义Bean的方式主要有三种&#xff1a; 1、基于XML配置文件的方式&#xff08;了解&#xff09;&#xff1a;通常会在配置文件中使用<bean>标签来定义Bean&#xff0c;并设置Bean的属性、依赖关系等信息。 2、基于注解的方…

基于Spring Boot的商务安全邮件收发系统设计与实现

基于Spring Boot的商务安全邮件收发系统设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 已发送效果图&#xff0c;用户可以对已发送信息…

javaweb学习week6

javaweb学习 九.登录认证 5.登录后下发令牌 生成令牌&#xff1a;引入JWT令牌操作工具类&#xff0c;登录完成后&#xff0c;调用工具类生成JWT令牌&#xff0c;并返回 代码实例&#xff1a; 6.Filter入门 概念&#xff1a;Filter过滤器&#xff0c;是Javaweb三大组件之一…

构建本地大语言模型知识库问答系统

MaxKB 2024 年 4 月 12 日&#xff0c;1Panel 开源项目组正式对外介绍了其官方出品的开源子项目 ——MaxKB&#xff08;github.com/1Panel-dev/MaxKB&#xff09;。MaxKB 是一款基于 LLM&#xff08;Large Language Model&#xff09;大语言模型的知识库问答系统。MaxKB 的产品…