编程基础的知识主要有五个部分:
- 数据结构
- 算法
- 计算机网络
- 学习一门编程语言
- 操作系统
一、数据结构怎么学?
打好C语言基础是在为学数据结构做准备,C语言学得差不多了,就可以开始学习数据结构。
数据概念
细分为以下这五个方面
- 数据
- 数据项
- 数据元素
- 数据对象
- 数据类型
数据:
数据是信息的载体,是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整形、实型等数值类型,还包括字符及声音、图像、视频等非数值类型
数据项:
构成数据元素不可分割的最小单位
数据元素:
1.是数据的基本单位,在计算机程序中通常作为一个整体考虑而处理
2.也被称为元素,或称为记录,结点或顶点。
3.一个数据元素可由若干个数据项组
数据对象:
是性质相同的数据元素的集合,是数据的一个子集
列如:
整数数据对象是集合N={-1,0,1,23,4..}
人员表也可看做一个数据结构
它们四个之间的关系 数据>=数据对象>数据元素>=数据项
对 C 语言还不太熟练的时候,学习数据结构时可以找一本经典的数据结构书,看完一个数据结构后用 C 语言将其实现。开始时的实现肯定会有困难,那么请 google 下会有很多优秀的数据结构源码的。
小白轻松入门c语言13天 :C语言基础教程【源码,笔记,软件,案例全,初学者最值得收藏】
C语言数据结构 :C语言数据结构 培养架构师思维
二、算法怎么学?
一.入门系列
推荐理由:通过图片,打比方等通俗易懂的方法讲述算法的书籍让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础。
1.1《啊哈!算法 啊哈磊》
1.2《算法图解》
1.3《妙趣横生的算法(C语言实现 第2版)》
1.4《趣学算法》
1.5《大话数据结构》
二.进阶系列
推荐理由:在基本入门算法书的调教和领悟下,渐渐懂得一些基础算法是什么,现在就是进阶系列可以参阅,力荐《算法导论》《编程原本》,经典款不解释,当然这些书最好是在入门后再看合适,还有王晓东那本算法书也很不错,有几个版本,可以挑选看还附有课后答案。
2.1《算法导论英文版第三版》
2.1《算法导论中文版》
2.2《算法 (第4版)》
2.3《数据结构与算法 Java版》
2.4《Algorithms算法概论中文版》
2.5《算法心得-高效算法的奥秘(原书第2版)》
三.算法题系列
推荐理由:一些题海讲解具体的算法思想应用在题目上是怎么求解的,想刷题的可以看看结合各大OJ leetCode一起学习。多刷题总不会错。
3.1《挑战程序设计竞赛(第2版)》
3.2《算法艺术与信息学竞赛(清华大学出版社)》
3.3《算法谜题》
3.4《编程高手箴言》
四.实用工作系列
推荐理由:在面试和工作中经常要用到的算法讲解,以及一些过来人工程师的心血总结,建议在面试前翻看,提升思维广度,外加一些实操。
4.10《算法与数据结构-实用算法基础教程》
4.1《编程之法 面试和算法心得》
4.2《程序员代码面试指南 IT名企算法与数据结构题目最优解 》
4.3《算法Ⅰ-Ⅳ(C 实现)–基础、数据结构、排序和搜索(第三版)》
4.4《程序员实用算法》
4.5《编程珠玑(第2版)》
五.算法奇门遁甲系列
推荐理由:包括一些可能在图形学,游戏设计,数据挖掘方面的算法书,偏冷门,乃大佬可以赏读的系列书籍
5.1《matlab数学建模算法》
5.2《常用数据挖掘算法总结及ython实现》
5.3《机器学习十大算法》
5.4《计算机程序设计艺术 The Art o Comuter rogramming 第2卷(第3版)》
5.5《算法百科 Encycloeia o Algorithms》
总结:例如对于平衡树,可能你跟着书本的代码实现之后,过阵子你就忘记,不过这不要紧,虽然你忘记了,但是如果你之前用代码实现过,理解过,那么当你再次看到的时候,会很快就记起来,很快就知道思路,而且你的抽象能力等等会在不知不觉中提升起来。之后再学习红黑树啊,什么数据结构啊,都会学的很快。
https://visualgo/en 可视化学习网站
https://algs4.cs.princeton.edu/home/ 算法官网
三、计算机网络怎么学?
书籍入门可参考以下:
如果你是非计算机专业的小白,对于计算机网络一窍不懂,连最基本的HTTP都没听过,那我建议你先去看看《网络是怎样连接的》。
网络是怎样连接的
这本书会从总体为你讲清楚计算机发送请求的整个过程!
图片收集网络
四、学一门编程语言
推荐java和python,java怎么学都不会错,想在学习时间上短点选python。
java相关:
学习教程 | 第1阶企业级开发—Java基础 javawe | 第1阶段配套资料 |
1 | java零基础入门到精通24天 | https://www.bilibili/video/BV18J411W7cE/ |
2选一 | 30天精通JavaWeb(IDEA版) | https://www.bilibili/video/BV1qv4y1o79t |
2选一 | 超系统的JavaWeb快速入门(27天-eclipse版) | https://www.bilibili/video/BV1mE411h7Co |
学习教程 | 第2阶企业级开发—基础框架 | 第2阶段配套资料 |
1 | Maven从基础到高级应用 | https://www.bilibili/video/BV1Ah411S7ZE |
2 | Spring高级之注解驱动开发详解 | https://www.bilibili/video/BV1hE411o7w7 |
3 | SSM框架Spring SpringMVC MyBatis全覆盖_SSM整合 | https://www.bilibili/video/BV1WZ4y1P7Bp |
4 | 版本控制Git | https://www.bilibili/video/BV1MU4y1Y7h5 |
5 | springboot全套 | https://www.bilibili/video/BV1Lq4y1J77x |
6 | 全面学习Mybatis插件之Mybatis-Plus | https://www.bilibili/video/BV1rE41197jR |
学习教程 | 第3阶段企业级开发—微服务框架 | 第3阶段配套资料 |
1 | ELK高级搜索 | https://www.bilibili/video/BV1Nt4y1m7qL |
2 | mongodb基础到进阶 | https://www.bilibili/video/BV1bJ411x7mq |
3 | rabbitMQ | https://www.bilibili/video/BV15k4y1k7Ep |
4 | Redis入门到精通 | https://www.bilibili/video/BV1CJ411m7Gc |
5 | 分布式开发框架Dubbo | https://www.bilibili/video/BV1VE411q7dX |
6 | 分布式开发框架Zookeeper | https://www.bilibili/video/BV1M741137qY |
7 | 全面解剖RocketMQ和项目实战 | https://www.bilibili/video/BV1L4411y7mn |
8 | 容器化技术Docker精讲 | https://www.bilibili/video/BV1CJ411T7BK |
9 | 微服务开发框架SpringCloud | https://www.bilibili/video/BV1eE41187Ug |
学习顺序 | 第4阶企业级开发—项目实战 | 第4阶段配套资料 |
1 | 传智健康项目 | https://www.bilibili/video/BV1Bo4y117zV |
2 | 黑马程序员iHRM 人力资源管理系统 | https://www.bilibili/video/BV18A411L7UX |
3 | Java项目《万信金融》企业级开发实战 | https://www.bilibili/video/BV1Ub4y1f7rk |
4 | 好客租房项目 | https://www.bilibili/video/BV1sZ4y1F7PD |
5 | 品优购V1.3.1项目实战 | https://www.bilibili/video/BV1mi4y1L7Ht |
6 | Java大型分布式微服务闪聚支付项目 | https://www.bilibili/video/BV17v411V79c/ |
7 | Java集信达短信平台实战 | https://www.bilibili/video/BV1Jb4y1d7GY |
学习教程 | 第5阶工作后进阶提升—选学-【JDK8-15新特性】 | 第5阶段配套资料 |
1 | JavaJDK新特性详解8-13合集 | https://www.bilibili/video/BV1zJ411R7uQ |
2 | jdk14新特性 | https://www.bilibili/video/BV1qp4y1C7iu |
3 | jdk15新特性 | https://www.bilibili/video/BV1Ei4y1P7yX |
4 | java设计模式(图解 框架源码分析 实战) | https://www.bilibili/video/BV1Np4y1z7BU |
5 | Netty网络编程 | https://www.bilibili/video/BV1py4y1E7oA |
6 | 并发编程 | https://www.bilibili/video/BV16J411h7Rd |
7 | 解密JVM | https://www.bilibili/video/BV1yE411Z7AP |
8 | 数据结构与算法 | https://www.bilibili/video/BV1iJ411E7xW |
9 | 4天oracle轻松入门 | https://www.bilibili/video/BV1KJ411h7NH |
10 | MySQL高级教程 | https://www.bilibili/video/BV1zJ411M7TB |
11 | Elastic-Job分布式任务调度-服务中间件 | https://www.bilibili/video/BV1cE411h7e2 |
12 | Java报表数据可视化教程 | https://www.bilibili/video/BV1eA41157va |
13 | Java日志热门框架 | https://www.bilibili/video/BV1iJ411H74S |
14 | Java在线支付(微信 支付宝) | https://www.bilibili/video/BV1LU4y1h736 |
15 | Jenkins教程 | https://www.bilibili/video/BV1kJ411p7mV |
16 | lucene视频教程 | https://www.bilibili/video/BV1eJ411q7nw |
17 | Spring Security Oauth2.0认证授权专题 | https://www.bilibili/video/BV1VE411h7aL |
18 | 安全框架Spring Security深入浅出 | https://www.bilibili/video/BV1fE411i7jt |
19 | 黑马程序员Solr从基础到项目实战 | https://www.bilibili/video/BV1dh411Q7Qu |
20 | 全面讲解百度地图原理与应用 | https://www.bilibili/video/BV1Wa4y1e7AK |
21 | 数据层全栈方案 SpringData 高级应用 | https://www.bilibili/video/BV1RE41167Pk |
22 | 微服务架构的分布式事务应用及解决方案 | https://www.bilibili/video/BV1GJ411m73n |
23 | 微服务架构的分布式事务控制及解决方案 | https://www.bilibili/video/BV1Q4411y7ip |
24 | 模板引擎VelocityTools深度使用 | https://www.bilibili/video/BV1hK4y1G7Np/ |
25 | 由浅入深掌握Shiro权限框架 | https://www.bilibili/video/BV1j54y1t7jM |
26 | Java-nginx分布式框架 | https://www.bilibili/video/BV1ov41187bq |
27 | 最新工作流引擎Activiti7基础与进阶 | https://www.bilibili/video/BV1H54y167gf |
python相关:python web 开发 爬虫 阶段学习和时间分配
合理分配时间 | 学习阶段 | 学习教程 |
40个小时 | 第一阶段:Python基础--从入门到精通 | https://www.bilibili/video/BV18J411W7cE |
70个小时 | 第二阶段:Python进阶--Web核心技术 | https://www.bilibili/video/BV19441137xy |
5个小时 | Python的mysql数据库精讲,要仔细研读呦 | https://www.bilibili/video/BV1vi4y137PN |
3小时 | 第三阶段:Python数据采集 | https://www.bilibili/video/BV1464y1c7Eq |
4.2小时 | Python爬虫基础,快速入门Scrapy爬虫框架 | https://www.bilibili/video/BV1jx411b7E3 |
82个小时 | 第四阶段:Python企业实战项目 | https://www.bilibili/video/BV1nf4y1k7G3 |
五、怎么学操作系统?
操作系统的核心,就是由下面这些东西构成的:
- 管理程序运行:线程管理、进程管理
- 管理内存资源:内存管理
- 管理硬盘资源:文件系统
- 管理网卡资源:网络协议栈
- 管理输入输出:中断管理、同步与异步
- 为应用程序提供接口:系统调用
转csdn:一名教师的建议:
想学操作系统的同学,推荐以下教材供选择:
概念和理论:《现代操作系统》、《操作系统概念》
基于Unix:《Unix操作系统设计》
基于Linux:《深入理解Linux内核》
基于Windows:《深入解析Windows操作系统》
操作系统设计:《操作系统设计与实现》
源代码分析:《Linux内核源代码情景分析》
相关教程:Linux系统操作教程2天快速入门linux项目搭建_哔哩哔哩_bilibili
最后共勉一句人生感悟:不要因为怕伤害别人就把会让自己为难的事情应承下来,很多时候该说就得说,该拒绝就得果断拒绝。自己忙的不可开交的时候,就不要答应到处救火;触碰底线的时候,就该果断指出;没法回应的感情就该早些把话说清。扭捏最终只会导致伤人伤己,说出来反而会更好,学会拒绝是必修课。
持续输出惊喜文章,喜欢可以关注三宝哟