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

请问一年多 Java 后台开发经验,需要学完哪些东西可以找到一份靠谱的开发工作?

  •  
  •   ekoeko · 2018-09-21 15:05:03 +08:00 · 7147 次点击
    这是一个创建于 2015 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各位大佬好。

    我现在差不多有一年多开发经验,一直在一家小公司做管理系统类的后台开发,公司在 Java 后端这块几乎没有什么大佬,自我感觉自己算是技术最好的了。学习基本全是靠自学。但是公司不算忙,有很多时间可以学习,但是我感觉自己就像井底之蛙,靠自学是有局限性的。所以特别想去一家正规的 Java 后台技术背景比较强的公司,前段时间面了大搜车、有赞,但是都挂了,也算是意料只中了。问了很多 jvm 和并发还有网络的问题,工作中用的少,自己研究的也不多,自己答得很勉强,后来自己在看《深入理解 jvm 虚拟机》和《 Java 并发实战》,差不多看了快一半了,收获很多,另一方面在 leetcode 上刷算法题,一天刷两道。这是我的博客 https://www.cnblogs.com/ekoeko/,会把题解和读书笔记放上去。

    除了这些,我发现面试的时候很多公司都喜欢问分布式的东西,比如 zookeeper、kafka、spring cloud 等等的,但是这些东西我在自己的项目中完全用不到,请问各位大佬我该怎么学习这些东西?如果我把 jvm 和并发实战看完,能找到一份靠谱的工作吗?恳请各位大佬给出建议。

    45 条回复    2018-09-22 16:28:42 +08:00
    rookiewhy
        1
    rookiewhy  
       2018-09-21 16:26:23 +08:00
    帮顶一下,不是做 java 后端的,想转 java
    ekoeko
        2
    ekoeko  
    OP
       2018-09-21 16:30:08 +08:00
    @rookiewhy 谢谢大佬
    simonliu2018
        3
    simonliu2018  
       2018-09-21 16:36:23 +08:00   ❤️ 1
    如果我把 xxx 看完能找到一份工作吗?答案是否。

    工作中用到的东西太多了,光从一本书里是很难补全的,另外每个公司需要的技能偏好不一样,而且面试官的偏好也不一样,所以找工作这件事随机性太大。

    如果说纯粹为了找工作,建议联系朋友找一些内推机会,增加命中率。
    如果是为了学习成长,可以结合工作遇到的具体问题,多实践,这样掌握的更扎实。
    benzzz
        4
    benzzz  
       2018-09-21 16:38:33 +08:00 via iPhone
    看一些大佬晒的面试总结,比对一下大佬面试过程的问题,自己掌握多少,心中会有数的
    moresteam
        5
    moresteam  
       2018-09-21 16:43:36 +08:00 via Android
    楼主的问题也是我感兴趣的,但是楼上几个说了半天还是没说怎么办的问题
    TustMan
        6
    TustMan  
       2018-09-21 16:44:29 +08:00
    持续关注一下掘金上关于 Java 文章 + 每天刷一道算法题,然后一个知识点一个的学习和总结。
    我自己是这样学习的,不知道有没有更好的。
    luvxy
        7
    luvxy  
       2018-09-21 16:49:54 +08:00
    @TustMan 大公司的一般的开发岗位,前端要懂算法吗
    churuo
        8
    churuo  
       2018-09-21 16:51:36 +08:00
    大公司注重培养 基础扎实 有算法功底
    中小公司注重项目 使用的技术 涉及的方面
    ekoeko
        9
    ekoeko  
    OP
       2018-09-21 16:53:01 +08:00
    @simonliu2018 谢谢大佬,我感觉有道理,但是如果能把一些面试的一些大多数公司都会关注的知识点了解清楚透彻,那么成功的几率应该会高点吧,不过确实会有随机性,但是可以提高总体的通过的概率,我现在想的是如何快速通过面试加入“正规军”,可能有点急于求成了,但是我是愿意学习,没有偷懒的想法。谢谢大佬的意见。
    ekoeko
        10
    ekoeko  
    OP
       2018-09-21 16:55:32 +08:00
    @TustMan 我感觉文章博客对我来说没有书好,博客上的都是片段的知识点,看完了只是了解了一个点,别人一问前因后果就蒙了。。
    wizardforcel
        11
    wizardforcel  
       2018-09-21 16:55:56 +08:00
    面试常考的东西就那么几个,但你会发现它们在书里面很散。所以找面经看才合适。
    ekoeko
        12
    ekoeko  
    OP
       2018-09-21 16:56:28 +08:00
    @luvxy 我有个前端朋友笔试被要求写 kmp 算法。。。
    TustMan
        13
    TustMan  
       2018-09-21 17:11:19 +08:00
    @luvxy 我之前在小米,微博面 Java 后端开发,一面时候,会让手写一些简单算法的,不过你如果说不懂算法,面试官就会问技术方面的问题,如果 Java 技术足够好,我估计大公司也是会考虑的。
    前端感觉也算开发岗位,应该也会简单问问的,不过应该没有后端要求那么高。
    cyril4free
        14
    cyril4free  
       2018-09-21 17:24:10 +08:00
    现在开发已经不是之前 Spring MVC 的感觉了。。各种微服务开发,还有对 devops 能力的要求,感觉要学习的东西太多了。。
    thetydead
        15
    thetydead  
       2018-09-21 17:25:26 +08:00   ❤️ 1
    d18
        16
    d18  
       2018-09-21 17:31:43 +08:00
    一开始我也发愁分布式,高并发这些没有相关经验怎么办,后来就放弃了,没有实际经验,就是看 100 本书也是然并卵,纸上谈兵罢了。
    xcjx
        17
    xcjx  
       2018-09-21 17:34:49 +08:00
    在二线城市,Java 面试,刚毕业时问框架 API,后来就是业务,对,只问业务和系统设计,现在都是问各种架构,技术选型;跟我同经验的 Ruby PHP 都没有这么问的。
    浮躁啊
    ekoeko
        18
    ekoeko  
    OP
       2018-09-21 17:39:09 +08:00
    @thetydead 感谢,收获很多!
    ekoeko
        19
    ekoeko  
    OP
       2018-09-21 17:42:10 +08:00
    sampeng
        20
    sampeng  
       2018-09-21 17:56:58 +08:00
    你现在需要的可能不是大公司。而是有一定用户量的公司。
    做后台管理没什么技术含量,大部分纯粹就是 CRUD。或者复杂的业务逻辑。
    但去有用户量的公司做后端就不一样了。这个后端不是做后台管理。。是直接开发接口这样的。会好很多,也会学到很多。

    总之。。。找一个做接口的公司。很多面试相关的东西都会接触到了。然后就是慢慢扩大公司规模了。一开始要去有大团队的公司。没有好的文凭以及技术能力,1 年工作经验。很难
    sampeng
        21
    sampeng  
       2018-09-21 17:58:08 +08:00
    还一句。。。忘了说。看的那些书也是白看。因为你用不到。。。
    luozhiyun
        22
    luozhiyun  
       2018-09-21 18:00:59 +08:00 via iPhone
    去招聘网上看看不就知道别人要求啥了
    zhangkunkyle
        23
    zhangkunkyle  
       2018-09-21 18:08:42 +08:00 via iPhone
    看完感觉压力好大,python web 正在学 java web,想转 java
    ekoeko
        24
    ekoeko  
    OP
       2018-09-21 18:44:41 +08:00 via Android
    @sampeng 大佬,感觉你说的太对了,谢谢!!
    ekoeko
        25
    ekoeko  
    OP
       2018-09-21 18:45:21 +08:00 via Android
    @sampeng 不过后面一句不敢苟同
    zhangalong69
        26
    zhangalong69  
       2018-09-21 18:57:10 +08:00   ❤️ 1
    数据结构,java 底层,多线程,并发类的源码,spring 源码,mvc 框架原理,数据库,jvm 虚拟机原理,redis 缓存,Linux 命令
    ekoeko
        27
    ekoeko  
    OP
       2018-09-21 19:16:06 +08:00
    @zhangalong69 是的,感觉差不多就是这些,感谢大佬。
    shijingshijing
        28
    shijingshijing  
       2018-09-21 19:29:47 +08:00
    @zhangalong69 我觉得光 Spring 那一堆东西就已经很多了,要深入把这一堆撸清楚,还得花不少时间。
    Raisu
        29
    Raisu  
       2018-09-21 19:31:46 +08:00
    半年经验的瑟瑟发抖。。。
    sampeng
        30
    sampeng  
       2018-09-21 19:41:19 +08:00
    @ekoeko 书上的东西。不用。半年-1 年全忘干净。就跟读书是一个道理。如果书只是读了一遍,全部理解了。如果没有大量的练习和考试。第二个学期肯定不记得上个学期看的书上的大部分知识点

    找一个做后端的。随便拎一个就要了解 redis 缓存,linux 命令。spring 框架的深入了解。如果接口请求量大,马上要去了解 jvm 虚拟机原理,因为性能优化要这个知识点。再请求量大一点就是需要分布式,吧啦吧吧吧啦了。。都是一步一步来的。。。就算你全部找了书来看。平常不用,不用 1 年全忘干净。。。
    sampeng
        31
    sampeng  
       2018-09-21 19:44:12 +08:00
    @zhangalong69 我个人认为框架没必要真正儿八经去细看。因为太多细节了,不一定记得住。但每个细节是处理特定的需求的。如果没这个需求,你也无法理解为什么要如此处理。难道你要去背一堆接口和对象名?。。用到哪,直接翻源码或者网上找资料去深入理解。不要太依赖接口文档。。跳过去看源码。。这样深入可能效果更好。

    当然,有时间看源码学习是有必要的。
    iluhcm
        32
    iluhcm  
       2018-09-21 20:05:37 +08:00 via Android
    为什么问分布式的东西?因为大厂怎么可能把服务部署一台服务器上。现在微服务这么流行,大厂都在用。为了解耦,提升吞吐量,提高 QPS,TPS,
    同时也提供服务降级,熔断等提升系统鲁棒性的功能。
    d18
        33
    d18  
       2018-09-21 20:56:13 +08:00
    @iluhcm 没分布式经验进不了大厂,进不了大厂就没有分布式经验。这,这道题无解。
    jrtzxh020
        34
    jrtzxh020  
       2018-09-21 20:58:21 +08:00 via iPhone
    我公司的 java 一年多,写业务都有压力。。
    kevinhwang
        35
    kevinhwang  
       2018-09-21 21:37:11 +08:00 via Android
    我来打击楼主,没分布式经验的 java 后端没有任何优势。
    瓶颈就在那里。
    分布式不等于高并发,还有一个原因就是解耦模块。你一个单体应用最多才几个开发人员?
    还有说看书分布式没用的,其实是基础太烂,没有理解分布式其实是跟网络做斗争。如何保证事务一致性,如何解决并发,如何限流等等的问题,都是可以自己模拟的。
    earthyan
        36
    earthyan  
       2018-09-21 21:38:41 +08:00
    还是要注重基础的积累,如果分布式经验在平常工作中无处积累,可以多刷刷一些牛人的博客,
    kevinhwang
        37
    kevinhwang  
       2018-09-21 21:41:44 +08:00 via Android
    说看源码用处不大的简直害人。源码才是最有用的,juc 的包源码看了吗?想过为什么要这么实现的吗?
    dubbo 的源码看了吗?为什么要这么设计?里面包含了哪些设计模式?
    看源码光看是没用的,只有设计思考测试多了才知道为什么要这么设计。这才是看源码的意图。
    ab11800222
        38
    ab11800222  
       2018-09-21 21:55:22 +08:00
    跟楼主同一个疑问,我觉得一个痛点是工作有点脱离面试,可能是我太菜的原因,也是在公司做着单机的 web 应用,基本不需要写分布式的代码,并发就更不用说了,synchronize 关键字都没见用过的,这样的环境下,只看书来学习知识效率真的很低,要不了多久就忘,等于白看。
    crossoverJie
        39
    crossoverJie  
       2018-09-22 00:23:51 +08:00   ❤️ 1
    simonliu2018
        40
    simonliu2018  
       2018-09-22 08:55:59 +08:00
    @ekoeko 如果想速成,可以刷刷面经。如果想打好基础,那就把计算机系的课程系统看看把。
    iluhcm
        41
    iluhcm  
       2018-09-22 09:34:32 +08:00 via Android
    @d18 说来幸运,我是 0 经验从客户端转后端,接触了大量的分布式知识,大约花了一个多月的时间才开始渐渐入门。这道题是有解的,从分布式基础知识入手,理解其中的设计模式,设计思路很重要。
    ekoeko
        42
    ekoeko  
    OP
       2018-09-22 09:45:53 +08:00
    @crossoverJie 谢谢大佬,看了大佬的 GitHub,感觉自己做的太少了。。。
    taowen
        43
    taowen  
       2018-09-22 10:07:20 +08:00 via Android
    立足自己的本职工作,深入思考什么是好的,如何能更好。用过去的经验去够着更上一级的平台,更有价值的挑战。
    sdushn
        44
    sdushn  
       2018-09-22 10:17:48 +08:00 via Android
    正在找工作 ing,由于是校招,问题都很基础,但是也能看出来用人单位的基本需求:计算机基础扎实,熟练掌握基本算法和数据结构,熟练使用一种数据库,熟练掌握 1-2 门语言,对于框架,大厂可能是要求有相关经验,对其中一个有深入研究(看源码),小厂的话深入研究就算加分项了,如果是后端的话,对高并发的理解也比较重要。
    如果工作了一年,我认为除了基础不能丢,对框架的理解要加深,多学习几个框架,他们的优势缺点要有独到的认识。此外就是看做的工作了吧,一年应该对工作的业务和技术有比较多的了解才行。
    感觉是校招看基础,一年的话要看技术和成长的速度
    KingEngine
        45
    KingEngine  
       2018-09-22 16:28:42 +08:00
    你只需要学会框架的配置与使用即可
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   958 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:19 · PVG 05:19 · LAX 14:19 · JFK 17:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.