后台开发:校招中遇到的问题总结

楼主的秋招也算是今天开始结束了,期间也迷茫过,最终拿到了百度sp、腾讯sp、360sp、京东、招行信用卡中心、华为、中兴、陌陌sp 等的offer(具体的面经前面都发了),都是后台开发或者云计算的方向。

秋招不易,总结一下知识点回报大家,希望有用。

总的经验:知识点准备+数据结构与算法+面试技巧

1. 知识点准备,主要包括:计算机网络、操作系统、关系型数据库、非关系型数据库、linux、编程语言、项目及实习。这一部分只要是认真准备,一般问题不会太大。

2. 数据结构与算法,这个比较突出硬实力,面过的每个公司都是需要手撸几个算法题,所以需要尽早刷题准备。(之所以单独列为一项,是因为楼主就是有几家公司死在这里的)

3. 面试技巧:

第一点,每一次面试后认真总结,很可能下一次面试又碰上这次不会的原题(亲身经历);

第二点,遇到自己研究比较好的知识点,可以引导面试官问,往底层说(但是千万要自己有把握),这样如果一次面试有1到2个问题可以说的比较深入,面试官对你的印象会很好(屡试不爽);

第三点,放低身段,面对面试官的嘲讽之类的(比如嫌你low、对你的研究方向一片否定),尽量解释,不要怼面试官,要忍得住;实在忍不住,就怼个痛快(我试过,顺利挂了)。

第四点,自信、自信、自信。相信自己,勇敢的去面试,即是被虐。相信自己,而且面试技巧也都是在一次次被虐中成长起来的。

下面是我自己总结的一点知识点的干货,若low,勿喷:

计算机网络:

1. OSI七层协议、TCP/IP四层协议

2. 各层对应的网络设备(路由器、交换机、网关、网桥、集线器等等),各层对应的协议

3. 数据链路层的CSMA/CD协议,笔试可能会用到

4. IP地址分类,子网划分(笔试常用)

5. TCP和UDP的区别

6. TCP三次握手和四次挥手,为什么三次握手,为什么四次挥手

7. TCP精髓问题:停止等待协议、连续ARQ协议、滑动窗口、流量控制、拥塞控制(慢开始、拥塞避免、快重传、快恢复)

8. 从浏览器输入www.baidu.com到加载出页面发生了什么

9. GET和POST区别

10. HTTP状态码,HTTP1.0和HTTP1.1区别

11. HTTP缓存机制(cache-control、Expires之类的一系列请求与相应报头字段)

12. session和cookie的区别,禁用cookie后怎么办

13. DNS解析的过程

14. 常用协议的端口

推荐:计算机网络(谢希仁)、TCP/IP详解、HTTP权威指南,大神可以看一下RCF2616之类的

数据库:

  Mysql:

  1. 数据库三范式及判断、E-R图

  2. innodb和myisam存储引擎的区别

  3. 索引分类(主键、唯一索引、全文索引、覆盖索引等等),最左前缀原则,哪些条件无法使用索引

  4. B树、B+树区别,索引为何使用B+树

  5. 聚集索引与非聚集索引(使用非聚集索引的查询过程)

  6. 事务的ACID(原子性、一致性、隔离性、持久性)

  7. 事务隔离级别和各自存在的问题(脏读、不可重复读、幻读)和解决方式(间隙锁及MVCC)

  8. 乐观锁和悲观锁、行锁与表锁、共享锁与排他锁(inndob如何手动加共享锁与排他锁)

  9. MVCC(增加两个版本号)及delete、update、select时的具体控制

  10. 死锁判定原理和具体场景

  11. 查询缓慢和解决方式(explain、慢查询日志、show profile等)

  12. drop、truncate、delete区别

  13.查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序

  14. mysql优化,读写分离、主从复制

  15. 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)

  Redis:

  1.发布订阅

  2.数据淘汰机制(好几种)

  3.字典及渐进式rehash

  4.RDB与AOF

  5.为何高效(内存数据库、非阻塞IO、IO多路复用、单线程、hash表、跳表等)

  6. Redis的几种数据结构

  推荐:MySQL数据库应用从入门到精通(王飞飞,虽然名字很low)、高性能Mysql、Redis设计与实现、Redis实战

数据结构与算法:

  1. 数组、链表(单向、双向、双端)、栈和队列、二叉树、红黑树、哈希表、堆(最大和最小)、图

  2. 个人经验:栈和队列、哈希表、链表、二叉树的题较多,图的较少

  3. 查找:二分查找及其变形

  4. 二叉树:前序、中序、后序遍历,按规定方式打印,两个节点之间操作(最近公共祖先、距离)等问题。

  5. 最大堆和最小堆:大数量级数据找最大几个等问题、堆如何调整等问题。

  6. 图:深度优先、广度优先、单源最小路径Dijkstra,任意两点间最短路径Floyd-Warshall,最小生成树Prime和Kruskal

  7. 红黑树:特点及如何调整(基本上没人让你手撸红黑树)

  8. 栈和队列:经常作为算法题要用到的数据结构

  8. 八大排序:3个简单的:冒泡、选择、插入及其优化,5个高级的:快速排序、归并排序、堆排序、希尔排序、桶排序(快排、归并、堆很重要,经常手撸)

  9. 时间复杂度及空间复杂度分析

  10. 动态规划dp:这个比较难,背包问题之内的

  推荐:数据结构C语言版(严蔚敏)、java数据结构和算法(Robert Lafore)、剑指offer及leetcode刷题、大神可以看一下算法导论

Linux:

  1. 常用命令:用户控制、权限控制、进程控制、系统状态查询之类的

  2. Linux状态分析:CPU(top)、内存(top和free,注意buffer和cache区别)、磁盘(fdisk和df)、IO(iostat)等

  3. grep和sed

  4. awk(用好awk,脚本写得好)

  5. shell脚本

  6. Linux目录结构(尤其是/proc非常重要)

  7. linux文件系统结构和启动流程

  8. 防火墙iptables(这个比较少)

推荐:鸟哥私房菜、视频

操作系统:

  1. 一个二进制文件运行出结果,操作系统做了什么(这是一个很全面的题)

  2. 死锁的条件及银行家算法、资源分配图之类的

  3. 进程间通信方式

  4. linux的五种IO方式(阻塞与非阻塞、同步与异步的理解)

  5. linux的select、poll、epoll的区别

  6. 进程与线程区别、内核级线程与用户级线程

  7. 页面置换算法,尤其是lru

  8. 进程调度算法

  9. linux中断响应机制

  10. 虚拟内存机制

  推荐:现代操作系统、网易云课堂的北大公开课

基本语言(java PHP):

  PHP:

  1. PHP面向对象的特点和java的不同

  2. PHP类内的三个指针的不同(this、类名、self)

  3. PHP的自动加载机制

  4. PHP的魔术方法

  5. PHP的命名空间

  6. PHP的垃圾回收机制和存在的问题(环形引用,内存泄漏)

  7. PHP如何防止SQL注入(Mysqli预编译等)

  8. PHP和apache服务器结合的方式

  9. fastcgi和php-fpm的端口及工作方式

  10 . nginx服务器相比apache服务器的优点和原理(内存映射mmap、event-driven和aio等)

  java:(未接触javaee)

  1. java面向对象(一大堆知识点)

  2. 多线程实现的几种方式(Thread、Runnable、Callable、线程池)及各自的特点

  3. java线程的状态及相互转换

  4. 线程同步的几种方式和线程间通信

  5. 生产者消费者模式

  6, volatile关键字

  7. J.U.C包的JDK源码(CAS、AQS、ConcurrentHashMap、ThreadLocal、CyclicBarrier、CountDownLatch、Atom、阻塞队列等等)

  8. String、StringBuffer、StringBuilder

  9. 异常处理机制

  10.集合框架底层JDK实现(HashMap和Hashtable区别、Set、List等等)

  11. IO(writer、reader、InputStream、OutputStream)、NIO等

  12. 四种引用及其区别和使用场景

  13. 对象序列化与反序列化

  14. lambda表达式

  15. jvm虚拟机:内存分区、垃圾回收(三种垃圾回收算法、新生代老生代、垃圾回收器、G1优点等等)、内存溢出、内存泄漏排查、JVM调优、类加载机制、双亲委派、内存模型及线程、锁优化

  16.设计模式:几种单例模式实现(手撸)、其他几种常见的设计模式(JDK中具体点)、项目中怎么用了

  语言这块知识点太多了,基础要扎实。

  推荐:设计模式那点事、疯狂java讲义、java并发编程实战、深入理解java虚拟机、java编程思想

其他:

  hadoop:mapreduce、HDFS、yarn等等(推荐:Hadoop权威指南)

  hive:很常用的处理工具(推荐:Hive编程指南)

  消息队列(kafka之类的)、远程过程调用RPC之类,写一些Demo自己试一下,不要被问直接就不知道

  负载均衡调度(一致性哈希经常问)等

  当然,还有很多其他知识。

项目和实习:

  一定要把自己做的东西从头到尾顺一遍。

  难点在哪里,怎么解决的,学到了什么,技术亮点在哪里,这些事经常问的。

  常问的问题,像并发量多少,怎么优化这些也要早测试早作准备。

  千万不要到时候再想,这会让面试官感觉你对自己做的都不熟悉。最好可以自己画一下架构图,讲的时候思路更清晰。

补充一些内推信息给后来人:

内推渠道:

  北邮人论坛的毕业生找工作板块、牛客网的讨论区(一般有置顶)、脉脉上(互联网员工直接发布一些内推信息)

内推时机:

  不能太早也不能太晚:太早的话,完全没有面试经验和准备,被捞起来一面就容易挂了;太晚的话,很可能就死在简历池子里了!

BAT为例:

  百度:提前批开始不需要填系统,电子版简历由内推人直达部门,需要早一些内推,不然部门招满,很可能就死在简历池里。

  腾讯:内推后,会收到邮件更新信息,但是简历会很多(腾讯楼主内推的比较晚,简历就是校招才捞起来的)。

  阿里:内推后,会收到邮件更新信息,个人感觉注意不要太早内推(阿里主要java,java需要准备的东西还挺多的,最好充分准备了,不然很可能一面挂;而且阿里虽然校招要人少,但面的应届生超多,一般内推不会死在简历池里)

车票报销的公司(我知道的):

  网易、腾讯(内推)、链家、滴滴、招银网络(提前批)

本文来源于牛客网

作者:御光飘扬

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏王清培的专栏

.NET应用架构设计—用户端的防腐层作用及设计

阅读目录: 1.背景介绍 2.SOA架构下的显示端架构腐化 3.有效使用防腐层来隔离碎片服务导致显示端逻辑腐烂 4.剥离服务调用的技术组件让其依赖接口 ...

37510
来自专栏iOSDevLog

Unity 3D 开发《王者荣耀》:英雄移动地图英雄

2623
来自专栏牛客网

蚂蚁金服暑期实习生一面总结

6882
来自专栏点滴积累

geotrellis使用(二十九)迁移geotrellis至1.1.1版

目录 前言 升级过程 总结 一、前言        由于忙着安装OpenStack等等各种事情,有半年的时间没有再亲密的接触geotrellis,甚至有半年的时...

3634
来自专栏大数据和云计算技术

一套数据,多种引擎(续)---两种数据格式(Parquet/ORCfile)浅析

最近主要在研究大数典型应用adhoc query,要实现秒级的adhoc query,通常有3种思路: 1、用搜索技术,将查询都建立索引,然后用搜索技术来实现。...

40410
来自专栏IT开发技术与工作效率

别再用VC6学C语言了!

6693
来自专栏数据和云

数据库时间出现'0000/00/00',难道我穿越了?

前几天有个朋友遇到一个问题,在做日期类型数据的运算的时候出现了‘0000-00-00’的结果,不得其解。你是否遇到过同样的问题呢?这样一个并不存在的时间点,难道...

3206
来自专栏苦逼的码农

加锁还是不加锁,这是一个问题

上次我说过, 我们这个线程的世界是个弱肉强食的地方, 大家为了争抢资源大打出手,时不时闹出些内存数据互相被覆盖的事故, 给人类带了无穷的烦恼。

2176
来自专栏Golang语言社区

C++ 实现银行排队服务模拟

教程简介:使用 C++对银行排队服务进行模拟,以事件驱动为核心思想,手动实现模板链式队列、随机数产生器等内容,进而学习概率编程等知识。作为可选进阶,这个模型同时...

40112
来自专栏美图数据技术团队

一览美图数据开发与SQL解析

感谢阅读「美图数据技术团队」的第 16 篇原创文章,关注我们持续获取美图最新数据技术动态。

1282

扫码关注云+社区

领取腾讯云代金券