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

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

  •  
  •   mokevip · 2021-07-15 22:47:34 +08:00 · 8820 次点击
    这是一个创建于 1234 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人搞前端的,现在不掌握几门技术语言都不好意思说自己是程序员,所以也学了很多后端的内容,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
       2021-07-15 22:49:55 +08:00
    一不小心写太长了,抱怨的多了,哈哈哈,姑且就当是在怨天尤人吧,该学还得学
    mokevip
        2
    mokevip  
    OP
       2021-07-15 22:54:32 +08:00
    emmm,但前端我还是很爱学的,哈哈哈,感觉很顺畅。
    要不是怕新同事上手难,哈哈哈,架构项目的时候就恨不得 vue3 、ts 、tsx 等等新技术全整上了。

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

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

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

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

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

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

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

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

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

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

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