V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jatesun
V2EX  ›  程序员

工作两年用 java,觉得技术增长有点瓶颈,如何克服提高?

  •  
  •   jatesun · 2016-06-14 22:43:15 +08:00 · 8017 次点击
    这是一个创建于 3108 天前的主题,其中的信息可能已经有所发展或是发生改变。

    java 基础还算可以,阅读过 io ,集合等关键 jdk 源码。算法也一般般吧,基础的还行,也刷过 leetcode 。框架方面 spring 、 struts 、 mybatis 用的比较熟练,读过 spring 以及 struts 部分源码。觉得自己的技术还是不上不下,各位 v 友可否助力?

    54 条回复    2019-08-22 22:35:57 +08:00
    BiggerLonger
        1
    BiggerLonger  
       2016-06-14 23:22:26 +08:00
    JVM 呢? 多线程呢? NIO 呢? python 狗飘过...
    jatesun
        2
    jatesun  
    OP
       2016-06-14 23:29:02 +08:00 via iPhone
    @BiggerLonger 这些确实涉略较少,后续多关注。人生苦短,请用 Python→_→
    jason19659
        3
    jason19659  
       2016-06-14 23:42:19 +08:00
    本人表示,设计模式看过几遍,过几天就忘了。 jvm 各个参数看过几遍,过几天就忘了。 spring ?遇到好多面试官对它的印象都在书本里,几年前的版本。最近一直想学 java 大数据相关的知识。。但是没平台实践。。
    xupefei
        4
    xupefei  
       2016-06-14 23:43:53 +08:00
    那就读 JVM 源码啊。
    jatesun
        5
    jatesun  
    OP
       2016-06-15 04:10:41 +08:00 via iPhone
    @jason19659 觉得看过最好能实践,总结一下。这样才能印象更加深刻
    jatesun
        6
    jatesun  
    OP
       2016-06-15 04:11:46 +08:00 via iPhone
    @xupefei 。。。这有点难
    linux40
        7
    linux40  
       2016-06-15 07:31:39 +08:00 via Android
    造轮子
    murmur
        8
    murmur  
       2016-06-15 07:47:17 +08:00
    研究下 spark hadoop 当然这要求你先把数学缺的知识补回来
    jatesun
        9
    jatesun  
    OP
       2016-06-15 07:48:20 +08:00 via iPhone
    @linux40 不失为一个好方法
    shyling
        10
    shyling  
       2016-06-15 07:49:51 +08:00 via Android
    最简单的:升级 hotspot 到最新版本。看看 changelogs ,想想新功是怎么实现的,例如 Optional ,能不能自己写库实现部分,然后再对此下代码。
    jatesun
        11
    jatesun  
    OP
       2016-06-15 07:50:43 +08:00 via iPhone
    @murmur 这两个真是只知道有这个东西,一点没了解。。。
    jatesun
        12
    jatesun  
    OP
       2016-06-15 07:56:37 +08:00 via iPhone
    @shyling 这个太有挑战性了
    coolcfan
        13
    coolcfan  
       2016-06-15 08:42:13 +08:00
    把 JDK 自带的那些类的源码读一读~
    visonme
        14
    visonme  
       2016-06-15 09:12:10 +08:00   ❤️ 1
    你的问题在于把自己局限在 java 的世界了。而且你的技术方向是单一的,想突破太难了。
    有空再回去读读数据结构,算法导论, TCP/IP ,分布式系统导论等从多角度去提高自己吧,这些东西有助于你在深层次的造诣和突破
    Neveroldmilk
        15
    Neveroldmilk  
       2016-06-15 09:18:03 +08:00
    真正的人生瓶颈是无法突破的,所以随缘吧。
    wupher
        16
    wupher  
       2016-06-15 09:22:49 +08:00
    1. 不要将自己限制于某一语言,甚至某一领域

    2. 做些自己感兴趣的事或东西,比如,上面说的造轮子

    做些你自己觉得有意思的东西,比如草榴蜘蛛侠啥的。

    尝试挣到钱
    tony1016
        17
    tony1016  
       2016-06-15 09:25:30 +08:00
    换个语言继续前进
    misaka19000
        18
    misaka19000  
       2016-06-15 09:41:50 +08:00
    所以说基础永远是最重要的,去读读算法导论,研究研究操作系统吧,会有收获的
    eightqueen
        19
    eightqueen  
       2016-06-15 09:56:57 +08:00   ❤️ 1
    技术成长要看公司业务的,如果你们用户量比较少,只有几百万,日活也不多,只有 10 万,那你技术肯定没发成长啊。
    yangxiongwei
        20
    yangxiongwei  
       2016-06-15 09:57:45 +08:00
    两年就到了瓶颈,楼主真厉害。

    我这等普通人都是越学觉得不会的越多。
    ren2881971
        21
    ren2881971  
       2016-06-15 10:02:49 +08:00
    你该研究业务了。。
    tiemei
        22
    tiemei  
       2016-06-15 10:09:16 +08:00
    事实上没有什么瓶颈可言,你知道的太少了。
    aabbccli
        23
    aabbccli  
       2016-06-15 10:13:09 +08:00
    个人见解,有两个方向,一:技术方向的,可以开始研究底层实现,学学汇编(不需要深入),操作系统原理等等;二:商务管理方向的,可以理清行业中的业务流程,针对某些存在的问题,结合技术做解决方案(技术商业化)。
    lawlietxxl
        24
    lawlietxxl  
       2016-06-15 10:15:53 +08:00
    为啥好多回复读着让人很不舒服。。。希望 v 站和谐一些阿。。。
    我的心愿是世界和平。。
    jatesun
        25
    jatesun  
    OP
       2016-06-15 10:17:39 +08:00
    @visonme 恩,多谢提醒
    jatesun
        26
    jatesun  
    OP
       2016-06-15 10:18:21 +08:00
    @wupher 恩,一定努力
    jatesun
        27
    jatesun  
    OP
       2016-06-15 10:19:27 +08:00
    @tony1016 恩,但是想偏重一下 java
    jatesun
        28
    jatesun  
    OP
       2016-06-15 10:20:06 +08:00
    @yangxiongwei 所以来这寻找下新视野啊
    jatesun
        29
    jatesun  
    OP
       2016-06-15 10:20:28 +08:00
    @tiemei 你知道的太多了→_→
    jatesun
        30
    jatesun  
    OP
       2016-06-15 10:21:08 +08:00
    @lawlietxxl 不想当段子手的程序员不是好的 v2exer
    peterfuture
        31
    peterfuture  
       2016-06-15 10:32:10 +08:00
    其实我觉得楼主的问题是: 就算把 java 学通了有什么用,或者花费大量时间学通 java 是否值得?
    specita
        32
    specita  
       2016-06-15 10:45:45 +08:00
    其实就是工作没有实践的地方,但自己的空余时间也很少去主动 code,会看书但很少写吧。。感觉自己就是这样,终究还是要自己 code 啊
    tony1016
        33
    tony1016  
       2016-06-15 11:12:35 +08:00
    @jatesun java 这个语言,最大的好处也是其最大的问题:门槛很低,偏重模型(比较笨重)。所以,如果你已经很熟练了,没必要在上面太消耗。如果你是一个喜欢编程的人,那么目标肯定是全栈工程师,所以去看看 javascript 等前台技术,再学学 python 等脚本技术,都是比继续在 java 中耗这些中间价更好的。
    wander2008
        34
    wander2008  
       2016-06-15 13:33:07 +08:00 via iPhone
    好多不搞 java 的人胡扯。把 mq 看看怎么用。
    pythonee
        35
    pythonee  
       2016-06-15 14:32:07 +08:00
    不错,楼主这个水平应该可以秒杀很多人了,这种进取心更能秒杀不少人
    bjlbeyond
        36
    bjlbeyond  
       2016-06-15 15:47:04 +08:00
    @wupher 草榴蜘蛛侠是什么鬼
    jatesun
        37
    jatesun  
    OP
       2016-06-15 16:53:59 +08:00 via iPhone
    @bjlbeyond 爬虫→_→,你懂的
    jatesun
        38
    jatesun  
    OP
       2016-06-15 16:56:45 +08:00 via iPhone
    @pythonee 哈哈,还好吧。我比较推崇乔帮主的那句: stay hungry stay foolish.
    chocotan
        39
    chocotan  
       2016-06-15 17:53:01 +08:00
    java 能深入学习的东西很多啊
    随便举些栗子
    语言方面, nio , java7 、 java8 的新特性的运用,研究垃圾回收, jvm 方面等
    比如 spring 最近一些版本的新特性、 spring data 的一些功能使用、 jpa 的使用, rxjava 相关,微服务最近也很火 可以关注 netflix 家的开源框架,研究 netty , lucene 等等
    可以学习一两个 jvm 语言
    jatesun
        40
    jatesun  
    OP
       2016-06-15 18:10:44 +08:00 via iPhone
    @chocotan 确实应该跳出自己的小圈子拥抱新技术,新思想
    cdffh
        41
    cdffh  
       2016-06-15 18:37:22 +08:00
    数据库方面的知识呢
    1,索引的原理
    2,sql 语句的解析过程
    3,事务的原理
    4,锁的机制
    5,数据库参数的调优
    等等等等.

    操作系统方面的知识呢
    1,文件系统
    2,线 /进程调度
    3,内存回收..

    计算机网络方面的呢, 编译器方面的呢? 要学的东西太多了..
    maomaomao001
        42
    maomaomao001  
       2016-06-15 19:49:50 +08:00 via Android
    别换~~写工具造福大家啊~~参考 jfinal
    sampeng
        43
    sampeng  
       2016-06-15 19:50:22 +08:00
    瓶颈?我觉得这种感觉,不是自己觉得自己知道的不多。而是每天都做一样的东西,做自己知道的事。
    解决办法很简单,不是像上面说的去学东西,去做新的东西。自己没做过的。其实工作中多少会有这样的机会,一定要自己去把握他。不要拒绝自己没做过的东西。
    我见过太多人,有新鲜事物扔过去不愿意接。。。还整天说学不到东西。。。
    sampeng
        44
    sampeng  
       2016-06-15 19:58:04 +08:00
    举个例子。。。
    mybatis 。对某个实现换个方式实现。。这就是没做过的。我就经常这么干。。在上一个项目用 A 方法做,在下个项目妥妥用我想出来的 B 方案做。。。如换个 sql 写法。让 mybatis 的 ide 插件更好用。等等。。做不完的事。
    spring 就更多了。。。一样的是某个实现换个方式。这个和 mybatis 不一样。可能换个方式是直接换整个代码布局。这很锻炼一个人的代码能力。最终效果是要改任何东西,都不超过 1m 就能改好。加需求,不影响。。装 B 的话来说就是高内聚,低耦合。。这个真不是看两本书就能学会的。一定要多写,不停的重构前面的项目和代码。我的习惯是先按自己的思路写一遍,然后-----删-----掉.对。删掉!!(因为版本库里面有,没什么好担心的),再快速优化的写法写一遍。项目时间紧只有一遍。项目时间长,我会多干几次。。。慢慢的,几年后。。你就可以一次写出漂亮的高内聚低耦合了。人家在堆代码,你在喝咖啡。。因为人家改 1 个 bug 要几个小时,你改一个 bug 。只要敲几个键就搞定。
    基本想到这么多。。。
    jatesun
        45
    jatesun  
    OP
       2016-06-15 20:09:58 +08:00 via iPhone
    @sampeng 确实如此,设计模式这种内功不是一朝一夕能练出来的
    zonghua
        46
    zonghua  
       2016-06-15 20:10:37 +08:00
    那就别着眼写 Java
    wisdom
        47
    wisdom  
       2016-06-15 21:31:34 +08:00
    转安卓开发...
    sweat89
        48
    sweat89  
       2016-06-16 10:54:53 +08:00
    你的问题很容易解决,
    跳槽去一家互联网公司
    ihuotui
        49
    ihuotui  
       2016-06-19 10:24:16 +08:00
    写一个监听消息的代码,消息可能是 redis , mq ,等,监听后要处理,说说你怎么先说实现,再写个怎么写。
    设计一个序号生成器。
    ihuotui
        50
    ihuotui  
       2016-06-19 10:26:37 +08:00
    写一个像 filter 的代码。
    并发写更新库存,怎么处理?
    数据库反模式知道么?
    ihuotui
        51
    ihuotui  
       2016-06-19 10:29:19 +08:00
    @sampeng 我老大说我写代码写得少,确实少写了,写得还不够抽象。
    sampeng
        52
    sampeng  
       2016-06-23 20:08:08 +08:00
    @ihuotui 所谓编码能力,我觉得不是使用各种花式写法,也不是写出什么复杂功能。而是,对自己的代码自信。对所有的代码都有一种掌控力。能改得了代码,造得了轮子。每次看到某些人说,改了这可能会影响很多东西,这样模糊的说法,就来气。。。
    ihuotui
        53
    ihuotui  
       2016-06-23 23:25:38 +08:00
    @sampeng 境界不同,只能这样说。你到了那种境界就知道了。
    zazalu
        54
    zazalu  
       2019-08-22 22:35:57 +08:00
    楼主,我也遇到类似瓶颈, 不知现在可否指教一些心得呢?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3104 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:45 · PVG 21:45 · LAX 05:45 · JFK 08:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.