本文也许适合:
- 非科班自学编程的同学
- 科班目前还比较迷茫的同学
路线图
我选择的是网易云课堂提供的专业路线图,有一定参考价值,重点课程下方添加红色横线。
这段时间,我也将按照这个顺序学习计算机专业课。
1 程序设计语言——C语言
C语言在大学里的地位目前仍是无法撼动的,大多数工科专业都会开设这门课,所以从C语言切入是个不错的选择,当然跳过C语言直接进行Java学习也并非不可。翁凯老师的C语言课程口碑还是不错的,bi站或者mooc都有资源,下方是C语言进阶慕课上的链接。
(现在是21年1月6日13:16,从现在开始学习,记录时间,完成后对文章进行完善!)
学习资源:
翁凯老师——C语言进阶
【0118更新】:
其实两天前就完成了C语言进阶课程的学习,这门课程还是相当有料的。比如:
可变数组与链表部分:
- 可变数组的缺陷(链表是如何弥补该种缺陷)
- 链表的函数实现(这一部分需要多思考,保证函数功能在多种场景下正确)
如何进行大程序设计
- main()里的代码太长适合分成几个函数
- 一个源代码文件太长适合分成几个文件
- 注意:两个独立的源代码文件不能编译形成可执行的程序
2 数据结构与算法
很多大公司,比如 BAT、Google、Facebook,面试的时候都喜欢考算法、让人现场写代码。有些人虽然技术不错,但每次去面试都会“跪”在算法上,很是可惜。那你有没有想过,为什么这些大公司都喜欢考算法呢?校招的时候,参加面试的学生通常没有实际项目经验,公司只能考察他们的基础知识是否牢固。
社招就更不用说了,越是厉害的公司,越是注重考察数据结构与算法这类基础知识。相比短期能力,他们更看中你的长期潜力。你可能要说了,我不懂数据结构与算法,照样找到了好工作啊。那我是不是就不用学数据结构和算法呢?当然不是,你别忘了,我们学任何知识都是为了“用”的,是为了解决实际工作问题的,学习数据结构和算法自然也不例外。
我们学习数据结构和算法,并不是为了死记硬背几个知识点。我们的目的是建立时间复杂度、空间复杂度意识,写出高质量的代码,能够设计基础架构,提升编程技能,训练逻辑思维,积攒人生经验,以此获得工作回报,实现你的价值,完善你的人生。所以,不管你是业务开发工程师,还是基础架构工程师;不管你是初入职场的初级工程师,还是工作多年的资深架构师,又或者是想转人工智能、区块链这些热门领域的程序员,数据结构与算法作为计算机的基础知识、核心知识,都是必须要掌握的。掌握了数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样。因为这样的你,就像是站在巨人的肩膀上,拿着生存利器行走世界。数据结构与算法,会为你的编程之路,甚至人生之路打开一扇通往新世界的大门。
上面这段话,源自https://time.geekbang.org/column/article/39972
学习资源:
3 计算机组成原理—操作系统
4 计算机网络
5 编译原理
我在这门课程下方为黄色标注,并不是认为这门课程不重要。只是不希望自己过分深入,因为的确需要花费大量的时间。