程序员练级之路(更新时间:2022年12月17日)
1.前言
17年本科毕业之初我还是做硬件的(焊接电路板,调试硬件这种),我可以编写基本的需求代码,但是面对复杂的需求,更高的性能要求,还是感觉力不从心,相信很多做嵌入式的小伙伴不管是做软件的还是硬件的都有过这感觉,这感觉让人很不爽,我也一直在探索原因,我潜意识知道是因为基础知识不够,但是到底是什么基础**(海量的知识,纷繁错杂的学习曲线真不是好选择的)**,我的方法就是不停的学习,看前辈的方法,在实践,这样循环往复。
然后机缘巧合看了 陈皓 老师的 程序员练级攻略(2018) 这篇文章,很有启发。这文章按陈皓老师的话说是他20年的学习总结,他说作为一个技术人应该抱着10年甚至更久的目标去学习,所以我就是在此基础上也梳理一个我自己的全栈学习路线,可能有些技术嵌入式是不需要的,但是我也列上了,希望也给有困惑的小伙伴以帮助。
所以这篇文章并不止是针对嵌入式行业而言,而是计算机软件的架构,是适用于各种IT领域内的岗位。
2.正文
★高级嵌入式工程师进阶之路
①-嵌入式物联网编程入门
②-STM32深入实践教程
③-嵌入式Linux深入实践教程
④-嵌入式C++与QT实践(上位机)
⑤-嵌入式C++与QT实践(安卓端)
⑥-Altium Designer硬件实践
⑦-嵌入式高级C语言
⑧-嵌入式数据结构及算法
⑨-嵌入式软件面试题精选
一、入门篇
- 零基础启蒙
1.1 程序员职业规划
1.2 程序员每日英语
1.3 读书 - 编程入门(适合所有人)
2.1 入门Python
2.2 入门JavaScript
2.3 入门 Linux(更新中) 玩转Ubuntu
2.4 入门Web 编程(搭建个人网站) - 正式入门
3.1 网络协议
3.2 数据库
3.3 版本管理工具(Git & GitHub)
二、程序员修养篇
三、专业基础篇
- 编程语言(更多的是我的技术栈,这个可以自己选择)
1.0 汇编语言(选学,深入底层需要)
1.1 C 语言
1.2 C++
1.3 Python
1.4 Java
1.5 GO - 理论学科
2.1 数据结构与算法
2.2 计算机网络
2.3 计算机操作系统
2.4 计算机组成原理
2.5 编译原理
2.6 离散数学 - 系统学科(是指系统层的思考能力)
3.1 计算机操作系统
3.2 网络系统
3.3 数据库系统
四、软件设计
- 编程范式
1.1 面向对象编程
1.2 函数式编程
1.3 指令式编程 - 设计模式
五、高手成长篇(根据自己职业规划选择)
- 系统底层(主要是Linux )
- 分布式架构
- 技术获取能力
- 容器化和自动化运维(Docker 和 Kubernetes为例)
- 云计算(以 AWS 为例)
- 机器学习和人工智能
六、职业规划
- 找到喜欢的职业
- 面试攻略