V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
HiShan
V2EX  ›  程序员

程序员如何选择自己的第二语言?

  •  1
     
  •   HiShan · 2020-08-30 21:36:45 +08:00 · 10669 次点击
    这是一个创建于 1551 天前的主题,其中的信息可能已经有所发展或是发生改变。

    题主主要是做 Golang 开发,不知道有没有必要选择第二门编程语言来学习,请教一下各位大佬。

    第 1 条附言  ·  2020-08-31 08:59:04 +08:00
    选择第二门不是一个限制,只是想着如何提升自己的技术与思想
    第 2 条附言  ·  2020-08-31 11:01:39 +08:00
    目前感觉:英语、Lisp 系、Haskell.
    主要是想用第二门语言来拓展视野和编程思想(例如学会 FP 可以用另外的角度来解决算法问题)
    84 条回复    2020-09-01 20:05:55 +08:00
    dji38838c
        1
    dji38838c  
       2020-08-30 21:53:57 +08:00
    德语
    chenqh
        2
    chenqh  
       2020-08-30 21:56:27 +08:00   ❤️ 1
    有就学 js?
    baozixixi
        3
    baozixixi  
       2020-08-30 21:56:42 +08:00
    我是工作 golang + python
    自己平常在看 java
    tikazyq
        4
    tikazyq  
       2020-08-30 22:00:56 +08:00   ❤️ 14
    英语
    nightwitch
        5
    nightwitch  
       2020-08-30 22:10:11 +08:00   ❤️ 1
    第一门是静态语言第二门就选动态语言,建议 Python/Javascript,生态好,能干很多事
    qdwang
        6
    qdwang  
       2020-08-30 22:11:31 +08:00 via iPhone
    rust
    akira
        7
    akira  
       2020-08-30 22:15:58 +08:00
    多学几门语言,总归是好事。不一定要精通
    既然已经会 go 了,py 什么的可以考虑下
    guanhui07
        8
    guanhui07  
       2020-08-30 22:22:27 +08:00 via iPhone
    js ?
    ericls
        9
    ericls  
       2020-08-30 22:24:33 +08:00 via iPhone   ❤️ 2
    至少要 5 个语言 之后新语言基本上可以不学直接上手

    学那种能颠覆你认知的语言 完全不一样的语言
    no1xsyzy
        10
    no1xsyzy  
       2020-08-30 22:26:20 +08:00   ❤️ 3
    这得看你选择第二种语言的目的是什么……
    1. 工资 —— 取决于当前环境和你的城市,大致上来说是 Java 供序都绝对地多,也就不容易出现不稳定因素;但同时一些老语言会产生铁饭碗、一些语言在特别领域的特殊应用(比如 Python 之于大数据、JavaScript 之于 Web )。
    2. 辅助性工具 —— 动态、解释型且库多的语言,主要是 Python/Javascript 。
    3. 另一种语言的思维方式 —— 我建议你选个和之前的非常不同的,上面说的 Python/Javascript 是一个选项,但我建议是 Lisp 或者 Haskell (因为实在太不同了),不要管那些语言的细枝末节技术细节,主要是借鉴思路。
    di94sh
        11
    di94sh  
       2020-08-30 22:33:44 +08:00 via iPhone
    py 性价比非常高,无论是找工作还是自己用,另外推荐在学一门无 gc 的语言比如 rust
    love
        12
    love  
       2020-08-30 22:55:50 +08:00   ❤️ 1
    js 比 py 性价比更高,py 能做的 js 也能做,py 做不了的 js 也能做
    ETiV
        13
    ETiV  
       2020-08-30 23:07:10 +08:00
    学前端,一步到位
    直接学会 3 种语言:HTML 、CSS 、JavaScript
    wangritian
        14
    wangritian  
       2020-08-30 23:17:14 +08:00   ❤️ 1
    学语言只是几天到几周的事,但操作系统、网络、数据库、分布式等等这些底层知识决定了你将来的高度,它们是需要长期累积的
    hahasong
        15
    hahasong  
       2020-08-30 23:25:10 +08:00 via iPhone
    日语,平时看剧,海淘,东南亚旅游也方便
    hoper2333
        16
    hoper2333  
       2020-08-31 00:17:57 +08:00 via Android
    😂想到之前是为了写油猴插件才学 js 的,第二门语言可能是被逼的
    liberty1900
        17
    liberty1900  
       2020-08-31 00:20:15 +08:00 via Android
    Shell + Awk
    EminemW
        18
    EminemW  
       2020-08-31 00:59:56 +08:00
    讨厌 py 虽然自己认真学的第一门是 py
    shangyes
        19
    shangyes  
       2020-08-31 01:20:48 +08:00 via Android   ❤️ 1
    想提高生产力,考虑学 shell 或者 py
    想拓宽认知,考虑学 fp 语言
    想更接近底层,考虑学 rust 或者 c++
    还有 c#或者 kotlin,如果打算写 win/android 应用的话用起来很爽
    但是不管怎样学 js 肯定错不了(滑稽
    w3cfed
        20
    w3cfed  
       2020-08-31 01:33:43 +08:00
    Golang 、JavaScript 、TypeScript 、C#
    wlt233
        21
    wlt233  
       2020-08-31 01:34:57 +08:00 via Android
    看到标题→第二外语
    点进来→原来是编程语言...
    学些胶水语言呗,缝些小玩意还是蛮快乐的
    widewing
        22
    widewing  
       2020-08-31 01:37:16 +08:00 via Android
    我这些年主力语言转变:C++ -> JAVA -> Python,越用越简单了
    MeatIndustry
        23
    MeatIndustry  
       2020-08-31 02:25:29 +08:00 via iPhone
    直接学一下编程语言理论呗,嘿嘿
    copymaster
        24
    copymaster  
       2020-08-31 06:15:35 +08:00 via Android
    这个问题我前不久刚问过,原帖 https://www.v2ex.com/t/694833,最终还是学了 c++
    计科专业只会 java,c 和 c++不学一个感觉有点水
    yousabuk
        25
    yousabuk  
       2020-08-31 07:14:32 +08:00 via iPhone
    我自己这些年的我主力语言:
    底层,Linux,嵌入式:C
    互联网,数据分析,服务器:Java
    网页:VUE
    工业测控:LabVIEW
    cat
        26
    cat  
       2020-08-31 08:02:17 +08:00 via iPhone   ❤️ 1
    说了几百次程序员不要被语言限制,喜欢哪个学哪个,面向工资编程 哪个高学哪个,多学几个语言开阔思路才是正解,别自己一上来就限制在“第二”语言
    zachlhb
        27
    zachlhb  
       2020-08-31 08:02:57 +08:00 via Android
    可以多了解了解啊,每种语言都写个 demo,看自己能接受那种,像我就实在接收不了 golang 的语法,感觉贼别扭
    mathzhaoliang
        28
    mathzhaoliang  
       2020-08-31 08:10:59 +08:00
    不管选择什么语言,一定以提升自己的生产力为第一目的,最好是有明确的使用需求。
    xuanbg
        29
    xuanbg  
       2020-08-31 08:31:05 +08:00   ❤️ 1
    没必要特意去学一门语言。

    语法没啥好学的,大家都是差不多的。API 也没啥好学的,用的时候利用一下搜索引擎就完了。但你需要去了解 go 或者别的语言的一些生态,要知道有哪些好的工具,可以帮你做什么。这个非常重要,不了解生态,就做不好技术选型,就会掉坑里面。。。
    Redbeanw
        30
    Redbeanw  
       2020-08-31 08:48:38 +08:00
    不管干什么 cpp 必学
    CosimoZi
        31
    CosimoZi  
       2020-08-31 08:54:43 +08:00 via Android
    haskell
    DOLLOR
        32
    DOLLOR  
       2020-08-31 09:00:42 +08:00
    如果为了好玩:haskell 、lisp 、Rust 。
    如果为了实用:JavaScript 、TypeScript 。
    tuchg
        33
    tuchg  
       2020-08-31 09:01:10 +08:00 via Android
    提升思想那就完全颠覆思维,同楼上 haskell
    cco
        34
    cco  
       2020-08-31 09:01:20 +08:00   ❤️ 1
    后端 JAVA + 前端 JS/HTML/CSS/VUE,饿不死。
    chengkai1853
        35
    chengkai1853  
       2020-08-31 09:08:22 +08:00
    要用什么,直接学了拿来用就好了。除了主修语言,其它全是第二语言。反正不常用的总归忘得很快。
    supuwoerc
        36
    supuwoerc  
       2020-08-31 09:22:11 +08:00
    面向工资编程 哪个工资高就奔哪个
    HiShan
        37
    HiShan  
    OP
       2020-08-31 09:32:11 +08:00
    @cat 不是被语言限制,而是选一门语言来拓展视野
    cym1102
        38
    cym1102  
       2020-08-31 09:45:42 +08:00
    如果是做后端 ,那么 js html css 必学, 总有一天你会用到前端知识, 如果你做前端, 那就学一门 java
    b0644170fc
        39
    b0644170fc  
       2020-08-31 09:49:43 +08:00
    我是选择和工作相关的.主力 java,工作中需要用 redis,那就学 lua; 用到 Gradle,就学 groovy,groovy 在 java 中的使用场景还是挺多的,除了 gradle,还可以做单元测试,es 等
    raptor
        40
    raptor  
       2020-08-31 09:51:20 +08:00
    干程序员还要纠结这种问题?谁不是得学个一二十种语言啊,二十年前光是汇编我就学了一二十种……
    pkoukk
        41
    pkoukk  
       2020-08-31 09:54:09 +08:00
    我建议 c#,感受一下对码农最友好的语言是什么样的
    thinkmore
        42
    thinkmore  
       2020-08-31 10:03:35 +08:00
    我是 javaer,之前很排斥学习第二门语言,但是最近工作又要用到 python,被逼上岗去学了下 python.

    基础语法上手真的很快(零零碎碎三天搞定),幸福感比较强,毕竟上手快。虽然还没有做什么大项目

    所以呀,大可不必看成洪水猛兽。可以当做自己知识的延伸
    Hanggi
        43
    Hanggi  
       2020-08-31 10:12:21 +08:00
    其实基本思路就是第二语言可以作为第一语言的一种补充。
    所以语言选择尽量选择不同类型的,比如:

    脚本语言:Node.js ( JS ),PHP,Python,Ruby ...
    系统级语言:C/C++,Rust ...
    一把嗦语言:Java,Go,C# ...
    人工智能:Python,R,Matlab ...

    每个大分类选一个就好了,根据自身需求,应用场景。
    同一种类一般不需要会多个语言。

    比如楼主现在会 Go,那么可以选择一门脚本语言,现在比较火的有 Node.js 和 Python 。
    如果偏向 Web 就 Node.js + TS + Nestjs + Angular 什么的一把嗦。
    偏大数据就 Python 。
    PTLin
        44
    PTLin  
       2020-08-31 10:40:07 +08:00
    建议学学 Haskell
    asm
        45
    asm  
       2020-08-31 10:51:01 +08:00
    必须日语呀,碰到有些没有字幕的,少点剧情,少点意思。
    volvo007
        46
    volvo007  
       2020-08-31 10:52:46 +08:00
    @love 最近正在看 js,想请教下,用 js 怎么写爬虫或者做机器学习
    HiShan
        47
    HiShan  
    OP
       2020-08-31 10:59:58 +08:00
    @PTLin
    @CosimoZi

    Haskell 感觉好难,得花很多时间才能搞懂一样
    MrKou47
        48
    MrKou47  
       2020-08-31 11:02:00 +08:00 via iPhone
    我觉得韩语不错,语法非常简单,文字也好写。一些发音和中文也差不多
    reshui
        49
    reshui  
       2020-08-31 11:05:28 +08:00
    我觉得。。英语是不二之选
    melvin
        50
    melvin  
       2020-08-31 11:31:26 +08:00
    学后台程序员永远学不会的 css
    cdffh
        51
    cdffh  
       2020-08-31 11:32:10 +08:00
    选个动态语言感觉不错 py js php 都不错
    scnace
        52
    scnace  
       2020-08-31 11:41:55 +08:00 via Android
    语言感觉不是很重要,编程思维感觉比语言本身重要,语法这种东西用到了再去学也不迟啊……
    zzzmh
        53
    zzzmh  
       2020-08-31 11:44:38 +08:00
    主后端,目前在学习前端,感觉根本学不完,h5c3js 学了点基础,然后学了 vue,现在又要学 vue cli webpack,感觉已经力不从心了,后面还有一堆不会的一看就头疼
    Mutoo
        54
    Mutoo  
       2020-08-31 11:49:01 +08:00   ❤️ 1
    《七周七语言》配合《代码之髓》一起服用,祝早日找到心仪的第二语言。
    flowercoder
        55
    flowercoder  
       2020-08-31 11:53:06 +08:00
    shell 可以看一下,基本很简单,用的比较多的也就 if else awk/sed/,那个写好了,能省时间,还有 python,学好了也很省时间。
    dreamtrail
        56
    dreamtrail  
       2020-08-31 12:09:33 +08:00
    我现在在学第四语言
    gaoyadianta
        57
    gaoyadianta  
       2020-08-31 12:09:52 +08:00
    别听这帮装 x 的瞎扯,老老实实 python 搞起来,不用谢
    gaoyadianta
        58
    gaoyadianta  
       2020-08-31 12:10:51 +08:00
    你就只会个 go,还远没到学那些冷门中的冷门的东西的地步
    haleyao
        59
    haleyao  
       2020-08-31 12:18:33 +08:00
    meow? bark! 手动狗头
    zhz1237ok
        60
    zhz1237ok  
       2020-08-31 12:19:16 +08:00
    喜欢哪个语言就学哪个,如果是为了工作,那就选互补的语言
    lidashuang
        61
    lidashuang  
       2020-08-31 12:23:31 +08:00 via iPhone
    ruby
    damngood
        62
    damngood  
       2020-08-31 12:29:35 +08:00
    不用容易忘.
    学过的语言七七八八的很多. 但真正可以快速拿来工作的就那么 2-3 个...
    inorilzy
        63
    inorilzy  
       2020-08-31 12:59:49 +08:00 via Android
    @love 现在 js 也能做机器学习和数据分析了吗。
    fatestigma
        64
    fatestigma  
       2020-08-31 13:32:09 +08:00
    感觉可以考虑系统的学习编程语言,推荐华盛顿大学的 CSE341 编程语言( Programming Languages ),Coursera 上有,课程中依次介绍 SML 、Racket 、Ruby,并系统分析编程语言的特性,不同编程语言的种类
    以后遇到新的语言之后,学起来感觉也会更快一些
    zppass
        65
    zppass  
       2020-08-31 13:55:01 +08:00
    看你实际能不能用到,用到的话可以作为自己第二语言,要不然光看文档打几个“hello world”没什么太大意义,最好带入实际使用中去。
    实在不行就是自己喜欢的东西,喜欢 python 搞 python,喜欢 k8s 就试试 go,喜欢前端展示就 JS 前端框架,操作系统源码实现就直接 C 。
    keymao
        66
    keymao  
       2020-08-31 14:03:00 +08:00
    不要去学,要去用。

    人类的记忆模式决定了,你几个月不用就会忘得一干二净,精精光光。

    至于如何选择第二个语言,我只能告诉你,看你的需要,你需要用到什么,就学什么。
    ZehaiZhang
        67
    ZehaiZhang  
       2020-08-31 14:05:58 +08:00
    Deutsch bitte
    nomemo
        68
    nomemo  
       2020-08-31 14:46:27 +08:00
    java,python
    产品经理的建议
    khjian
        69
    khjian  
       2020-08-31 16:09:16 +08:00
    这有啥选择的,都是在项目中学的,干几年啥语言都会了
    lancelock
        70
    lancelock  
       2020-08-31 17:11:22 +08:00
    cpp
    aguesuka
        71
    aguesuka  
       2020-08-31 17:12:57 +08:00 via Android
    建议去知乎问,那里的老哥喜欢这种问题
    lonelymarried
        72
    lonelymarried  
       2020-08-31 17:39:59 +08:00
    我都用好几个语言了
    itskingname
        73
    itskingname  
       2020-08-31 17:44:45 +08:00
    学 LaTex,写文章好的排版能加分。
    学 VHDL 硬件描述语言,软硬结合。
    学 Lisp,另一种编程思路。
    pastgift
        74
    pastgift  
       2020-08-31 18:25:29 +08:00 via iPhone
    计算机语言只要不是太冷门的都该知道点的吧
    人类语言有兴趣可以考虑日语德语,没兴趣还是提高英语吧
    wy7305e
        75
    wy7305e  
       2020-08-31 18:27:16 +08:00 via Android
    只用两门哪够。
    不管什么语言,都要学好英语。
    PTLin
        76
    PTLin  
       2020-08-31 21:57:49 +08:00
    @HiShan Haskell 有 Haskell 趣学指南这本非常好的入门书,我当年看 Haskell 趣学指南这本书的过程中充满了乐趣,假如你有空闲的话绝对值得一看。
    huiyifyj
        77
    huiyifyj  
       2020-08-31 22:09:24 +08:00
    go + rust + nodejs
    HiShan
        78
    HiShan  
    OP
       2020-09-01 08:33:56 +08:00
    @huiyifyj 为啥要有 nodejs?
    @PTLin 已经开始看了,谢谢大佬
    crackhopper
        79
    crackhopper  
       2020-09-01 09:43:37 +08:00
    一开始我也跟楼主一样纠结过。现在不纠结了,基本开发过项目的有 10 门左右,学了点皮毛为了看源码的还有 10 来种。我建议根据问题驱动就好,比如看源码,单独学习语言没啥用。
    crackhopper
        80
    crackhopper  
       2020-09-01 09:46:13 +08:00
    视野和编程思想,主要也体现在源码里。不看源码学了也没用。如果是纯新手入门,我觉得还是 c 或 js 好点,py 其次吧。
    HiShan
        81
    HiShan  
    OP
       2020-09-01 14:03:01 +08:00
    @crackhopper 什么项目的源码?推荐一下
    liguangsheng
        82
    liguangsheng  
       2020-09-01 18:55:53 +08:00   ❤️ 1
    至今为止的语言:
    写过 3000 行以上的项目的有 C/C++,Java,C#,Python,Golang,elisp
    写过小脚本的有:Python,lua,javascript
    试玩过的有:Rust,Kotlin,Dart,Haskell

    目前的语言配置:
    系统级语言:Rust
    脚本语言:Python
    恰饭语言:Golang
    Emacs 配置语言:elisp

    不同语言接触的多了,发现除了特殊的小众语言,其实大部分语言的语法元素都差不多,基本看看语法就能直接上手,然后熟练度都是用出来的。如果不经常用,就算很熟的语言也会生疏。
    msg7086
        83
    msg7086  
       2020-09-01 19:03:36 +08:00
    要拓展视野为什么才开始学第二语言呢。
    我进大学之前已经会好几门语言了。
    我觉得至少要看过六七个不太一样的语言才算比较好。
    静态的动态的编译的解释的,完全面向 OO 的,函数式风格的,等等。
    crackhopper
        84
    crackhopper  
       2020-09-01 20:05:55 +08:00
    @HiShan js 当时我看的是 strapi 和 vue 、elementui ; C++看了 cocos-2dx 、caffe 、caffe2 、opencv ; python 没咋看直接用的,好像看了 keras ; haskel 可以看 pandoc,我没细看; lisp 我看了 emacs-lisp 的一些插件,recent-f 之类的;我觉得这个主要看你的兴趣吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1192 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:54 · PVG 06:54 · LAX 14:54 · JFK 17:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.