[纯分享]怎么同时学会多个编程语言 - V2EX
xuld

[纯分享]怎么同时学会多个编程语言

  •  
  •   xuld 8 days ago 538 views
    所有编程语言的共同点是:
    编程语言是从人类语言提取出来的一套符号子集,这套符号只提供两个功能:
    1. 定义数据结构
    2. 描述操作数据的算法。

    语言的区别来自于符号的写法不同,以及语言的系统库对同一个数据有不同的数据结构,从而导致操作的算法也不同。

    因此,学习一个编程语言,重点不是学习它提供了哪些语法和 API ,而是去学习它提供的语法和 API 背后是怎样的算法。

    如果学到了这一层,你就会发现虽然编程语言有很多,但它们的基本原理都是一样的,这样你就能做到举一反三,快速掌握所有编程语言。

    就像一棵树有很多叶子,你去记每个叶子,他们一天一个样,学起来很累。
    你需要的是去找树枝、找树根,那知识量就少了很多,而且不大会变化。

    以字符串为例。

    字符串的目的是存储一串字符及个数。

    那每个字符占多少位大小合适呢?

    C 语言出现在内存还很贵的年代,每个字符只占 8 位足够。但 8 位字符无法存储中文等非英文符号。
    因此后来的语言普遍采用了 16 位存储,包括 Java 、C# 等。但 16 位字符用来存英文又显得浪费,而且没法支持 Emoji 表情。
    因此现代的很多语言(比如 Go )又倾向于改回 8 位存储,但利用 UTF-8 编码,可以在需要时切换成任意字符。

    对于脚本语言来说,它们的核心目的就是减少学习成本,因此开发者不需要知晓字符串内部数据存储方式。
    脚本语言的字符串内部结构通常是动态的,引擎会根据需要自动切换。(切换需要额外的性能开销,因此脚本语言总是慢于编译型语言)

    如果知道了以上信息,那你就可以知道,同样是“你好”这个字符串,在不同语言取长度,返回的结果都是不同的。
    而要在所有语言都取到 2 这个结果,那需要的 API 肯定也是不同的。
    2 replies    2026-05-09 13:00:06 +08:00
    momocraft
        1
    momocraft  
       8 days ago
    建议不要只学 C 这类从硬件出发的语言,看看别的思想比如 SICP 再评论
    cabing
        2
    cabing  
       8 days ago
    描述需求,让 ai 帮你实践。
    About     Help     Advertise     Blog     API     FAQ     Solana     942 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 22:42 PVG 06:42 LAX 15:42 JFK 18:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86