计算机基础学习书籍和视频:https://blog.youkuaiyun.com/m0_37907797/article/details/102618796
嵌入式书籍推荐https://zhuanlan.zhihu.com/p/353349751
MOOC视频课程C语言:https://www.icourse163.org/course/0809ZJU007-9001
MOOC视频课程数据结构:https://www.icourse163.org/course/ZJU-93001
计算机基础课:
一、对于数学,我们必须掌握四门课程:
- 高等数学
- 离散数学
- 线性代数
- 概率论与数理统计
二、专业基础课
1、计算机组成原理
2、计算机操作系统
3、计算机编译原理(选修)
4、数据结构与算法
5、计算机网络
1、计算机组成原理
计算机组成原理这门课很好地向我们阐述了计算机是如何工作的,妹子咨询你电脑问题的时候,答案就藏在这门课程里面(大雾)。
推荐书籍:《深入理解计算机系统》
这本书是从程序员的角度来看待整个计算机系统的,所以是非常适合程序员的。但是这本书不仅仅包含了计算机硬件的相关知识,同时还包含了包括操作系统、计算机网络等相关知识。
2、计算机操作系统
清华大学有实验和配套公开课:https://www.zhihu.com/question/27871198?rf=281318989
2.网易云课堂李治军老师的操作系统课程,讲的通俗易懂,用的是linux0.11的源码,真的很好。
无论你学习什么编程语言,和都避免不了和操作系统打交道,比如你学习 Java,用到多线程技术,实际上操作系统才是负责管理进程和线程的;比如你学习到内存分配的知识,c++里可以直接分配一段内存,此时实际上是调用操作系统提供的API进行内存分配。
如果不懂操作系统,你在未来学习编程语言的高级特效,涉及到线程进程调度,内存分配,或者是学习Linux相关的知识时,都会一头雾水,所以,只有学会了操作系统,我么才能够更好地学习其他语言和技术。
基于此,计算机操作系统的知识点频繁出现在笔试环节。
毕业的程序员或者非科班的程序员可以看看下面的两篇文章,就当再复习学习一遍。
3、计算机编译原理
首先正式一个问题:编译原理并非随随便便就能入门的!
换言之,需要准备一些基础知识在学习。
编译原理的学习和实践通常基于对计算机编译过程、计算机基本工作原理、甚至一定的数学知识有一定积累,这些知识分别分布并应用在了编译原理的不同阶段。没有这些基本知识的积累,很快就会在某个阶段由于功底不够而无法再继续后面的学习。
所以,先认认真真的积累上述的一和二在入门学习吧。
4、数据结构与算法
相信无论是已经毕业的同学还是正在学校学习的同学,都或多或少地被数据结构与算法这门课给折磨过。数据结构与算法这门课开篇就讲了一个非常重要的概念:程序 = 数据结构 + 算法,对于初学者可能还不能完全地理解这句话,不过对于已经工作两三年的同学相信对这句话是深信不疑的。
对于数据结构与算法的学习,我个人认为应该分层三个步骤:首先先大致了解什么是算法,可以通过一些科普读物来入门,这个过程我称之为入门阶段;接着可以尝试实现一些比较容易的数据结构和算法,这样可以更加深对数据结构和算法的了解,这个过程我称之为实践阶段;最后去了解数据结构与算法背后的相关数学原理等,这个过程我称之为原理阶段。
5、计算机网络
计算机网络的相关知识在工作时使用的频率还是挺多的,毕竟,所谓的CURD工程师总是在处理 API 相关的业务。
嵌入式书籍推荐
1.入门篇
2.内核篇
浙江大学的《LINUX内核源代码情景分析》
外国鬼子的《莱昂氏UNIX源代码分析》
赵炯的《LINUX内核完全剖析--基于0.12内核》
3.shell篇
《LINUX与UNIX Shell编程指南》
4.应用篇
5.C语言
《The C Programming Language》
《c和指针》
《c缺陷和陷阱》
前言
经常有读者让我推荐书籍,这次我就把我私藏的计算机书单分享给你们!不过由于时间匆忙,不会进行更加详细的介绍。
声明
由于每个人的情况不一样,推荐的书并不一定适合你,也不一定适合当前阶段的你,有的书籍可能存在内容重复,所以根据自己的阶段情况进行选择即可。虽说如此,以下书单中提单的书均为优质书籍。
另外说,本人从事的是Linux/C/C++应用开发相关工作,因此主要书籍与此相关,涉及操作系统,Linux,C/C++,网络,编译链接,算法,数据库等内容,其他方向的会提到,但可能不全,欢迎补充。
以下整理均来自公众号【编程珠玑】
作者:守望先生
C
《C程序设计语言》(经典,不适合小白入门)
《C语言程序设计:现代方法》
《C primer plus》(入门推荐)
《C陷阱和缺陷》
《C专家编程》
《C和指针》(领悟指针精髓)
《C语言接口与实现》
《C11标准文档》(非书,可查阅)
推荐文C语言必读
C++
《C++ primer》(适合有一定基础)
《C++程序设计语言》
《C++标准库》
《Effective Modern C++ 》
《more effective C++》
《深度探索C++对象模型》
《STL源码剖析》
《effective STL》
《C++ template》
《Exceptional C++》
《C++编程思想》
《C++语言的设计和演化》
Python
《python编程 : 从入门到实践》
《A Byte of Python》(快速上手)
《Python编程快速上手》(适合完全零基础)
《流畅的Python》(非小白入门所选)
《Python Cookbook》
计算机基础
《编码:隐匿在计算机软硬件背后的语言》
《深入理解计算机系统》(强烈推荐)
《计算机程序的构造和解释》
《计算机组成与设计 : 硬件/软件接口》
算法
《算法导论》(大钻头,不易读)
《编程珠玑》
《算法》(相对易读)
《数据结构与算法分析-C语言描述》
计算机网络
《计算机网络》
《计算机网络-自顶向下方法》
《TCP/IP详解-卷1》
《网络是怎样连接的》
编译链接
《编译原理》(龙书)
《程序员的自我修养-装载,链接和库》
操作系统/Linux
《现代操作系统》(中文版感觉有点晦涩)
《操作系统精髓与设计原理》
《操作系统概念》
《Linux内核设计与实现》(整体介绍,不如后面两本深入)
《深入理解Linux内核》
《深入Linux内核架构》(大砖头,讲解了Linux中关键部分)
《鸟哥的linux私房菜基础篇》(基础篇可入门Linux)
《Linux命令行与shell脚本编程大全》
《Linux Tools Quick Tutorial》 (教程)
https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/index.html
数据库
《Mysql必知必会》(超薄小册子)
《高性能Mysql》
《redis设计与实现》(学习里面的设计思路,数据结构与算法)
《数据库系统实现》
系统/网络编程
《Unix环境高级编程》(APUE)(经典)
《Unix网络编程》(UNP)(两卷,经典)
《Linux/UNIX系统编程手册》
设计/软件工程
《代码大全》
《代码整洁之道》
《程序员修炼之道》
《Unix编程艺术》
《重构》
《敏捷软件开发:原则、模式与实践》
《设计模式_可复用面向对象软件的基础》
工具
《pro git》在线文档 地址:https://progit.bootcss.com/
工作面试
《编程之美——微软技术面试心得》
《剑指offer 名企面试官精讲典型编程题》
其他
《浪潮之巅》
《黑客与画家》
总结
书籍皆为好书,但不一定适合现阶段的你,请慎重选择。
非完整版,可继续关注阅读原文
后期进行更加详细的介绍。
https://blog.youkuaiyun.com/hyb612/article/details/102730648