各位佬 我是学软件的..然后想提升一下自己的“内功”,准备学计算机组成原理,正在纠结王道的和 B 站哈工大的课哪个更适合初学者...前段时间听了听王道的...但是感觉王道后面的特别难,有没有什么学习建议,还有就是书籍的推荐 还有就是目前 java 学习到了日期类...还打算学数据结构与算法 java 版本的 视频教程存了一套,书籍的话他们推荐黑皮系列的那个《数据结构与算法》 Weiss 的,这本能去啃嘛?
1
seers 2021-12-06 21:53:19 +08:00 1
先从 CSAPP 开始吧,打好基础
|
3
tcp 2021-12-06 22:50:15 +08:00
这三门课想学好都得花功夫,数据结构相对简单点,教材就不推荐了,当初老师教的教材比你这些更烂…
|
4
raaaaaar 2021-12-07 00:05:28 +08:00 via Android
看你准备花的时间了,最好的方式就是直接找科班的教材来学,像科班上课那样
|
5
raaaaaar 2021-12-07 00:07:03 +08:00 via Android
至于教材,不用听别人说那本就一定死啃那本,如果你啃不懂,说明这书不适合现在的你,或者纯粹烂书,直接换,找到那种有点费力,但是又能读懂的最好。
|
6
thinkershare 2021-12-07 00:22:01 +08:00
先学数据结构, 然后将最简单的常用的 20 种左右的排序写一遍, 查找写一遍, 遍历(树,图)写一遍, 然后计算机组成原理和算法入门可以并行, 不要用 Java, 尝试用 C 语言, 如果你的目的是学习原理和理解后面的计算机组成原理, 操作系统, 编译原理. 如果是学习计算机科学(注意是学习), 基础的分支, 循环就够了, 不要在意那些为工程而添加的语法结构. 等你要去做项目的时候, 在尝试去寻找对应语言的库的 API
|
7
xiaowei0823 2021-12-07 00:22:27 +08:00 via iPhone 1
收藏从未停止 学习从未开始
|
8
thinkershare 2021-12-07 00:25:10 +08:00 1
我尝试过使用 Java 和 C#, Python 写过这种基础的东西, 最终发现, 某些细节只有在 C 这种语法糖特别少的语言上才能理解的透彻, 虽然初期痛苦, 而且代码冗长, 但有助于你从基础的东西向上走, 或者向下走到汇编, 机器码
|
9
ch2 2021-12-07 00:34:30 +08:00
组成原理建议你从软件逆向破解、单机游戏外挂研究来学,比较有意思,哪里看不懂再补哪里的基础知识
|
10
necomancer 2021-12-07 00:34:34 +08:00
@xiaowei0823 中枪
|
11
NXzCH8fP20468ML5 2021-12-07 01:08:19 +08:00 via Android
王道不适合初学者吧,适合有一点印象又捡起来看的。
数据结构没啥可说的,看再多的书都不如打几盘 cf 加总结。 |
12
NXzCH8fP20468ML5 2021-12-07 01:13:30 +08:00 via Android
|
13
a62527776a 2021-12-07 01:52:59 +08:00
|
14
harwck 2021-12-07 06:31:33 +08:00
看视频只是浪费时间最后什么都学不会,书上写的这么简洁明了为什么还需要视频?
CSAPP, Computer Architecture, Algorithms 等 |
15
Poluk OP @thinkershare 好,我一直觉得用 c 的话还得先去打个基础 再去碰数据结构的课,所以就暂且想用自己学的 java 来学
|
16
VeryZero 2021-12-07 09:07:20 +08:00
王道的没看过,哈工大的视频感觉不错。。
|
17
yEhwG10ZJa83067x 2021-12-07 09:24:42 +08:00
|
18
Kininaru 2021-12-07 09:57:28 +08:00 via Android
最近也在看书,机械工业出版社的《现代操作系统》我觉得挺不错的,看完之后对于 C/C++ 的编译有了更深的理解。
同时也在看《计算机网络 自顶向下方法》,不过感觉这本书并不适合直接看,我是先看了课本《计算机网络 谢希仁》再看的自顶向下。 室友买了 CSAPP ,打算看完《计算机系统》再看。不过明年要考研了,如果没时间看那就等读研(或者上班)了再看。 大一大二搬砖搬吐了,还是修炼内功比较舒服。不过我觉得学 CS 还是应该多看文史类的书,代码写久了就会像机器一样思考,如果不看点文史类的来中和,人就会变成机器零件... |
19
MoYi123 2021-12-07 10:31:11 +08:00
@xxfye cf 不太合适吧, div2 的 ABC 一般都不会用到能叫出名字的算法或者数据结构, 还不如去 leetcode.
|
20
thinkershare 2021-12-07 11:07:14 +08:00
C 非常简单, 如果你有 Java 的基础, 你只需要理解 2 个概念, 指针(可运行,可操控不安全的引用), 内存堆栈布局结构. 作为一门语言的 C 是简单,简洁,且强大的, CS 基础的任何一门基础课程使用 C 都足够完成任务, Java,C#这种, 主要是为了工程和理解另外一个重要概念而准备的(强类型, 类型结构显示定义), 等你打好基础后, 你发现你还至少需要学 1-2 种面向对象, 1-2 种函数式, 或者一些四不像, 混杂了多种编程范式的语言, 然后需要训练工程能力, 再然后是架构能力或者去做基础设施, 就不需要搞这些应用层的东西了.
最重要的一点: 技术并不值钱, 值钱的是你使用技术解决了某个特定领域有价值的问题, 所以你最终会发现, 业务领域才是一个巨大的天坑, 每一个小领域都需要耗费大多数人一辈子 @Poluk |
21
wanguorui123 2021-12-07 11:26:41 +08:00
先学习下数字电路原理
|
22
Poluk OP @thinkershare 啊好的,受教了!
|
23
Poluk OP @wanguorui123 这课听起来应该会比较劝退吧哈哈哈哈,还会涉及物理知识吧
|
26
wanguorui123 2021-12-07 13:34:50 +08:00
@Poluk 涉及到 MOS ,PMOS 管
|