知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育

自学编程靠谱吗?

发表时间:2022-03-25来源:网络

基本上优秀的程序员都有过自学编程的阶段。

如果让我回到大学生涯,我一定会认认真真的学习下面的课程,起码我的头发可以少掉一半!

1、计算机组成原理

2、计算机操作系统

3、计算机编译原理

4、数据结构与算法

5、计算机网络

一、计算机组成原理

计算机组成原理这门课很好地向我们阐述了计算机是如何工作的,妹子咨询你电脑问题的时候,答案就藏在这门课程里面(大雾)。

推荐书籍:《深入理解计算机系统》

这本书是从程序员的角度来看待整个计算机系统的,所以是非常适合程序员的。但是这本书不仅仅包含了计算机硬件的相关知识,同时还包含了包括操作系统、计算机网络等相关知识。

一、数据结构

数据结构研究的内容就是如何按一定的逻辑结构,把数据组织起来,一般学习算法都是先从数据结构开始学习,先根据实际问题确定数据结构,然后在数据结构的基础上进行算法设计。

常见的数据结构有:

栈(Stack):栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。队列(Queue):队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。数组(Array):数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。链表(Linked List):链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。树(Tree):树是典型的非线性结构,它是包括,2 个结点的有穷集合 K。图(Graph):图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。堆(Heap):堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。散列表(Hash table):散列表源自于散列函数(Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。

数据结构之栈

数据结构之队列

线性表链式存储结构之单链表

链式存储结构之双向链表与跳表

【算法与数据结构】+一点点ACM从入门到进阶吐血整理推荐书单(珍藏版)

二、常用基础算法

常用的基础算法包括:分治算法、贪心算法、动态规划算法、二分查找算法和分支界限算法等,下面列举每个算法的详细教程:

浅谈什么是分治算法

五分钟了解一下什么是「贪心算法 」

动态规划之武林秘籍

二分查找就该这样学

二分查找算法详解

三、排序算法

排序算法最经典的莫过于八大排序算法了,分别是:插入排序、冒泡排序、选择排序、希尔排序、堆排序、归并排序、快速排序、桶式排序。

排序算法很重要,考试和面试都会考察,而且是必考,我把八大排序算法的原理和代码都整理出来了,看下面这篇文章就够:

十大经典排序算法动画与解析,看我就够了!(配代码完全版)

四、搜索算法

搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题解的一种方法。 现阶段常用的搜索算法有:枚举算法、深度优先搜索、广度优先搜索、剪枝算法、回溯算法等,以下是详细教程:

从简单二叉树问题重新来看深度优先搜索

回溯算法详解(修订版)

五、树与图

树与图相关是知识还是挺多的,而且很重要,想全面了解可以看书,推荐看《图解算法》,后面有下载链接。下面也整理了一些相关文章:

从简单二叉树问题重新来看深度优先搜索

几道和「二叉树」有关的算法面试题

详解什么是平衡二叉树(AVL)(修订补充版)

【面试现场】为什么 MySQL 数据库要用B+树存储索引?

字典树概念与题型解析

面试官:为什么 MySQL 的索引要使用 B+ 树,而不是其它树?比如 B 树?

浅谈什么是图拓扑排序

数据结构与算法——图论基础与图存储结构

数据结构与算法:三十张图弄懂「图的两种遍历方式」

数据结构与算法——图最短路径

六、优秀的算法书

在这里我也整理了一份由易到难的算法学习书单(附下载链接),希望能对大家在学习算法和找工作有所帮助!

1、《我的第一本算法书》

这本书是京都大学一个计算机教授和朋友联合出品的动画讲解算法的App 所衍生出来的书籍,非常适合新手朋友们。

里面没有枯燥的理论和复杂的公式,而是通过大量的步骤图帮助读者加深对数据结构原理和算法执行过程的理解,便于学习和记忆。

将本书作为算法入门的第一步,是非常不错的选择。

链接: https://pan.baidu.com/s/1pfaXybnmYSmr2TaEzWgOPA

密码: v3ml

2、《趣学算法》

本书从算法之美娓娓道来,没有高深的原理,也没有枯燥的公式,通过趣味故事引出算法问题,包含50多个实例及完美图解,结合学生提问,分析算法本质,并给出代码实现的详细过程和运行结果

本书可作为程序员的学习用书,也适合从未有过编程经验但又对算法有强烈兴趣的初学者使用,同时也可作为高等院校计算机、数学及相关专业的师生用书和培训学校的教材。


链接: https://pan.baidu.com/s/1hjDFbwCoThzzWGx

密码: q5rb

3、《啊哈!算法》

《啊哈!算法》一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法

其中涉及的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及的算法有排序、枚举、深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种最短路径算法、两种最小生成树算法、割点与割边算法、二分图的最大匹配算法等。


链接: https://pan.baidu.com/s/1J_aeRxaWm0_uc2K4yLMjpQ

密码: l55t


5、《剑指offer》

这本书大家一定如雷贯耳吧,基本上只要你是程序员就一定会用到这本书,书里面剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点,是程序员找工作必备的一本算法书。

链接: https://pan.baidu.com/s/1FPLLg8vwWy3IDNUC7HhPaA

密码: 6s41

6、《算法导论

这本书真的称得上是算法领域的“圣书”了,如果把它从头到尾看完并且搞明白了,那么恭喜你,年入百万不是梦!



2. 2019 王道考研 https://www.bilibili.com/video/BV19E411D78Q?p=1

既然说到了考研,那我就不得不提一下王道考研了,恭喜你发现了宝藏。王道考研的计算机网络视频,播放量非常多,而且老师是一位小姐姐,声音十分动听,声音这么好听的老师给你讲课,妈妈再也不用担心我的学习了呢,总之,这个视频的质量也非常高,弹幕全是对小姐姐的高度评价。(王道考研其他的视频也不错哦,暗示一下:操作系统,数据结构等等)


3. 韩立刚老师 计算机网络 https://www.bilibili.com/video/BV1gV411h7r7?p=1

韩立刚老师所讲的计算机网络视频,内容比较多,但是讲解的通俗易懂,并且老师讲课的经验也十分的丰富。配套的教材是谢希仁老师的计算机网络教材,韩老师的最近的一个视频视频比较新,播放量还比较少,但是他讲的是真的不错,相比于王道考研所讲的计算机网络,韩老师更加细致一些。


4. 计算机网络(谢希仁第七版)-方老师 https://www.bilibili.com/video/BV1yE411G7Ma?p=1

在计算机网络方面,我还想推荐的一位老师就是方老师,也是一位小姐姐老师。她的视频配套的教材也是谢老师的网络教材,在线看的小伙伴也超多,弹幕都是对方老师的评价。


二、数据结构与算法

相信很多小伙伴,学习数据结构、算法的时候,非常的头大,emmm.... 俺也一样。

1. 【郝斌】-数据结构入门 https://www.bilibili.com/video/BV11s41167h6?p=1

我个人觉得他讲得非常好,郝斌老师的思路是以初学者的思路来思考的,非常适合小白,你不理解的问题,基本上他都会详细说一下,有的地方他讲的不是非常的全,但是讲的比较深刻,课程的使用的书是严蔚敏的《数据结构》可能比较晦涩难懂,可以去看看《大话数据结构》或者《啊哈!算法》这两本书。

2. 数据结构-浙江大学 https://www.bilibili.com/video/BV1JW411i731?p=1

B站很多小伙伴都管陈越老师叫做陈越姥姥,陈姥姥的课简单易懂,二叉树和链表说的多,但是对于图太少,后面概念解释多程序少,对于新手不友好,并且这门课程到中后半段是另一位老师讲的,何老师。何老师讲解的也是非常的通俗易懂,并且拥有着强者的发型。

3. 数据结构与算法基础(青岛大学-王卓) https://www.bilibili.com/video/BV1nJ411V7bd?p=1

王卓老师基本上把大学数据结构期末考试的重点全部都讲了,内容和 408 高度吻合,也是非常的适合考验人,还有在这里提一下王道考研的数据结构还是很不错的,总之学习数据结构重点还是需要理解,要多做题才行。

4.尚硅谷 Java 数据结构与 Java 算法(Java数据结构与算法) https://www.bilibili.com/video/BV1E4411H73v?p=1

推荐了这么多 C 语言的数据结构,就来一个了 Java 语言的吧。尚硅谷--韩顺平老师的课程,韩老师视频内容全,并且每次课都会带着你写代码,把每一个例子都会实现,这也是张阿姨梦开始的地方。韩老师的口碑我就不多说了,评论弹幕都是对韩老师的“表白”。


5. 大雪菜 https://space.bilibili.com/7836741?spm_id_from=333.788.b_765f7570696e666f.1

给大家推荐一位关于 LeetCode 的大神,闫学灿老师,他的视频不仅会讲力扣的每日一题,还会讲解每一次力扣周赛的题目等等。你看就完了,yyds。

这里补充一下,想进大厂少不了学习算法和刷题,我的不少粉丝拿到腾讯字节快手offer,因为用了这套算法刷题笔记:

推荐我自己搭建的一个不错的算法学习网站,讲解视频短,每个视频都精心规划过,全部都有动画过程,争取五分钟讲清楚。


三、操作系统

伙计们,终于到了你们心心念念的操作系统 4 不 4~



2. 操作系统_清华大学(向勇、陈渝) https://www.bilibili.com/video/BV1js411b7vg?p=1

目前清华计算机系本科的操作系统课目前都是由这两位老师讲授(向勇、陈渝),网课内容和他们课堂授课内容是一致的,同时配有一套完整的实验,实验内容是从无到有地建立起一个小却五脏俱全的操作系统(ucore),能从头到尾做下来的收获绝对是听课所不能比的,理论课上老师照顾大多数人,娓娓道来。现在有很多同学已经整理出了这门课程的随堂笔记,这门课程强烈推荐!

3. 操作系统(哈工大李治军老师) https://www.bilibili.com/video/BV1d4411v7u7?p=1

整体看了一遍,个人觉得是 b 站上很不错的操作系统课程了(经典课程如 mit6.828 在 b 站上的似乎都没有字幕而且拍摄角度实数刁钻)。这门课的前几讲涉及 OS 启动(老师谜之口糊),需要一点汇编知识,不过遇到不会的直接网上搜即可,大可不必因为汇编而被劝退;之后的内容如多进程、信号量、内存管理等讲得很好,不做赘述。如果对这部分有不解的地方可以网上搜资料或者去看 b 站上新竹清华大学的 OS 课程最后在学这门课前建议对计算机有个整体认识,可以去学习一下经典的 csapp 或者 mit6.004(对应国内的计组,一个偏软件,一个偏硬件)

我花了一周的时间把计算机基础知识与操作系统的内容整理为 PDF,感兴趣的小伙伴可以免费获取。

四、计算机组成原理

1. 计算机组成原理(哈工大刘宏伟) https://www.bilibili.com/video/BV1t4411e7LH?p=1

刘宏伟老师主讲,他的课不仅适合考研人,也非常适合初学者,初学者也听得懂。建议 1.5 倍速食用。之前有一个一百多万播放量的视频,不知道为啥没了...

2. 计算机组成原理 清华大学刘卫东 https://www.bilibili.com/video/BV1c4411w7nd?p=1

来来来,清华的来了嗷,这门课是 2013 年的,距离 2021 年有点遥远。

刘卫东老师主讲,质量很高。我非常喜欢他讲话的逻辑和风格,看就完了,贼好。(收藏是点赞的六倍还多,就离谱哈哈哈)

五、编译原理

(点击收藏随即退出,编译原理已了然于胸)


来源:聊一聊我在 B 站上自学编程的经历吧 作者:cxuan

我整理了 4 本手册,全网累积下载100w次,几乎程序员人手一套,包含数据结构与算法、操作系统、计算机组成原理、计算机网络等硬核基础知识,图文+实战案例,平时开发+搞定面试,帮你快速建立对计算机科学的大局观,夯实计算机基本功,瞬间起飞~

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜