综述
计算机编程核心,或者说以后面对找工作,主要是以下几个大类的基础非常重要。
- 面向对象编程思想
- 算法
- 计算机网络与网络编程
- 操作系统
- 并发编程
- 人工智能与大模型
当然计算机会分为几个大方向,比如前端、后端、客户端等,但是考虑到技术深度和可成长性,个人推荐还是深入做后端研发。后端研发会包含非常广泛,包括常见等后端开发、大数据开发、大数据分析、搜广推算法等。
计算机和其他基础学科一样,基础很重要,而且很多时候需要了解一些数学知识,系统化的很多知识会在你们大学课纲里面体现,我这里不做非常详细阐述。大学本身的大纲是一个循序渐进适合绝大部分学生学习路线且以基础为主,但是很多时候没有配套足够的实验和动手,导致学习理解不够深入。我这的重点是以以后工作的角度,分享编程或者说工程师的核心链路来串出的学习路径。
所以一开始我考虑的路线首先是语言为主路线,以语言串出各种辅助技能。一般情况,必须要掌握好C语言,他是高级语言中最基础的,且能很好的契合汇编甚至机器语言(汇编会在你们的单片机课程里面学习,会让你们非常深刻的课程)。
所以咱一般来讲,先学C语言,再学C++(C++比较难,需要的计算机知识非常多,构建很复杂),再学一些高级语言(Java Python Golang,Java的实用性会比较多,Golang有C++基础会非常简单)。以语言为主,语言是工具,逐步丰富知识面。其中需要周期性联系编程能力和算法能力,leetcode就是一个很好的练习平台。
同时也建议去参加一些学校的技术团队,去打一些比赛,包括机器人或者编程相关的,这些帮助会非常大,计算机的学习最核心的就是需要结合项目多练,干中学,这样效率才高理解才会深刻。
学习路线
step1 初步了解计算机
目标:
- 对于计算机与发展史有个简单了解,且对于当下计算机的发展以及普及度有一定的认知
- 初步了解计算机基础组成,运作规律 (很多程序员可能觉得没啥用,但是其实用处很大,对于并发编程和操作系统设计会有跟深刻的理解,比如因为CPU的处理几级缓存带来的一致性问题等)
- 开始了解计算机语言和思想
学习参考:
B站 计算机基础
B站计算机基础2
B站0基础了解计算机组成原理
大学计算机基础教材
step2 构建基础编程环境,学习C语言
目标:
- 尝试学会使用linux操作系统与命令行工具
- 学会C语言基础语法和编程逻辑
- 学会C语言构建工具,并尝试理解Makefile(现在行业比较工业化的构建,都不写Makefile了,这种效率很低,但是可以掌握基础)
- 开始了解操作系统和程序的关系
- 开始了解多线程编程,理解多线程和进程的关系。尝试开始了解操作系统
学习参考:
- wubi 搭建 ubuntu操作系统 ubuntu, 百度搜一下
-
C语言:(只需要看前两本书即可,C语言本身东西并不多,设计也不复杂)
- 《C Primer Plus》
- 《C和指针》
- 《C陷阱与缺陷》(选读)
-《C专家编程》(选读)
B站上找一个播放较高的视频看看
尝试Ubuntu环境命令行编写C语言代码,用gcc构建程序,并运行 深入理解gcc构建
[更新到这里,持续更新中.....]
- 数据结构
- 编程范式
- 系统使用:《鸟哥的Linux私房菜》
step3 C++学习与深入理解操作系统
step4 算法基础
学习参考:
- 数据结构与算法
- 算法导论,麻省理工课程与书籍
开始每周leetcode刷题 1-3道
step5 机器学习与高级编程
学习参考:
- unix 环境编程
- unix 网络编程
- 并发编程
- 吴恩达机器学习
- 台大深度学习课程
- AIGC理论