与阿里云的一次邂逅

😄 先简单描述下自己😄
毕业 1 年左右,在上海一家 D 轮融资的公司打了 8 个月的码,期间也是学到了很多业界流行技术的运用,我比较喜欢厚着脸皮去问同事(估计他们现在嫌弃我了),问 leader 某个技术为什么这样运用,框架为什么这样搭建,在我看来问别人是最直接的可以知道别人的想法,然后带着一种思路自己去 Google 这方面的知识点,并积累起来。平时自己比较喜欢去了解不同技术的底层原理和一些相同方向的不同技术之间的差异性能对比。并且以博客的形式进行一个笔记消化的过程。

一次偶然的机会看到了阿里云计算的某个部门因为业务需求需要大量扩招开发人员,抱着试试的心态整理了自己的简历进行了投递,然后就是三轮技术和 HR。

😄 分享下面试经过😄

初面的面试官给了我很深的记忆,可以说是在到现在为止所有面试官当中最像人生导师的定位。
当时他和我电话沟通的第一句话就是我们要是沟通 30 分钟就代表你还暂时达不到我们的预期,要是一个小时就证明你是过关的。(我觉得面试官就应该挑明面试结果的形式,现在大部分面试官基本都控制在最后找一个委婉的理由不给明确的结果。)

  1. 我们首先就是沟通的这个开源社区,因为面试官平时就是个 GitHub 上的活跃份子,给多个项目贡献过代码。我们基本上就是从社区的规模,性能,用户,压力测试以及架构搭建设计方面聊了一下。我加入 D 哥的社区是在 2016 年当初也是直接把代码拉下来进行过 Code Review 我大二的时候就用过云服务写过博客,从我个人而言也是非常喜欢博客的,从最初的静态博客Div/CSS到后面的响应式交换,各种第三方框架的引入搭建等等都手动去尝试过。但是从 Hacpai 的开源实现上我看到了 "这里简称架构之美吧" 因为当时自己很 Low,知识层面很少,但是受到 D 哥的代码影响,产生过方方面面的思考。思考中产生进步吧 ~~~
  2. 之后我们开始步入正题首先由浅入深聊了聊 Java 的一些基础知识。汇总为以下几个方面:
  • HashMap 你需要说出他的数据结构,底层实现,链地址法,怎么线程安全、jdk7->jdk8 的改动点是什么、线程安全中 jdk7 是段锁、jdk8 是 CAS 等。
  • List、Set、Map 的区别。。。细节问题,掉坑里了。Map 是独立的接口,其他两个继承自 Collection。
  • 例举出 Java 中至少 3 中锁可以实现百万级并发,然后时间控制在毫秒,纳秒级别。反正我是瞬间懵逼。
  • 我们都知道 ArrayList 非线程安全,Vector 安全,那么实现自 List 接口的类中还有哪些是线程安全的。
  • 线程池核心参数等。
  • Dubbo 服务提供者、消费者、注册中心、监听几个层面的源代码。Dubbo 为什么让 Zookeeper 作为注册中心呢。
  • Zookeeper 分布式锁原理。
  • MySql 底层索引结构。
  • Jvm 层次的算法,垃圾回收器,然后又是不同版本的 jdk 中的对比。。。
  1. 偏向于业务场景和技术栈层面:
  • 非关系型和关系型数据库的差异。
  • Hbase 适合来做数据分析吗。
  • 不同数据库的瓶颈。
  • 怎么去提高并发,从哪些角度出发。
  • 阿里云 OSS 怎么实现。
  • 日常项目经验以及你担任的角色。处理过什么问题等。

😄 总结:😄

  1. 面试官不会过于在乎你能回答出多少问题,更关注的是你怎么去思考这个问题,从哪些角度,你对一个不会的东西去思考的过程对不对。
  2. 关注一个人面对业界比较好的技术框架时,怎么去看待该技术的源码,怎么入手源代码,你又从源代码中分析与学习到了什么。
  3. 对于一些特定的业务场景,你会去怎么分析问题运用你所掌握的技术中哪些技术去实现。
  4. 个人职业规划,企业文化,个人潜力等。
  5. D 哥给积分 ~D 哥给积分 ~D 哥给积分 ~ 重要的事情说三遍。
  6. 当我在面试沟通过程中遇到不会的想要去从面试官身上得到答案时,面试官并没有给我准确的答案,而是给我方向后让我自己去 Google~~ 表示要是给了我答案,我就缺少了去研究学习的启发过程。

目前只能回忆这么多,要是回忆起来了继续补充 ~