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

Java 开发,目前快 3 年经验,怎么才能提升自己的技术能力, V 友们有什么学习的经验吗,求指点

  •  2
     
  •   myTrip · 6 天前 · 2620 次点击
    25 条回复    2025-06-11 21:50:44 +08:00
    giter
        1
    giter  
       6 天前 via iPhone
    所以 OP 目前什么实力
    myTrip
        2
    myTrip  
    OP
       6 天前 via iPhone
    @giter 所以是垃圾实力,想提升一下,但耐心不足,容易浮躁
    pxiphx891
        3
    pxiphx891  
       6 天前   ❤️ 2
    读一下这几本书:计算机程序的构造和解释、代码大全、设计模式、代码整洁之道、敏捷软件开发、软件设计的哲学
    1024MB
        4
    1024MB  
       6 天前   ❤️ 9
    找份轻松点的工作。据我观察,技术差的都是天天忙着写 crud 导致的。没时间学习,做的工作也没啥技术挑战。
    dfkjgklfdjg
        5
    dfkjgklfdjg  
       6 天前   ❤️ 1
    工作累不累是一方面,另外一方面是自己在编程上面能不能得到正反馈。

    如果觉得开发只是“工作”的话,那只能靠工作来驱动学习。多承担工作上复杂业务,老板乐意看到,也学到东西了。
    如果平时还会写一些小玩具,会从写玩具项目上得到满足感和快乐。自驱动就容易多了,发现自己的小需求,用上自己想要用的技术栈直接开撸就好了。
    zhengfan2016
        6
    zhengfan2016  
       6 天前
    @1024MB 同意,那些早九干到晚九晚 11 的,回去洗个澡就倒头就睡了,第二天爬起来又是上班日,要是没双休就更惨了,如果要挤出时间学习就得牺牲自己的睡眠质量
    litchinn
        7
    litchinn  
       6 天前
    你得有兴趣,不然肯定没耐心呀
    可以先从偷懒开始,自己的一些重复性且枯燥工作,能不能想办法用一些工具完成,这些工具如果不是很满足自己的需求,尝试着去改
    还可以重构自己的代码,给自己的代码上个 sonarqube ,解决那些 codesmell
    这个过程中不断尝试一些进阶内容,包括 3 楼提到的那几本书的内容
    prosgtsr
        8
    prosgtsr  
       6 天前 via iPhone
    业余时间有的话,看看拓展内容或者编程相关任何内容都可以,一定要感兴趣就可以
    工作中有摸鱼时间或者优化时间的话,可以多抠项目代码,多优化重构
    如果一点时间都没有,那还是洗洗睡吧,提升个毛,多休息养好身体可以多活几年
    spritecn
        9
    spritecn  
       6 天前
    再干几年你就知道了,不存在什么技术实力,都是靠进厂吹牛或在厂里呆几年对业务的理解,除非你搞低层算法/低层中间件
    spritecn
        10
    spritecn  
       6 天前   ❤️ 1
    @spritecn 培养点爱好,学点英语,多泡泡妹子看看电影是正事
    monmon
        11
    monmon  
       6 天前   ❤️ 1
    上午不干活使劲摸鱼,刷刷 Github Topics 和 Trending ;
    看看工作项目里引入的开源组件,扒拉扒拉源码;
    想想最近工作流程中有没有什么让自己不爽的部分,找找有没有开源工具可以解决,没有就尝试自己搓搓轮子;

    和其他岗位的同事多交流交流,测试、移动端、运营等等,看看他们的工作流程有没有什么不爽的部分,有能力尝试解决一下。
    zjsxwc
        12
    zjsxwc  
       6 天前   ❤️ 2
    基础变得更加重要了。

    因为现在 AI 的流行,程序员的技术方向也跟着变了。

    比如以前只需要花大量时间钻主流框架的用法,现在直接问 AI 更高效,现在是得站在 AI 这个巨人肩膀上。

    所以“基础”变得特别重要。
    以前 “互联网蓝海+无 AI 时代” 你就算基础差算法实现能力只会一个排序算法只要能熟练框架的使用就能高薪,现在不是这样了。

    一个是行业经验,一个是基础能力。

    行业经验,是建议你选一个有钱的行业深入,不管是传统行业还是新兴行业,一旦你深入你就能积累这个行业相关的人脉、知识,以后就算不写代码,也能靠这个行业混饭。

    基础能力,就是计算机基础、算法实现能力,重点是放在底层原理和 AI 结合上。虽然现在大部分 CRUD 业务都在用 AI 生成,我现在自己工作中写了很多配合 AI 的自己业务的代码生成机来提高效率,把产品经理的需求中文文字直接配合 AI 和我的代码生成机生成线上业务代码,是的,这时你很少用到算法,但如果你想交付更好的软件代码,你还是需要用到算法,比如,你可以用快速傅里叶变换来快速识别用户上传的图片是否具有内容,你可以用图相关算法来找出用户最少成本路径的采购清单,你可以用编译原理相关来实现一个简单 DSL 让用户使用……。

    其他想操作系统、网络这些底层知识,AI 能帮我们生成配置,但真出了问题,机器挂了,还得靠自己懂原理来排查问题。
    flytsuki
        13
    flytsuki  
       6 天前
    我在小公司自研,利用空余时间学了 C++,单片机,嘉立创画板子,blender 3d 建模,flutter app 开发
    zengyufei
        14
    zengyufei  
       6 天前   ❤️ 6
    利用技术提升生活宽度或深度:

    1 、如果喜欢娱乐类,小说/音乐/电视剧/电影/动画/片,可扩展一下自己的爬虫能力。

    2 、如果喜欢生活自动化多一些,爬虫/HOOK/外挂/AutoJS 之类学习一下。

    3 、如果想助力自己或他人学习,做一些知识收集系统、知识整理系统、知识输出系统,如 JAVA 面试专题、Anki 卡片生成等。

    如前面 @dfkjgklfdjg 老哥说的,自驱动+小需求+小玩具+直接开撸=满足感和快乐。

    学习与 Java 不相关的东西或使 Java 技术落后于人?不存在的。

    一理通百理,
    只会 Java ,不懂的 kotlin 的先进,回过头来看 Java ,发现 Java 真落后,但写 Java 变更简洁明了了。
    只会 Java ,不懂 C++的指针,回过头来看 Java ,发现 Java 真简单,但更懂 Java 堆栈的用法了。
    只会 Java ,不懂 Python 的方便,回过头来看 Java ,发现 Java 真笨重,但更懂 Java 封装的重要性了。

    借助中医方面的一些概念,头痛医头,脚痛医脚是指只医治疼痛的部位,不追究病根。比喻处理问题不从全局考其根本,什么地方有问题就在什么地方解决,临时应付。

    这些看似提升不了什么 Java 技术,但你会发现,从前看不下去的技术书籍,不过原来如此。

    当你发现瓶颈期,可能不是当前技术知识储备不够,可能是其他技术知识储备不够。
    LUOMUXIE
        15
    LUOMUXIE  
       6 天前
    @1024MB 个人经历,非常赞同,没有时间学习,天天重复做同样的东西,做一万次也没什么长进的,后面出来面试,被面试官狠狠打醒了
    myTrip
        16
    myTrip  
    OP
       6 天前 via iPhone
    @dfkjgklfdjg 我经常搞点小玩具,swift ,flutter ,前端都会一些皮毛,但达不到工作的水平,导致 Java 没学多少,其他的则是蜻蜓点水了
    myTrip
        17
    myTrip  
    OP
       6 天前 via iPhone
    @zengyufei 我悟了,老哥
    WesleyWong
        18
    WesleyWong  
       6 天前
    当然是学英语了,再练习下吹牛皮能力。进可 不用写代码了,退则润之
    Scarb
        19
    Scarb  
       6 天前
    找一个你的领域顶级的开源项目,去啃源码,参与开源社区贡献。遇到不懂的地方再系统学习。有条件的话自己实现一个简易版。
    sampeng
        20
    sampeng  
       6 天前
    3 年和 10 年不是技术上的差异。是更多年限以外的东西。比如你说的小玩具,swift ,flutter ,前端。这些现在 3 年经验的搞个 AI 都是七七八八了。
    怎么加强技术以外的东西是更重要的。。。。
    xuanbg
        21
    xuanbg  
       6 天前
    @pxiphx891 真的有人读了这些书就能在技术上突飞猛进了吗?就我所知,技术能力能否提升到较高的层级,真的是懂的不需要学,不懂的教都教不会。
    auh
        22
    auh  
       5 天前
    八股文吧
    pxiphx891
        23
    pxiphx891  
       5 天前
    @xuanbg 首先是如何定义「技术能力提升到了较高的层级」,目标是什么,我觉得目标应该是写出可靠性,可扩展性,可维护性强的代码;在这个目标确立了之后,就要通过理论(看书)和实践(做项目)一起,看如何朝着目标前进,有的人悟性高,在项目中自己就能总结出很多东西,有的人不爱思考,就堆代码,这可能导致你有这种看法「真的是懂的不需要学,不懂的教都教不会」,但是不管什么样的人,有针对性的读了书以后,尤其了解到设计模式和 SOLID 原则那些东西之后,一定是有收获的,这是大师们几十年总结出来的,有了这些输入之后,再看项目中的代码,就会理解很多之前同事做的设计,否则是看不清的
    zengyufei
        24
    zengyufei  
       5 天前
    我们来溯源一下源码的设计是如何来的。

    源码有啥,有算法、有设计模式、有封装、抽象、继承、多态,大概组成结构是这样子的。

    一开始你只会 java 代码。
    假设你是一个 java 基础通关的初学者,让你看源码,能得到什么结果?天书吧,我就是这样过来的。

    那我是否该深耕源码获得下探深度的进步呢?答案是肯定的,但是我无法主动去做。
    从他人分析源码那博文才知道,原来源码有那么多算法和设计模式,这些都属于抽象范畴,怪不得一开始我看不懂。

    如果把算法和设计模式单独拎出来,其实可以跟 java 无关,可以中立的通用的东西,能应用到其他编程语言去,这是否意味着需要投入大量时间进行专项学习和实践,如同‘三年练习生’般持续磨砺?。

    非系统性的长时间积累了不少知识点,我变得也能看得懂源码了,但是细节记不住,哪有那么多记性,天天忙着生活和 CURD 。

    回过头来看,发现 java 就是一门编程语言,各种好用的库用了不同的算法和结构,封装成了不同的生态,兜兜转转,我似乎也只停留在应用层面。。

    但是我知道我大概了解源码里部分做法,就跟做一道菜,需要备什么原料,用什么火力,用什么锅,如何炒制;我吃的好好的,让我去复现做出来,也可以,但没法完全复制,细节太多忽略的。只是了解知识点的我能干嘛,可以在工作中探索应用边界,可以用去面试,用去吹牛逼。

    java 是我花了时间和代价学习的主力编程语言,我也想下探技术的深度,但是 java 在应用层面太多花活了,什么奇淫技巧,什么 lambda 新写法,什么新流行技术栈脚手架比较吸引我,我便去研究它们去了,研究它们得到的成就感比看源码多得多,也爽得多。

    回头看,我已经掌握了不少抽象概念知识,发现源码并不神秘,但是也不好阅读,如果你把算法和设计模式了解了,源码大概就是套“公式”那么简单,但是你需要的是从源码分离出抽象的“公式”,那就需要学习一下应用于 java 但不是 java 独有的东西了。

    脚手架也是,如果你研究众多脚手架,你会发现,大家其实也就是套“公式”,简单说就是 ctrl+c/v ,复制粘贴改改就能用,需要的是花时间而已。

    AI 打破了固有的局面,以前我们追求的设计模式、封装抽象、代码整洁、注释完善,在现在这个时代好像都不值一提,现在写代码,看着 AI 一行行给你生成好,比你写得都好,默默纪念逝去的头发吧。

    AI 的出现给我们带来更多可能性,终身学习的对象和终身的劳工,问必答,叫必做,我们要做的是,问它,学习它(成为它?)、纠正它。

    最后寄言:

    无论什么年限,记事、记错以及不间断写 demo ,量变积累质变。
    myTrip
        25
    myTrip  
    OP
       4 天前
    @zengyufei 感谢大佬指点,说的很对,有时候做的多了,看源码慢慢就有点感觉,感觉还是要温故而知新啊,有的东西看的多了,做的多了,慢慢就悟了。就像学开车一样,最开始因为需要顾及很多细节,要注意档位,后视镜,导航,路况,红绿灯等等,熟练之后,不需要注意那么多细节了,自然而然就学会了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4305 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 04:06 · PVG 12:06 · LAX 21:06 · JFK 00:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.