首页 > 本科生的我是如何零基础三个月生物转码拿到5个大厂offer
头像
blockout
编辑于 2021-03-15 13:10
+ 关注

本科生的我是如何零基础三个月生物转码拿到5个大厂offer 内部员工回复

个人背景介绍

楼主985本科半科班,为啥说是半科班呢,是因为我大一一整年是读生物的,在实验室养了一年寄生虫,大二转到了软件,实际上大二一年也没学啥计算机的东西,无非就是离散数学,数电那些东西。起这个标题也算是有点标题党了,哈哈哈哈,应该算是生物转码吧?


我是从大三上学期开学的时候开始学的Java后端(我那时候对Java后端的内卷程度毫无概念),也就是去年的9月中旬,那时候算是0基础,就只会一半的Java语法(反射,注解啥的全不会),也就写写for循环的程度。然后在12月初的时候出来面试日常实习,拿到了百度搜索架构部,百度商业平台研发部门(先面的这个,再面的搜索),美团优选事业部,滴滴国际化部门,还有快手一个我忘记是啥部门的offer,后来去美团实习到了现在,今天阿里的hr面过了,感觉我春招也就结束了,所以就写个春招总结吧。

面试准备

我认为面试的话主要是分为三个部分,一个是八股文的准备,一个是算法题的准备,还有就是项目。我开始学习的时候,尝试去看了看书,然后发现我的理解能力属实捉急,于是就选择了看培训班网课来学,不得不说B站的网课质量属实高,我之前都没想到编程课程还能教的这么好。9月中到12月初大概看了JavaSE+JavaWeb+SSM+SpringBoot+Redis+数据库+计算机网络+JVM+Java并发编程,具体哪一个视频的话,我基本就是搜索下技术栈,然后按播放量排序,选择最高的那一个。


在学习的时候有一些要注意的点吧,也可能是我个人学习的一些习惯,就是我把学习分为以下几个步骤,知识的获取,知识的整理,知识的记忆。知识的获取没啥好说的,其实就是一边看视频一边记笔记,主要是知识的整理和记忆,最初版本的笔记,实际上知识点具有散乱性和无思考性(我生造的词),所谓的散乱性指的是,知识点之间可能有的是并列关系,有的是父子关系,如果单纯的记录的话,这样散乱的知识点,就好像从沙滩上抓沙子,虽然每次都能抓起来一把,但是总有漏下去的。我的方法就是在老生常谈的思维导图上做了一个小升级,首先是把知识点拼成思维导图,然后每个节点都以问题的形式存储,问题和答案之间相当于是一个键值对的关系,这也就是为啥我说原始知识点具有无思考性,可能原始的知识点是Redis的AOF方式持久化存在如下问题,是一个陈述句,如果改造成问题的形式,就是Redis的AOF方式持久化存在什么问题?使用问题的方式存储知识点有一个好处是,你看到一个问题的时候本能的会去想它的答案,而看到一个陈述句,比如xxx的概念,xxx的性质,xxx的常用API。感觉脑子就一片空白有没有,哈哈哈



然后是知识的记忆,我会在思维导图的兄弟节点或者父子节点之间添加一些承上启下的语句,比如父节点是InnoDB后台线程的有什么作用?承上启下的语句是InnoDB的后台线程的事实上分为4种,子节点是IO Thread有什么作用,Purge Thread有什么作用,Page Cleaner Thread有什么作用,Master Thread有什么作用?这样做有什么好处呢?或者是这样做为啥能帮助记忆呢?因为这样做就把所有知识点都串起来了,你在回想知识点的过程,实际上就是在给思维导图这个多叉树做DFS的过程,而这些承上启下的语句,相当于就是节点的指针,指向子节点或者兄弟节点,每次把一个节点入栈,然后回想答案(想象在给别人解释这个问题),想到承上启下的语句(相当于通过指针找到了有哪些子节点),子节点入栈,回想答案,直到回想到叶子节点,弹栈,回溯。最后你能够把整个大的知识树DFS一遍,这块的知识你也就掌握了。

这样做还有一个好处,那就是你面试的时候,面试题能够说的更多,并且这样的说的更多不会让面试官感觉你在拉着他强行输出,而是自然而然的说出承上启下的语句,等你把这个知识节点DFS一遍之后,甚至可以横行扩展的说同层节点的知识,也不会让人感觉突兀。最后给面试官留下的印象就是你这部分知识掌握的很扎实

还有就是算法题吧,我算法是真的不太行,着实想不出怎么做,所以我这边经验可能没啥参考价值,我大概刷了350题左右,每道题平均5遍(提交次数/刷题数量),最后就是硬默写下来的。

最后再发些去年12月的面经吧,有的面经没记录,就把记录了的发发

面经


2020年12月9日 周三 猿辅导

自我介绍

1.Java中创建线程的方式

2.线程中能不能抛出异常

3.JVM内存分区

4.mvcc

5.threadloacl

6.为什么使用B+树作为索引

7.线程池7大参数,4大拒绝策略

8.线程池核心线程能被回收吗?救急线程怎么回收的

9.有a,b,c覆盖索引,查询的时候怎么使用索引,查询b>3,a=1,c=5,使用到了那个索引?

10.SpringIOC,AOP好处

11.Spring循环依赖

12.Java集合框架

13.获取ConcurrentHashMap长度的时候要不要加锁

14.HashMap扩容,1.7和1.8区别

算法:判断回文链表

2020年12月11日 周五 美团优选

1.自我介绍

2.聊项目

3.项目安全校验怎么实现

4.项目中redis怎么用的

5.项目中数据库表的设计

6.mysql事务隔离级别和实现原理(mvcc)

7.mysql聚簇索引和非聚簇索引

8.B+树特点和作为索引的好处

9.redis持久化方式

10.redis主从复制(全量复制和部分复制)

11.redis哨兵机制(心跳机制和选举机制)

12.redis脑裂解决方案

13.算法:Z字型遍历二叉树

2020年12月16日 周三 字节跳动

1.自我介绍

2.输入一个URL之后发生了什么

3.DNS,TCP分别是什么层的协议

4.OSI七层参考模型

5.数据链路层和物理层了解哪些协议

6.TCP三次握手建立连接之后,客户端如果突然垮了,咋办

7.Redis持久化方式(RDB,AOF)

8.Zset底层数据结构

9.ziplist和skiplist

10.什么时候是ziplist

11.线程进程区别

12.进程通信方式

13.算法题 山谷找山峰,我先说了个O(N),然后又优化到O(logN)大概做了8分钟

14.反问:业务,面试表现

2020年12月16日 周三 字节跳动

  1. 自我介绍
  2. 如果发现服务器有大量的close_wait状态连接,发生了啥
  3. HTTP状态码301,302,304,403,404,500,501,503
  4. HTTPS协议如何实现安全
  5. HTTPS是对称加密还是非对称加密
  6. HTTPS协议中随机数的作用
  7. 聚集索引和非聚集索引区别
  8. InnoDB中辅助索引查询过程
  9. mysql事务隔离级别
  10. mysql如何在不可重复读级别上解决的幻读
  11. mysql中的间隙锁是啥
  12. TSL和SSL的区别
  13. 算法题 折叠链表
  14. 算法题 LC124
  15. 智力题 两个人玩抛硬币,A先抛胜利概率

2020年12月17日 周四 快手 一面二面

  1. 三次握手四次挥手
  2. 视频通话如何实现
  3. 职业规划
  4. 写sql
  5. 智力题,3个桶容量3,7,10,其中10是满的,如何两等分
  6. 算法题,括号匹配
  7. 算法题,单词翻转
  8. 算法题,最长公共子串

2020年12月17日 周四 滴滴 一面

  1. 项目的分层架构
  2. 项目中Mybatis的用法
  3. Arraylist底层数据结构,扩容机制,初始容量
  4. HashMap底层数据结构,扩容机制,初始容量,负载因子,哈希计算公式
  5. Redis分布式锁
  6. Redis基本数据结构
  7. 算法:冒泡排序(在纸上写)

2020年12月17日 周四 滴滴 二面

  1. 介绍项目
  2. Redis分布式锁
  3. volatile
  4. 内存屏障底层实现
  5. ReentrantLock内部类Sync,AQS相关
  6. synchronized(重量级锁,轻量级锁,偏向锁,锁升级,锁膨胀,锁自旋)
  7. 数据隔离级别
  8. 数据隔离级别怎么实现(mvcc)
  9. 啥时候来实习
  10. 家是哪里的

2020年12月21日 周一 百度 一面

  1. 介绍项目
  2. 项目中redis怎么用的
  3. 项目中并发量
  4. 项目中怎么保证的同步
  5. mysql能否保证线程安全
  6. 抽象类和接口的区别
  7. Java中的反射
  8. SpringBoot如何整合Mybatis
  9. 什么是多态
  10. 字符串怎么比较相等(equals)
  11. 可以用==判断相等吗?
  12. 算法题:输入四则运算字符串输出结果(口述即可)
  13. 追问,如何判断是数字(正则表达式)
  14. 智力题:三个贴错标签的箱子,苹果,梨,苹果和梨。拿一个水果重贴标签
  15. 现在手上几个offer
  16. 百度给你发offer你会来吗
  17. 百度给你开什么条件你会比较想来呢?你比较看重哪个方面
  18. 反问:部门业务

2020年12月23日 周三 百度 二面

  1. 介绍项目
  2. 如果项目的并发量增加,怎么改善架构(一直追问如果再增加呢?分布式缓存,反向代理,读写分离,CDN加速)
  3. 项目中遇到的困难
  4. 项目中如何排错
  5. Java中用到了什么设计模式
  6. 算法题 LC4
  7. 反问:上下班时间
  8. 最后面试官说:我就明说了吧,我这边和一面面试官给你的评价都是来面试的人中最高的,我们就招一个实习生,基本确定能给你一个offer,你来不来的话尽快答复。
现在已经是三月份了,如果再慢慢学时间可能有点来不及,最近牛客有个春招训练营,我看了下里头大致涵盖了需要学习的主要知识点,时间不太够的同学可以去试试看,这里放个链接https://www.nowcoder.com/courses/cover/live/537


更多模拟面试

全部评论

(40) 回帖
加载中...
话题 回帖

相关热帖

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

近期精华帖

热门推荐