V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mokevip
V2EX  ›  问与答

程序员的职业发展真的逃得过 Java 吗?

  •  
  •   mokevip · 142 天前 · 5339 次点击
    这是一个创建于 142 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人搞前端的,现在不掌握几门技术语言都不好意思说自己是程序员,所以也学了很多后端的内容,nodejs 、python 、php 都有接触

    在学习自学前端的时候都是用 php 配合写项目的,后来才逐渐学习其他的后端语言

    因为用 nodejs 、python 、php 写内容,相对比较轻,本身 php 和 javascript 也非常像,上手也很简单,可以几乎无门槛的建立一个 http 接口。

    但是上班之后,两个公司都是以 java 做为后端开发语言,也就有了学习 java 的想法,但是尝试了 4 、5 次,都以失败告终,可能是因为太浮躁了哈哈哈。

    其他的后端语言,包括 C 、C#等,都觉得很能接受,但是 JAVA 真的是看了起不良反应那种。

    原因就是太大了。。哈哈,想当年在学校参加 web 开发比赛的时候,和我搭档的后端同学,在如何让项目跑起来的问题上,纠结了两天,整整两天训练时间他们都在纠结这个,最后好像是因为包什么的。

    java 基本内容都能上手,但是一到包管理,需要上手 spring boot 等框架的时候,真的是一个头两个大

    光怎么让这玩意跑起来我每次都要折腾好久,最后放弃

    虽然我认为我自己的问题也比较多,主要问题还是有了其他后端语言做支撑,其实对 JAVA 学习的紧迫性并不高,所以容易放弃。

    感觉还是轻语言适合我一点(当然这里的轻语言是个伪概念),上手简单,学习的每一步都有反馈,框架和生态并不深度绑定。

    说到这点,哈哈哈,编程语言我一直是自学的,但是现在回首一看,现在上手一个前端项目也很难,自学的门槛也提高了很多。我自学那会大概上手一个项目只需要 html 、css 、js 再加上一个 jquery 做工具库,现在上手一个前端项目需要涉猎的知识就多了 html 、css 、js 、vue 、nodejs 、webpack(后两项并不强需求,但是也会有涉猎),好高骛远一点的大概会看到一个更漫长的道路,react 、typescript 、sass 以及一堆听不懂的名词

    当然,个人认为前端工程化绝对是在进步,但其实某种程度上复杂度也提升了。

    即使已经掌握了前端编译方面的知识,个人做开源项目(比较小,只有几个界面)的时候,还是会选择 cdn 引入 vue+axios 或者 jquery 。因为足够简单,开源后使用者并不需要专业的知识即可运行(双击打开),和修改。

    扯远了,虽然是个问句,但我感觉还是绕不过,无论是实现某些项目(原生安卓开发),还是想要往管理和架构方面发展,都绕不过。

    唉,当下技术栈满足使用需求后,遇到挫折就容易退缩了,还是浮躁了。

    64 条回复    2021-07-18 07:25:10 +08:00
    mokevip
        1
    mokevip  
    OP
       142 天前
    一不小心写太长了,抱怨的多了,哈哈哈,姑且就当是在怨天尤人吧,该学还得学
    mokevip
        2
    mokevip  
    OP
       142 天前
    emmm,但前端我还是很爱学的,哈哈哈,感觉很顺畅。
    要不是怕新同事上手难,哈哈哈,架构项目的时候就恨不得 vue3 、ts 、tsx 等等新技术全整上了。

    不知道为啥,可能天克 JAVA 吧
    dongisking
        3
    dongisking  
       142 天前
    java,后端的答案。。。
    yitingbai
        4
    yitingbai  
       142 天前   ❤️ 6
    你觉得 java 太复杂是因为你一上来就用 spring 这样的框架, 这些框架本来就是极其复杂的技术集合体, 你甚至都不知道 java 的 servlet , 又怎么能理解 spring 的运行原理呢. 真正的 java 程序非常简单, 和 C 一样, 一个 main 函数就能跑起来, 从基础开始学吧, 别浮躁, 个人觉得 java 是个最好的语言, 代码严谨规范(啰嗦), 我特别喜欢在开发的时候利用接口,封装,设计模式约束自己, 虽然前期很枯燥, 但是维护起来很舒服 , 哪怕你已经忘记了之前的代码, 只要你按照自己的规矩去做, 一切代码都是那么的安全和理所当然
    JYii
        5
    JYii  
       142 天前
    我学 Java 那会感觉挺平滑的...但是在学 vue 时反而感觉很奇怪,可能因为 Java 太“死板”了吧
    mokevip
        6
    mokevip  
    OP
       142 天前
    @yitingbai emmmm,之前还真的不知道 servlet,一直以为 java 基础学完了就是 spring boot 了。。我再看看
    mokevip
        7
    mokevip  
    OP
       142 天前
    @JYii 哈哈,刚上手的时候,vue 和 js 完全是两个世界
    lcdtyph
        8
    lcdtyph  
       142 天前 via iPhone
    程序员也不是只有前后端和架构什么的吧…再往底层还有内核开发、驱动开发什么的,没 java 什么事
    mokevip
        9
    mokevip  
    OP
       142 天前
    @lcdtyph WEB 开发领域大概就是这样了。。感觉学历不够研究内核容易把自己搞死(感觉内核啥的偏底层的好像更难了)。。
    rabbbit
        10
    rabbbit  
       142 天前
    java 还好吧,一套可以用很久.前端总是变来变去.
    装包啥的 maven 改个镜像地址,把包名复制进去就可以了.
    rabbbit
        11
    rabbbit  
       142 天前
    不过找工作还是前端相对容易点
    mokevip
        12
    mokevip  
    OP
       142 天前
    @rabbbit 唉,现在在愁如何进阶,不能钻研深度的话,就只能提升广度了
    falcon05
        13
    falcon05  
       142 天前 via iPhone
    想起很久一个说法,如果扎克伯格当年是用 Java 而非 PHP 去写 Facebook,可能还没写完就已经放弃了,所以…当然可以绕过 Java 。
    IGJacklove
        14
    IGJacklove  
       142 天前 via Android   ❤️ 1
    spring boot 已经很简单很简单了。。。你是没写过 ssm 那些,配置起来比这麻烦多了。
    BeautifulSoap
        15
    BeautifulSoap  
       142 天前 via Android
    在国内应该没法逃过 java,初创公司可能语言更加丰富点

    国外的话体感 php 工作反倒更多,其他语言也还算好找工作,不像国内 java 一家独大这样
    mokevip
        16
    mokevip  
    OP
       142 天前
    @IGJacklove 可能少了一个循序渐进的过程。。
    JudyHal
        17
    JudyHal  
       142 天前
    @BeautifulSoap 国外 Java 应该都快灭绝了吧,PHP Ruby on Rails C# Node.js 的机会都比 Java 多多了
    catcn
        18
    catcn  
       142 天前
    当你写代码写久了,就会进入禅道了。java 这些都可以通过快速学习来学。
    过几个月估计会开始写点 java 代码玩玩。
    Mirage09
        19
    Mirage09  
       142 天前 via iPhone
    @JudyHal 别的不说,亚麻那么大的一个用 java 的在那边怎么可能说 java 快灭绝了…
    Leviathann
        20
    Leviathann  
       142 天前
    @JudyHal 这么看还是国内的 java hater 比较厉害。。也就基于 spring 的 java web 占比比国内少些就能说成 java 快灭绝
    limbo0
        21
    limbo0  
       142 天前
    java 天生适合工程类的, 强约束, 确实比写 Python, ruby 踏实多了
    lz 作为前端其实也不需要学 Java, 学学简单的 Python, 写个网页, 没事写点提升工效的小脚本岂不美哉
    vincent321
        22
    vincent321  
       142 天前   ❤️ 3
    大部分人是这样的:
    Java EE -> Servlet -> Spring -> Spring MVC -> Spring Boot -> Spring Cloud
    nerocc
        23
    nerocc  
       142 天前 via Android
    你要是习惯 node express 的话,试试.NET 6 (目前还在预览版)的 minimal hosting 。可以像 node 一样几行就写出来一个简易的后端,可以小步子学,有反馈。后期项目复杂了需要转换成 MVC 还有工具帮忙自动转换
    Cbdy
        24
    Cbdy  
       142 天前 via Android
    你学 java 的时候看了太多国产 csdn 等二手文档吧?那玩意儿都是害人的东西

    类似照着几年前 webpack1 的文档搭 webpack5 的脚手架,自然问题多多

    java 的变化也很快的,说他稳定只是相对于前端,java web 正确的学习方法是看 spring 等框架的官方文档
    sonxzjw
        25
    sonxzjw  
       142 天前
    你一味的迎合别人当然逃不过某些焦虑。
    当你定位清晰,目标清晰的时候,就会更清楚了
    HDMItoDP
        26
    HDMItoDP  
       142 天前
    java 入门是需要时间的,是需要基础的
    dinghmcn
        27
    dinghmcn  
       142 天前
    linux 驱动内核基本没 java 什么事,但会借鉴面向对象语言的设计理念
    abcbuzhiming
        28
    abcbuzhiming  
       142 天前   ❤️ 1
    spring 比较庞大,所以初期看上去很难下手,其实绝大部分人用 spring,最多就用到了自动装配依赖,连 aop 都很少用。你把 spring 是怎么扫描你的依赖,怎么装配依赖的这个流程搞懂,就基本上手了
    Variazioni
        29
    Variazioni  
       142 天前
    @vincent321 是的。。先从集成度不这么高的框架入手。。了解原理。。再往上学 spring 一套。。就简单多了。
    LinShiG0ng
        30
    LinShiG0ng  
       142 天前
    我就是一开始自学的 java,导致我后来再学 php,python 的时候极其不适应。
    passerbya9527
        31
    passerbya9527  
       142 天前 via iPhone
    对,想我做了 8 年 c++,最后还是没逃过 java,现在用 springcloud 快乐的涂胶水
    Lonely
        32
    Lonely  
       142 天前 via iPhone   ❤️ 3
    @JudyHal 你这张嘴就来的结论有数据支持吗?
    jmc891205
        33
    jmc891205  
       142 天前
    应该这样问
    (互联网行业的)程序员的职业发展真的逃得过 Java 吗?
    DeWjjj
        34
    DeWjjj  
       142 天前
    逃得过呀,C++玩家。无缝切 go,干 python 。
    我估计我这辈子都不会去学 java 了,我是单纯觉得老技术新人就不该去学。
    天花板上面大佬那么多,他们不退工作岗位压根抢不到。
    学 go 就不一样了,都是白给玩家。
    dqzcwxb
        35
    dqzcwxb  
       142 天前
    有些人,他不是不喜欢 Java,他只是不愿学习不想工作不想写代码
    xuqiccr
        36
    xuqiccr  
       142 天前
    题外话,用 jquery 久了,学 VUE 屡屡失败。。。感觉完全是两套逻辑
    efaun
        37
    efaun  
       142 天前
    后端表示看 react 也是不能理解
    aaniao002
        38
    aaniao002  
       142 天前 via Android
    一股浓烈的啊三味。我也不喜欢 java,不喜欢就不喜欢呗,看工作。这边都是个人项目,只要能 hold 得住,那
    aaniao002
        39
    aaniao002  
       142 天前 via Android
    拿 bash 写 web 也不会有人说什么。
    wizzer
        40
    wizzer  
       142 天前   ❤️ 2
    用我的 Java Web 框架就简单了,别折腾 spring 系列啥的了:

    https://budwk.com
    szq8014
        41
    szq8014  
       142 天前
    从 0 学 Java 一上来就用 Springboot 也算是正常,毕竟里面包含了很多开源组件。
    你让一个人从 0 基础学前端直接用 ExtJS 试试,也是能学懵。
    mokevip
        42
    mokevip  
    OP
       142 天前
    @vincent321 好的,我按这个走看看
    dk7952638
        43
    dk7952638  
       142 天前
    @wizzer 有点厉害,个人开发的吗老哥
    fkdog
        44
    fkdog  
       142 天前   ❤️ 1
    java 是目前阶段企业级系统项目开发的唯一解.

    语言特性决定了就算是代码写的再烂, java 也能勉强一步步跟踪调试理清整个项目调用链, 在人员流动频繁的公司里这个是非常有用的.

    spring 看着很庞大, 实际上主要是为了解决开发里存在的两个痛点, 依赖注入和 AOP.
    为什么这两个是痛点, 如果你没有做过纯 servlet 项目可能没办法理解.. 只能多写代码自行体会了.
    zeronofreya
        45
    zeronofreya  
       142 天前
    java 入的坑,目前前端
    总的来说,我只拒绝 java 的一点,虚拟机太大,不适合我。跨平台理念很好,但现实是我不想拖着这么大的虚拟机只为了运行一个小程序,目前国内没有哪家开发的程序能大过虚拟机吧?说是跨平台,直接在安卓上运行试试,鸿蒙也行,不能全平台通吃吹什么跨平台。
    如果 java 能把源码直接编译成各平台对应的程序,去掉臃肿的虚拟机,那我就没有任何怨言了
    wr516516
        46
    wr516516  
       142 天前
    目前再做 Java 开发
    自学过很多次 Python 都失败了
    语法什么的没有问题,但是没什么实际项目让我写来练手.
    然后也没啥刚性需求,总是提不起劲...

    感觉 Java 本身也没太多东西,但是依赖的框架和很多别的东西太多太杂了
    kenshinhu
        47
    kenshinhu  
       142 天前
    为了不写 spring,我决心要转去 go
    但说真的,如果所遇到的公司项目都是小型而要快速实现的,用 java 就像是用 RPG 打小鸡
    wizzer
        48
    wizzer  
       142 天前
    @dk7952638 是个人开发的啊,从 v1 到 v7 一步步走来的,不是一蹴而就的。。
    onionKnight888
        49
    onionKnight888  
       141 天前
    springboot 已经算傻瓜式操作了吧,以前没有 maven,框架还是 ssh,更折磨人
    thtznet
        50
    thtznet  
       141 天前   ❤️ 1
    用 C#路过,从来没写过 java 。
    dqzcwxb
        51
    dqzcwxb  
       141 天前
    @zeronofreya #45 JavaScript 引擎、虚拟机、运行时环境是一回事儿吗? - RednaxelaFX 的回答 - 知乎
    https://www.zhihu.com/question/39499036/answer/81707112
    cenbiq
        52
    cenbiq  
       141 天前
    java 是一套奇怪又复杂的技术
    jzphx
        53
    jzphx  
       141 天前
    现在的 Spring Boot 已经比当年的 Spring MVC 方便很多了,起码你用一个 Spring Initializer 就能一分钟设置好一个能跑起来的工程。
    YuanJiwei
        54
    YuanJiwei  
       141 天前
    @mokevip 楼主对 go 感兴趣吗?
    tourist2018
        55
    tourist2018  
       141 天前
    Java 还能有 C++难上手?
    zeronofreya
        56
    zeronofreya  
       141 天前
    @dqzcwxb 额,为啥要给我科普 javascript 的知识?我觉得 java 虚拟机太大没毛病啊……
    leeyom
        57
    leeyom  
       141 天前
    其实现在的 Java 发展到现在,基本上已经比较容易上手了,想当初,ssh 、ssm 时代的时候,那才是灾难,一堆的配置,现在的 springboot,实际上已经几乎不用怎么配置了,基本上就是开箱即用,你说的包管理,Java 这块,无非就是 maven 、gradle,在打包的时候,确实这两个东西饶不过去,最好的办法,去 github 搜,springboot-xxx-demo,看看别人是怎么配置 maven 的,Java 之所以庞大,主要是他的成熟的生态,如果只是简单的搭建个后台服务,直接 springboot 一把梭,你要深入往管理和架构方面发展,光 Java 生态这块,学习的东西可就真的太多了
    zxCoder
        58
    zxCoder  
       141 天前
    各人的兴趣不同吧

    像我就特别讨厌 python js golang 这仨
    young1lin
        59
    young1lin  
       141 天前
    Spring Boot 已经是最简化配置了, 你要用 SSM,你简直想骂娘。当然,你想要玩转 Spring Boot 的话,可以先了解下 Spring,再去看 Spring Boot 就很简单。Spring 其实是胶水框架,把这些对象以流水线的方式生产了出来,你想深入了解,可以看书,也可以直接看源码,先从看一部分,再看另一部分,最后总结出来。

    这是我总结的 Spring Boot 的启动流程相关的内容。你也可以看相关书籍,其实不难,最多花你两个月的时间,就能比较深入的了解 Spring 和 Spring Boot 了。主要是它的生态好,开箱即用,简单的配置,强大的功能!

    https://www.processon.com/view/link/5ff6897f07912930e0207859
    chenshun00
        60
    chenshun00  
       141 天前
    Java(当然我也靠这个吃饭) 其实挺烂的,但是确实什么都能做.
    todayisgood
        61
    todayisgood  
       141 天前
    java 写的还可以啊,maven 工程管理属于 工程结构管理和包管理知识的一环
    java 知识你基本都会了,就是面向对象语言,它有它完善的语言设计层次结构,抽象层面做的挺好的
    然后 spring 相关其实就是依赖注入的一些相关知识, 你知道它怎么完成依赖注入的流程就可以了
    Lonely
        62
    Lonely  
       141 天前 via iPhone
    @zeronofreya 你写的网页就不要在浏览器或者其他环境里运行吗?
    mokevip
        63
    mokevip  
    OP
       140 天前
    @YuanJiwei Go 感觉目前没啥使用场景。。
    NotreDame
        64
    NotreDame  
       140 天前
    职业发展?那应该逃得过。入行时靠 Java,但一直以来都是 go 。个人不喜欢 Java 一把梭的感觉,跟一个语言一起成长的感觉很妙。下一步计划学学 Rust 。
    另外:理解不了“几次尝试学习一个语言,结果都失败”的情况,心里应该有危机感了。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2255 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:34 · PVG 15:34 · LAX 23:34 · JFK 02:34
    ♥ Do have faith in what you're doing.