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

2025 年 11 月 29 日
 Rust2015

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

叩谢!

4588 次点击
所在节点    程序员
32 条回复
pkm
2025 年 11 月 29 日
语言大同小异,掌握 c/c++,计算机基础课( 408 )打好基础,数据结构算法是内功
opengps
2025 年 11 月 29 日
我的出发点是业务,能解决业务需要都是好技术。甚至你可以独创一个操作方法。
比如前几年火起来的云计算,只因为各个大厂的热门活动,普通物理服务器加到顶配都难以抗住并发,最后反而是大量小机器分大压力各自干小事把峰值承载力提高到一个难以打趴的程度,坑过了顶峰还能自动关停减少机器。
这足够说明合理的架构合适的资源达到最终效果的重要性,并没有哪家云厂商专门说自己用了什么语言
ACoderWu
2025 年 11 月 29 日
系统架构什么的一开始学的时候完全不用考虑,这个东西还是比较看经验,工作几年了再来学事半功倍。我个人觉得从数据结构、算法、计算机原理这些入手确实不太友好,但这些确实也是非常重要的,我理解的你可能是想把这些串起来,让自己的知识更有系统性,那么建议从真实的完整项目入手,在解决需求的过程中慢慢体会到数据结构、算法、网络、内存的概念,有了这些概念之后再系统性的整合学习就不会很枯燥,同时也能知道自己所学的各种语言合适的应用场景等。
saleacy
2025 年 11 月 29 日
硬件定义计算方式 内核定义计算接口 语言定义计算实现 是这样理解吗
crackhopper
2025 年 11 月 29 日
装个 linux 系统。ubuntu 。学习一些命令行、makefile 。手动组织一个 c 语言项目,编译运行。从这个作为入口点开始学习。不会的问 AI ,AI 说了不懂的,继续问 AI 。接着用 C 语言实现一个复杂点的项目,(我当时是 OpenGL ,但有可能过于复杂了;可以做个简单的命令行工具,比如文件夹下的查找,于是会涉及到非常多的概念,文件系统,编码、二进制/文本,正则表达式)。这个过程中,不断深入学习一下系统的用法,鸟哥那本书不错。这样感觉有了之后,开始补全各个环节的基础课内容(其他人都提过那些基础课了,我基本全部补了一遍;其实也还好,现在有 AI ,更方便跳着看书了)。

如果是针对多个语言之间,联系之类的。学习一些编译原理和汇编语言。然后,我个人觉得可能深入 C++会比较方便理解多个语言(深坑),C++中有各种指针,GC ,多态,模板等等技术,回过头来,其他语言的很多特性也就能有所理解。然后还需要看一些操作系统的具体实现原理,页管理、线程调度之类的。基本上组合这些底层技术,大概就能明白高级语言的一些特性是怎么实现出来的。每当看到一个语言特性的时候,脑子里大概能猜得出来底层怎么实现的,算是打通任督二脉了(然并卵)。

最后,你还是应该通过长期推进一个自己的项目,选择聚焦 1-3 门语言,来不断的深入技术,累积更多技术声望。
FYFX
2025 年 11 月 29 日
plai.org 常用的语言特性差不多有了,静态类型啥的你得去看 TaPL(Types and Programming Languages)了。。。
或者 Programming Language Pragmatics ?作者最近在 ytb 上讲课 https://www.youtube.com/@JonathanAldrich
HarrisonLee
2025 年 11 月 29 日
如果你真的想,下载 Linux 内核源码,OpenJDK 源码,CPython 源码,GoLang 源码等。首先能够顺利编译,然后找一些源码分析资料,把一些主要流程和重点模块原理梳理通透。一定要源码,因为源码才最真实和最详细!
beck8
2025 年 11 月 29 日
运维一枚,fork 了一个仓库,已经 3.7k star 了,哈哈哈
Stargaze
2025 年 11 月 30 日
@beck8 同运维,老哥有链接吗
fkdtz
2025 年 11 月 30 日
万丈高楼平地起,编程语言也好、三高架构也罢,一切的设计、考量、模式,在底层实现中都已经存在了
去看系统和网络吧,去看那些真正男子汉该看的东西
beck8
2025 年 11 月 30 日
@xljya 这个就不分享啦,🪜相关的
midraos
2025 年 11 月 30 日
计算机原理、编译原理、软件工程的需求分析到系统设计、分布式系统,然后就着手实际项目

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

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

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

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

© 2021 V2EX