程序员校招面试干货 | 非科班小白如何拿下互联网大厂Offer(附校招学习路线和学习资料)

现在正是准备校招的黄金时间,今天想跟大家聊一下,校招准备的学习路线及侧重点。

    很多同学在准备校招阶段感到迷茫,不知道从何处下手,绕了许多弯路,结果浪费很多宝贵时间。作为大厂程序员和校招面试官,分享一下当年自己如何从跨专业、零基础的天崩开局小白,到收割10+互联网大厂offer的经历。

    无论前端还是后端岗位,包括后端各类编程语言。在面试准备基本就分成三个部分,分别是八股、算法和项目。

八股部分

Java基础:面向对象(封装,继承,多态),集合(ArrayList,HashMap,ConcurrentHashMap源码),并发(线程,线程池,锁,条件变量,ThreadLocal)

Java虚拟机:内存分区,回收机制,类加载机制(双亲委派)

MySQL:CRUD语法(LeetCode Sql热门50题),索引,锁,事务,MVCC

Redis:数据类型(string,set,list,hash,zset,bitmap)以及使用场景,持久化机制,过期机制,数据一致性问题

开发框架:Spring、SpringBoot、Mybatis、Netty

消息队列:关键概念(生产者,消费者,主题,分区),使用场景(削峰,异步,重试),死信队列,使用过程中可能遇到的异常问题(消息堆积、消息丢失等)

计算机网络:分层协议,tcp(三次握手,四次挥手),udp,http,https,流量控制,拥塞控制

操作系统:cpu管理(进程,线程,进程调度,通信,锁,中断机制),内存管理(虚拟地址,物理地址,分页,分段,虚拟内存,页面置换)磁盘管理

    八股文内容实在太多,很难在一篇文章中全部列举出来。给大家推荐两个背八股文的好用网站:

JavaGuide:

    https://javaguide.cn/home.html

小林Coding:

    https://xiaolincoding.com/

算法部分

    面对海量算法题库,明智的做法是有针对性地进行刷题。聚焦于面试中频繁考察的重点内容,针对不同类别的算法题目进行有针对性的训练。刷算法题之前,需要先对常见数据结构(数组、链表、队列、栈等)和算法(递归、动态规划、二分查找)有初步的了解。如果是完全的算法小白同学,并且准备时间充足,可以先看《算法第四版》(文章末尾附PDF资源)快速学习。算法题按类型主要以下几种:

  1. 数组
  2. 链表
  3. 哈希表
  4. 位运算
  5. 字符串
  6. 栈与队列
  7. 深度搜索和广度搜索
  8. 回溯
  9. 贪心
  10. DP动态规划
  11. 高级数据结构(布隆过滤器、跳跃表等)

    刚开始可以按照上述顺序每个类型先挑几个简单的题做一做,先对算法题的逻辑和实现过程有个初步的认知。尽量不要刚开始就挑战leetcode上中高难度题目,容易被打击自信、消磨积极性。在对算法题有了初步了解后,就可以开始刷题了。刷题不是单纯的题海战术,不要盲目的去刷,需要有针对性的、不断进行归纳总结和复盘。刷题的顺序和攻略非常重要,拒绝无效刷题。刷算法题主要分以下三个阶段:

初期-夯实基础:

  1. 代码随想录
  2. B站-灵山茶艾府
  3. 《剑指offer》--用最少的题目让你了解算法体系结构

    这一阶段主要是学习解题思路,通过好的刷题路径培养自己的算法思维。上面三种资源都是快速上手学习算法比较好的攻略。大家可以参考,避免盲目无序胡乱的刷题导致学习效率低下,基本可满足刷题初期的需求,建议相互搭配、灵活选择使用。刷题初期阶段是比较痛苦的,一定要坚持下来,坚持每天都刷几道。

中期-升级进阶:

  1. LeetCode Hot100
  2. 各题目类型Hot题目:排序Hot、二分查找Hot、双指针Hot、链表Hot、滑动窗口Hot、深度优先搜索Hot、广度优先搜索Hot、贪心Hot、动态规划Hot、树Hot等

中期更多的建议自己独立刷题,每道题给自己十分钟的思考时间,看下能否根据初期的训练独立解答题目。如果不行,也要耐心,不要着急,参考题解去解题。按照这种方式把热门题目先刷一遍。刷完之后回头去看之前的题目,可能有些题目还是一头雾水,不知从何处下手。这种是大多数人的正常情况,这个时候就需要反复的去刷题,直接刷会为止。可能热门题目都要刷个2、3遍才会慢慢有解题感觉,在复刷的过程中就会形成自己的解题模板和思路。要刷到什么程度呢?就是某一具体题目,知道该用什么方法去解,题目的坑在哪里,例如回溯的减枝操作、二分查找的边界处理等。同时可以整理leetcode的收藏夹,收藏常出问题的重点题目。

后期-查漏补缺:

  1. 反复刷之前的题、尤其是自己总出问题的类型和题目 + 冲击Hard题目 + 补足缺陷、有意识总结自己在哪类题目解题比较吃力、比较薄弱的点,多找同类型题目反复练习。
  2. 实战,多参加LeetCode的周赛,在实战中查漏补缺。
  3. 面哪家刷哪家,有些公司是有自己的题库的,面试前可以参考。

项目部分:

如何在简历上写项目经历?

如何在面试过程中介绍项目?

简历上最重要的就是项目部分,但是受限于篇幅,大家可以去查看夏原文。

附带PDF学习资料。。。

关注weixin gong粽号:小鱼修炼笔记---获取更多面试秘籍及行业咨询

全部评论

相关推荐

评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务