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

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

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

    虽然大家都说 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 必学
    jaylee4869
        19
    jaylee4869  
       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
    miaoxinwei
        49
    miaoxinwei  
       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
        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 必学啊,自动化和脚本等等简直方便到家
    dahhd
        81
    dahhd  
       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   ·   实用小工具   ·   2922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 13:45 · PVG 21:45 · LAX 05:45 · JFK 08:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.