ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

作为一个Android程序员,我的头条面试经历分享,技术详细介绍

2021-05-25 14:01:17  阅读:137  来源: 互联网

标签:知识点 java 面试 程序员 算法 Android 数据结构 头条


一、自我介绍

应该算是起点比较高吧!985大学毕业后面一直在国外读研。之前准备面试微软但是可能经验不够,没有通过。经过朋友介绍我准备回国,积累一些开发经验。于是我面试了国内大厂BATJ,还有一些其他比较知名的公司,一共报了11家。我朋友说这叫广撒网多捞鱼!

其他就不说了BATJ都过了,但是由于地区还有待遇问题,我选择了讯飞一家不大不小的公司。一开始做的挺好的,没想到…

公司的需求

不同的公司,不同的需求现在的市场上,公司很多,大致上可以归纳为两个大类:大公司和小公司,他们招聘时对人才的需求也不一样。

小公司

小公司他们一般急需的是能够投入工作的人才,因为公司规模小,急需盈利扩张,需要投入工作生产,所以他们更加注重实践能力。一般情况,小公司面试比较集中安卓开发这一块,他们会比较注意你之前有没有做过类似的项目,或者是相似的工作经验,以及有没有遇到过他们所遇到的某些问题。准备这些公司的面试,除了一些基本基础知识点还需要关注安卓开发实际中经常遇到的一些问题,比如缓存,常见的开源框架问题等。

大公司

相对于那些才起步,或者起步不久的小公司,大公司已经有了比较深厚的资源积累,体系制度也比较完善了,他们更注重人才的综合能力还有未来发展潜力。

在面试中,大公司会提的差不多就是数据结构与算法,计算机网络,操作系统,Java这些。在这些点中,数据结构与算法应该是一个分水岭,这个问题的准备需要长时间的积累,临时抱佛脚可能有些困难,是骡子是马,拉出来遛一遛就知道了,是不是高手一试就知。

所以,很多公司都执于考算法,比如百度、美团,淘宝这些公司。整个面试下来可能让你手写5个算法题以上。这点主要是想告诉大家,这个门槛差不多决定了你最终所找工作的水准,所以我都会建议每一个找程序员相关工作的人,尽早准备这方面。比如多刷一些leetcode或是其他类似的题。

然后在剩下的几块知识中,我只想说你可以不用全部都懂,但是你必须要在某一块知识点是有深入研究的,能够回答面试官4到5个追加问题,“T”型知识结构的人才很吃香。如果所有知识点都只能答上一到两个,面试官会觉得你的水平就是这样了,还会觉得你没有探究精神。这个判定结果是很恐怖的,因为一个没有探究精神的人是做不了好的程序员的。

我觉得面试安卓的知识点按照重要程度可以做一个这样的排序:
1.数据结构与算法
2.java ,Android
3.计算机网络
4.操作系统
5.数据库或是设计模式之类

java这一块,比较重要的是多线程同步异步,java虚拟机内存回收,容器,面向对象这些知识点。就单单是多线程和虚拟机都可以看好几本专门讲解的书了,其他知识点就多啃啃java编程思想,遇到不懂在多翻翻博客加深理解。

Android这一块,异步机制,view的绘制,自定义控件,四大组件都非常重要。不管是android或是java都最好看一些源码,java可以看一些容器的源码,android可以看handler,looper,message等异步通信的源码或是一些开源框架的源码,会看源码绝对是加分项。

计算机网络可以注重看上面几层,传输层注重研究。一般来说,前面这几点掌握好了,足以聊好几轮面试,一般面试官你都可以引导他去聊一些你擅长的知识点。后面几块知识点,你可以先掌握一些比较重要的,不一定每次面试都会遇到,但是也得准备。

##上面是提供一些大概的思路,下面具体说一下每一块的知识点

一、数据结构与算法

推荐书籍:大话数据结构,数据结构与算法分析(java语言描述),剑指offer,进军硅谷。

推荐在线刷题网站:Leetcode

推荐方案:主要做三件事

1, 先看一遍大话数据结构,熟悉一些基本概念,大话这本书只讲了一些基本的数据结构,像是B树,B+树,红黑树需要自己看一些博客或是网站,推荐一个讲解算法的网站-七月算法,另外海量数据处理也是一个经常考的专题,它结合了数据结构和操作系统的一些知识,这个需要进行针对性准备。

2,然后开始刷题,最推荐的肯定是leetcode,刷题建议按照标签进行刷题(比如队列,栈,哈希表),刷题从易到难,最好能够刷一百题左右,如果一天一题,至少要三个月以上,所以这个耗时比较长,要从比较早开始准备。进军硅谷这本书有按照专题进行编排,基本上的题目来自leetcode,可以作为一个参考。

2, 然后要分析一些常见数据结构的源码实现(比如队列,栈,hashmap之类的),数据结构与算法分析这本书有讲一些,可以结合一些博客进行准备。

最后

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;

我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

Android架构视频+BAT面试专题PDF+学习笔记​》

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望**这份系统化的技术体系**对大家有一个方向参考。

*这份系统化的技术体系**对大家有一个方向参考。

2021年虽然路途坎坷,都在说Android要没落,但是,不要慌,做自己的计划,学自己的习,竞争无处不在,每个行业都是如此。相信自己,没有做不到的,只有想不到的。祝大家2021年万事大吉。

标签:知识点,java,面试,程序员,算法,Android,数据结构,头条
来源: https://blog.csdn.net/a120464/article/details/117254287

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有