Java 程序员想发展第二语言, Python 、Go、Javascript 改如何选择 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kvkboy
V2EX    程序员

Java 程序员想发展第二语言, Python 、Go、Javascript 改如何选择

  •  1
     
  •   kvkboy 2020-09-04 10:27:54 +08:00 11562 次点击
    这是一个创建于 1900 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虽然大家都说 Java 是个又臭又长由嗦的语言,但是却符合我的性子,虽然麻烦但是一字一句的有迹可循

    选了这三种语言,目的就是为了感受编程语言的新世界,发出"这都可以?"的感叹

    也不是纯粹是为了好玩才学第二语言,第二语言要求能对生涯 (工作 /程序员) 有益

    不要跟我说 全都要!

    过几年说不定估计再发一贴,怎么发展第三语言

    第 1 条附言    2020-09-04 14:29:19 +08:00
    谢谢大家解答啊,Java 还没到尚可的程度(或者说 Java 要到尚可的水平也挺难了)。现在咨询这个只不过是稳一手,提前一波,多谢各位老哥

    都是很宝贵的建议

    总结一下评论

    Go 首当其冲,理由除了 Go 本身,还因为是第二语言和第一语言相辅相成,1+1>2

    python 多数人不建议

    kotlin 也很推荐,三天上手一周熟悉,成本低见效快

    scala,ruby,rust 都有推荐(不过个人水平还没高到有场景让我使用这些)

    JS/TS 看具体方向
    110 条回复    2023-12-28 11:18:34 +08:00
    1  2  
    CoderGeek
        1
    CoderGeek  
       2020-09-04 10:30:49 +08:00
    js ? go
    darknoll
        2
    darknoll  
       2020-09-04 10:31:30 +08:00
    都学吧,各有各的好
    ai8724968
        3
    ai8724968  
       2020-09-04 10:37:12 +08:00
    kotlin 用了就回不去 Java 了,一天上手,相互兼容。
    suzhenyu
        4
    suzhenyu  
       2020-09-04 10:41:43 +08:00   1
    之前看过类似的文章,文中推荐第二语言最好选个与第一语言差别大一些的。比如第一语言是静态语言,第二语言就推荐动态语言。
    按照这个逻辑,保留 Python 、Javascript 。这两个选的话,如果你不是想学人工智能方面的话,个人感觉 Javascript 更好一些吧。
    Rwing
        5
    Rwing  
       2020-09-04 10:42:04 +08:00
    难道不是 C#?
    cccp2020
        6
    cccp2020  
       2020-09-04 10:42:06 +08:00
    看你面向兴趣还是面向市场需要了,真为了发展的话,打好基础才是坠吼的
    ruyuejun
        7
    ruyuejun  
       2020-09-04 10:44:37 +08:00
    本命 Java,Node/Go/Python 都有过接触。Python 实在是提不起兴趣,写写小脚本还行。后来接触了 Node 与 TypeScript,小脚本的书写也告别了 Python,所以 Python 基本从我这里告别了。最后学了 Go,怎么说呢.....真香....
    这是我的心血 Go 总结:
    https://github.com/overnote/over-golang
    Node 怎么说呢,如果不想了解下前端,还是算了,因为 node 的大部分应用都是给前端做开发环境。当然如果有兴趣看,https://github.com/overnote/over-Javascript 里 Node 部分的基础、web 开发、原理三部分都是完整的
    ruyuejun
        8
    ruyuejun  
       2020-09-04 10:46:48 +08:00   1
    上面只是单纯的语言偏好,没有考虑到题主说的职场发展什么的。
    我觉得如果是要了解系统整体架构,深入服务端领域,那么 Go 的并发模型,以及一大堆云原生组件是值得学习的。
    如果是要走全栈方向,做个 Web 开发大师,Node 也是不错的选择。
    不过楼上有些朋友也说了,无论怎么选语言,都不存在非常大的收益,最大的收益永远是:算法 /网络 /系统三巨头
    wnanbei
        9
    wnanbei  
       2020-09-04 10:46:51 +08:00
    Go 跟 JAVA 太重叠了感觉,还是选个能互相搭配的吧
    kvkboy
        10
    kvkboy  
    OP
       2020-09-04 11:03:50 +08:00
    @ruyuejun 多谢,已 star !以后学 Go 就着落了。

    我也对 python 没特别大的兴趣,相比之下其实我更倾向于 Go 和 Js 。
    说实话,我对万物起源 Js 更有兴趣,感觉它是啥都能做,场景实在是很丰富,被网上各种信息迷了眼,但是我不是前端,所以对于 JS 的话就是兴趣>发展。

    Go 的话就是反过来,发展>兴趣,这个能对服务端方面有新的认识,不过也是我对 Go 了解不够发现不了它的闪光点

    这可能就是需要选择吧(叹气)
    Darain
        11
    Darain  
       2020-09-04 11:08:59 +08:00
    不建议学 go, 学了之后就完全不想写 Java 了
    onevcat
        12
    onevcat  
       2020-09-04 11:18:02 +08:00   1
    工业级的语言会一种就好了。要学就学一些能够当作爱好的... Haskell,OCaml,PureScript,Crystal 这些其实都不错..
    raincode
        13
    raincode  
       2020-09-04 11:24:07 +08:00
    Go,因为其他不会使你有"这都可以"的感叹
    Vegetable
        14
    Vegetable  
       2020-09-04 11:27:26 +08:00   4
    这三个一起学,也比你当初学 java 快,不用纠结。
    python:这么方便!
    Go:就这?
    Javascript:什么玩意?
    guanhui07
        15
    guanhui07  
       2020-09-04 11:27:28 +08:00
    js
    hwdef
        16
    hwdef  
       2020-09-04 11:27:52 +08:00
    rust 吧,,还是要学一些其他领域的,,,rust,python,haskell 选一个。
    ren2881971
        17
    ren2881971  
       2020-09-04 11:29:55 +08:00
    rust
    Huelse
        18
    Huelse  
       2020-09-04 11:31:56 +08:00
    rust 和 python 必学
    lavvrence
        19
    lavvrence  
       2020-09-04 11:40:01 +08:00
    TypeScript 。 对于 Java 程序员, 不建议学 JS, 直接 TS 。
    wtsamuel
        20
    wtsamuel  
       2020-09-04 11:48:59 +08:00
    python 必学。
    学别的语言话,要看你要做什么
    coderxy
        21
    coderxy  
       2020-09-04 11:49:25 +08:00
    js 吧。 一个动态一个静态
    ConradG
        22
    ConradG  
       2020-09-04 11:51:52 +08:00
    竟然没人推荐 ruby,干杂活一等一好手
    xinshoushanglu
        23
    xinshoushanglu  
       2020-09-04 11:52:13 +08:00
    PHP,the best language !
    gowk
        24
    gowk  
       2020-09-04 12:07:01 +08:00 via Android
    @Darain 这波 Go 吹的很舒服
    c2const
        25
    c2const  
       2020-09-04 12:08:08 +08:00 via iPhone
    选 c 语言+汇编
    namelosw
        26
    namelosw  
       2020-09-04 12:15:06 +08:00 via iPhone
    你要是追求"这都可以?"的效果,建议尝试 Common Lisp / Prolog / Idris
    CEBBCAT
        27
    CEBBCAT  
       2020-09-04 12:19:36 +08:00 via Android
    我是写 Go 的,工作中会用到 Shell+Python 。

    这个帖子给了我一种新的感觉,我之前还以为人人都会一点 Python 呢……

    要不还是学学 Python 吧,写写脚本处理数据挺方便的
    CosimoZi
        28
    CosimoZi  
       2020-09-04 12:20:02 +08:00
    scala
    oaix
        29
    oaix  
       2020-09-04 12:26:53 +08:00
    因为追求"这都可以?"的效果, 所以首先排除 go
    sty
        30
    sty  
       2020-09-04 12:35:34 +08:00
    花一礼拜学 kotlin
    laidu
        31
    laidu  
       2020-09-04 12:37:44 +08:00 via Android
    gogogo
    Takamine
        32
    Takamine  
       2020-09-04 12:50:36 +08:00 via Android
    三个都学了再对比感受一下不香吗。
    这几个语言的入门基础学习成本都并不高。
    chaleaoch
        33
    chaleaoch  
       2020-09-04 12:52:29 +08:00
    Go/ Javascript.
    看具体情况.
    EyreYoung
        34
    EyreYoung  
       2020-09-04 12:55:42 +08:00
    python 以前听信什么人生苦短啥的,实际上感觉根本不方便啊,只是看起来代码量少了而已,一个变量在 ide 里也不知道是什么类型,哪来的,全靠名字猜,读起来贼费劲。还不如写得全一点
    DeWhite
        35
    DeWhite  
       2020-09-04 12:57:22 +08:00
    磨透一个,其他转型就白给一样。
    zmxnv123
        36
    zmxnv123  
       2020-09-04 12:58:58 +08:00
    熟悉了上面三种的任何一个,你都会想 艹,java 怎么这么嗦。
    kingofzihua
        37
    kingofzihua  
       2020-09-04 13:00:05 +08:00
    为啥不去学 C 或者是 C++ 之类的,java 本身就不错了,学的杂可不是啥好的事
    Kamiyu0087
        38
    Kamiyu0087  
       2020-09-04 13:03:40 +08:00
    不考虑一下 Kotlin ?
    3 天上手一个礼拜熟练
    bz5314520
        39
    bz5314520  
       2020-09-04 13:14:54 +08:00
    java 玩的咋样了?
    meteor957
        40
    meteor957  
       2020-09-04 13:16:23 +08:00
    首先排除 Python 实用价值一般
    jones2000
        41
    jones2000  
       2020-09-04 13:28:58 +08:00   1
    第 2,第 3 语言应该为你第一语言服务的, 否则没有用处,就跟玩游戏分配属性一样,主要加 1 个主属性,其他属性分配的点都是辅助主属性, 否则就练废了。
    VoidChen
        42
    VoidChen  
       2020-09-04 13:32:55 +08:00
    java 必学 scala 。讲道理我现在用过 java 、scala 、python 、c#,普通开发不用高级特性的话,其实也都只是为逻辑服务而已。。
    HENQIGUAI
        43
    HENQIGUAI  
       2020-09-04 13:43:50 +08:00
    《七周七语言》
    tikazyq
        44
    tikazyq  
       2020-09-04 13:44:47 +08:00
    成年人不做选择,都要
    xnotepad
        45
    xnotepad  
       2020-09-04 13:49:05 +08:00
    你要有迹可寻的话,还是选静态吧。
    fly22109
        46
    fly22109  
       2020-09-04 13:52:01 +08:00
    为什么没人推荐 autohotkey
    sssooonnnggg
        47
    sssooonnnggg  
       2020-09-04 13:53:20 +08:00
    不考虑下 cpp 嘛
    frantic
        48
    frantic  
       2020-09-04 13:59:11 +08:00
    去看下 kotlin 上手很快的.熟悉之后能用 kt 的地方坚决不 java
    LICOEVE
        49
    LICOEVE  
       2020-09-04 14:11:05 +08:00
    不建议学 go, 学了之后就完全不想写 Java 了
    ligiggy
        50
    ligiggy  
       2020-09-04 14:12:38 +08:00
    C 艹
    encounter2017
        51
    encounter2017  
       2020-09-04 14:24:53 +08:00
    Scala/TypeScript/Rust 挑一个呗
    yuhangch
        52
    yuhangch  
       2020-09-04 14:34:26 +08:00
    @VoidChen
    行业一个挺厉害的轮子是 scala 写的,想简单了解一下语法看看代码,
    关键字太多了,直接劝退。。。
    jin7
        53
    jin7  
       2020-09-04 14:42:03 +08:00
    都要学....
    mxT52CRuqR6o5
        54
    mxT52CRuqR6o5  
       2020-09-04 14:42:13 +08:00
    要学的话应该学点不一样的吧,我觉得 python/ruby 这种可能好些
    Java 程序员学 kotlin 这种感觉根本就算不上是第二语言
    zhengdai1990
        55
    zhengdai1990  
       2020-09-04 14:47:13 +08:00
    选 go 吧
    cmdOptionKana
        56
    cmdOptionKana  
       2020-09-04 14:51:53 +08:00   1
    很容易选,你只要问自己一个问题即可:对前端有没有兴趣?有就 JS,没有就 Go 。
    xuqd
        57
    xuqd  
       2020-09-04 14:53:11 +08:00
    Scala 吧,回感觉很有意思
    sudoy
        58
    sudoy  
       2020-09-04 14:59:16 +08:00
    借个楼: 请问 go 有什么好的桌面库吗?就是可以做漂亮的桌面程序 GUI
    fhsan
        59
    fhsan  
       2020-09-04 15:05:58 +08:00
    为什么不全栈呢
    cmdOptionKana
        60
    cmdOptionKana  
       2020-09-04 15:06:22 +08:00   1
    @sudoy 没有,目前跨平台桌面 GUI 比较易用、比较漂亮的就 Qt 和 Electron,Qt 要做好看难度还稍大一点,而且 Qt 有 license 问题。因此 Electron 才会在桌面 GUI 这一块异军突起。
    sudoy
        61
    sudoy  
       2020-09-04 15:11:52 +08:00   1
    我个人觉得学当下流行的语言是个不错的选择,理由是用的人多工具也越多,不管是个人兴趣还是工作上都更容易找到现成的库可以用。比如我想对接某个股票接口,发现提供的现成 SDK 只有 python,Java 。比如工作上我需要对接某个快递公司的 API,提供的 SDK 只有 php,python,java 。当然这只是从这个角度分析,具体要看你自己的需求
    cmdOptionKana
        62
    cmdOptionKana  
       2020-09-04 15:12:15 +08:00
    @sudoy 如果面向市场,做 GUI 只能放弃 Go 了。如果是自己做小项目,可以考虑走 web 路线,Go 开本地服务器做后端,通过 localhost 访问前端页面,这样做还有个有点,如果有树莓派或者 VPS 之类的,可以直接变成网站 24 小时手机电脑都可以访问自己的应用,还省了做 app 。
    charlie21
        63
    charlie21  
       2020-09-04 15:13:20 +08:00
    会几种语言的人感觉也没咋地
    但是会写网站 + 桌面软件 + 手机软件的人,就是复合型人才了。看你关注的问题是什么了

    没几个人会对 ‘研究茴字有几种写法’ 有兴趣
    sudoy
        64
    sudoy  
       2020-09-04 15:15:21 +08:00
    @cmdOptionKana 谢谢解答!我现在主要语言就是 python,除了桌面 GUI 这块不大满意之外,别的地方都够用了。另外有点想学 GO,但是好像没有什么特别吸引我的地方
    Victor69
        65
    Victor69  
       2020-09-04 15:21:02 +08:00 via iPhone
    试试 ruby ?
    cmdOptionKana
        66
    cmdOptionKana  
       2020-09-04 15:23:42 +08:00   1
    @sudoy pyqt 还蛮好玩的。如果不考虑工作,个人使用 Go 比 Python 优势也不多,就是静态语言 debug 和重构会稍稍方便一点,运行效率高一点,部署方便一点,好像就是这几方面稍稍有点优势了吧,别的没什么了。
    Leonard
        67
    Leonard  
       2020-09-04 15:30:24 +08:00
    Elixir
    no1xsyzy
        68
    no1xsyzy  
       2020-09-04 15:35:59 +08:00
    @raincode 看 JS:这什么语法?这都可以抄?
    至于 Python:这显然可以…… 什么?不行? (因为太多地方强调符合直觉,写多了就感觉显然可以的就是可以的,突然某个地方不行反而会被惊到)

    @jones2000 炸弹人 25 级转物理又不是不行(
    现实不是游戏,专一型人才会面临结构性失业。游戏有人做平衡还每个版本都有下水道职业,现实就真没人做平衡了,下个版本你没了怎么办?
    xiaoxinshiwo
        69
    xiaoxinshiwo  
       2020-09-04 15:36:19 +08:00
    python,能提高生产效率,推荐
    Merlini
        70
    Merlini  
       2020-09-04 15:44:46 +08:00 via Android
    会 python 和 ts,下一个静态语言推荐学什么?
    CaffreySun
        71
    CaffreySun  
       2020-09-04 16:16:41 +08:00
    兄弟,来 swift 看看呗,
    强大的协议、安全的类型、多编程范式支持,
    总之这门语言香的很,可惜难以出圈。
    waltcow
        72
    waltcow  
       2020-09-04 16:31:51 +08:00
    ts
    kannbala
    nbsp;   73
    kannbala  
       2020-09-04 17:06:36 +08:00 via iPhone
    不知道为啥有人学了 go 不想写 java,我是反过来,学了 go 还是觉得 java 写业务舒服。
    Wuxj
        74
    Wuxj  
       2020-09-04 17:22:30 +08:00
    如果是我的话就是 js + html + css 前后端都能搞,以后年纪大了去送外卖了 晚上有时间还可以接接外包:)
    newmlp
        75
    newmlp  
       2020-09-04 17:26:46 +08:00
    C 艹,天花板无限高,够你玩一辈子了
    windyboy
        76
    windyboy  
       2020-09-04 17:49:11 +08:00
    kotlin 看着容易,写起来不易
    wuwukai007
        77
    wuwukai007  
       2020-09-04 17:50:34 +08:00
    用过 a,b = b,a 和 列表推导式后,难道不会对 python 产生点兴趣吗?
    TypeError
        78
    TypeError  
       2020-09-04 17:50:56 +08:00 via Android
    Python 不比 js 好多了,起码是强类型,也不需要各种编译

    反正前端学学 js 还行,nodejs 后端我是提不起来兴趣
    Jooooooooo
        79
    Jooooooooo  
       2020-09-04 19:10:33 +08:00
    真不如多学点操作系统, 网络来的实在
    Huelse
        80
    Huelse  
       2020-09-04 19:26:40 +08:00
    那些不推荐 python 的是什么心态,只是作为了解使用,python 必学啊,自动化和脚本等等简直方便到家
    v7offJ3MsdbC1IhU
        81
    v7offJ3MsdbC1IhU  
       2020-09-04 19:35:46 +08:00 via iPhone
    才三选一啊,做移动端的,我还不是 oc,swift,dart,js 都学了……
    Cooky
        82
    Cooky  
       2020-09-04 19:42:24 +08:00 via Android
    Python 标准库方面比 Java 强太多
    xjqxz2
        83
    xjqxz2  
       2020-09-04 19:45:39 +08:00
    Go & PHP 还想转 Java 诶...
    taxiaohaohhh
        84
    taxiaohaohhh  
       2020-09-04 19:48:15 +08:00 via Android
    js 动静搭配
    ming7435
        85
    ming7435  
       2020-09-04 20:46:47 +08:00
    @TypeError python 强类型???
    TypeError
        86
    TypeError  
       2020-09-04 20:49:23 +08:00 via Android
    @ming7435 不懂就去谷歌
    levelworm
        87
    levelworm  
       2020-09-04 20:55:24 +08:00 via Android
    我觉得还是看做啥,语言只是工具,对于诸位程序员来说,学习第二语言应该本身不是难事,甚至都可以直接看文档学。
    jones2000
        88
    jones2000  
       2020-09-04 21:19:02 +08:00
    @no1xsyzy 编程这个东西,最后也就是一个设计的思路, 跟语言没什么关系,流程图画出来, 用什么语言都可以。java/c++ 有一门语言精通了,换其他语言没什么难度。

    我是 c++开发的, 我开源过一个 js 金融图形库+策略引擎( https://github.com/jones2000/HQChart ), 这个是直接把 c++版本移植到 js,Py 上, 只要看下 js,py 语法就可以了。 其他的就根据 c++的设计思路移植就可以了。
    qiumaoyuan
        89
    qiumaoyuan  
       2020-09-04 21:52:33 +08:00
    ["a", "bc", "def"].find{|n| n.size > 2 }

    有吸引力不?
    magicZ
        90
    magicZ  
       2020-09-04 22:40:21 +08:00
    公司主力前端走了之后,突然感觉我可以搞搞, 目前已经在学 JS 了, java 是很好,但我想开拓一个新的方向.
    ZRS
        91
    ZRS  
       2020-09-04 22:45:38 +08:00
    最近工作所迫在写 JS,全程感觉这 tm 是什么 jb 缝合怪
    Resource
        92
    Resource  
       2020-09-05 00:09:53 +08:00
    上面大佬说一天上手 kotlin 的还行
    lxml
        93
    lxml  
       2020-09-05 11:15:36 +08:00
    @Resource 10 分钟速读算法导论?
    tairan2006
        94
    tairan2006  
       2020-09-05 13:17:38 +08:00 via Android   2
    首当其冲用错了
    ClydeX
        95
    ClydeX  
       2020-09-05 16:37:05 +08:00
    @charlie21 正解
    rim99
        96
    rim99  
       2020-09-05 18:42:38 +08:00
    用了两年 Java 以后,换了家公司分别在两个项目上用了 Scala 和 Kotlin 几个月。

    个人感觉是,单纯自学新的语言,没有时间场景,也不会有太大的学习感触。

    不如学一些 Haskell 、Erlang 这种有很多新奇概念的语言,拓展一下视野。。。
    hdfg159
        97
    hdfg159  
       2020-09-05 22:55:00 +08:00 via Android
    最快是选择 groovy,哈哈哈哈哈
    reus
        98
    reus  
       2020-09-06 15:33:53 +08:00 via Android
    @ming7435 连 python 是强类型都不知道,水平地下到这个地步,你怎么有脸参与讨论的?
    thetbw
        99
    thetbw  
       2020-09-06 18:47:26 +08:00
    js 肯定会用到,没什么学不学的吧,不过 js 用起来贼难受
    janxin
        100
    janxin  
       2020-09-06 19:10:00 +08:00
    翻页,ts 吧
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     922 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 20:58 PVG 04:58 LAX 12:58 JFK 15:58
    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