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

Java 后端,想提升技术,以各位兄台的经验来看有何建议

  •  3
     
  •   yw121141111 · 2022-10-28 10:03:36 +08:00 · 4918 次点击
    这是一个创建于 759 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本人 java 后端,工作大半年,整天处于 crud 中,想提升技术,但是像无头苍蝇一样,找不到方向,还请各位不吝赐教,有啥学习方法和学习路线分享一下

    37 条回复    2022-10-29 16:34:42 +08:00
    sinnosong1
        1
    sinnosong1  
       2022-10-28 10:06:12 +08:00
    学学 C#进厂吧🐶。
    7911364440
        2
    7911364440  
       2022-10-28 10:07:38 +08:00   ❤️ 1
    才工作大半年急啥,先把 java 的类库用熟了再考虑别的吧
    sinnosong1
        3
    sinnosong1  
       2022-10-28 10:12:28 +08:00   ❤️ 1
    2 楼正解,感觉楼主还可以看看 类似《改进 java 的多少种方法》、《 Effective java 》、《 Java 实战》 这些书籍。平时工作什么问题再努力学习相关的内容。
    zou8944
        4
    zou8944  
       2022-10-28 10:12:50 +08:00   ❤️ 1
    如果嫌弃 CRUD 无聊,那就学学 DDD ,先在业务中寻找乐趣
    yw121141111
        5
    yw121141111  
    OP
       2022-10-28 10:15:07 +08:00
    @sinnosong1 好的多谢
    yw121141111
        6
    yw121141111  
    OP
       2022-10-28 10:15:29 +08:00
    @zou8944 好的多谢
    zou8944
        7
    zou8944  
       2022-10-28 10:26:31 +08:00   ❤️ 2
    by the way, 实在不知道,这个网站不错: https://roadmap.sh/backend
    weivi
        8
    weivi  
       2022-10-28 10:26:54 +08:00   ❤️ 1
    每日一道算法题、学习没用过的中间件的使用方法、复习计算机基础知识、学习其他的语言。能做的多了
    yw121141111
        9
    yw121141111  
    OP
       2022-10-28 10:33:40 +08:00
    @weivi 好的感谢
    byte10
        10
    byte10  
       2022-10-28 14:12:22 +08:00   ❤️ 1
    楼上的说的那个 DDD 确实能提升写代码的成就,但是前提的是你能把 DDD 基本理解到位。理解 DDD 是看能力,组织能力,语文能力。
    其他好玩的就是 vertx ,函数式编程,响应式风格。
    或者做个小项目呗,我有一个量化交易的,使用 java 做的,绝对有挑战,有兴趣可以加我呀。可以教一些多线程,高并发等技术 😄
    yw121141111
        11
    yw121141111  
    OP
       2022-10-28 14:18:15 +08:00
    @byte10 怎么联系
    YepTen
        12
    YepTen  
       2022-10-28 14:40:29 +08:00
    刚半年就别看 DDD 了,也看不懂,反而能把你绕迷糊。DDD 目前华而不实,没有落地的项目。
    tonymua
        13
    tonymua  
       2022-10-28 15:11:39 +08:00
    先想想如何把业务代码写的更优雅吧 学学面向对象、设计模式,会对编程有更进一步的理解
    yw121141111
        14
    yw121141111  
    OP
       2022-10-28 15:13:24 +08:00
    @YepTen 好的
    yw121141111
        15
    yw121141111  
    OP
       2022-10-28 15:13:36 +08:00
    @tonymua 好的
    THESDZ
        16
    THESDZ  
       2022-10-28 15:21:19 +08:00
    1.锻炼基础编码能力
    2.学习思想和开发原则,先弄清楚是什么,再考虑为什么?
    3.锻炼抽象能力和逻辑能力.
    byte10
        17
    byte10  
       2022-10-28 15:22:26 +08:00
    @yw121141111 这个是我的 Q - 3121604 ,proph
    yw121141111
        18
    yw121141111  
    OP
       2022-10-28 15:27:09 +08:00
    @THESDZ 很受用 前段时间写的业务代码 现在回想起来没有弄清楚就开写 以至于走了很多弯路
    rqxiao
        19
    rqxiao  
       2022-10-28 15:41:22 +08:00
    熟练使用 juc
    hello2090
        20
    hello2090  
       2022-10-28 15:44:14 +08:00 via iPhone
    CRUD 不就 4 个函数吗,为什么要写半年
    littleEight
        21
    littleEight  
       2022-10-28 15:58:06 +08:00   ❤️ 1
    crud ?脑子比不过大佬的话,就多刷刷基础的书(计原、网络....),反正我现在都看不完。 脑子康比大佬的话,就多看看大佬的博客,多思考整体框架的东西。
    yw121141111
        22
    yw121141111  
    OP
       2022-10-28 16:07:04 +08:00
    @hello2090 反复的 crud
    yw121141111
        23
    yw121141111  
    OP
       2022-10-28 16:08:09 +08:00
    @rqxiao 请问有什么相关的学习资料么
    Verizon
        24
    Verizon  
       2022-10-28 16:12:36 +08:00   ❤️ 1
    学会使用 netty
    zt5b79527
        26
    zt5b79527  
       2022-10-28 17:13:07 +08:00
    作为一个工程师,当前阶段,建议看一些《代码整洁之道》《设计模式》这类的,保证自己代码写的比较“优雅”,改正一些坏习惯。这个阶段还可以跟着教程,读一读 spring 的源码,里面还是有很多东西值得学习的。

    下一个阶段,可以研究一下常用中间件的实现,比如 redis ,kafka ,mysql (网上一搜一大把的文章,都太浅了意义不大,建议读一读主要工作流程的源码),这样可以帮助你更好的使用他们,在遇到中间件问题的时候也不至于慌了神。注意,一定要记笔记,可以考虑搞成博客的形式。

    这一堆东西搞完,该有两年了,你的工作经验+自学知识应该达到一个还算优秀的工程师的水平,工程师所面对的常见问题你也都不会怵了。再往后就根据自己的职业发展选择学习内容了
    yw121141111
        27
    yw121141111  
    OP
       2022-10-28 17:20:45 +08:00
    @zt52875287 非常感谢 受教了
    amwyyyy
        28
    amwyyyy  
       2022-10-28 18:25:09 +08:00   ❤️ 3
    可以看看阿里的《 Java 开发手册》,里面有很多不错的经验。
    不要小看 crud ,不同的人写出来差距可能很大,随便说几个:
    传参( form 表单、json 、文件上传)
    参数校验(注解、手写)
    日志(打印准确利于分析问题)
    异常处理(什么时候捕获什么时候抛出)
    代码分层(避免 service 之间复杂的依赖)
    事务处理(什么时候用事务,如何选择恰当的事务传播方式)
    narodo
        29
    narodo  
       2022-10-28 18:39:26 +08:00
    基础不牢,地动山摇
    haya
        30
    haya  
       2022-10-28 19:01:13 +08:00
    annotation processor
    asm
    java agent
    Jooooooooo
        31
    Jooooooooo  
       2022-10-28 22:23:53 +08:00
    进大厂是最快的.
    xboxv
        32
    xboxv  
       2022-10-29 00:59:04 +08:00
    golang
    cexll
        33
    cexll  
       2022-10-29 10:23:00 +08:00   ❤️ 1
    这就和面试或者其他地方问你的职业规划一样了这个不是找不到方向而且没有确定方向
    技术无非几条路 系统架构师 系统底层开发工程师(这个铁饭碗 越老越吃香

    系统架构师 就是往整体的系统架构思考 学习
    系统底层开发 就是扎进底层 系统 数据库 各种基础架构
    yw121141111
        34
    yw121141111  
    OP
       2022-10-29 10:35:32 +08:00
    @byte10 加你了老哥 同意下 77540789 ,x
    securityCoding
        35
    securityCoding  
       2022-10-29 12:16:12 +08:00   ❤️ 1
    说一个笨一点但极其有效的方法吧
    找一个感兴趣的开源项目,分三个阶段:
    1. 梳理清楚架构模块设计,搞清楚核心接口,为什么作者要这么设计
    2. 抽丝剥茧,从某个模块入口搞清楚每一行代码意思,这一步不要偷懒,期间会有很多反复拉扯复盘的过程,不管你是看书、搜索、视频、翻 git 记录...细节是魔鬼。
    3. 当你认为自己彻底弄懂了,ok 开始尝试脱离源码重写,你会有很多困惑,没关系回去看源码然后继续肝
    securityCoding
        36
    securityCoding  
       2022-10-29 12:17:41 +08:00
    还有设计模式这本书我从来不推荐,不去琢磨源码说真的看了白看,除了往你脑袋塞一堆形而上学的概念
    yw121141111
        37
    yw121141111  
    OP
       2022-10-29 16:34:42 +08:00
    @securityCoding 好的学到了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5989 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 02:20 · PVG 10:20 · LAX 18:20 · JFK 21:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.