凌晨夜深人静~,菜奕和大家稍微放松一下来聊聊“Java 核心技术”之外的内容,我也分享一下我对 Java 学习和面试的看法,希望对大家能有所帮助。

从学习技巧的角度,每个人都有自己的习惯,我个人喜欢动手实践以及与人进行交流。动手实践是必要一步,如果连上手操作都不肯,你会发现自己的理解很难有深度。在交流的过程中你会发现,很多似是而非的理解,竟然在试图组织语言的时候,突然就想明白了,而且别人的观点也验证了自己的判断。技术领域尤其如此,把自己的理解整理成文字,输出、交流是个非常好的提高方法,甚至我认为这是技术工作者成长的必经之路。

再来聊聊技术底层,我们是否有必要去阅读源代码?需要理解什么程度?

阅读源代码当然是个好习惯,理解高质量的代码,对于提高我们自己的分析、设计等能力至关重要。在实际工作中,阅读代码的时间其实大大超过写代码的时间,这意味着阅读、总结能力,会直接影响我们的工作效率!这东西有没有捷径呢,也许吧,我的心得是:“无他,但手熟尔”。需求复杂而多变,越来越凸显出白盒方式的重要性。快速定位问题往往需要黑盒结合白盒能力,对内部一无所知,可能就没有思路。与此同时,通用平台、开源框架,不见得能够非常符合自己的业务需求,往往只有深入源代码层面进行定制或者自研,才能实现。我认为这也是软件工程师地位不断提高的原因之一。

对于底层技术,这个确实是比较有争议的问题,我个人并不觉得什么东西都要理解底层,懂当然好,但不能代表一切,毕竟知识和能力是有区别的,当然我们也要尊重面试官的要求。我个人认为,不是所有做 Java 开发的人,都需要读 JVM 源代码,虽然我在专栏中提供了一些底层源代码解读,但也只是希望真的有兴趣、有需要的工程师跟进学习。对于大多数开发人员,了解一些源代码,至少不会在面试问到的时候完全没有准备。
全部评论
关于阅读源代码和理解底层,我有些建议:带着问题和明确目的去阅读,比如,以 debug 某个问题的角度,结合实践去验证,让自己能够感到收获,既加深理解,也有实际帮助,激励我们坚持下来。一定要有输出,至少要写下来,整理心得,交流、验证、提高。这和我们日常工作是类似的,千万不要做了好长一段时间后和领导说,没什么结论。 最后谈谈我在面试时会看中候选人的哪些素质和能力。 结合我在实际工作中的切身体会,面试时有几个方面我会特别在乎: 技术素养好,能够进行深度思考,而不是跳脱地夸夸其谈,所以我喜欢问人家最擅长的东西,如果在最擅长的领域尚且不能仔细思考,怎么能保证在下一份工作中踏实研究呢。当然这种思考,并不是说非要死扣底层和细节,能够看出业务中平凡事情背后的工程意义,同样是不错的。毕竟,除了特别的岗位,大多数任务,如果有良好的技术素养和工作热情,再配合一定经验,基本也就能够保证胜任了。 职业精神,是否表现出认真对待每一个任务。此时此刻,非你莫属。有经验的管理角色,大多是把自己的管理精力用在团队的正面建设,而不是把精力浪费在拖团队后腿的人身上,难以协作的人,没有人会喜欢。有人说你的职业高度取决于你“填坑”的能力,我觉得很有道理。现实工作中很少有理想化的完美任务,既目标清晰又有挑战,恰好还是我擅长,这种任务不多见。能够主动地从不清晰中找出清晰,切实地解决问题,是非常重要的能力。 好了,菜奕被催洗澡去了 。
点赞 回复 分享
发布于 2022-08-11 02:44

相关推荐

10-08 16:13
已编辑
南京航空航天大学 C++
中安智能 软开 1.85*14 硕士211
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务