最近面试比较频繁,做 Java 这块 感觉基本绝大部分都是 Spring 全家桶了,加上 Redis 、MQ 、Mysql 等等,但很多时候在二面、三面时候开始会问算法、还有一些 Spring 源码、Mq 源码等等一些东西,有点没明白,真的有必要这么死扣源码吗?还有感觉工作中接触算法比较少了,这个也有必要吗?
1 littlewing 2020-04-10 11:24:07 +08:00 via iPhone 并不是要死抠源码,而是你要知道你用的东西的原理,不能是只会用 |
2 maemual 2020-04-10 11:28:01 +08:00 说白了就是看你有没有上进心,有没有探索原理的欲望。 |
3 crackhopper 2020-04-10 12:51:52 +08:00 工作中确实用的比较少。但从公司角度考虑,如果公司 hc 有限、应聘者很多,怎么区分应聘者?所以源码、算法这些主要是用来区分人的,并不代表工作用到。一般到这种级别区分人,就意味着岗位的竞争可能比较激烈。 |
![]() | 4 nnqijiu 2020-04-10 13:04:56 +08:00 面试造航母,工作拧螺丝。说白了就是筛选人的 |
![]() | 5 shawndev 2020-04-10 13:12:08 +08:00 根据我的总结,每一个刁钻的产品经理背后,都有一个需要偶尔需要挖掘源码的开发。如果一次都没有,很可能因为你不是这个产品的核心开发。 |
6 hantsy 2020-04-10 13:25:40 +08:00 ![]() 基本上是 Spring 全家桶?太以偏概全了。Java 的世界不要太丰富,盯着一个 Spring 不要枯燥了。 |
7 TwoDogSon 2020-04-10 13:38:51 +08:00 最近也在备战 啃源码 啃着啃着发现这玩意 有点像从英文文章里面学词组 语法的感觉 人家这块为啥这么用 以后我遇到类似的是不是也可以用这种方式来实现(主流框架 源码什么的作者比我 nb 多了)换个思路想 都想接手的代码不是烂摊子 那么是不是有看过源码主流框架的人 写出烂摊子的概率更小一些呢 最近啃着啃着还挺有趣的 安利一个 draw.io 然后搭配 googlg drive 存储 祝大佬早日早到如意的工作~ |
![]() | 8 stiangao 2020-04-10 13:49:20 +08:00 杠杆原理大家都知道,四两拨千斤,但是如果你不知道呢,撸起袖子就开干,so~ |
![]() | 9 mazai 2020-04-10 14:17:32 +08:00 都说面试造航母,工作拧螺丝,正儿八经的让你上去造航母你也得造的出来吧? |
10 Jooooooooo 2020-04-10 14:21:15 +08:00 你换到面试官角度就懂了 |
11 fkdog 2020-04-10 14:23:40 +08:00 @crackhopper 非大公司专业面试的话,大部分面试官也是随便问问,或者网上找的面试题。 大部分面试官的水平其实也不咋的,和面试者 5 5 开。 |
12 fkdog 2020-04-10 14:25:45 +08:00 @TwoDogSon 研究开源框架源码对你的业务编码能力并没有多大的帮忙。 业务代码写的乱往是逻辑混乱、业务理解不到位、应付之类的原因。 |
![]() | 13 Orenoid 2020-04-10 14:35:25 +08:00 Spring 这种生态大而全的可能不怎么需要动源码吧,但中小型框架和库就不好说了。 Java 我写得不多不太清楚具体状况,写 Python 的时候确实改过一些框架 /库的代码,要么继承,要么直接重写的都有。。 |
![]() | 14 blackccc 2020-04-10 14:48:17 +08:00 竞争太激烈了,一般的问题大家都会,也只能这样了 |
15 wuketidai 2020-04-10 14:49:14 +08:00 你 debug 的时候可能有一些是用的框架里面报的问题,如果你不了解,你怎么定位修复? 你自己造轮子的时候,别人框架已经解决过类似东西了,你通过源码了解到相关设计与实现细节,可以拿来借鉴也可以拿来改进 |
16 sampeng 2020-04-10 15:15:51 +08:00 如果你没看过 spring boot 源码。。来来来来,我们刚提出的一个问题,你看怎么解? spring boot 的项目启动太慢,需要优化。。你都没看过源码,不知道 spring boot 的结构和启动顺序。给你这个线上的问题,你告诉我你不知道?那我要你干嘛? |
17 vitoliu 2020-04-10 15:17:59 +08:00 在岗位竞争不激烈或者急招人的情况下可以一点算法不问。但是一定要问源码。 一是源码看的多的人怎么也能学个一招半式,代码质量相对更高。相信对框架源码感兴趣的人,就算需求急着上线也不会写一些恶心的逻辑在里面。 二是解决问题的能力和耐力,这点不用多说吧,框架源码参差不齐,且一般调用链很深,能坚持看下去的人相对来说更好管理,平时能少操点心不比招个大爷进来好多了。 |
19 qdzzyb 2020-04-10 15:27:46 +08:00 ![]() 也挺奇怪的 没人问 mysql 的源码 |
![]() | 20 yRebelHero 2020-04-10 15:32:20 +08:00 其实想知道 spring 源码怎么看,感觉无从下手。 |
![]() | 21 murmur 2020-04-10 15:33:54 +08:00 因为面试的人太多了,所以加点有难度的筛一批人 |
![]() | 22 nicebird 2020-04-10 15:42:21 +08:00 书到用时方恨少。工作中 90%都是无技术含量的,但是是要有 1%要用上了,没积累的话就是一个无头苍蝇。 |
23 ConradG 2020-04-10 15:49:21 +08:00 我觉得问算法还好,只要不要求现场撸红黑树这种的,这玩意儿是正经基本功。 源码倒是除非是针对性很强的岗位,否则两边很难聊到一块儿。 |
24 chihiro2014 2020-04-10 15:56:13 +08:00 其实现在的 Java 程序员,大部分都是离开 Spring 就不咋会写代码了。。。。。。。个人意见,不喜勿喷 |
![]() | 25 Orenoid 2020-04-10 16:04:16 +08:00 另外同意楼上关于 debug 的观点,有时候发送异常后,框架可能并不会帮你包装好用人话告诉你出什么错了,而是直接抛出一个非常底层的错误,万一这个错误又不是那么常见,你不看源码的话可能会无从下手。 |
26 zc1249274251 OP @Orenoid 其实 也不是说不推荐看源码 但是回过头来看 Spring 源码十几年的沉淀 没有很好的一个技术积累 真的无从下手 之前看的时候感觉就是这样 |
27 hantsy 2020-04-10 17:17:07 +08:00 @yRebelHero 看 Spring 的源代码容易,关键是 spring-context, spring-beans, spring-core, 其次是 spring-aop 等等, 都是其次。这些源代码,导入 IDE,不是傻子都看得懂,有什么意义。 |
28 hantsy 2020-04-10 17:21:33 +08:00 @sampeng 如果你在乎 Spring Boot 的启动速度,Spring Boot 带来的傻瓜式的 AutoConfiguration,也让你的项目引入很多不必要的配置。你完全可以不用 Spring Boot,用原始 Spring 自由度更大。 |
![]() | 29 purensong 2020-04-10 17:23:32 +08:00 面试过别人就能体会要区分出 10 个人,你应该问哪些问题,你都问 spring IOC AOP,他们都对答如流,你不问一些消息队列,微服务怎么 能做出选择。 我觉得倒不是面试造火箭,而是看面试者有没有学习能力,有学习能力的一定会多问为什么,而且会深挖技术内核,而不是浮于表面。 |
![]() | 30 KeyboardManAnAn 2020-04-10 18:14:44 +08:00 工作越久,越觉得这些基础知识真的有用,否则就永远都只是在浮光掠影的表面磨叽 |
31 zc1249274251 OP @KeyboardManAnAn 深有同感 大学时候学的数据结构、计算机组成啥的真是有用 |
32 zc1249274251 OP @TwoDogSon 老哥 求教 你这看源码咋看的 直接导 Ide? |
33 TwoDogSon 2020-04-10 20:10:19 +08:00 @zc1249274251 我看到 Android 源码哈 有一部分可以 ide 看 还有的可以有那种源码在线的网站吧 跳转没有 ide 体验好 但也可以接受 |
![]() | 36 liuzhiyong 2020-04-10 22:44:50 +08:00 我觉得会用就行,工具的源码不需要了解,因为你根本不会去改它(反正我没有这么牛)。算法了解一下即可,业务代码对这个要求很有限(有可能有用,大部分时候用不上)。 |
37 james122333 2020-04-10 23:08:01 +08:00 via Android 最近越来越讨厌 java 对象观念就是个双面刃 因为对象造成的不相容让人一点都不觉得直观 灵活性大打折扣 说是有多动态我是不相信 |
![]() | 38 beidounanxizi 2020-04-10 23:11:09 +08:00 spring boot 有啥么 不就是内嵌 tomcat 自动化配置 呵呵哒 有什么好的昂 go toml 解析 多好 真是不晓得 spring boot 有啥好的 |