V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
kushu001
V2EX  ›  程序员

都说学会一门技术语言,然后再学习另一门技术语言就很简单了,你们有这样的感觉么?

  •  
  •   kushu001 ·
    NeegixOpensourceGroup · 1 天前 · 2869 次点击
    本人主要使用 java (当时花了非常多的时间去学 java se, spring mvc ,springboot 等),然后因为要用前端,学过前端的一些技术 js,css,html 和一些前端框架 reatjs, vue 等

    然后后来开发过 flutter 的 app ,学了点 dart ,说实话学的不精。

    然后现在想学一下 swift ,做一些 mac 开发或者 Ios 开发(买了三年的 macbook pro ,居然没有开发过)

    给我的感觉是,除了前端(可能本身比较简单?),感觉学其它的语言的时候,感觉还是挺吃力的(可能英语不是很过关?), 似乎没有那种会了一门语言,学习其它语言就很简单的感觉。

    本来也用过 python, php ,这些脚本语言相对来说简单一点,python 我开发的时候很多是借助 ai 的。

    跨语言的时候,感觉其它语言的很多写法,有点不太适应。然后还是要重新去学习一下😅,学的时候感觉又是很痛苦的过程。你们有这样的感觉么
    41 条回复    2024-12-27 13:46:58 +08:00
    Gilfoyle26
        1
    Gilfoyle26  
       1 天前   ❤️ 5
    学会一门语言,这个语言指的是 c++,而不是其他语言。
    adtxl
        2
    adtxl  
       1 天前
    rust 把我干懵逼了
    kushu001
        3
    kushu001  
    OP
       1 天前
    @Gilfoyle26 原来如此,我也学过 c, c++; 不过都是在学校学的,早就忘得一干二净了😅
    flytsuki
        4
    flytsuki  
       1 天前
    差不多,我目前写过项目的有 java,c#,c++,go,ts/js,dart 等,然后在 rust 上栽了跟头
    MrDarnell
        5
    MrDarnell  
       1 天前
    @Gilfoyle26 你说的还真不一定对,但我不想反驳
    alfa
        6
    alfa  
       1 天前
    我大一抱着 C++ prime plus 啃,大概懂个 6 成,之后其他语言几乎没啥太大的障碍。
    CodeCodeStudy
        7
    CodeCodeStudy  
       1 天前   ❤️ 2
    c,c++,rust 是一个级别,java,c#,go 是另外一个级别 ,javascript,python,php 又是另外一个级别
    geekjoehome
        8
    geekjoehome  
       1 天前
    只能说再去学相似的语言会容易点,比如 C 系列语言、java 、Kotlin ,本来就是一脉相承的。但有些如有思考方式、概念有很大差别,之前学习的知识反而是阻碍,要去适应一下
    lancelock
        9
    lancelock  
       1 天前
    扯淡的。所有语言是由语法特性组成的。你学的语言包含的语法特性够多这句话才成立,比如 c++
    AlexHsu
        10
    AlexHsu  
       1 天前
    变量 数据类型 数据结构 流程控制 异常处理 面向对象相关的 多线程 网络 函数式 这些都是共通的 肯定不用重复理解 掌握差异就行了 肯定会比从零开始容易
    rust 确实奇葩 所以 rust 这玩意要是不用学起来没啥意义 学完就忘
    vacuitym
        11
    vacuitym  
       1 天前
    最早在学校学的 C ,确实感觉学其他的很简单,当然说简单也只是处于可以写,磕磕绊绊的写,并不是说精通
    liyafe1997
        12
    liyafe1997  
       1 天前 via Android   ❤️ 2
    编程语言是要学的吗...甚至语言本身都不是一个值得讨论的问题。编程语言就像各种工具,比如螺丝刀,钳子,用到了自然会,不会的话看两下说明书(文档)也就会了。

    相比工具(编程语言)本身,更重要的是做什么,怎么做,用什么平台,框架怎么搭,再选择合适的工具(编程语言)。

    如果感觉编程语言要学,学起来痛苦,甚至连 C 都能「忘得一干二净」,建议真的考虑下自己适不适合长期从事/深耕这个行业。

    (还有一个原因是,C 是最接近机器语言的高级语言,本身就代表计算机的工作原理和基本思想,语言本身也就那几个 feature ,如果真的懂计算机&从事计算机工作的话,实在想不出怎么可能把 C 「忘掉」)
    yangzzzzzz
        13
    yangzzzzzz  
       1 天前
    学校学的 c java android ,当时觉得 c 是写着最舒服的,结果毕业干了 前端+.net
    XuDongJianSama
        14
    XuDongJianSama  
       1 天前   ❤️ 1
    吃力不吃力主要看 ide 好不好,坑多不多,难的不是语言,是 api
    wuyiccc
        15
    wuyiccc  
       1 天前
    学的第一个语言是 c++, 学的第二门语言是 java ,结果花了半年的时间才把 java 和 c++分开
    NewYear
        16
    NewYear  
       1 天前
    只要别碰汇编,怎么都好说,你要是染上了汇编,就索然无味了。

    我是学了 VS 的 C#后,再也没法学其他语言了,连个自动补全代码都不完善……怎么搞嘛……
    平时也写写 js ,自动补全居然是错的。
    msg7086
        17
    msg7086  
       1 天前
    把 Haskell 往你头上一丢,纵使你日用 C++也没用。

    不过上手快还是快的,肯定比一窍不通从零开始学的人要快得多。
    msg7086
        18
    msg7086  
       1 天前
    @NewYear 动态语言的代码补全肯定没法和静态语言比的。
    JS 都能原地动态给对象做手术,怎么补全嘛。
    visper
        19
    visper  
       1 天前
    学会了一门语言,那基本的一些东西可能你已经知道了,比如什么是数字,字符串,编码。基本数据结构如数组字典等。基本程序概念循环递归条件等。那基本这些在不同语言里面都一样。另外就是看语法是不是同一系列的。比如 C 语法系的,或者 basic 那些系列的。不过现在大多 C 系列的。像 lisp haskell erlang 那些差别太多的基本遇不到。 另外有些思念上不同点的有 GC 语言和无 GC 语言这些。不过更重要的是会什么,而不是什么语言。你只会做 web 服务,那么不管 go java python rust c++ 你都是只会用来做 web. 你会写游戏,那或者就是用这些语言做游戏。
    PTLin
        20
    PTLin  
       1 天前
    学会语法只占整个学习生命周期的 30%。
    剩下的最佳实践,常用库,各种各样的坑和一些语言底层原理才是真正的大头。
    比如你重度使用 java 后学习 dart 和 flutter ,dart 的 oop 概念和 java 很像但是 dart 的并发模型对你肯定是新的东西,如何运用好 dart 的 async 就是一个挑战,使用 flutter 还要详细学一些 flutter 底层原理才能更好的理解 flutter ,并且常用的库状态管理 bloc ,json 序列化库又是需要了解的东西。
    所以真想要用好一个语言很难简单的学会。
    henix
        21
    henix  
       1 天前
    可以多从特性的角度比较不同语言,把语言拆分成特性,掌握一种语言之后,再掌握有相同特性的语言就容易了
    比如同样是迭代,有些语言是 for 循环,有些是 iterator ,还有些是 generator
    比如 js 数组的 filter map ,Python 里有一样的东西
    再比如一些多线程数据结构,如果你掌握了 Java 的多线程,在 Python 里也可以用类似的方式思考:
    https://stackoverflow.com/questions/10236947/does-python-have-a-similar-control-mechanism-to-javas-countdownlatch
    encro
        22
    encro  
       1 天前
    应该是吧,至少 2 周上手写程序没问题吧。。。

    我一般 2 天就可以写程序了,2 周就不错了,2 个月能超过 80%的人吧。
    Mark24
        23
    Mark24  
       1 天前
    前提是 你学的是 另一个的超集。

    如果你入门的是另一个语言的子集,要学习很多。
    huangyezhufeng
        24
    huangyezhufeng  
       1 天前
    个人的体验是, 学过 Python 再去学 R ,Js 没那么难;学过 C ,Haskell ,再去学 Scala ,Elixir ,Rust 也相对没那么难。
    csys
        25
    csys  
       23 小时 56 分钟前
    语言范式不一样啊

    我自己感觉如果说能有一个“学了这个编程语言就能让其它语言的学习更容易”的编程语言的话,也许会是 lisp 或者 scala 这种?
    DOLLOR
        26
    DOLLOR  
       23 小时 43 分钟前
    @NewYear
    这就是 TS 流行的原因。如果没有 TS 那套工具链,JS 不仅缺少类型检查,就连补全都是残废,开发体验极差。
    paopjian
        27
    paopjian  
       23 小时 40 分钟前
    前端真的简单吗, 现在都是三方库满天飞, js 只是个载体, 实际语法糖好多都是框架带来的, 不会是真的不会. 看 leetcode 题解, 其他语言倒是也能转过来
    sagaxu
        28
    sagaxu  
       23 小时 26 分钟前   ❤️ 2
    撇开操作系统和网络等基本功不谈,

    语言:语法,标准库,技术规范,底层实现,演化历史

    生态:主流框架/库的使用和底层原理,各种需求场景下的选型

    功力:Thinking in XX ,XX 语言在 YY 生态下解决某个需求的最佳实践


    学会一门语言,只不过是粗通了这个语言的语法,离能干活和干好活还差的远着呢,再简单也是需要时间和项目经验积累的。否则,很容易在用 B 语言的时候,寻找 A 语言 XX 用法的平替,思考方式还是 A 语言的,不地道。


    https://www.v2ex.com/t/1100354 就是个例子

    别的语言,比如 C++, PHP, Go 封装一个 LogUtil 可能比较有必要,但在 Java 中,slf4j 就是事实标准,它只是个接口,其内部实现每一层都能自定义,统一汇总上报,分布式服务调用链 trace ,动态调整日志级别,脱敏等等都可以在不侵入接口的前提下很方便的实现。技术负责人沿用之前习惯,那便是“学会一门语言,再学其它语言很简单,但容易用的不地道”的例子。
    catazshadow
        29
    catazshadow  
       21 小时 50 分钟前
    我先学了 C ,然后学了 OCaml ,然后学了 rust ,然后学了 Lisp
    seers
        30
    seers  
       21 小时 40 分钟前 via Android
    学的 c ,然后其他语言感觉都挺简单
    kneo
        31
    kneo  
       21 小时 26 分钟前
    每个人情况都不一样。有时候承认自己没别人那么厉害是更有效率的做法。
    HRTops
        32
    HRTops  
       21 小时 15 分钟前
    这语言那语言,以后都可以用“AI 语言”代替了,哎~~不是以后,现在就快了
    anivie
        33
    anivie  
       20 小时 11 分钟前
    指的是一个家族,如果你对一个家族成员很熟悉,那么学习家族的其他成员就相对比较轻松
    auh
        34
    auh  
       19 小时 23 分钟前
    精通一门语言,然后对比着学习,我觉得很快。而且,能更深刻领略不同的编程语言的设计艺术。感觉编程语言设计的魅力。
    基本数据类型,逻辑控制,函数定义,代码组织,包管理,类,对象概念,多线程。内存管理。高级功能。
    然后,就是各种项目组件,日志,文件 io ,等等,最后找一些 most popular 框架,上手写写。
    我所接触的大部分,编程语言,按照上面的随便学习一下,找个项目练习一下,就差不多了。一个周撑死就无缝衔接了。
    hazardous
        35
    hazardous  
       19 小时 8 分钟前
    写了很多年 C++了,js 和 python 都很容易上手,但是 java 就不行,语法倒是没啥,spring 这一套连入门都入不了。
    5261
        36
    5261  
       18 小时 57 分钟前
    @adtxl rust 的符号是所有语言中最多的,也着实把我干懵逼,目前在看第二遍文档,边学边整理笔记!
    abcbuzhiming
        37
    abcbuzhiming  
       18 小时 52 分钟前
    @CodeCodeStudy
    rust 是单独一级的,C++都比不上,C++你不用特别精通,至少能写出 1+1 = 2 来; rust 如果你上手不能理解它那套思路的话,对不起 1+1=2 都编译不过去
    gxm44
        38
    gxm44  
       6 小时 56 分钟前
    每种语言有自己的思想,学会一门再去套用另一门,反而会适得其反。
    speedmancs
        39
    speedmancs  
       6 小时 26 分钟前
    我是先学的 C 语言,再学 c++,然后发现 java 和 c#一开始的语法和 c/c++语言很像,都是类 c 语言,所以学起来也很快。

    学 php 时更快,因为和 c 也非常像

    当时学 perl 遇到了一些困难,熟悉了以后就好了,后来遇到 python 都没专门去学,写着写着就会了。


    最近几年我接触了 Scala ,go, rust, 只有 go 写起来比较得心应手,rust 我学了一阵放弃了。
    prosgtsr
        40
    prosgtsr  
       5 小时 2 分钟前 via iPhone
    我做不到,写起来很难受,停留在舒适区了属于是
    FYFX
        41
    FYFX  
       4 小时 55 分钟前
    有啊,学 Haskell 花了好长时间(我怀疑我没入门),不过后面看 OCaml 就容易多了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3350 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 10:42 · PVG 18:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.