相信广大程序员在这金三银四躁动的季节都投出了自己简历,本人在这个季节也成功收割了3个offer,从年前开始筹划跳槽的
机会,自己身处金融IT行业,瞄着的机会无非就是券商,银行。当然我也尝试了下BAT这种大厂,并成功收获了T厂的offer.通过
这几个月的求职过程,也谈谈自己一些经验和踩过的坑。
本人的技术栈是C++(5年)与JAVA(2年),所以投出去的简历都是以这两个方向为主,这几年Java在应用层面的开发基
本上吊打C++。所以两方面在面试前都做了适当的复习和准备,在此强调,面试前一定要复习好技术栈对应的基础,千万不要认
为自己5年老码农就可以直接提墙上阵。这是大忌,大厂都有“面试造飞机,工作造单车”这种嗜好。所以复习基础知识再所难
免。下面说说两个技术栈复习点:
C++:
面向对象概念,内存管理(继承,虚函数内存布局,New与Mallac区别),套接字编程(IO,Reactor,Preactor,Epoll,IOCP之类),并发同步设计(线程,锁,自旋,进程同步),STL容器设计(Auto_ptr实现,Vector内存管理,红黑树应用,)。
Java:
JVM的工作方式,GC知识点,Spring框架原理。HASH容器设计(ConcurrentHASH与HashTable底层是吸纳)。Java与C++相同与不同点,什么样系统
适合用C++开发,Java的反射机制。这些是Java编程的核心,IOC,AOP,常用的设计模式(SingTon,Proxy,OBserver
,Facade等,至少要会精通4到5个)。
算法:海量数据排序,例如鹅厂,实现海量数据中所处于序号(快排分治),最大堆定时器,时间轮定时器,应用等。
架构设计:
SOA与微服务设计原则与方法,RestFul与RPC比较。
数据库:
数据库四个隔离级别,Oracle与MySQL比较等,缓冲数据库设计,什么是缓冲击穿,高级话题,如何设计一个高可靠的KV
数据库(蚂蚁金服基础架构部面试题,采用日志同步手段实现,参考Redis实现源码),Redis中跳表的有何优势。