声明:一来主要是针对非计算机专业的童鞋(大神轻喷),二来记录自己秋招准备过程,方向的话C/C++后台开发或者python云计算方向。
基本情况:空天渣硕,方向是云计算openstack方向,找工作主要是针对云计算/后台开发方向。没有牛逼项目经验,没有牛逼的竞赛经历,也没有实习经历(能去大厂实习是最好的),自己准备语言方向的话主要是C/C++,学习的技术栈是云后台开发方向。
面试的公司主要有:腾讯(内推二面挂,校招造化弄人没有面试机会)、阿里(内推二面挂,校招没有面试机会)、网易游戏(三面面完挂掉)、百度(三面面完没有后续挂掉)、美团点评(三面面完挂掉)、华为(offer,最近才捞起来)、中兴(offer)、好未来(内推挂掉编程太差,校招没机会)、滴滴出行(offer)、海康威视(offer)、招银网络科技(offer)、深信服(hr面挂掉扎心)、360(面了一面,有事放弃)。当然还有好多优秀的公司笔试未通过没有面试机会(京东简历没有人捞、网易互联网、今日头条等),最后综合考虑准备签约滴滴出行。
首先很抱歉,总结的有点迟好多公司的面经忘记了。按照下面的书籍基本的知识点自己多总结,一定要结合牛客上的其他人面经进行查漏补缺,面试过程中自己的知识面会不断的拓宽。
一、基础
0、linux基本入门:没有这个基础的同学还是老老实实装个虚拟机安装自己喜欢的linux操作系统,敲一敲基本的命令。熟悉下linux操作系统的基本配置、基本操作和vim编辑器等,如果想更深一步了解的话可以往linux有关性能调优方面、网络诊断、监控等高级命令进阶。推荐书籍:《linux鸟哥私房菜》,这本书太厚挑重要的章节选择性的看,后面可以作为手册翻翻,重点掌握一些常用命令。
1、编程语言方面:至少选择一门主语言C/C++或者java(坑多面试官容易问),脚本语言的话python或者shell。首先C的重要性不言而喻(大家基本都学习过仅此而已),指针需要深刻理解(面试中坑很多),推荐C语言三剑客。C++的话先从《C++ primer第五版》看,然后是《Effective c++》(重点)、《深度探索C++对象模型》(可以部分看,主要是对象内存布局)、《STL源码剖析》(这本书可以看下,重点是配置器内存池的设计、迭代器、容器、仿函数,两大类容器的对比以及底层数据结构、顺序访问、查找插入删除、迭代器失效等问题),C++差不多就这些,后期结合面经进行查漏补缺。python的话可以推荐《python核心编程》,shell没怎么学过。当然语言方面的话主要还是结合自己的项目需要。
2、数据结构与算法方面:这方面本人菜鸡。主要是链表、栈和队列、二叉树、二叉排序树、哈希表、红黑树(了解即可,我没被问过,大神忽略)、几大排序算法(逢面必问)和查找算法。建议多刷刷题,推荐《剑指offer》、《Leetcode》多刷几遍,刷题网站:牛客网。
3、操作系统和系统编程:做后台的话,这些知识点是必考的。操作系统书籍的话,推荐《现代操作系统》、当然王道考研《操作系统》也是可以的,重点的话:进程、线程、死锁、内存管理等章节。系统编程:《unix环境高级编程》,这本还是很经典的,重点理解:进程、信号、线程、线程同步与互斥、进程间通信、I/O操作。
4、计算机网络和网络编程:网络这一块是很重要的,后台开发的话主要是TCP/IP协议,推荐书籍:《TCP/IP协议详解:卷一》(详细)、《图解TCP/IP》(比较薄,我看的这本),重点主要是TCP/IP协议栈:数据链路层(MAC地址、交换机转发表、MTU)、网络层(ip子网掩码、路由表、分片重组、其他协议)、传输层(tcp/udp、连接管理之三次握手四次挥手、可靠性传输、窗口控制、流量控制、拥塞控制)。然后的话推荐《unix网络编程卷一》,挑选自己比较感兴趣的章节读,很经典,看书的过程中linux中多实践。
5、其他书籍推荐:《程序员的自我修养》(程序的内存布局,编译链接一些知识、程序如何启动以及启动起来加载过程如何进行内存地址重定位等知识)、《linux内核设计与实现》时间的话值得一看。《设计模式》也可以看看,掌握几种常用的就可以,面试过程经常问。
6、项目相关书籍:openstack官网、《openstack设计与实现》、《openstack王者归来》、kvm虚拟化技术、rabbitmq消息队列等有关书籍。
二、项目
1、项目实践也很重要,个人觉得尽量早点准备,根据目标岗位的需要做一些相关的练习,一定要有一两个拿得出手的项目(很重要,基础是无底洞肯定会问到不会,可以拿项目吹吹)。
2、每个人做的项目可能不尽相同。项目比较low的话适当可以进行包装,多结合前沿的专业名词或关键词,突出项目重点使得面试官比较容易get。
3、项目介绍的过程中注意逻辑,最好的方式就是提前准备,整个项目的框架是什么,有哪几部分实现什么功能,项目中用到哪些核心技术如何实现的等关键问题。
4、面试官喜欢问的项目问题:
(1)、项目中比较重要的点是怎么实现的?最好能够通过原理框图,连写带画给面试官完整表达出来。
(2)、你在项目中遇到的最大困难是什么?怎么解决的?
(3)、项目中某部分功能不够完善,你能够怎么进行优化?(提前准备好,尽量把面试官往自己熟悉的地方引)
(4)、项目中需要添加某一个功能,思路是什么怎么实现?
面试过程中,问题需要提前准备,如果没有遇到的也没有必要紧张,一定要说出自己的想法,正确与否不是关键,说出自己的想法然后和面试官讨论下去。
5、面试结束,面试官都会说有什么问题要问我。一般不要问薪资,薪资是HR跟你谈的。主要是关于公司、技术和自身成长的问题,或者在面试过程中自己没有回答好的问题都可以问面试官,或者自己面试的岗位偏重于哪些技术栈等方面。
6、项目很关键,项目很关键,项目很关键。重要的事情啰嗦三遍!!!
三、找工作心得
找工作过程一路走来,身体累心也累,每个人都在不断的成长,在否定中前进,前进中不断进步。找工作实力运气都很重要,不灰心不丧气,天道酬勤,机会是留给有准备的人,总有一份好工作适合你。Do your best and never give up!!!
也不能说自己找的多好,但是至少努力过也不后悔。差不多就这么多了,希望对后来者有用,加油吧!