给点迷津指点:是从数据结构和算法入手,还是从架构出发,搞通计算机编程:

2025 年 11 月 29 日
 Rust2015

学习计算机编程已久,但是一直不得其门,Java 、python 、PHP 、go 、JavaScript 都有涉猎,它们之间的联系是什么,怎么才能打通它们之间的任督二脉,我是要从架构、数据结构还是算法开始,给点指点。

叩谢!

4588 次点击
所在节点    程序员
32 条回复
MasterCai
2025 年 11 月 29 日
从 Codex ,Claude 入手
sampeng
2025 年 11 月 29 日
多写多看,自然融会贯通。10000 小时定律什么时候都生效。指望会个语法就融会贯通了那是不可能的
commoccoom
2025 年 11 月 29 日
一切都是编码,定义的变量也好,对象也好,都只是在内存中的特定编码。其实根本就没什么语言,有的只是编译器。是编译器决定怎么解释某种关键字及某种语法。语言只是编译器和大家的约定,只要写入这样的代码,编译器便将其翻译成某种机器指令,翻译成什么样取决于编译器的行为,和语言无关。

编程语言要将内存中的数据导出变成文件,则需要借助操作系统的 I/O 接口。或者将数据交予另一个进程,则需要借助操作系统提供的进程间通信接口。不管是 I/O 接口还是进程间通信接口都需要对数据进行编码( Encoding ),或者说序列化( Serialization )。因为持久化存储和网络传输都是面向字节流的。序列化本质上是一种“降维”操作,将内存中高维的数据结构降维成单维的字节流,于是底层硬件和相关协议,只需要处理一维信息即可。

好像是哪本书上看来的,对我启发很大,摘录下来了。
huaaaa
2025 年 11 月 29 日
‌组成原理 → 操作系统 → 计算机网络 → 编译原理 -> 语言特性 -> 数据结构与算法
songco
2025 年 11 月 29 日
基础有了,接下来可以尝试:
1.找规模小一点的开源项目研究源码,看看人家的设计和代码,我当年看的 redis ,negix ,Cassandra ,ceph 等一大堆
2. 自己有个想法,写代码实现,不断重构

架构的话也可以看看大厂架构的讨论
penisulaS
2025 年 11 月 29 日
从实际需求入手才能知道数据结构、算法、架构到底有什么用,否则概念都是虚的
zhan2046
2025 年 11 月 29 日
建议做个小玩具
NessajCN
2025 年 11 月 29 日
记住计算机编程只是做两件事
一是 IO (输入输出),二是计算
没有例外
所有的硬件和软件,所有的编程语言,从汇编到 C 到 python ,都是为了做这两件事
我建议初学者先彻底理解这两件事具体是什么、怎么做、为啥所有工作都是他俩
dearmymy
2025 年 11 月 29 日
你这搞清联系是什么鬼。 如果只语言上联系,你至少懂计算机组成原理跟编译原理。
如果只是纯编写代码。数据结构加架构就够了。
Rust2015
2025 年 11 月 29 日
@dearmymy 嗯,谢谢提醒
ghm2mail
2025 年 11 月 29 日
请叫我克劳德工程师
phoulx
2025 年 11 月 29 日
可以先学操作系统,算是 CS 学科的中枢
coefu
2025 年 11 月 29 日
他们的联系叫做,《计算机程序的构造与解释》->SICP.
Donahue
2025 年 11 月 29 日
nand2tetris 项目做一下,你就能大致理解 cpu/编译型语言的底层实现,
然后再找个解释型语言也学习以下,就知道它们之间的联系了。
nnccree
2025 年 11 月 29 日
learn by doing 比较有效率一些
listenerri
2025 年 11 月 29 日
有心要打通任督二脉,还是建议学习 C/C++。

先从 C 开始接触底层语言的世界,看看 C 的魅力,为何 C 能作为底层去支撑整个代码世界。

再延伸到 C++,看看 C++要解决 C 的哪些问题。这一步非常关键,学的好的话,数据结构和算法水到渠成。

之后找个动态/脚本类型语言看看,比如 Python ,了解下动态类型的优势。

接着就会发现其他语言都是语法糖+专注某些方向的特定优化。

至于其他的,比如题中提到的系统架构,私以为有了上述学习经验后,也难不倒你,毕竟任督二脉已经通了。
miKaSaAkerMan
2025 年 11 月 29 日
深入理解计算机系统,就这一本书,看完你就基本通了
duolanengda
2025 年 11 月 29 日
之前有看到国外程序员会在业余时间设计自己的编程语言和编译器,单纯从搞清这些语言间的联系角度来看,op 如果也尝试去自己实现一门语言的话,或许会很有帮助
prosgtsr
2025 年 11 月 29 日
学 c 语言,操作系统,组成原理,编译器
cs4forever
2025 年 11 月 29 日
@listenerri 专业

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

https://study.congcong.us/t/1175787

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

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

© 2021 V2EX