进击的巨人
我是一名本科生,来自双非一本的电子信息工程专业,秋招中主要使用C++,收获自己理想的offer。
我的经历
我在大三下学期的时候便开始了秋招准备。那个时候正值暑期实习生招聘,年少轻狂的我一路狂投,几乎一无所获(仅收获三次面试机会:恒生武汉、亚信和一个初创公司,最后被亚信录用,然而由于时间原因,放弃实习,是遗憾也是惊喜)。这才发现自己实力不足,需要大补。
- 大三下:C++ Primer(第5版,C++11,全读)、Effective C++(第三版,侯捷译,部分看不懂的地方暂且跳过)、疯狂java讲义(李阳,剩余2-3章)、项目准备。
- 七月份:LeetCode(Algorithm:131/ 417),牛客网(剑指Offer:66/66;程序员面试金典:22/83;2016校招真题:22/105;选择题:专项练习810题)
- 八月份:内推开始,参加过几场内推笔试后,发现实力依旧不足,于是边看书边做题。阅读书籍:C程序设计语言(第二版,新版,Brian W. Kernighan和Dennis MacAlistair Ritchie的大作,其中一位时C语言之父,一次面试被问到没有回答上来,汗颜)、图解TCP/IP(第5版,一日本书籍,比较全面、形象)、数据库系统概论(第5版,萨师煊,这是我们的教材)。外加每日一道算法题及部分选择题。
- 九月份:秋招开始,每天除了笔试面试就是看书。阅读书籍:剑指Offer(涛哥大作,C++,练习纸上写代码)、计算机网络(第2版,胡道元,我们的教材)、数据库系统概论(就是上面的那一本书,用来复习SQL语句)、计算机操作系统原理——Linux实例分析(肖竞华,教材)、数据结构——C语言描述(第2版,耿国华、第2版)。坚持笔试面试做总结,查阅资料,坚决不能掉进同一个坑两次。
我的建议
- 准备时间:建议大三寒假最晚大三下学期开始刷题、做项目、看书,暑假专注看书、复习。
- 书籍:
- 编程相关:C++ Primer(面试经常问,一定要看熟)、Effective C++(建立一定的C++优化概念)、C程序设计语言(里面有很多底层的小项目)。以上都是我看过的,具体作者在前面都有介绍。还有我没有看过的:STL源码剖析(笔试面试常常要实现或解释一些类的实现)、Effective STL(会问及相关容器的使用场景,及如何选择容器达到最优)等等。这种书很多,也有一定难度,有时间就看,还要复习。
- 数据库相关:数据库系统概论(写SQL语句,大部分公司都会考,索引也是学习的重点)。数据库的学习基本放在SQL和索引上,有时间的话还可以学一下数据库引擎,会大有裨益。推荐一本58的面试官说的一本书:SQL必知必会。虽然我暂时没有看过。
- 计算机网络相关:图解TCP/IP(TCP/IP必然是重中之重,这本书挺不错)。TCP/IP详解(有针对性的阅读,这个我看的比较少,只能说将前几章看一看)。将已看过的或是学过的教材好好看一遍,特别是相关概念和技术,出现的问题及解决办法。网络编程要有一定的了解,这方面我当时很薄弱,现在还在学习中。
- 操作系统:现代操作系统(这本书我没有看过,当时很多人都推荐这一本),深入理解计算机系统(CSAPP,我也没有看过,适合深入学习的人阅读)。操作系统是硬实力,也是难度较高的一项,将其中一些概念回答上来并且深入分析是很加分的。
- 数据结构与算法:数据结构与算法(C++描述,第三版,我没有看完,不过挺不错的)、算法问题实战策略(韩,具宗万著)(我是选择性阅读了一部分)。因为我主要用在了复习我的数据结构与算法教材上面,所以上面两本书我只是选择性看了一部分。上面两本,第一本供C++代码参考使用,第二本是别人推荐的,可以学习思路,里面也有代码。
- 编译原理相关:编译原理实在是涉猎太少,听说不是很容易,这部分我学的比较少。个人建议,将C标准/CPP标准看一遍,学会分析编译器行为,对标准有一些了解。当然要看最新标准,如果有时间也可以涉猎编译原理。有人说CPP标准有点复杂~逃。
- 并发编程相关:Introduction · C++并发编程(中文版)。高并发是重难点,对于我们,要掌握的是多线程编程。
- 项目:除了实验室的一些项目,还可以自己做一些可以帮助自己理解计算机相关知识,加强编码能力,提高算法水平的项目。面试最好有特色项目(实用)与展现你计算机水平的项目(最好涉及网络、数据库、数据结构与算法),让你能够与面试官聊到一起。
- 笔试面试:看一些相关的书(剑指Offer、程序员编程指南-左程云等),了解常考算法,熟悉面试流程,吸取经验。
- 其他:网上有很多开源项目、库与框架,最好是有所了解,甚至是涉猎(用过、阅读过源码等)。比如说Boost库,nginx等等。编码要注意代码的健壮性,养成良好的代码风格(如Google 开源项目风格指南 (中文版) — Google 开源项目风格指南),了解一些常用设计模式。要有明确的方向定位,然后在网上找相关书单进行深入学习。
后记
- 我笔试面试的收获:2017秋招知识点小记。
- 对于我们专业,很多内容也要靠自学,推荐阅读:如何通过自学找到一份开发的工作?。这里面提到做一个轻量级的OS,我觉得是一个不错的选择。
- 最后祝愿各位都能在秋招时候收割到自己心仪的offer。以上内容只适用于一部分人中的一小部分人,仅供参考。欢迎大家补充修正,提出建议:进击的巨人(2017秋招总结)。