Giter Club home page Giter Club logo

csguide's Introduction

CSGuide

CS学习路线,包括科班、非科班、Web、全栈、C++、Java、System等

那么计算机科班学生该如何学习呢?

把操作系统、组成原理、系统编程这些学了,认认真真的把计算机基础打扎实了,那你其实就是一个「计算机科班学生了」

接下来说下我认为对一个「计算机知识体系完整的毕业生」最重要的课程,你至少得把下面这些课 都学了:

1、 编程语言:C/C++ (学好了这两门,基本其它编程语言一周就上手了)

2、《系统级编程》(我们教材是CSAPP,这是我本科上过最值的课!System Programing)

3、《数据结构与算法》

4、《组成原理和体系结构》

5、《操作系统》

6、《编译原理》

7、《计算机网络》

8、《数学课》:线代、离散、高数

计算机科班刚毕业一年,我觉得大学如果知道这些,可能会少走很多弯路!

首先,送大家一句话~:

万丈高楼平地起,勿在浮沙筑高台。

所以一定要在大学期间把基础打牢固,整扎实,这是科班的核心竞争力!

而且非科班同学学完这些课,也可以说是科班了!

那么怎么学?

看书 + 看视频 + 实践

接下来推荐一些我觉得特别好的资料,尽量保持精简:

一、编程语言:C/C++

没有比C语言更适合用来理解计算机系统了, 科班学生一定要学好 C语言。

推荐:《C程序设计语言》、《C与指针》、《C++ Primer》、《C++对象模型》、《Effective C++ 》

具体参考:

二、系统级编程

不用说肯定推荐《深入理解计算机系统》

其实它的简介和第一章《计算机系统漫游》已经写得非常清楚了:

从一个简单的hello world程序在计算机上的执行过程:

预处理->编译->汇编->链接->可执行文件->装载->数据流->屏幕输出显示

汇总成一句:信息 = 位+上下文。

另外还有一本就是《程序员自我修养》+ 《Unix环境编程》。

三、数据结构与算法

《算法第四版》、《算法导论》、《剑指offer》

具体参考:

四、组成原理与体系结构

《计算机组成与设计:软硬件接口》、《编码》、《CSAPP》

五、操作系统

操作系统我推荐 看书 + 做lab的方式,比如 MIT6.828 xv6

书可以看《现代操作系统》,如果你想学个os,可以看《操作系统真象还原》

我当时应该是看了不少网课,然后自己跟着教程”抄了“一个 mini os。

学习操作系统一定不要去死看书,最好跟着那种有配套实验完成一个os的课程或者书。

就像这种:

img

具体参考:

如何系统学习操作系统

六、计算机网络

推荐《计算机网络自顶向下》、《TCP/IP详解》

具体参考:

七、编译原理

直接看龙书就好了,想写脚本可以看看《自制脚本语言》

说实话,把上面这几门课学好了,国内大厂offer几乎随便拿了。

但是很多人忽视了基础,往往在大学最该打基础的时候去追求所谓的新技术。

所以不如谈谈到底「如何才能成为一个计算机知识体系完整的毕业生」吧?

在这里,我粗浅的把计算机编程领域的知识分为三个部分:

  • 基础知识
  • 特定领域知识
  • 框架和开发技能

具体可以看下这个文章:

如何成为一个计算机知识体系完整的毕业生?

我推荐大家花在「基础 : 领域知识 : 技能」 接近 7 : 2 : 1。

这也是我推荐你在大学期间分配学习时间的比例,至少学习基础知识的时间不少于 50%,当然,这些东西你都学完了那可以去找找感兴趣的方向专研一下。

不要大一、大二一上来就扎进 Java Web、Python 爬虫这种东西,这些可以学,但不是重点。

那么如何检验学得如何呢?

想必你一定听说这个计网面试题:

“从 URL 输入到页面展现到底发生什么?“

这个问题换个表达就是「一个数据包是如何发送到另外一台电脑的」,如果你能完整的说出整个过程,那么计网你一定是学懂了!这就是为啥面试这么喜欢问这个问题的原因。

那么我们依葫芦画瓢提一个问题

“从代码被写下到程序运行起来到底发生了什么?”

这个问题回答得越详细越好,基本上能说清,你就理解了编译原理、操作系统、组成原理这三座大三。

推荐阅读

四大基础课网课:CS经典课程,起飞!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.