字节资深程序员经验分享——学习后端之路
入门后端
- 后端没有界面,代码写完不知道能有什么用、能给谁用。
选一个熟悉的编程语言,例如go、java,自己写一个网站,有文章发布和展示功能。这样就能直观的感受到后端在互联网世界中的作用。青训营的大项目就能起到这个作用。 - 我知道后端程序可以做数据的增删改查了,我要深入的去学习一个语言的技术栈。选哪个呢?
Java、Golang、Python、C/C++等等。- 服务端方向:字节Golang;美团、阿里、京东等Java;百度C++/PHP/Golang
- 大数据方向:Java
- 中间件方向:Java/C++/Golang/Rust
学习后端的知识体系
很多、确实非常多。慢慢来,就从青训营的大项目开始:Golang、MySQL,先从这两项开始吧~
【Golang】: slice、map、goroutine、并发控制(锁)。上面4项在什么场景使用,底层数据结构是什么。
【MySQL】︰索引的数据模型是什么、实际存储在硬盘上的物理模型是什么。
可以从Golang和MySQL慢慢拓展到更多的知识领域。例如:高性能、高并发、分布式等。在青训营的后端课程中,也涉及到这些方向。
面试时,如果能把数据结构说清楚是非常有优势的。工作中我们要做到对一个系统熟悉,核心还是要了解到数据在系统中数据是怎么存的,怎么流转的。
主题 | 描述 |
---|---|
计算机基础 | 数据结构、算法、计算机组成原理、计算机网络、操作系统、编译原理 |
Linux | Linux基础操作、Unix环境编程、网络编程 |
数据库 | 基础理论ACID、MySQL、NoSQL |
编程语言 | Java、Go、C/C++、Rust |
设计模式 | 23种设计模式 |
版本控制 | Git |
工具 | IDE、Vim、Emacs、SSH |
中间件 | API网关、Web/RPC框架、消息队列、缓存、定时调度、数据库中间件ORM、日志系统、配置中型 |
分布式 | 一致性/CAP、事务、幂等、微服务、拓展性 |
高并发、高性能、高可用 | C10k、进程、线程、异步、池化、缓存、CDN、集群、负载均衡、限流、容灾、多活 |
搜索引擎 | 搜索引擎原理、lucene、ES |
虚拟化 | Docker、servicemesh |
安全 | Web安全/CSRF/XSS/DDos、加密算法、OAuth2.0/SSO |
大数据 | 统计学/概率论、HDFS、HIVE、Spark、Flink |
算法 | 离散数学、线性代数、机器学习 |
关于职业规划
通常意义上一个好的开局:去大公司,第一份工作方向就是就是喜欢长期深入的方向。
如果一开始没办法进入大公司,那么就要在小公司里边工作、边深入学习你工作中使用的技术。深入学习的套路依然还是,搞清楚你用到的框架是实现原理是什么,你用到的数据库实现原理是什么。同时要记得去刷LeetCode。然后找机会进大公司。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 王翊珩!