首页 > 笔经面经 > 【还愿】阿里上岸了,附面经和Java非科班学习心得

【还愿】阿里上岸了,附面经和Java非科班学习心得

头像
OfferOffer多多
编辑于 2020-09-15 17:51:57 APP内打开
赞 43 | 收藏 232 | 回复21 | 浏览5967

贴主个人经历

本科双非化学,跨考了电子硕士,研究生依然双非。无互联网实习,无比赛无论文。(研究生研究方向是车辆电子和楼宇自动化,有自动化和高校实训讲师相关的实习经历)
19年11开始学Java准备秋招。

阿里上岸历程:

贴主一共投过三次阿里,春招实习一次,秋招两次。

  • 春招实习阿里成都蚂蚁:当时跟着牛客大部队投了暑期实习,但其实不太懂暑期实习的意思,面试的时候面试官问我能实习到什么时候,我说随时能入职,能实习到7月多....然后就被挂了(当时不了解暑期实习都是冲着转正的,只是单纯想赚点生活费,攒个实习经历。因为女朋友在北京,所以只打算找北京的工作)。蚂蚁的面经之前有发过: 蚂蚁金服春招实习面经

  • 秋招阿里云内推: 秋招提前批阶段在牛客看到了阿里云网络团队的提前宣传,当时系统还没有开,就投了简历进行了提前面试,一面之后问面试官,说面试结果不错,让我准备二面。谁知道系统开了之后,简历推进系统被HR挂了简历。面试官说他们也没办法了,宣布阿里秋招结束。
  1. Java中集合都有哪些?
  2. 集合之间的区别,使用的数据结构的区别,应用场景?
  3. HashMap的结构与底层实现,是线程安全的么?如果需要线程安全怎么办?
  4. ConcurrentHashMap为什么可以线程安全?
  5. JVM内存区域,分代模型
  6. 项目相关,问到了Redis
  7. 问了Spring相关的问题,我有一个项目是手撕一个框架,当时打开电脑和面试官一起看的代码,面试官让我现场拓展功能。
  8. 写一个大题,给一定的字符串导出规则,然后给出导出后的字符换,要求复原字符串,给两个小时。

大概记得这些,时间太久记不住更多了


  • 网申Java开发:本来都放弃阿里了,后来听说还有一次网申的机会,就去投了一下,没指望被捞,做了一次笔试只A了0.2。觉得彻底凉了,没想到半个月后被优酷捞了,当时觉得自己是KPI,没想到面到了最后。
    • 面经(三面放在了一起):
  1. 计算机网络常规问题:HTTP/HTTPS/TCP/WebSocket协议,长连接短连接,拥塞控制机制,tcp为什么是可靠的等。
  2. 操作系统常规问题:线程与进程区别。线程调度机制,进程的状态,死锁的条件等
  3. 问了一大堆Linux使用的问题,好多都不会。
  4. JDK调优工具:jps, jstack, jmap啥的。
  5. JVM内存区域,分代模型,什么时候会发生OOM
  6. 类加载器,双亲委派模型,类加载机制
  7. GC垃圾回收算法,分代回收算法,四大引用类型
  8. MySQL语法,写了两个个SQL题目,如果一个表非常大,一个表很小,怎么优化查询效率
  9. 索引,索引的数据结构(抛开MySQL来说),Mysql中的索引,聚集索引和系数素银,最左匹配原则,如何调优SQL
  10. MySql中的锁分类,InnoDB和MyISAM的区别和分别适用的场景,事务的四大特性,四大隔离级别,怎么避免幻读?
  11. MySQL中的redo log和bin log。
  12. Redis是干什么用的?Redis如何实现分布式锁?Redis的持久化机制?Redis可能会出现的问题(雪崩、穿透等)。Redis的数据结构,跳表。
  13. 一致性哈希算法,用来干什么?
  14. 多线程是什么?为什么需要多线程?什么情况下需要多线程?
  15. 线程安全是什么?volatile了解么,干什么用的,原理是什么?synchronized呢?
  16. 线程池,线程池的参数,线程池提交一个任务后的的运行过程,什么时候会触发饱和策略?项目中用过线程池没有,怎么保证线程安全的?
  17. JUC包中的工具类,CAS机制
  18. 平时开发过程中怎么处理异常的?
  19. 项目相关问题,各种处理方式,解决方案。
  20. Spring常用的注解,你这个仿Spring框架的项目大概的一个逻辑是什么样的?Spring AOP应用场景,原理。
  21. 交叉面很少问技术问题了,一直在问项目相关,从背景到实施到落地。问个人经历,实习经历、比赛经历、学习经历、跨专业考研经历。
  22. 交叉面聊天过程说自己写过一个高并发缓存,详细问了一下实现。
  23. HR面只有9分钟,问个人的职业规划、为什么投阿里,现在哪家公司在沟通,会怎么选择,个人的最大优势和劣势。

大概就是这样,贴主没有录音的习惯,只能靠记忆来写了。


秋招经历

贴主大概从7月上旬开始投递简历,提前批基本投了一圈,全部凉凉。
提前批:

  • 字节教育后端:笔试3.7/4,流程很快,一周连着三面,结果三面凉,说我没有实习经历,面经链字节跳动后端面经
  • 京东提前批寻猎计划:流程很快,提前批免笔试,两周面完初试复试和HR面,进入无尽的等待过程,中途收到offer审批邮件,一个月后还是感谢信了。
  • 百度提前批Java:官网被挂了简历,找了一个老哥组内直推的,二面凉了,写题优化没优化出来。
  • 虾皮提前批:一面挂,当时作死反问环节问了疫情对虾皮有没有影响,东南亚疫情那么严重,虾皮会不会凉。。。
  • 贝壳提前批:笔试2.8/4,挂
  • 网易提前批:笔试挂
  • 广联达:笔试挂
  • 猿辅导:简历挂
  • 快手:简历挂

正式批:

  • 京东正式批:笔试1/2,两周面完初试复试HR面,目前泡池子,东哥今年老海王了。
  • 滴滴:笔试2/2,二面挂,感觉可能招的人不多,不想招我,二面问的问题就很偏很奇葩
  • 转转:一天面完初试复试,第二周HR面,目前等结果。
  • 58集团:初试复试已过,目前等HR面。
  • 字节跳动:捞我直接拒了,不想被鞭尸。
  • 百度:笔试等结果
  • 美团:笔试等结果
  • 腾讯:笔试完等捞
  • 小米:笔试等结果

非科班学习历程

非科班,学校也不教相关课程,只能自己去看网课,贴主自己的学习历程全部都是看网课,下面推荐的网课都是踩了很多坑才筛出来的,不推荐培训班的课程,怎么说呢,不是很喜欢那种风格,其实最喜欢的是浙大翁凯老师的公开课,真的看着很爽很舒服。

闲言少叙,直接上干货,所有推荐的课程都是官方链接,只是贴主个人的学习路线,大家可以自行判断合适与否(慕课网的课现在是没有那种推销返利的,贴主贴出来的链接都是官方直链接,大家可以放心点进去看。当时贴主其实也没钱买,很多都是看的盗版,大家有条件尽量支持正版,等贴主工作挣钱了会补票的)。

  • Java基础学习:筛选了很多网课,视频,最后发现了中国大学MOOC上,浙江大学翁凯老师的免费公开课,由浅入深,基础打牢:
    零基础学Java
    面向对象程序设计——Java语言
    课后作业一定要写!

  • 面试体系搭建:其实很多非科班的选手,不知道面向找工作该学什么,怎么去学,贴主也走了很多弯路,最后找到慕课网上一个很好的课程,带你把面试会问到的知识都讲了一遍,虽然讲的比较浅,但是可以让你搭建出一个面试的知识体系,然后在深入其中每个点去学习,很节省时间:剑指Java面试-Offer直通车

  • 个人项目:贴主自己搞了两个项目,一个是商铺系统,CRUD项目,展示自己的搬砖能力,一个是手撕Spring框架,展示自己的学习能力,和剑指Java面试一样。也都是翔仔的课程,这个老师真是个神仙老师:

    1. Java双版本(SSM到SpringBoot)校园商铺全栈开发:这个校园商铺的项目是翔仔第一个课程,说实话课程质量没有后续的好,课程中的代码可能有些地方有一点不连贯,但是整体还是可以做出来的。这个项目可以自己替换成任意的CRUD项目,比如牛客的那个论坛项目高薪求职项目课技术会更厉害点。
    2. 剑指Java自研框架,决胜Spring源码,造轮子的项目,如果用了,就要自己吃透里面的知识点,把Spring框架源码看熟悉。(不过根据个人面试经验,发现其实很少会问到这个项目,即使问到,问的也不深入,可能是因为面试官对Spring源码也不是特别熟悉,可以替换成RPC框架造轮子,更吃香)。
  • 面试知识深入学习:在搭建完面试知识的体系后,我们需要针对每个点深入去学习,仅仅依靠《剑指Java面试》只能满足60%的面试需求,这部分就没有捷径可走了,只能自己去钻研,但是还是稍微有那么一些捷径的,下面给大家列一个速成书单:

    1. 趣谈网络协议网易云首席架构师刘超写的,新用户好像十几块钱就能买,这里面介绍了计网的底层知识与协议,文章属于生动形象的那种,贴主也看过《计网自顶向下》,真的看不下去。这个专栏看完,应付面试中的计网是绝对没问题的,而且还能侃侃而谈,和面试官谈笑风生。
    2. 趣谈Linux操作系统:同样是刘超的书,新用户也是十几块钱,可以再注册一个号来买,哈哈,我就是这样干的。书名为趣谈操作系统,实际里面的内容很深很深,大量的源码分析,如果看不懂不要紧,哪里看得懂记哪里,看完会对操作系统有个大体上的了解,面试也能说个十之七八,完全够用。
    3. 豆瓣:现代操作系统:操作系统工具书,哪里不会看哪里。
    4. 豆瓣:深入理解计算机系统:计算机体系工具书,哪里不会看哪里。
    5. 豆瓣:深入理解Java虚拟机第3版:学习JVM的工具书,哪里不会看哪里。
  • 数据结构与算法:随着CS内卷,数据结构和算法考察的越来越多,越来越难,这部分没有捷径,只能靠大量刷题训练,不过好的开始会让你事半功倍,下面分享下贴主的学习路线。

    • 基础数据结构:对于非科班来说,从来没有学习过数据结构,一上来就刷题可能进度会很慢,建议大家先把数据结构学一遍,不过非科班只会Java,筛选了很多课程之后,发现了慕课网bobo老师的数据结构课程,全篇Java实现,比较适合只会Java的选手:
      1. 玩转数据结构与算法:这个课是个老课了,之前卖三百块钱吧好像(当时是纯数据结构课),现在包装一下加了很多算法内容变成999了,大家自行判断吧。
      2. 如果时间比较少,有可能单独学数据结构再去学算法刷题会有点慢,时间紧急可以看牛客左神那个牛客算法基础入门班,里面既有数据结构也有算法穿插在一起讲的。这个课贴主没看过,但是看过左神的进阶课,还是非常不错的。
      3. 有时间,有能力,会C++的选手,可以看清华大学邓俊辉老师的数据结构,那叫一个牛逼:
        清华数据结构(上)清华数据结构(下)课件下载
    • 算法篇:学完数据结构,可能还是有点懵逼,十大排序算法,二分,递归、图、DFS、BFS在哪?这个时候有时间可以专门看一个算法的课程,没有时间可以边刷题边学。贴主当时看了小马老师的《恋上数据结构与算法》
    • 刷题篇:对于非科班选手,算法是绝对的弱项,首先建议先买一本豆瓣:《剑指Offer》,这本书虽然是C++的,但是里面的算法思想讲述的还是很清晰的。LeetCode上也有对应的专栏,里面的题目也是面试高频考察范围。
      然后开始去LeetCode分类刷题,从数组开始刷,链表,树,二分,动态规划等,把每个分类的常考题,经典题刷熟练,能熟练掌握300题,总结考点,面试基本就够用了。
      然后有时间还能再买一本左神的豆瓣:《程序员代码面试指南》,这个里面题量比较大,但是都是给出最优解的。
  • 笔试篇:笔试永远是非科班的通,贴主的笔试水平也很差,主要现在的企业笔试比较喜欢考竞赛型的题目,对于ACMer来说很轻松,但是我们需要从题目中抽象出来考点,再去写,很多题是没有考点的,甚至是推理题,数学题,直接爆炸。这个贴主也没有特别好的办法,只能说多练吧。一定要把输入输出练好。可以看看牛客左神的算法笔面试精讲,讲的题目都是难度比较高的题,更适合笔试:牛客算法笔面试精讲。这个贴主自己买了,但是没有看完,哈哈,所以大家量力而行,买了不刷就是白买。

  • 笔记篇:大家在学习的过程中一定!一定!一定要记笔记,并且整理笔记! 很多时候学了会忘的,整理笔记的过程是让你融会贯通,形成知识体系的过程。不需要被,多整理笔记,理解了自然就能记个差不多,面试之前看几遍笔记,知识就和长在脑海中一样。而且自己理解的知识很容易举一反三,现在面试很多面试官并不是直来直去问问题,而是给场景,或者绕着圈问,纯背的选手很吃亏的,下面推荐一些耳熟能详笔记或者论坛:
    1. LeetcodeTop:高频面试算法整理
    2. JavaGuide:Java面试指南
    3. CyC2018/CS-Notes:CS面试知识汇总
    4. 贴主自己的笔记博客,整理了一部分内容,还有好多没整理待填坑,大家挑着看吧。

——————————————————————————————————————
以上就是所有的分享了,贴主也是个菜鸡,有幸拿到阿里的offer,秋招可能就到这结束了,把还在流程中的公司面完为止。

祝大家都有满意的offer,生活愉快,顺利毕业!

更多模拟面试

21条回帖

回帖
加载中...
话题 回帖

相关热帖

笔经面经近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐