作为一个计算机科班的学生,应该具备哪些基本的基础知识呢

2017-01-18 15:30:47 +08:00
 crayonyi

做了几年开发,发现应用层的东西怎么学都学不完。

只有底层和基础,几十年都不变。 现在想回去把基础都加深一下,提高下内功。

作为一个计算机科班的学生,应该具备哪些基本的基础知识呢?

下面每个分支都列出了参考的书籍内容。 希望大家也能提供一些建议。

http://naotu.baidu.com/file/1a0e968910ebcf1f2d7c499a90294350?token=39df775a20b4f6da

9402 次点击
所在节点    程序员
53 条回复
wshcdr
2017-01-18 15:37:30 +08:00
楼主就是忘了一个英语,其他很完美了
xiandao7997
2017-01-18 15:38:27 +08:00
把妹。大学可以挂科,不能不谈恋爱。
xiandao7997
2017-01-18 15:38:36 +08:00
@xiandao7997 一把辛酸泪。。。 TAT
crayonyi
2017-01-18 15:41:52 +08:00
@wshcdr 说的对。 英语这种软技能,还是挺重要的。
hffaxy
2017-01-18 16:06:02 +08:00
垃圾本科非计算机科班,除了没有选择做小型操作系统的课设以外,其他上述知识点也基本在大学里学过一遍了。
楼主列出的书感觉大多都是经典,感觉能够看完的人真的太厉害,至少我差得远。其实很多的都还是看的学校的教材。
比如说编译原理那里,我也只大致看过 SICP ,给我感觉就编译原理上来不如我学过的形式语言自动机和编译原理教材对实现一个语言的子集有帮助。
目前来说,毕业在小公司干了半年了,自己看的书更多的是工程方向的,毕竟大学没学过,什么设计模式啦, Effective C++啦,偶有补补算法之类,准备跑路笔试什么的,毕竟这半年来感觉能写代码和能写较为优雅的代码差别还是挺大的。
数学最近拾起来看了看,因为统计学习方法中间好多都看不懂了, sad ,机器学习好难。


啊,上班不能看书,下班不想看书,只能继续咸鱼了。
以上个人粗鄙意见,望轻喷
misaka19000
2017-01-18 16:11:00 +08:00
基本上很全了,这些都掌握本科毕业基本上就已经很厉害了
@hffaxy 是做机器学习方向的吗?
hffaxy
2017-01-18 17:25:16 +08:00
@misaka19000 不是啊,本科学习的是信息安全方向。只是最近看了一些 TensorFlow 的东西,接触了一些机器学习,可是数学原理很多都已经不懂了。在我们学校只有计科科班才会学习机器学习,数据挖掘,人工智能什么的。我没学过的说。
greatghoul
2017-01-18 17:54:22 +08:00
我想会打字,应该算是一项基本能力。
wcj
2017-01-18 18:17:40 +08:00
电路不用学那么深,随便找本数字逻辑翻翻就行了,甚至硬件描述语言都不用看
计算机体系结构可能比组成原理更重要,量化研究方法那本太难了,硬件软件接口那本更适合

编译一个操作系统?还是实现一个操作系统?实现一个操作系统太复杂了,时间不值
编译原理不推荐龙书吗?

漏了数据库,范式很重要,推荐数据库系统概念

最后,献上一本神书:《计算机科学的基础》,图灵社区免费下载: http://www.ituring.com.cn/book/1019
langmoe
2017-01-18 18:27:53 +08:00
Windows 安装
安卓刷机
笔记本选购
路由器设置
misaka19000
2017-01-18 18:29:49 +08:00
@wcj 看了下目录,感觉还不错
withlqs
2017-01-18 18:30:46 +08:00
1 、数电的先修课程是模电,数电里面放大器的原理是模电的基本内容
2 、为什么把 操作系统 和 编译原理 放在一个组,我觉得 编译原理 和 组成原理(或者体系结构) 关系更大一些才对:比如指令的执行原理和指令流水线在编译器中的优化
3 、计算机图形学也值得推荐,会用到一些线性代数的内容
4 、有精力的话,组合数学学一下也很好:比如鸽笼原理、母函数、递推式转换、 polya...都是很美的数学知识
5 、算法的一些基础理论和微积分的内容相关,想深入算法理论,需要学习微积分(尤其是极限和级数方面的知识)
jimzhong
2017-01-18 18:34:43 +08:00
1. 算法,数据结构,离散数学,线性代数
2. 数字电路,计算机组成,体系结构
3. 操作系统,嵌入式系统
4. 数据库
5. 计算机网络,密码学
6. 编译原理
m31271n
2017-01-18 18:41:38 +08:00
@greatghoul 调皮了。
kankk
2017-01-18 18:43:03 +08:00
工作后越来越发现大学的基础课程有多重要
crayonyi
2017-01-18 18:45:12 +08:00
@wcj 一直觉得数据库应该算应用层的东西,就没有放上去。 不过在实际应用中,数据库确实挺重要的。

计算机体系结构硬件软件接口 那本确实 比我写的那本易懂。 多谢推荐。
crayonyi
2017-01-18 18:54:38 +08:00
@withlqs
1 我记得上学的时候只学了数电,没学模电。 不过模电比数电确实难好几个量级,还不敢去深入。
2 我把体系结构归到硬件了,所以编译原理就往下放,和操作系统放一起了。
3 计算机图形学、数值分析是到后期才学的,偏应用一些,学完才发现全是矩阵运算之类的。 当初要是和线性代数一起开课,我肯定卯足了劲学。 可以作为拓展材料看。
4 组合数学和微积分也可以作为拓展材料看。有些难度。
crayonyi
2017-01-18 18:56:35 +08:00
@kankk 工作后也才发现,大学的教材有多坑。 考研指定教材、老师自己出教材,真心不如直接拿国外的
forrestchang
2017-01-18 19:33:49 +08:00
1. 硬件
- CSAPP :普通的程序员硬件部分看着一本应该已经足够了,第三版也出了,配合 labs 来做比较好,每一章后面有提供参考文献,想具体深入某一部分可以参考来阅读。
- 《计算机体系结构:量化研究方法》:有时间多的话可以看一下这一本。

2. 算法&数据结构
- CLRS :有人肯定说这本书太难了,其实是你看的方法不对。第一遍看的时候略过证明部分和习题就可以了,主要目的是了解各个算法的原理,然后用熟悉的语言实现出来;第二遍阅读的时候可以理解一下如何证明算法的正确性,习题中有很多有启发性的问题,配合 MIT 给出的视频和作业更好。
- 《算法》:红书, Java 描述,图多,不想看 CLRS 可以看这一本(看完这本 CLRS 还是逃不掉的)

3. PL
PL 有太多东西了,了解较浅
- SICP : Scheme 、函数式、抽象,此书吹得有点过神了,但其实可能看完并不会发现有什么*明显*的提高,题目很有意思,看完这本书就可以和别人撕逼写 Tokenizer 了(笑
- 《 Programming Language Pragmatics 》: PL 入门书

先吃饭去了……
sundong
2017-01-18 20:06:22 +08:00
英语 + JAVA (或者你说的那些中间 挑一条路走 ) =。=

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/335411

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX