面试考点

综上,梳理出七个方向的面试考点,包括:基本功底、常用技术、技术深度、技术经验、学习能力、工作能力、项目经验。基本功底,是一个程序员的主科目语言的学习程度的一个基本考察,这部分内容需要平时大量积累和总结。否则一本简单的Java书很难全部给你讲透彻,因为Java中包括了太多的内容,远不止API使用。

常用技术,聊的是你的技术广度,和岗位技术匹配度。比如需要用到过RPC,那你用过Dubbo。如果你的公司暂时用的技术不多,或者还是处于单体服务,那么需要自己补充。

技术深入,除了技术广度接下来就是技术深入,在你常用的技术栈中,你有多了解他们,了解源码吗、了解运行机制吗、了解设计原理吗。这部分内容常被人说是造火箭,但这部分内容非常重要,可以承上启下的贯穿个人修为和薪资待遇。

技术经验,什么是技术经验呢?这是落地能力,除了你可能认为上面一些是纸上谈兵,是造火箭。那么接下来这部分内容就是你是否真造过一个火箭,真完成过一个难题。所以这部分是从结果证明,不是你会什么,而是你做过什么。

学习能力,作为程序员你是否保持热情,是否依旧在积极努力的关注技术,是否为自己的成长不断添砖加瓦、是否还有好奇心和较强的求知欲。一般会从这里看你是不是一个真正的Coder!

工作能力,以上的种种能力,最终要体现到工作上,要能看出你的交付能力。否则即使你再优秀,也不能把你当成一个吉祥物。工作能力的体现,才是真的为团队、为部门、为公司,贡献价值的。

项目经验,这项内容会根据不同公司的不同业务线而不同,就像你懂交易、支付,那么面试花呗、借呗、白条等工作岗位就会很吃香。

好! 接下来小傅哥就带着你逐步介绍七个方向中的每一刻具体有哪些内容以及该如何学习。走起!

二、技术大纲

  1. 基本功底图 16-1 基本功底

重要程度:⭐⭐⭐⭐

内容介绍:数据结构讲的就是把数据放在不同形态的结构中,堆栈队列链表数组等。而算法逻辑就是把这些存放在数据结构中的数据按照一定规则进行增删改查,也就是二分、快排、动态规划、搜索等。而一门语言的核心技术就包括了对数据结构和算法的具体实现,像是我们用到的结合框架,ArrayList、HashMap等都是具体的实现。除此之外,在Java的核心技术中还要学习多线程、代理、反射等技术。这不只是面试内容,更是写好代码的基础!

学习资料:算法图解、大话数据结构、数据结构与算法分析、算法导论、算法之美、计算机程序设计艺术

语重心长:学习,从来不只仅仅是为了当下工作需要。简单的CRUD也可能真的不需要复杂的设计,但个人的年龄和能力一直要成正比!

  1. 常用技术

图 16-2 常用技术

重要程度:⭐⭐⭐⭐

内容介绍:这部分内容是一个互联网研发中常用的技术栈内容,可能每个公司会有一些同类的其他技术,比如RPC框架就有很多种,但技术核心原理基本一致。可能以上的内容看上去比较杂,也可能有一些是你还没有接触过的,可以从上到下逐步了解。

学习资料:http://tutorials.jenkov.com、https://tech.meituan.com/、http://mysql.taobao.org/monthly/、《面向模式的软件架构》、《设计原本》、《架构之美》、《Clean Architecture》

语重心长:如果你并不想做一个工具人,就给自己的知识架构体系建设的完整一些,也算是风险抵抗了!

  1. 技术深度

图 16-3 技术深度

重要程度:⭐⭐⭐⭐⭐

内容介绍:这一部分内容经常在面试求职过程中被称为造火箭、八股文。因为这部分知识探索到了JVM的运行机制,甚至去翻看C++源码,也包括JDK源码,同时还有框架的实现机制。除此之外,还有的公司会拓展到你可能完全没接触过的字节码插桩、全链路监控等等。

学习资料:《java虚拟机规范》、《Java并发编程实战》、《多处理器编程的艺术》、《面经手册》、《字节码编程》

语重心长:有人说这叫内卷,那难道高考不卷?车牌号不卷?只要有资源竞争,就一定会有争夺。

  1. 技术经验

图 16-4 技术经验

重要程度:⭐⭐⭐⭐⭐

内容介绍:如果你说问你源码、机制是造飞机,那技术的落地才是你真正的本事。这里一部分是框架、架构的搭建,另外一部分是源码和核心组件的使用。也就是你的核心框架源码学习,是否能做到技术迁移运用到你的项目中,做出可落地的程序。学习、沉淀、积累,这更像一盘大棋!

学习资料:CodeGuide

语重心长:不造轮子?对个人来说,轮子越多,车就越稳!

  1. 学习能力

图 16-5 学习能力

重要程度:⭐⭐⭐⭐

内容介绍:学习能力主要是输入和输出,一遍吸纳知识,一遍沉淀知识。如果只看不记录不写,早早晚晚也就忘没了。这方便沉淀下来的内容都是个人的技术标签,尤其是参与过开源项目,或者自己有一个项目得到认可。

学习资料:https://github.com、https://stackoverflow.com、https://www.csdn.net、https://www.cnblogs.com

语重心长:写博客真的是一种非常好的学习方式,每当你要输出一个知识的时候,你就需要阅读、收集、整理、汇总。日复一日的沉淀,终究会让你有非常大的提升。

  1. 工作能力

图 16-6 工作能力

重要程度:⭐⭐⭐⭐

内容介绍:招聘人你觉得是先看能力还是先看素质?其实很多团队招聘是先看人的,如果你不能表现出一个积极、乐观、抗压、不玻璃心的态度,团队招聘是会有些抗拒的,谁也不希望招聘一个需要哄着的码宝男。但工作能力同样重要,最终是你的担事心态和担事能力来撑起你的工资和职位。

学习资料:《非暴力沟通》、《关键对话-如何高效能沟通》、《逆商:我们该如何应对坏事件》、《人月神话》

语重心长:沟通是解决双方或多方的认知偏差问题最终达成共识,情商是沟通的润滑剂,无论对谁都应该保持自己为追求更好而有的格局。

  1. 项目经验

图 16-7 项目经验

重要程度:⭐⭐⭐⭐

内容介绍:项目经验来自于各个不同行业的技术范围,比如:社交、电商、外卖、出行、视频、音乐、汽车、支付、短视频等等,都会在各自的领域有一定的技术壁垒和相同之处。所以一般做游戏开发的可能跳槽到交易支付,还是会有很多不了解的。所以尽可能是在自己的行业内跳槽,或者你可以做到知识的拓展,自己多学习。

语重心长:不要守着自己的一亩三分地,多看看、多了解。