总结找工作面试可能会问到的问题,平时就查漏补缺,把这些问题都准备充分。
2015年6月10日更新:基本内容
数据结构与基本算法:
1. 排序算法,最短路径算法,动态规划,计算几何
2. 二叉树,B树,红黑树,AVL树
3. 队列,堆,栈,邻接表,邻接矩阵,图相关
4. 大数据流算法
5. 常规面试题:统计apache log文件中出现最多的url,分析几个大文件中公共的Url,这类大数据相关面试题
操作系统基本知识:
1. 进程线程模型
2. 进程调度,死锁,进程通信
3. 磁盘与内存
4. 线程池的实现
5. 协程的实现
6. 进程通信的实现
计算机网络:
1. TCP/IP协议过程
2. 网络模型
3. socket编程,epoll与select模型
4. web服务器原理,WSGI与CGI的实现
系统方面:
1. MPI编程,RDMA编程,分布式消息队列
2. 大数据平台,hadoop,yarn,spark,hdfs, hbase, storm,实现原理
3. docker的实现原理与使用
4. 系统设计:给出具体应用场景,让你设计系统
5. key-value的实现:levelDB实现原理 。分布式key-value:例如分布式redis
数据库:
1. mysql优化方法
2. mysql视图,索引,触发器,事务,游标
3. mysql拆分表分库
4. sql语句:例如从用户表和用户关注表找出互相关注的用户资料
5. reids和nosql(mangodb之类的),图数据库
6. 应用:查看附近人功能怎么实现,如果保存Geo信息,并较快查询
编程语言:
1. C++方面,effect C++,C++11,C++对象模型
2. Java:见下面阿里Java社招
Java需要看的几本书:
《Java in A Nutshell 6th Edition》
《Java Generics and Collections》
《Java Concurrency in Practice》
《Effective Java》
3. Python:
4. 函数式编程
5. 编译器的实现:
解释器的构造(编译器的前端)
龙书上编译器后端
《编程语言实现模式》:ANTLR实现SQL语言解析
项目经验方面:
1. nginx部署,运维,webserive相关
2. 网站开发相关
3. 具体项目细节
面试算法:
1. CC150
2. leetcode
3. Elements of interview
白纸上手写代码。
领域相关:
1. 机器学习
2. 大数据平台的使用
提升自己影响力:
https://github.com/feross,同为python选手,看下别人是怎么做的:http://feross.org/
Example:
阿里hadoop相关岗位校招问的问题:
1. hashmap的实现,以及是否线程安全
2. 泛型擦除
3. volatile关键字
4. hadoop相关
阿里Java开发社招问的问题:
jvm优化,源码,分布式开发,集群,负荷分散,高可用性,性能调优,数据库设计,分表分库,数据缓存(redis,memcached,mongo这种),事务jta,大并发多线程,nio(netty,mina这种),异步io,http协议,soa,webservice,restful,j2ee标准,servlet,jsp,jms,消息队列中间件(kafka这种),数据结构,算法,apache的开源软件,java的新特性,java的未来,各种场景的解决方案