想问一下计算机组成原理和数据结构与算法的问题

2021-12-06 21:49:54 +08:00
 Poluk

各位佬 我是学软件的..然后想提升一下自己的“内功”,准备学计算机组成原理,正在纠结王道的和 B 站哈工大的课哪个更适合初学者...前段时间听了听王道的...但是感觉王道后面的特别难,有没有什么学习建议,还有就是书籍的推荐 还有就是目前 java 学习到了日期类...还打算学数据结构与算法 java 版本的 视频教程存了一套,书籍的话他们推荐黑皮系列的那个《数据结构与算法》 Weiss 的,这本能去啃嘛?

2382 次点击
所在节点    程序员
26 条回复
seers
2021-12-06 21:53:19 +08:00
先从 CSAPP 开始吧,打好基础
Poluk
2021-12-06 22:00:15 +08:00
@seers csapp 不太能听懂啊....bili 上有
tcp
2021-12-06 22:50:15 +08:00
这三门课想学好都得花功夫,数据结构相对简单点,教材就不推荐了,当初老师教的教材比你这些更烂…
raaaaaar
2021-12-07 00:05:28 +08:00
看你准备花的时间了,最好的方式就是直接找科班的教材来学,像科班上课那样
raaaaaar
2021-12-07 00:07:03 +08:00
至于教材,不用听别人说那本就一定死啃那本,如果你啃不懂,说明这书不适合现在的你,或者纯粹烂书,直接换,找到那种有点费力,但是又能读懂的最好。
thinkershare
2021-12-07 00:22:01 +08:00
先学数据结构, 然后将最简单的常用的 20 种左右的排序写一遍, 查找写一遍, 遍历(树,图)写一遍, 然后计算机组成原理和算法入门可以并行, 不要用 Java, 尝试用 C 语言, 如果你的目的是学习原理和理解后面的计算机组成原理, 操作系统, 编译原理. 如果是学习计算机科学(注意是学习), 基础的分支, 循环就够了, 不要在意那些为工程而添加的语法结构. 等你要去做项目的时候, 在尝试去寻找对应语言的库的 API
xiaowei0823
2021-12-07 00:22:27 +08:00
收藏从未停止 学习从未开始
thinkershare
2021-12-07 00:25:10 +08:00
我尝试过使用 Java 和 C#, Python 写过这种基础的东西, 最终发现, 某些细节只有在 C 这种语法糖特别少的语言上才能理解的透彻, 虽然初期痛苦, 而且代码冗长, 但有助于你从基础的东西向上走, 或者向下走到汇编, 机器码
ch2
2021-12-07 00:34:30 +08:00
组成原理建议你从软件逆向破解、单机游戏外挂研究来学,比较有意思,哪里看不懂再补哪里的基础知识
necomancer
2021-12-07 00:34:34 +08:00
@xiaowei0823 中枪
xxfye
2021-12-07 01:08:19 +08:00
王道不适合初学者吧,适合有一点印象又捡起来看的。
数据结构没啥可说的,看再多的书都不如打几盘 cf 加总结。
xxfye
2021-12-07 01:13:30 +08:00
@Poluk 多看书,少听课。
csapp 写得这么简明易懂,我没见国内把哪门课把机组讲好。
国内操作系统倒是有不少好课。
a62527776a
2021-12-07 01:52:59 +08:00
计算机组成原理 有专门的黑皮书
https://item.jd.com/12157932.html
就是计算机组成原理 比较入门
harwck
2021-12-07 06:31:33 +08:00
看视频只是浪费时间最后什么都学不会,书上写的这么简洁明了为什么还需要视频?
CSAPP, Computer Architecture, Algorithms 等
Poluk
2021-12-07 07:33:15 +08:00
@thinkershare 好,我一直觉得用 c 的话还得先去打个基础 再去碰数据结构的课,所以就暂且想用自己学的 java 来学
VeryZero
2021-12-07 09:07:20 +08:00
王道的没看过,哈工大的视频感觉不错。。
justrand
2021-12-07 09:24:42 +08:00
Kininaru
2021-12-07 09:57:28 +08:00
最近也在看书,机械工业出版社的《现代操作系统》我觉得挺不错的,看完之后对于 C/C++ 的编译有了更深的理解。

同时也在看《计算机网络 自顶向下方法》,不过感觉这本书并不适合直接看,我是先看了课本《计算机网络 谢希仁》再看的自顶向下。

室友买了 CSAPP ,打算看完《计算机系统》再看。不过明年要考研了,如果没时间看那就等读研(或者上班)了再看。

大一大二搬砖搬吐了,还是修炼内功比较舒服。不过我觉得学 CS 还是应该多看文史类的书,代码写久了就会像机器一样思考,如果不看点文史类的来中和,人就会变成机器零件...
MoYi123
2021-12-07 10:31:11 +08:00
@xxfye cf 不太合适吧, div2 的 ABC 一般都不会用到能叫出名字的算法或者数据结构, 还不如去 leetcode.
thinkershare
2021-12-07 11:07:14 +08:00
C 非常简单, 如果你有 Java 的基础, 你只需要理解 2 个概念, 指针(可运行,可操控不安全的引用), 内存堆栈布局结构. 作为一门语言的 C 是简单,简洁,且强大的, CS 基础的任何一门基础课程使用 C 都足够完成任务, Java,C#这种, 主要是为了工程和理解另外一个重要概念而准备的(强类型, 类型结构显示定义), 等你打好基础后, 你发现你还至少需要学 1-2 种面向对象, 1-2 种函数式, 或者一些四不像, 混杂了多种编程范式的语言, 然后需要训练工程能力, 再然后是架构能力或者去做基础设施, 就不需要搞这些应用层的东西了.
最重要的一点: 技术并不值钱, 值钱的是你使用技术解决了某个特定领域有价值的问题, 所以你最终会发现, 业务领域才是一个巨大的天坑, 每一个小领域都需要耗费大多数人一辈子
@Poluk

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

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

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

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

© 2021 V2EX