后端基础入门技术栈简单小结(非常简单)
后端基础入门技术栈简单小结(非常简单)
本文章同步更新于:
简书:https://www.jianshu.com/p/c8c6f10850e2
CSDN:https://blog.csdn.net/ZH16_/article/details/109609147
前言
这篇博客简单总结了后端入门基础技术栈并提供了相关教程,旨在帮助广大对IT技术感兴趣,想要入门进行后端开发的同学。
当然第一次做这样的总结总是会有不足,所以希望各位读者能够指出这篇博客的错误、疏漏之处。
这篇博客主要分为三个部分:
一、通用技术栈,这一部分主要总结的是数据结构与算法、计算机组成原理、操作系统、计算机网络、数据库、设计模式等内容。这一部分内容是程序设计的基石,如果想做一个合格的程序员,这一部分一定一定要理解,最好要掌握。一般来说,这一部分的学习要1~2年,最少需要半年的时间。对于计算机专业的学生来说,因为他们在专业课上已经或多或少的学习过了,所以这一部分对他们来说比较简单;对于非计算机专业的学生来说,这一部分就比较耗时间了。
二、语言与框架,这一部分总结的是目前主流的后端开发语言以及对应的框架,学习了这部分内容基本上可以进行简单的接口开发,但要更进一步还需要良好的基础(第一部分)以及第三部分的学习。对于没什么基础的同学,这一部分的学习要从语言开始,可能需要半年到一年的时间;对于已经有较好基础的同学,这一部分基本上1、2个月就可以搞定(甚至不用)。
三、常用框架,这一部分主要总结的是诸如消息队列、分布式、高并发等后端开发的内容。
一、通用技术栈
1. 数据结构与算法
基本的数据结构:数组、链表、二叉树、队列、栈、Hash表,要了解它们各自的特点与操作(比如队列的先进先出,栈的后进先出,数组与链表各自适用的场景、二叉树节点的插入与删除、Hash的原理等),每个操作的复杂度分析等。除此之外,最好要理解红黑树、AVL树、Tire树、B树、B+树等的原理与实现。
基本的排序算法:冒泡排序、插入排序、选择排序、归并排序、快速排序、堆排序、桶排序等排序算法的特点与实现,以及复杂度分析。
算法设计思想:动态规划(一般来说,区分一个人有没有学过算法设计,就看他会不会动态规划),蛮力法、减治法、分治法、时空置换、迭代改进等,除此之外,还应该会算法的复杂度分析。
推荐阅读书籍:《数据结构与算法分析(C++版)》,《算法设计与分析基础》,《算法导论》(这个酌情看吧),《算法图解》
2. 计算机组成原理
计算机的基本组成:CPU、内存、主板、硬盘、键鼠、显示器等,简单理解各部分的作用。
存储器和IO:计算机中数据怎么存储,内存与硬盘区别、内存与硬盘的交互等。
计算机指令:程序执行的过程、数字电路、二进制编码等。
推荐阅读书籍:《计算机组成原理》,《深入理解计算机系统》
3. 操作系统
进程与线程:进程的模型、进程的层次结构、进程的状态、进程与线程的区别,不同线程模型的区别。
内存管理:地址空间、虚拟内存、页面置换算法、分页分段系统的设计问题等。
文件系统:文件的命名、结构、类型、访问、操作等,目录系统,文件系统的实现,文件系统的管理与优化,文件系统的实例等。
输入/输出:I/O的硬件原理,I/O的软件原理等。
死锁:资源的类型,死锁原因,死锁检测和恢复,死锁的避免和预防等。
安全:环境安全、操作系统安全、密码学原理、软件漏洞、防火墙等。
推荐阅读书籍:《现代操作系统》,《鸟哥的Linux私房菜》
4. 计算机网络
计算机网络和因特网:什么是因特网,计算机网络的核心,目前计算机网络的体系结构等。
应用层:应用层概念,应用层协议原理、Web和Http,DNS、FTP等。
运输层:运输层的概念,UDP、TCP,可靠数据传输原理,拥塞控制等。
网络层:网络层概念,虚电路和数据报网络,路由器原理,因特网的网际协议,路由选择算法等。
链路层:链路层概念,差错检测和纠正技术、多路访问链路和协议等。
推荐阅读书籍:《计算机网络 自顶向下方法》
5. 数据库
目前主流的数据库都是关系型的数据库,所以这里总结的也是关系型数据库的内容。
数据库:数据库系统的应用,关系型数据库与非关系型数据库,数据库体系结构。
关系模型:关系型数据库的结构,码,关系查询语言,关系运算等。
SQL:SQL查询的基本结构,基本运算,集合运算,空值、聚集函数、嵌套子查询,事物、完整性约束、函数、触发器等。
关系型数据库的设计:E-R模型,好的数据库设计的特点,范式理论,应用设计和开发等。
推荐阅读书籍:《数据库系统概念》
6. 设计模式
设计模式代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
推荐阅读书籍:《Head First 设计模式》
推荐文档:设计模式 | 菜鸟教程
二、语言与框架
个人建议,想要进行后端开发,最好还是学一学C或C++,这对学习其他语言有非常大的帮助。除此之外,最好要对前端技术有一些了解,比如html、css、js等,这会对后端开发有帮助。
目前后端开发的主流语言是Java,Python和Go,在这里先对Java进行总结,有时间再总结另外的语言。
Java
Java基础:
基础语法,8种基本类型,对象和类,变量类型,循环结构,条件语句,Java基础类库,Java数据结构等。
这一部分可以参考Java教程 | 菜鸟教程 。
Spring全家桶:
Spring:Spring核心原理(AOP与IOC)。
SpringMVC:model-view-controller,各层的含义以及实现。
SpringBoot:微服务架构,SpringBoot的原理实现。
推荐视频教程:
尚硅谷B站官方账号:https://space.bilibili.com/302417610?spm_id_from=333.788.b_765f7570696e666f.1
B站UP主遇见狂神说:https://space.bilibili.com/95256449?spm_id_from=333.788.b_765f7570696e666f.1
以上视频教程根据个人喜好及基础酌情观看,重在实践。
推荐文档:
Spring中文教程:https://www.w3cschool.cn/wkspring/
Spring Boot框架入门教程(快速学习版):http://c.biancheng.net/spring_boot/
Mybatis中间件
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
推荐文档:Mybatis官方文档
Java方面,想要进行基本的开发,掌握SSM(Spring+SpringMVC+Mybatis)框架或者SpringBoot+Mybatis就足够了。
在这里推荐一个文档JavaGuide ,这个文档对Java后端的知识点总结的很全,可以用来查漏补缺,但是具体的知识点还是建议看书或找更详细的教程。
Python
Python语言基础:
基础语法,条件语句,循环语句,变量类型,运算符,Python数据结构,文件I/O等。
这部分推荐阅读Python基础教程 | 菜鸟教程
Python后端框架:
这部分有Django,Flask等。
可以参考Django教程 | 菜鸟教程,Flask教程 | w3cschool。
Go
Go语言基础:
参考文档Go语言教程 | 菜鸟教程。
三、常用框架
高并发架构、分布式系统、高可用架构、微服务、海量数据处理等。
后端基础入门技术栈简单小结(非常简单)相关推荐
- Java后端程序员技术栈
Java后端程序员技术栈 它可以是知识提纲,便于快速复习与查阅 它也可以是你的学习规划,帮助小白快速了解学Java要走的路(当然你也可以选择搭配我的学习路线一起享用!) 相关链接: <gitee ...
- Java后端开发工程师技术栈整理
文章目录 Java后端开发工程师技术栈整理 常用工具 Java IDE 数据库客户端 数据库建模工具 SSH客户端 文本编辑器 Markdown编辑器 API调试工具 浏览器 压力测试工具 DevOp ...
- 华清远见重庆中心—后端基础阶段技术总结/个人总结
后端基础阶段技术总结 JAVA概述 1.java的历史 Oak(橡树)语言,由Green开发团队开发,主要用于微型嵌入式设备编程,第一次提出了开源协议 . Java之父 詹姆斯.高斯林 经历过Sun公 ...
- 新版思科CCNA认证1.0 零基础入门技术VTP协议解析-ielab网络实验室
新版思科CCNA认证1.0 零基础入门技术VTP协议解析-ielab网络实验室 VTP(VLAN Trunking Protocol):VLAN中继协议,是Cisco专用协议.也被称为虚拟局域网干道 ...
- Edgar校招后端学习--简历技术栈建立过程总结(持续更新)
写在前面 当自己真正开始梳理以往学过的知识,会发现很多点有遗忘或者当时了解的就不是很透彻.可以参考相关学过的课程,和别人的简历对自己的技术栈进行一个梳理 后面反思了一下 后面插入一条主线,其实以下问题 ...
- 前端基础:技术栈简介
一.VSCode 的使用 1.下载&安装 点击 VScode 官网 下载最新版本. 2.安装常用插件,如下: 二.ES6 1.简介 ECMAScript 6(简称ES6)是于2015年6月正式 ...
- 华清远见重庆中心--后端基础阶段技术总结/个人总结
目录 目录 目录 Java基础知识 java概述 JDK安装 JDK卸载 JDK版本切换 认识JetBrains 安装IDEA IDEA环境的认识 新建一个Java的项目 新建一个文件 第一个Java ...
- Blender基础入门(2):Blender简单渲染
文章目录 我个人的Blender专栏 前言 渲染基本常识科普 Blender渲染设置 Blender窗口分栏 分屏渲染 渲染设置 GPU渲染引擎推荐 最大采样 切换摄像机 渲染图片 渲染采样512和4 ...
- Apache Flink 零基础入门(三)编写最简单的helloWorld
实验环境 JDK 1.8 IDE Intellij idea Flink 1.8.1 实验内容 创建一个Flink简单Demo,可以从流数据中统计单词个数. 实验步骤 首先创建一个maven项目,其中 ...
最新文章
- 一篇文章学懂Shell脚本
- 实战SSM_O2O商铺_11【商铺注册】Controller层的实现
- 你最喜欢的 iOS 开发的技巧和提示有哪些?
- 手机百度输入法的用户体验
- 修改Android中的文件权限
- redis mysql 事务_Mysql与Redis事务
- [LeetCode][JavaScript]Palindrome Linked List
- C++头文件重复定义问题的处理(不会看看,会了防身!)
- 热烈庆祝阳光网驿-行业软件交流平台与北京汉邦极通科技有限公司成功合作
- 人人网主页登录_“人人网”回来了!网友炸锅:有人想找前女友,有人想删“黑历史”……...
- 从一个程序中生成另一个程序(资源法)
- angular RxJs
- Android 页面布局xd,页面布局(XD):小尺寸设备上的页面布局《 从设计到代码:布局设计 》...
- 谷歌搜索技巧(可看全球眼或某些站密码)
- mysql未开启binlog恢复_无全量备份、未开启binlog日志,利用percona工具恢复delete的数...
- 苹果商标计算机辅助设计,苹果 Apple MacBook Pro 15英寸 2019 详细评测报告
- MFC注册表CRegKey
- iOS Technical Support For All-AFastRecord
- 把握出租车行驶的数据脉搏 :出租车轨迹数据给你答案!
- 【vue+Element】 el-table根据换行符(回车)换行