人生第一份工作■培训班出身需隐瞒经历?商业项目经验怎样写?程序员面试准备盘点


人生第一份工作■培训班出身需隐瞒经历?商业项目经验怎样写?程序员面试准备盘点
本文插图
作者 | hsm_computer
责编 | 伍杏玲
出品 | CSDN博客
在《春招妥了!资深技术面试官教你这样准备 Java 面试!》这篇博文后 , 提到了不少引导的说辞和技巧 , 如果能把面试官的提问引导到事先准备好的亮点上 , 一方面确实可以更有效地耗费面试时间 , 另一方面也能最大程度地挖掘和展示自己的亮点 。
上述博文是站在战术角度讲述方法论 , 而本文会从“技术面试官凭什么让候选人过”这个本源性问题入手 , 从战略角度再讲些“面试准备”的方面和技巧 , 读完本文后 , 大家其实会豁然开朗地发现 , 其实提升技能和准备面试并不冲突 , 也就是说 , 只要平时多挖掘现有项目 , 多深入细节和亮点 , 准备面试也就是“随手”的事情 。
人生第一份工作■培训班出身需隐瞒经历?商业项目经验怎样写?程序员面试准备盘点
本文插图
面试问题都是围绕“相关项目经验”展开
换位思考下 , 如果你是面试官 , 候选人达到什么程度能让过?能达到职位介绍的要求 , 能干活 。
那怎么能证明能干活呢?只能是看候选人在之前项目里是否用过对应技术 , 比如要招个资深开发 , 那么要确认Java框架、数据库技术、分布式组件等JD里提到的技术之前项目里是否用过 , 如果要招架构师 , 那么还得确认分布式组件方面的调优部署等技能是否有项目经验 。
为什么一定要有商业项目经验呢?因为其它的培训班项目经验 , 或者自己调试通过的学习项目 , 或者再是课程设计的项目 , 里面也就是只要功能事先即可 , 顶多加些微不足道的测试和打包部署的练习 , 而实现功能的代码可能也就是增删改查 , 很少涉及到调优和分布式 。
相反在用以挣钱的商业项目里 , 除了写代码外 , 还需要哪些技能呢?单元测试 , jenkins部署上线 , 调试sql等性能 , 敏捷式管理等等 , 相信有过商业项目经验的人一定还能再列出很多 , 更为关键的时 , 在商业项目里 , 一定需要程序员具备通过看日志debug分析问题和解决问题的能力 , 而且大多数商业项目都是分布式部署的 , 框架组件方面的技能绝非是简单调用API 。 通过上述对比 , 大家能发现 , 大多数培训班项目、课程设计项目还有其它学习项目 , 甚至还包括编造的项目 , 这些含金量都没法和商业项目比 。 所以只要合格的面试官 , 面试问题一定会围绕“技术在项目里怎么用”这个点 。
说到这里 , 不少同学可能会举出很多反例 , 确实在不少面试里 , 用自编的项目有时候也能过关 , 面试官可能浅尝辄止地问些理论问题 。 除却面试官本身的能力外 , 不少初级开发岗其实公司很低 , 所以要求并不高 , 而且如果有些项目比较缺人 , 或者有些小公司干脆没人愿去 , 所以在面试过程中降低了要求 , 对此候选人绝对不该因此沾沾自喜 , 而应当清楚认清自己的能力和公司的状况 。 对于高级开发以上的开发岗 , 如果无法证明相关技术有足够的商业项目经验 , 或者年限不够 , 一般情况下是过不了面试的 。
那怎么考察相关技能的项目经验呢?后文会展开讲 , 这里先用大家都做过的数据库 , 给出提问方式 。
1、基础层面:用过哪些数据库 , 有多少实践经验?JDBC里PreparedStatment的用法、索引的概念等 , 这部分通过背题 , 或许可以通过 。
2、调优层面:索引、执行计划的技巧、比如哪些SQL用不到索引 , 并问在项目里建过哪些索引 , 执行计划要看哪些要素 。
3、排查问题层面:请结合实例 , 给出监控慢SQL的做法 , 讲讲用执行计划等分析和解决慢SQL的方法 , 这里就涉及到看日志监控和实际解决问题 。
4、如果是资深开发和架构师岗 , 再问MyCat、Redis集群方面的问题:如何部署、分库规则、缓存时间等 , 讲述分析排查和解决实际问题的经验 。