楼主Android菜鸡一枚,今年校招侥幸拿到了还不错的offer。因为校招实在过于侥幸,面试上很少遇到复杂的问题,这里就不写面经了,初略谈一谈校招的一些准备吧。可能有些认知偏差,请各位大佬轻喷。
一般国内企业招聘技术岗都会细分方向(客户端、前端、服务端等等),所以我个人会将笔试面试准备的内容大致分为三部分:计算机基础、细分方向知识和算法。
计算机基础
计算机基础无外乎是数据结构、计算机网络、操作系统、数据库、计算机组成原理(微机)和编译原理这些内容。鉴于楼主走的是Android方向,计算机基础是按照上面的顺序分主次复习的。因为楼主科班出身,复习的时候主要看的是课本和课件,这里简单列一下书单:
数据结构
《数据结构与算法分析 Java语言描述》第二版
数据结构这一块知识可以和jdk的collection包源码结合起来看。
计算机网络
《计算机网络 自顶向下方法》第六版
课本,个人感觉通读的话能覆盖到大多数知识点,但是一些稍微深入的问题(比如为什么三次握手四次挥手,2MSL相关的问题这些)就需要另外找答案了。还有一些公认的著作包括《TCP/IP详解》、《HTTP权威指南》、《图解TCP/IP》等等。
操作系统
《操作系统概念》第七版
从Android开发岗角度来说,操作系统可以和一些Linux(Android)的相关知识结合起来理解,比如虚拟文件系统、Binder这一些内容。
数据库
《数据库管理系统原理与设计》第三版
个人感觉,从数据库这一块开始,和移动客户端开发的紧密性就不是很强了(主要是楼主开发经验太少)。复习的时候主要就是看了看课本和课件了。有一次还搜到了一本叫《SQLite权威指南》的书,不过书没有翻过,不好评价。
计算机组成原理
《计算机组成与设计 硬件/软件接口》第五版
编译原理
《编译原理》(龙书) 第二版
计组和编译原理楼主复习得很少,只能说侥幸没有遇到多少问题==
细分方向知识
楼主Android方向,所以细分方向的知识主要就是Java基础和Android基础了。
Java基础
同样列一些学习资料吧。《Java编程思想》《Effective Java》《深入理解JVM》这些经典书目必不可少。《Java并发编程实战》也是一本经典,不过楼主水平太低啃不下来==并发这一块,感觉《Java并发编程的艺术》也很不错。对于入门Java8,推荐看《Java8实战》(虽然Java9都出来了)。
此外,感觉Java的准备比较重要的一环是看jdk源码,比较经典的像collection包、concurrent包等等。对于看源码,楼主的建议是结合博客去看源码。一方面,源码动不动就是几千行一个文件很难直接上手看(大概是楼主太菜==);另一方面,只看博客解析不看源码也不太好(博客可能有误,而且jdk的注释真的挺值得去看的)。
楼主虽然是科班出身,但是Java是自学的,有一个学习方式是我比较喜欢的:在复习的时候多思考(楼主比较有印象的自己的一些问题包括:enum的单例是不是懒加载,>>>运算符的实际用途,try with resources这个语法糖的实际作用和之前的try catch有什么区别,使用BufferInput/OutputStream/Reader/Writer和使用NIO的对比,为什么源码在方法中普遍喜欢使用局部变量去指向对象属性),当有这样一些疑问的时候,简单组织几个英文关键词利用google去搜索,往往都能找到很多讨论。
Android基础
《Android开发艺术探索》简直是面试神器,里面提到的很多知识点都是面试非常喜欢问的。另外我觉得艺术探索一书还有一个好处是指出了一些重要的知识点,适合照着书中的章节安排去深入复习相关知识。还有一些个人觉得不错的书包括《深入理解Android内核设计思想》、《Android源码设计模式解析与实战》等等。腾讯专项测试团队出的《移动App性能评测与优化》,我觉得更是一本开拓视野、了解大厂实际开发情况的好书。
官网的Guide我觉得也是非常值得学习的内容,还有google出的性能优化的教程也值得一看。
阅读第三方框架的源码也是一个免不了的准备环节。阅读像Java这样纯OO语言开发的大型项目,设计模式的知识储备是必不可少的。对于像楼主这样代码写的太少的兄弟来说,《Head First设计模式》可以算是设计模式入门的神器了,这本书里面对多种设计模式的对比分析值得好好去理解。这也是楼主目前唯一读完的写设计模式的书==此外,之前有个面试官建议楼主看源码之前先读一下《重构》这本书,楼主趁着国庆粗略过了一遍《重构》,感觉确实收获良多。
算法
《剑指offer》可以算得上是应对笔试面试的神器了,但是今年感觉刷《剑指offer》远不足以应付笔试面试,平时多刷刷LeetCode才是王道。
此外,不得不提牛客推出的左神讲解算法题的直播活动,对楼主秋招确实帮助良多。左神的题目讲解通俗易懂,而且节奏不会太快,推荐大家有机会可以去看看。
手写代码这个环节似乎总是逃不掉,楼主之前为了应对,暑假都是直接用的记事本在做OJ题目(文本编辑器一般都带自动补全功能,或者语法高亮),也是为了熟悉API,但实际的训练效果也不算太好==面试的时候容易出现划掉重写的情况,显得排版很乱==早知道还是直接练手写好了==
暂时先写这么多吧。感谢牛客网还有各位牛友们校招以来的帮助,希望这个帖子对你们有用~
本文来源于牛客网
作者:ss.edu
网友评论