计算机专业路线图

全面、系统的计算机知识体系!

专业基础课、专业必修课和专业选修课。

 

先从课程上做一个分类,按照先修关系进行整理,形成课程体系,接下来,再把学习过程分成不同的阶段:

 

第1阶段:学习程序设计基础、面向对象程序设计、离散数学三门专业基础课

第2阶段:学习数据结构、算法设计与分析、计算机组成原理三门专业必修课

第3阶段:学习操作系统、计算机网络、数据库系统三门专业必修课

第4阶段:学习编译原理、软件工程两门专业必修课,并且,在这个阶段,就可以根据自己的兴趣来学习选修课程了

 

按照计划,循序渐进,逐步攻克!

 

在编程的世界里,主要就是两个事,用一定的算法去处理一定的数据。算法可以理解为业务逻辑流程,而数据自然一定是按某种结构来存放,这就是数据结构。数据结构的修改一定会导致算法的修改,数据结构直接关系到了整个程序的繁简性,高效性。而算法则是关系到数据处理的时间、空间性能,以及日后的扩展和维护。这两个东西是计算机科班出生的人或是需要学习编程的人必需要注意的两件头等大事。

 

https://xlinux.nist.gov/dads/

 

 

Java学习路线图:

  1. 首先要学习Java SE,掌握Java语言本身、Java核心开发技术以及Java标准库的使用;

  2. 如果继续学习Java EE,那么Spring框架、数据库开发、分布式架构就是需要学习的;

  3. 如果要学习大数据开发,那么Hadoop、Spark、Flink这些大数据平台就是需要学习的,他们都基于Java或Scala开发;

  4. 如果想要学习移动开发,那么就深入Android平台,掌握Android App开发。

 

 

 

 

 

七本经典书籍分别是:《深入理解计算机系统》、《数据密集型应用系统设计》、《计算机程序的构造和解释》、《算法设计手册》、《计算机科学中的数学》、《操作系统导论》、《计算机网络:自顶向下方法》。

七本教材分别花一两百个小时进行学习是很有必要的,不论是对专业能力还是职业生涯的提升都是巨大的。

还是太多?

先专注于学习两本图书:《深入理解计算机系统》 和 《数据密集型应用系统设计》。投入到这两本书的时间可以获得极高的回报率,特别适合从事网络应用开发的自学工程师。这两本书也可以作为上面表格中其他科目的纲领。

 

《深入理解计算机系统》简介:

本书从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性。全书共12章,主要内容包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级I/O、网络编程、并发编程等。书中提供大量的例子和练习,并给出部分答案,有助于读者加深对正文所述概念和知识的理解。——《深入理解计算机系统(原书第3版)》

%title插图%num

《深入理解计算机系统》封面

深入理解计算机系统应该是最优秀的计算机系统导论型作品,它创造性的把操作系统,计算机组成结构,数字电路,以及汇编原理这些计算机基础学科中的核心概念汇集在一起,从而覆盖了指令集体系结构,汇编语言,代码优化,计算机存储体系架构,链接,装载,进程,以及虚拟内存这些程序员所需了解的关键计算机系统知识。如果想打下扎实的计算机基础又不想把操作系统计算机结构编译原理这些书统统读一遍,阅读深入理解计算机系统是最有效率的方式。

%title插图%num

《深入理解计算机系统》导图

《深入理解计算机系统》对于那些想了解计算机系统以求编写更快、更高效、更可靠的软件的人来说是很好的起点。总之《深入理解计算机系统》值得反复深入阅读,理解体会。

《数据密集型应用系统设计》简介:

全书分为三大部分:

第一部分,主要讨论有关增强数据密集型应用系统所需的若干基本原则。首先开篇第1章即瞄准目标:可靠性、可扩展性与可维护性,如何认识这些问题以及如何达成目标。第2章我们比较了多种不同的数据模型和查询语言,讨论各自的适用场景。接下来第3章主要针对存储引擎,即数据库是如何安排磁盘结构从而提高检索效率。第4章转向数据编码(序列化)方面,包括常见模式的演化历程。

第二部分,我们将从单机的数据存储转向跨机器的分布式系统,这是扩展性的重要一步,但随之而来的是各种挑战。所以将依次讨论数据远程复制(第5章)、数据分区(第6章)以及事务(第7章)。接下来的第8章包括分布式系统的更多细节,以及分布式环境如何达成一致性与共识(第9章)。

第三部分,主要针对产生派生数据的系统,所谓派生数据主要指在异构系统中,如果无法用一个数据源来解决所有问题,那么一种自然的方式就是集成多个不同的数据库、缓存模块以及索引模块等。首先第10章以批处理开始来处理派生数据,紧接着第11章采用流式处理。第12章总结之前介绍的多种技术,并分析讨论未来构建可靠、可扩展和可维护应用系统可能的新方向或方法。

%title插图%num

《数据密集型应用系统设计》封面

随着计算机在数量上的增加,计算机同样开始分散。尽管商业公司过去愿意购买越来越大的大型机,现在的典型情况是,甚至很小的应用程序都同时在多台机器上运行。思考这样做的利弊权衡,即是分布式系统的研究所在,也是越来越重要的一项技能。

推荐的 《数据密集型应用系统设计》与传统的教科书相比,它是一本为实践者设计的具有很高的可读性的书,并且保持了深度和严谨性。

现今,尤其是在互联网领域,大多数应用都属于数据密集型应用。本书从底层数据结构到顶层架构设计,将数据系统设计中的精髓娓娓道来。其中的宝贵经验无论是对架构师,DBA、还是后端工程师、甚至产品经理都会有帮助。

​ 这也是一本深入浅出的书,讲述概念的来龙去脉而不是卖弄定义,介绍事物发展演化历程而不是事实堆砌,将复杂的概念讲述的浅显易懂,但又直击本质不失深度。每章最后的引用质量非常好,是深入学习各个主题的绝佳索引。

​ 本书为数据系统的设计、实现、与评价提供了很好的概念框架。读完并理解本书内容后,读者可以轻松看破大多数的技术忽悠,与技术砖家撕起来虎虎生风。

posted on 2021-11-16 09:04  trp  阅读(692)  评论(0编辑  收藏  举报

导航