知乎万赞 | 计算机专业学习的核心是什么

网络 分享 时间: 收藏本文

知乎万赞 | 计算机专业学习的核心是什么

既然是学习 CS,那么在这里,我粗浅地把计算机编程领域的知识分为三个部分:

基础知识是指不管从事任何方向的软件工程师都应该掌握的,比如数据结构、算法、操作系统。

特定领域知识就是你从事某个细分方向时需要掌握的知识,比如做游戏引擎的需要掌握图形学;做前端的需要掌握浏览器渲染原理、前端三大件;算法工程师需要更多的数学知识。

毕竟计算机各种门类挺多的,需要选个细分方向钻研下去,什么都学只会什么都不精(大佬除外啦)。

上面那么划分可能有同学还比较疑惑,再细一点,我认为需要重点掌握学习的就是 :

计算机专业的核心课几乎都是围绕着构建上述这些能力来的,比如:

计算机学科导论和 C 语言;

汇编、操作系统、C++、数据结构、离散数学、数值分析和计算机组成原理;

计算机编译原理和数据库;

计算机网络与安全和软件工程。

还有高数、线性代数、离散数学、网络原理、网页设计、多媒体技术、汇编语言、面向对象的设计语言、Java 编程、ASP、SQL 等。

总的来说是:

先学习 C 语言和 C++。教材有:C -K&R、C and 、 in C 和 C 。

学习数据结构。教材有:清华大学严蔚敏《数据结构》,目前还未找到经典的国外教材。

学习算法。教材有:算法导论和具体数学及其应用。

计算机组成原理。教材有: and The -3rd- 。

计算机系统。教材有:。

操作系统。教材有:鸟叔的私房菜和计算机网络。

核心就是计算机底层 + 通过造轮子方式学习计算机基础课。

操作系统

国外有很多优秀的操作系统公开课,比如 mit6.828、哈佛 OS/161,这类课程基本都是给你一个 mini os 壳,让你去完成部分操作系统的核心模块,比如线程管理、文件系统、分页、调度等。

相比纯看书,这样的学习方式无疑更加的生动和有趣。

这是课程官网:

中国知名大学、世界知名大学的操作系统课都有大实验,有一个现成的小系统让你去学习、分析。比如 MIT 有 xv6,伯克利有 ,斯坦福有 等等。这些代码全是开源的,也都在1两万行上下,完全可以在大学期间啃下来。

国内也有一些顶尖高校也是采取类似的方式,比如清华 、哈工大好像是基于 0.11 魔改。

哈工大:

另外推荐一本可以让你从零开始写一个 mini os 的书《操作系统真象还原》,这本书讲得真的非常得细致。

数据库

都说很多开发是 crud ,而 crud 的对象就是数据库,所以好好掌握数据库的原理也是非常重要的,如果也能通过造一个简单的 db 的方式来学习,我相信这样的方式一定是最好的:

当然了,实现一个数据库也是相当有难度的,你大概需要这些知识:

做这些可能有点难,不过在 上有教程教你如何一步步实现一个像 这样的小型关系型数据库, 比如这一个:

另外 MIT 6.830 也是很不错一门课。

这是数据库系统的一门核心课程。由数据库的一大山头 教授。前半部分比较基础的数据库的知识,后半段主要在讲 的东西,各种 挺有意思,也是 比较火的研究方向。

课程链接:

还有 CMU 的两门数据库课程也不错:

// 初级

// 进阶

计算机网络

这里就是考虑如何去实现个网络协议栈了。

可能不需要完全实现每一层,比如可以尝试用 UDP 去把学到的那些超时重传、ACK、滑动窗口等实现一下,这样对 TCP 理解也会更加深刻。

一些好书&教材

这里就不列太多了,免得吓到大家哈哈哈,随便来两本:

大家应该也看出来了,我推荐的书偏向 C++ 方向,因为我从大三开始就偏向 C++ 开发方向。

前前后后看了《C++ 》、《APUE》、《UNP》、《深度探索C++对象模型》、《STL源码剖析》、《C++设计与演化》、《内核设计与实现》、《内核完全注释》、《 C++》 、《 C++》、《程序员自我修养》、《高性能服务端编程》、《多线程服务端编程》(知乎陈硕大佬写的)......

顺便还看了点 源码,自己模仿着基于 写一个 模型的 Web 静态服务器,跟着知乎 Milo 大佬写 Json 库,总之,这段时期是写了一些小“轮子”的。

书看得越多,其实你越能找到自己的方向,大三上我就给自己学习定位:

深入 C++ 语言(多线程)+ 存储(学习 、)+ 网络编程(学习 ,各种网络编程模型)+ 学习分布式(MIT 6.824、ddia、 三大论文等)

基本上是沿着上面几个方向去展开学习的,有的看书,有的论文,也有的看博客看源码。

总之,知识面在大三不断扩充,自己开始关注学习 C10K、 这样的后台服务器开发高性能、高并发的解决方法。

当然了,还有些到现在还没开始,比如 的源码、6.824 的 lab,可能是变懒了......

也可能是学习变得不那么纯碎面向技术了,变成面向工作、面向赚钱了哈哈哈。

另外,对于还在大一、大二的很多学弟学妹们来说,可能觉得刚学会一点编程语言,什么都做不了,更不知道和实际工作的差距在哪。

那么最好的方式就是先按部就班地把学校安排的基础课程学好,再在课外自己多练习编程,了解一些业界的技术、框架。

把时间充分利用好。

要相信,人生没有白走的路,每一步都算数。

信息流广告 网络推广 周易 易经 代理招生 二手车 网络营销 招生代理 旅游攻略 非物质文化遗产 查字典 精雕图 戏曲下载 抖音代运营 易学网 互联网资讯 成语 成语故事 诗词 工商注册 注册公司 抖音带货 云南旅游网 网络游戏 代理记账 短视频运营 在线题库 国学网 知识产权 抖音运营 雕龙客 雕塑 奇石 散文 自学教程 常用文书 河北生活网 好书推荐 游戏攻略 心理测试 好做题 石家庄人才网 考研真题 汉语知识 心理咨询 手游安卓版下载 兴趣爱好 网络知识 十大品牌排行榜 商标交易 单机游戏下载 短视频代运营 宝宝起名 范文网 电商设计 职业培训 免费发布信息 服装服饰 律师咨询 搜救犬 Chat GPT中文版 经典范文 优质范文 工作总结 二手车估价 实用范文 爱采购代运营 古诗词 衡水人才网 石家庄点痣 养花 名酒回收 石家庄代理记账 女士发型 搜搜作文 石家庄人才网 铜雕 词典 围棋 chatGPT 读后感 玄机派 企业服务 法律咨询 chatGPT国内版 chatGPT官网 励志名言 河北代理记账公司 文玩 朋友圈文案 语料库 游戏推荐 男士发型 高考作文 PS修图 儿童文学 买车咨询 工作计划 礼品厂 舟舟培训 IT教程 手机游戏推荐排行榜 暖通,电采暖, 女性健康 苗木供应 主题模板 短视频培训 优秀个人博客 包装网 创业赚钱 养生 民间借贷律师 绿色软件 安卓手机游戏 手机软件下载 手机游戏下载 单机游戏大全 免费软件下载 石家庄网络推广 石家庄招聘 石家庄网络营销 培训网 网赚 手游下载 游戏盒子 职业培训 资格考试 成语大全 英语培训 艺术培训 少儿培训 苗木网 雕塑网 好玩的手机游戏推荐 汉语词典 中国机械网 美文欣赏 红楼梦 道德经 网站转让 鲜花