如何系统自学计算机科学——学习路线


整体路线

科普读物:《计算机概论》、《IT简史》

两条并行线

编程语言(C/C++和Python)-----实用技术(流行的开发框架和工具)

数学基础(离散数学、高数、线性代数、概论统计)------专业基础理论(数据结构与算法、操作系统、计算机网络、计算机组成原理)


两条并行性之后就是深入钻研特定的技术领域:人工智能、图形图像、云计算、物联网等;

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

语言介绍

C 语言——结构化编程语言

Java/c++ ——面向对象的语言

Python——动态编程语言,应用广泛

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

学习之道

个人学习动机——决定自学好坏

方式、方法、策略;

了解学习理论

读物《学习之道》

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

读书之道

书的分类:

科普读物:感性成份多,了解术语和概念,建立全局观;

计算机专业教材:理性成份多,打好基础,培养学习后劲;

实践性读物:多少天xxx,零基础,xxx框架,xxx开发,培养特定开发技巧及对工具的使用

特定领域技术专著:复杂与抽象,深入挖掘规律与奥秘;


读书之法:

多遍阅读

断点续传

+++++++++++++++++++++++++++++++++++++++++++++++++++

专业知识具体路线

1、数学:

高等数学->线性代数->离散数学->概率论与数理统计;

推荐读物:《普林斯顿微积分读本》《离散数学机器应用》《线性代数及其应用》

MATLAB、EXCEL软件促进数学学习;


2、计算机科学

《计算机科学概论》:建立全局观;剥洋葱方式学习;

科普读物了解计算机科学:《人工智能》、《智能时代》;


3、数据结构与算法

针对特定问题,设计解决方案

算法的设计与评估

人工智能和大数据完全就是算法;


4、计算机组成原理

  看教材

5、操作系统

科普读物+专业书籍(C/Linux);

深入理解计算机系统(OS、计算机组成原理、计算机网络、编译原理);

掌握Linux Shell编程、完成教程作业、开发网络或多线程应用程序、使用工具完成相应实验;


6、计算机网络

(明白计算机如何连接,数据如何传递,网络软件系统如何构建)

前提要学:编程语言、数据结构与算法、操作系统

科普读物---专业教材;

然后使用特定编程语言/平台的网络库

动手写网络程序,工具抓包;

阅读科普书籍、理解分层架构;

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

核心基础课程

C/C++

数据结构

算法

计算机系统

计算机网络

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

其他课程

汇编语言

编译原理

计算机组成原理

离散数学/线性代数/高数/概率论与数理统计

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

开源项目\库\框架

网络

网络库ACE(重量级)、libevent(轻量级)、《UNIX网络编程》

socket原理;

数据库

开源Mysql

懂数据库的基本原理、熟练应用SQL语言、懂数据库的优化、存储过程;

日志操作

log4app日志库、多线程、日志重定向到网络、查找问题、记录程序运行情况;

管理后台

为程序提供一个web的管理界面,方便用户登录查看信息;

读取配置文件

方便配置一些项目;为程序提供灵活性;必须有读取配置文件的封装类;

内存池

所有进程都需要分配内存;分配和管理内存是很有挑战性的工作;

nedmalloc是开源的内存池库;跨平台的高性能多线程内存分配库;

缓存库

memcache,数据库开发时候特别有用

脚本

python功能很强大,推荐学;

不同的应用领域会用到不同的库;

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

练手的项目与应用

应用

C语音实现Ping程序

C语音实现文件类型统计程序

C语音实现多线程排序

编写万年历

制作计算器

项目

C++实现太阳系行星系统

C++开发Web服务框架

C++实现模拟银行排队

C++实现线程池

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

参考链接

如何自学计算机专业课程:https://www.jianshu.com/p/72512b2fcab9

你可能感兴趣的:(如何系统自学计算机科学——学习路线)