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

2021 年了,想学后端, NodeJS 、 Python 和 Go 三选一。

  •  
  •   jmyz0455 · 2021-01-21 14:14:32 +08:00 · 1610 次点击
    这是一个创建于 1184 天前的主题,其中的信息可能已经有所发展或是发生改变。

    深知这类问题过于月经,所以从自身需求来考虑比较好,希望大伙给给意见。

    我是工作四年的前端,由于业务原因接触了不少后端的知识,基础的 NodeJS 和 Python 知识都了解过,觉得前后端很多逻辑是不分家的,那我为何不把后端也学了呢。因此计划 2021 年选一门后端语言去从零学起,一方面是提高技术。一方面是提升简历,还有一方面是有个人项目上的需求,想写后端支撑起自己的想法,估计也是写写 RESTful API 。

    以上就是个人的情况,下面是跟搞技术的朋友聊这个话题时的一些碎碎念:

    原本打算既然会一点 Python,那不如 Django 一把梭得了,但是有位四年 Python 经验的朋友劝住了我,说既然是从零开始学,为什么不学 Go 呢,云计算以后是大趋势,万一押中了 Go,简历上肯定比精通 Django 好看,何况现在前端懂个 CURD 也不吃香。他觉得 Python 版本经历过大升级,遗留了不少版本兼容的坑,跨平台还会遇到依赖系统的模块,而 Go 构建快,没有奇怪的编译错误和依赖,到哪都能跑,用过就知道。

    后来找到写过 Go 的全栈大佬,他说云原生的 Go 确实香,处理协程信道的设计很好,问题是按我的需求,学后端语言大概率也是 CURD 用得多。而 Go 主要是用来做基础建设而不是写业务,至少他不会用 Go 来写业务,真要 CURD 撸得快还是 Python 和 PHP,而且我也不是要转云开发,前端就算懂了简历加分也不大,还不如学个出活快的。

    也有朋友问我为什么不考虑 .Net 、PHP 和 Java 。这说起来也心酸,跟我同寝室的哥们当年就是专心 .Net 撸到底,结果这四年经历了公司两年不涨薪,跳槽薪资倒挂和公司倒闭等破事,现在已经转运维。他说一开始觉得是自己技术问题才倒几次霉,后来想想其实是 .Net 在国内确实不吃香,基本都是政府在用的多,利润不高,所以公司开的薪水也低,就业环境也更差,造成困局,劝我别学 .Net ,至少在国内用不上。

    至于 PHP,我现在的公司前年就放消息出来 PHP 部门要解散,给 PHP 的员工一年的时间内部转岗或离职,原因是很少接到 PHP 新项目,利润也不高,而部门人数挺多的,所以要开源节流,留下几个会 PHP 的大佬兼任 PHP 老项目的维护就好了。然后我跟 PHP 部门的人挺熟的,听到 PHP 的就业环境也在缓缓变差,几个 PHP 后端老哥都转了岗或者离职。当时 PHP 的大佬押宝小程序,带领几个 phper 成立了小程序部门,后端继续用 PHP 撸,前端自己摸索,反倒成为了公司这两年来业务增长最猛的部门。这俩件事对我选语言的影响还挺大的,感觉选对赛道真的很重要。

    这问题我也有跟部门的技术主管聊过,他说我是要转行,铁了心学后端,就别整那些虚的,直接学 Java 撸到大厂,但问题是我可能只是学来了解了解后端的知识,又或者只是提升一下简历,那确实没必要。毕竟赛道不同难度也就不一样了,Java 工程师多,相对地竞争激烈,问的问题也难,上来就问 JVM 调优。但是你如果说会其他别的后端语言,可能就问问你基本的应用和思路就好。所以如果你只是想了解后端的知识,建议学 Go,没有很复杂的黑魔法,很多标准库新手也能读懂,而且语言风格跟 Javascript 相差很多,语法很像 C,多了解一下静态强类型语言也颇有益处,以后想搞微服务啥的也容易上手。

    最后是问到了在用 Nest 的前同事,他说前端学 NodeJS 挺快的,分分钟转后端不是问题,问题是大厂用得不多,真正能派上用场的机会不多,他公司开发团队才六人,所以招个前端进来带一带 NodeJS 就能全包 Web 栈。如果是认真学后端语言防身,还建议找大厂认可的后端语言比较好,比如 Java,因为觉得他现在在用的 Nest 全家桶,基本上就是 Java Spring 的丐版,既然把那么多 Spring 的规范都学了,那为啥不学 Java 直接撸 SpringBoot 呢。

    废话有点多,所以到最后还是蛮纠结该学哪个的,有没有老铁点拨下?

    7 条回复    2021-07-13 12:23:38 +08:00
    jmyz0455
        1
    jmyz0455  
    OP
       2021-01-22 13:49:17 +08:00
    原来我是永久降权,惋惜🙏
    jmyz0455
        2
    jmyz0455  
    OP
       2021-01-25 10:15:55 +08:00
    最后一次顶顶,不行就沉了吧。
    d873139022
        3
    d873139022  
       2021-01-25 11:11:18 +08:00
    支持一下,我现在是测试想转前端,又怕到时候变成想转后端了
    julyclyde
        4
    julyclyde  
       2021-01-25 12:53:06 +08:00
    go+python3

    nodejs“可以学”
    jmyz0455
        5
    jmyz0455  
    OP
       2021-01-25 13:50:52 +08:00
    @d873139022 个人经验,前端这个领域还在起步阶段,估计以后还有几波技术更新,而后端已经很成熟了,看我说的 Java 一把梭撸到大厂没问题,建议直接做后端。
    不谈技术,只谈实际工作,既然你都是在干测试了,那么你是否感觉的在技术团队里后端地位高于前端?你可以去问一下前端工程师,有没有遇到过各种奇葩的需求?
    如果你只是想干开发而没有技术偏好,你可以综合考量下我说的。
    jmyz0455
        6
    jmyz0455  
    OP
       2021-01-25 14:57:57 +08:00
    @julyclyde 一起学不就重复了吗?好像两者之间大部分功能都是可以实现的,学两个不如精通一个吧?
    还是说 go 写某些功能更好,py3 写某些功能比较好,有互补优势,所以可以一起学。
    iPhone9
        7
    iPhone9  
       2021-07-13 12:23:38 +08:00
    开小号
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2796 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:15 · PVG 10:15 · LAX 19:15 · JFK 22:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.