如何学习网络、操作系统、编译原理等知识?

2018-09-13 09:37:26 +08:00
 javaWeber
我尝试看些书,但是一打开全部都是概念,几百页堆砌的砖头。。合上书以后这些概念又全忘光了。
比如学习语言或者框架,我可以照着做个简单的 demo,边学习边实践,这样比较容易理解。
看操作系统,我又写不出一个操作系统,就看书本里的概念,实在是学不进去。
请教,如何学习网络、操作系统、编译原理等知识?
11140 次点击
所在节点    程序员
65 条回复
cuzfinal
2018-09-13 09:41:24 +08:00
考个大学并选择计算机专业
hongch
2018-09-13 09:44:02 +08:00
看多了就懂了
javaWeber
2018-09-13 09:46:32 +08:00
@cuzfinal 已经毕业了。大学双学位。lol 专业和 cs 专业。
daigouspy
2018-09-13 09:47:45 +08:00
@javaWeber 工作了就没必要再看了。
Hieast
2018-09-13 09:49:26 +08:00
你在学校不做实验么,做了实验还能忘?
zongren
2018-09-13 09:51:20 +08:00
我猜是看书吧,毕竟我也没看过
BingoXuan
2018-09-13 09:53:13 +08:00
要理解凯撒不一定要成为凯撒

很多概念并不是要你具体实现出来,需要你抽象理解它的过程,原理,模式,以此推及到其他问题的解决。
ericv
2018-09-13 09:53:13 +08:00
放弃吧.....
nilrust
2018-09-13 09:53:46 +08:00
看书啊,大学时应付考试也就一礼拜突击下的事情
mathzhaoliang
2018-09-13 09:56:11 +08:00
毕业了,就不太可能从头开始系统学习那些基础知识了,除非你能自己闭关两三年,啥也不做,待在一个地方专心修炼。

建议在工作中,用到什么补什么。遇到一个问题就把它搞明白,这样积累的经验多了也可以达到融会贯通的效果。
zhaoweichen
2018-09-13 10:03:55 +08:00
我觉得好的 CS 课程都是边学习边实践的,应该跟 lz 学语言和框架类似。

操作系统的话,是可以写出来简单的 demo 的。这个可以参考斯坦福 CS140e 里给树莓派写系统的项目。
如果需要明白更复杂的东西,在基础足够的情况下可以去看相关的论文或者代码。
其实就是按照本科生操作系统课和研究生操作系统课再上一次。
如果想再进阶一步,就是博士生水平的课程,把之前论文里的系统自己实现一遍。

网络和编译原理都是类似的操作。网络从 socket+发 /解包开始,到后面写写简单的协议栈都是可以分成若干比较小的项目的。
zhaogaz
2018-09-13 10:05:05 +08:00
我猜楼主可能没读完过。

怕忘可以再看一遍嘛,很简单的。
vindurriel
2018-09-13 10:10:38 +08:00
带着问题去读 书是用来做参考的
zynlp
2018-09-13 10:15:45 +08:00
学而不思则罔,思而不学则殆
tonychow
2018-09-13 10:16:12 +08:00
可以从基础中取一个点,对比实践,去找书里的内容或者搜别人的文章反复看,看到能理解。
huangya
2018-09-13 10:17:13 +08:00
1.计算机网络一定要做实验。分两种:
A.构建计算机网络,比如搭建一个小型网络,包含路由转发。有条件的,用真实的设备,没条件的用模拟软件。
B.写代码。比如实现一些应用层网络程序或者更深一点的抓包组包(2层)程序。

2.操作系统也一定要做实验,推荐 MIT 6.828 JOS。这个课程里面有些问题还是有一定难度的。应该属于研究生课程。但 lz 已经毕业,所以应该没问题。

3.编译原理没深入研究过,不做评价。
wizardforcel
2018-09-13 10:38:31 +08:00
当然是做 lab 啊,你那样像文科一样背概念根本没用
Hsinyao
2018-09-13 10:49:13 +08:00
mooc
t6attack
2018-09-13 11:06:47 +08:00
上学时在书店看到过两本书。一本是讲 linux 内核源码的,一本是讲 win32 汇编的。
两本书都像辞海一样厚。看那个厚度,就直接放弃了。
zhzer
2018-09-13 11:46:19 +08:00
说那么多,写了,实现了,就会了

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

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

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

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

© 2021 V2EX