我的 2017 校招总结

10月13号在去面试旷视的路上,陆续收到南京841所、好未来和中信信用卡的录用通知,再加上之前美团的offer,算是结束秋招了,后面还尝试了一些独角兽公司(无果)。总的来说求职过程还算比较顺利,对于自动化半路出家IT的我来说,已经满意了(应该也找不到更好的了)。虽然在十一之前我还没收到一个正式秋招offer(除了海康实习转正),所以要相信只要准备好了,offer总会来的(后面还收到中兴、华为和宜信大数据的offer)。

关于内推

以我在海康实习期间内推的经历来看(其它公司不知道),内推基本就是公司宣传的一个手段,当然也能给员工带来一些福利。很多同学简历看起来很不错,但是我内推了四五十个,通过简历筛选进入面试的只有三个人。。。。。很多公司内推并不免笔试直接进入面试,虽然多了一次机会,但是还是会花很多时间的(找内推、发邮件、笔试、面试),尤其是对本来准备就不是很充分、项目和实习经验不是很优秀的同学来说。所以如果觉得自己准备的不是很充分,我建议放弃各种内推和提前批,留出时间来巩固知识点和刷题。

为找工作做准备

从研二开始,我根据自己的知识基础,把目标职位放在后台开发、软件开发。主要的知识点包括:C++、数据结构和算法、Linux、数据库、网络。

书籍:

  • C陷阱与缺陷、C和指针、C专家编程
  • C++ Primer、Effective C++、STL源码剖析
  • 数据结构与算法分析、剑指offer
  • 鸟哥的linux私房菜、Liunx程序设计、Unix环境高级编程、操作系统原理
  • TCP/IP协议卷一、Unix网络编程
  • Mysql、redis、SQL

关于笔试:刷题还是很有必要的

编程题

推荐先把剑指offer上面的题目做一到两遍,看看别人的解法,尝试自己用最简单、好记的方法实现,并做好归类总结。然后可以到leetcode上面刷一些题目。牛客网还有公司真题和其他的编程专题,可以根据自己的需要做一做。

不同公司的笔试难度差别很大,不过基本的算法还是要熟悉的,至少要有自己实现的代码,笔试的时候知道怎么修改变形。

比较常见的考点有:背包问题、最短路径、简单的动态规划问题、回溯法、全排列、深度优先、广度优先、链表和二叉树的操作、队列和栈的操作。还有一些技巧性比较强的算法题,如果没有提前做过,一般还是很难想到的。

选择、填空题

推荐在牛客网上做,根据编程语言,刷C++或者Java专项练习。可以在网页上,也可以在手机app上刷(很方便)。刷到每次能做对大部分题目为止吧。

笔试平台

建议在牛客网和赛码上刷一些编程题,熟悉一下输入输出格式。

关于面试

面试时被问到的知识点,如果熟悉的话,尽量多扩展一些讲,语速放慢一点。被问到不懂的知识点也不要慌,表现出自己的求知欲,虚心向面试官请教这个问题。回答的不清楚的知识点,面试完之后尽快做巩固和总结。

如果面试官聊日常,可以说说自己好的生活态度、学习态度,增加一些印象分。

如果面试官最后问你:你有什么想问我的吗?还是尽量问一些问题,表现出你对这个公司、这个岗位很感兴趣,表现出你的求知欲和学习的主动性。

九章算法提供了一些BAT常见的面试题,可以多学习:https://www.nowcoder.com/ta/nine-chapter

关于投递岗位

后台开发、软件开发的语言主要是JAVA、C++,总的来说互联网公司JAVA的需求量更大一些,像华为、商汤、大疆等公司C++需求量也挺多的。

很多公司不会在意你熟悉的语言是否和公司所使用的语言相符合(美团和中信信用卡给了我JAVA岗offer,三轮技术面没问过编程语言)。所以投递简历的时候,不用很在意岗位的要求,尤其是编程语言!尤其是大公司!!

下面附上我总结的知识点,内容可能有一些错误,欢迎批评指正;可能会有很多遗漏,还要靠自己多学习和总结。希望能对以后找工作的同学提供一些帮助,祝所有同学都能找到合适、满意的工作!!

笔试、面试常见知识点

C++内存分配机制

内存主要分为如下5个存储区:

  • 静态存储区 (Global Static Area): 在编译时分配,保存全局变量和静态变量。

  • (Stack):保存函数内的局部变量(包括函数实参),函数结束时由编译器负责分配释放。向低地址扩展。
  • (Heap):由new或malloc申请的内存,由程序员负责释放。向高地址扩展。
  • 代码段:存放程序执行代码。
  • 未初始化数据段:存放程序中未初始化的全局变量。


new、delete、malloc、free

都可用于申请动态内存和释放内存,区别:

  • new和delete对应,malloc和free对应;
  • new和delete是运算符,malloc和free 是库函数;
  • 对于非内部数据类型,new 不止是分配内存,而且会调用类的构造函数,delete会调用类的析构函数;而malloc则只分配内存,不会进行初始化类成员的工作,free也不会调用析构函数。

申请内存空间后一定要释放,且置指针为NULL。


delete与 delete []

  • delete调用一次析构函数 ,释放一个对象内存, delete []会调用多次析构函数,释放整个数组的内存。
  • delete和new对应,delete []和new []对应
  • malloc 失败时,返回的指针为NULL;new 失败时,抛出异常 bad_alloc。


虚函数与纯虚函数

虚函数:在基类中用virtual 关键字修饰,并在派生类中重新定义的成员函数。作用是借助指针或者引用来实现多态。
静态成员函数(没有this指针)、内联函数(编译器将函数替换到函数调用处,静态编译)、构造函数不能是虚函数; 
在派生类中重新定义虚函数的参数个数和参数的类型与基类中相同;

纯虚函数:在类的成员函数声明的后面加 =0 。

含有纯虚函数的类叫抽象类,作用是定义接口。其纯虚函数的实现由派生类给出。如果派生类没有重新定义纯虚函数,则这个派生类仍然还是一个抽象类。不能创建一个抽象基类的对象。

构造函数和析构函数中调用虚函数


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部