作为一只 Java 老鸟,依旧感觉很迷茫。

2018-04-14 01:40:36 +08:00
 ob
今天看到 /t/446353 这位小兄弟的帖子,颇为感慨。
他 96 年的,就已经有这种意识,经过各位大佬的指点,相信他后面的方向会更加正确。
而我,已经 30 出头,每天的工作,依旧还是敲各种业务代码,渐渐的成为了大家口中那种熟练的弱鸡。

这么多年,换过好几份工作,每家公司用的技术栈都略有差异,从 Servlet,Struts1,Struts2,Spring,Hibernate,iBatis,Jersey,JBPM,DWR,ExtJS,Redis,Freemarker,Velocity,ActiveMQ 等等,到现在的 SpringMVC,SpringBoot,Mybatis,Shiro,Memcache,Dubbo,Zookeeper,Hadoop,Hive,Spark,Flume,Hbase 等等(没有列全)。
各种前后端的框架一直在发展更新变化,虽然这些框架在工作中,用的都很溜,遇到问题,也都能找到办法解决。
以前说几大框架,看看源码,弄懂底层的原理,这都能理解。
但是经过这么多年的经验,用到某个框架,需要解决什么问题,通过官网,网上找资料,基本上都能搞定,更加注重的是使用,以及要达到的结果。如果要像各位大佬说的,要把这些东西的原理,细节研究的很透,基本上是做不到。
而且主要的问题是,像前面部分的技术,换份工作,就已经废弃,就算你之前踩过的坑,积累了很多经验(对各种出现过的问题记笔记),对新工作的帮助可以说忽略不计。所以这种没用的工作经验,不但不能成为加分项,因为工龄的增长,更可能会变成减分项。

所以针对工作中出现的那些框架,我现在的更关注的是会用,熟练的用,知道怎么用,变的不会去深研究为什么这样用,这样用的原理是啥(大部分原理也都知道)
当然,针对 java 的其他技术,比如并发,多线程,JVM,设计模式,这类知识,那肯定是研究的越深越好。

但是,像我这种情况,在简历上面,都会写上工作中用到的哪些技术和框架,然后面试官看你写这框架,就会针对这框架问的很深入,很细,正常情况下,框架用不上的配置,我就不会去研究。
例 1:比如我们用 dubbo,只是拿来做简单的服务框架,但是面试会问到:
怎么用 dubbo 限流?
dubbo 底层的序列化,怎么实现自己的序列化?
服务是怎么提供的,原理是啥?
真要去看 Dubbo 架构设计详解
图: http://shiyanjuncn.b0.upaiyun.com/wp-content/uploads/2013/09/dubbo-architecture.png
感觉是一脸懞逼。

例 2:再比如 Zookeeper,服务器上面的安装部署,都是相关人员处理,如果不是自己负责,正常就没有去了解它底层的原理,以及选举领导人的机制等等。但是,面试时,这类问题也会被问到,然后要是没看过别人的文章,基本上也是答不上来。

例 3:面试会问,Struts1 和 Struts2 有什么区别,优点和缺点?
例 4:Struts2 和 SpringMVC 有什么区别,优点和缺点?
例 5:SpringMVC 和 SpringBoot 有什么区别,优点和缺点?
说实话,上面这些例子,我以前都被问过,对于我这种一开始只管使用的人来说,根本就不懂这些区别,只知道哪个更好用,开发效率更高,都是怎么用的。只有面试过后,我才会去网上找资料看下,哦原来 Struts2 是类级别的拦截,SpringMVC 是方法级别的拦截,SpringMVC 的入口是 servlet,而 Struts2 是 filter 等等。而这些也仅仅是从别人的文章里面得到的结论,根本就不是我自己去看源码研究出的结果,这样对有我意义吗?想知道,这类的面试问题,是不是真能反映出面试者的水平?
各位大佬针对这类面试问题,是自己研究源码得出的结论,还是看网上别人的文章呢?

本人在工作中,各种疑难杂症,复杂的问题都能解决,自认为学习能力挺强,解决问题的能力和思路也都有。但是面试时,往往因为问各种框架类的理论( Java 工种,其他工种不知道是不是一样?),搞的很尴尬,以前找工作面试时,要是不做理论准备,基本上都要被问倒。就像大家说的,面试面的是造航母。

所以我的这种状况,工作中使用的这类技能,让我感觉很迷茫,对各种框架的掌握根本不能为自己提供相应有效的积累。
最后,请教各位大佬,像我这种 Java 老鸟还有得救吗?应该往什么方向(技术类)前进呢?
[顺便说下,现公司开发人员 150+(前后端,UE,美工等都算在内),负责框架架构的就五六个,大部分人都是参与各个系统的业务开发。]

看了那位小兄弟的帖子,由感而发,码了挺久的字,排版不是很好,如果各位看到这,道声辛苦了。
希望各位大佬能帮忙指点指点,各种批评也都能虚心接受。
主要是想能更好的了解下自己,从不同旁观者的角度审视我身上存在的这些问题。
谢谢大家。
8134 次点击
所在节点    职场话题
37 条回复
zig
2018-04-14 17:23:03 +08:00
night98
2018-04-14 19:32:25 +08:00
同 java,感觉要学的东西太多了,如果每个东西都看源码和底层,十年也未必能学完一半的感觉。
WinterWu
2018-04-14 20:52:08 +08:00
@ob 给楼主贴一个自己最近学习 JVM 的文章 https://www.jianshu.com/p/21ed43d177f3
写的不太好,又有点太长,不过还是尽力将自己的心得体会放进去了,重点不是单独的技术点,那样永远追的很累,重要的是能构建自己的技术体系、思维体系。
IT 技术某种程度是悲哀的,不像其它技术领域,越老越值钱,如果不断学习成长的能力,不如尽快切换方向。
WinterWu
2018-04-14 21:03:31 +08:00
另外,有些面试官的确是自己不懂,乱来,我问框架,只会问面试者最熟悉的,不熟悉不问,问也只问的确会经常用的和最核心的原理。经常用的框架的核心原理还是应该明白,否则开发过程中如果遇到有深度的很容易抓瞎,或者导致乱抄代码。
fumichael
2018-04-14 22:54:24 +08:00
楼主问的问题也是我的问题。
enenaaa
2018-04-15 00:35:15 +08:00
窃以为,楼主的问题也是大部分大龄程序员的问题
cpp255
2018-04-15 01:24:32 +08:00
楼主举的例子也遇到过,面试都是要求造航母的要求,特别是大厂。Java 要学的东西很多,共勉了。
身边的例子:1.团队里面有大牛的,遇到问题可以问,方向之类的问题可以参考大牛或者能得到大牛的指点,当然自己的努力是分不开的; 2.遇到了好的团队,跟着公司业务壮大,技术、平台、薪酬也跟着增长。
总结起来就是选对了好的方向。同意楼上的说法,年纪大了,人脉真的很重要,有时候认识的人推荐,前面的乱七八糟的面试就可以避免
ob
2018-04-15 10:14:14 +08:00
@WinterWu 一年的时间就把 java 学到这个境界,真心佩服。
你这种学习方式很高效,很值得借鉴。谢谢
worldnode
2018-04-15 10:50:08 +08:00
前 java 同事已经回家交钢琴了
ob
2018-04-15 11:26:59 +08:00
@worldnode 哈哈,这跨行可以
zk123
2018-04-15 18:38:35 +08:00
选择比技术更重要,如果你在一个位置不可替代怎么会有这样的疑问呢?
ob
2018-04-15 19:24:41 +08:00
@zk123 不能说绝对吧,对大多数人来说大部分确实是。因为一家公司没有几个是不可替代的,除非就几个人的小公司。
pengqiuyuan
2018-04-16 09:42:53 +08:00
楼主问的问题也是我的问题。
v3exhost
2018-04-16 17:34:39 +08:00
就喜欢这种接地气的帖子
Rico
2018-05-11 21:04:04 +08:00
最近面试被秒成渣,和楼主感受相同。 抛开算法数据结构不论,框架的,工具性的,配置型的,广度的东西 ,可能业务场景没用到确实也答不出来。
OpenSun
2018-08-23 18:30:40 +08:00
@DarkMario 深度永远比广度重要
PoetAndPoem
2021-02-04 10:29:31 +08:00
学习

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/446696

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX