移动开发最新程序员,男,工作7年,二本渣渣,面试上了头条,没想到------,腾讯技术面试题

最后我还整理了很多Android中高级的PDF技术文档。以及一些大厂面试真题解析文档。

image

Android高级架构师之路很漫长,一起共勉吧!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

我的头条面试之旅

投头条主要是因为听说头条的笔试面试难度都高,想试试。最开始也没打算去头条,所以直接投的北京Android开发。

头条走的内推,但还是参加了统一的笔试(有概率免笔试),笔试印象不太深了,只记得有两个算法题,而且难度都挺大,是那种很容易做对30%但很难做对100%的算法题,不过凭借着我刷题的功底(以及当时的灵机一动),还是把两题全都做出来了。

然后就收到了头条视频面试的通知。值得注意的是,头条的笔试刷人比例很大,我周围基本没有人进头条的面试。面试一共三轮,每轮面试完后几分钟都会接到HR的电话通知面试是否通过。

一面大概持续了一个小时。

问的问题印象不太深了,主要问的都是计算机基础、Java基础和Android基础的问题,但问的深度较深。比如问到Java并发的时候,就让我用代码来演示线程之间的同步;还深入到了wait()和notify()的工作原理(锁池,唤醒的native实现),以及notify()和notifyAll()的区别、notify()可能造成死锁的问题。印象中没有要做算法题(如果有也应该是LeetCode Easy难度的)。一面完面试官就直接让我等二面了。

二面大概持续了一个小时。

二面记的也不太清楚了,挑几个我记得的说。最开始是问到了一些Java基础,比如int和Integer的区别之类的。然后还用实例让我分析Java面向对象编程的一些细节,比如内部类的性质、什么时候用内部类、内部类和静态内部类的关系。还问到了一些进制的问题,比如数的二进制表示、与十六进制的关系、移位运算。

问完这些就开始看着我的简历问,问到了我Python学的怎么样(项目中用到一些Python)、怎么学习Python的、主要拿来干什么之类的问题。然后面试官让我解释一下YUV颜色空间,这个让我心里一惊,因为这个第一个问我YUV颜色空间(整个秋招只有两个面试官问到YUV颜色空间,另一个是网易游戏),而且看样子面试官是了解YUV颜色空间的,要知道只有专门做图像视频的才会了解到这些;然后我就详细介绍了YUV颜色空间,以及对应的如I420和NV21格式。

然后就是三面了,三面也大概持续了一个小时

因为网络的原因,是电话面试的。三面的画风和前两面不一样,没有问太多技术方面的问题。最开始还是让我介绍项目,介绍完了就问我项目中遇到的问题和解决方法,这个我回答的很细,面试官也问的很细;因为这个之前准备过,所以答的也不错,光这个问题就花了大概半小时。面试官之后问我说似乎解决这个问题并没有用到太多技术,我回答说是的,但最困难的应该是寻找原因、作出尝试、再寻找原因、再作出尝试的过程。

然后就是问我我的项目代码进行过怎样的优化、现在还存在哪些问题,我说以前代码结构太差,牵一发而动全身,后来学习了设计模式,代码结构就清晰了很多,面试官又仔细问了我用到了哪些设计模式,是怎么改造代码的;然后问存在的问题,我答还缺乏一个通用的框架来支撑各种不同的二维码,然后面试官问了我继续改造的思路。最后面试官跟我说虽然前面两轮面试问了很多基础,但他还是要考考我,问我Java里有哪些Map。这题倒是把我难住了,因为我只是看过Map的各种继承的图,还没专门背下来过,于是我就只说出了HashMap、LinkedHashMap和TreeMap(实际还有ConcurrentHashMap等),然后跟面试官介绍了典型的使用场景。这样就结束了三面。

三面结束后过了十几分钟就接到HR电话说面试通过,接下来几天会有HR的电话面试。然后等到HR电话面试,实际就是聊聊天,HR了解一下我拿到offer的情况、对城市的选择、能否实习等,然后问我对部门有没有喜好(今日头条、西瓜视频、抖音、火山小视频等),因为我也不在意,就说没喜好、都可以。剩下的就不仔细说了。

再后来就是接到了HR沟通薪资的电话,HR说我分到了火山,后来才知道,今日头条唯一一个名额被一个留学归来的“海龟”拿下了!

可能唯一比得过的就是技术能力和经验了吧!

在绝对实力面前其他都是渣渣

以下是学习路线:

一、Java基础

虽然现阶段Google已经将Kotlin定为官方推荐语言,但是大多数国内项目都是用Java开发。即使以后的大趋势是向Kotlin转换,也需要一些时间,所以完全不用担心Java会过时,你可以在Android学的差不多的时候再去学Kotlin,学习成本也会很低。

  1. 如果非科班出身建议看视频或者找人指导学习,科班出身可以直接看Java相关书籍,基础好的可以一边了解Android一边学习Java。

2. 对于Java需要掌握到什么程度:

  • Java基本数据类型、基本语法、关键字、表达式和分支循环- 面向对象,封装、多态和继承
  • 接口的使用方法和场景- Java常用的各类型集合的优缺点及使用场景
  • JavaI/O- Java的多线程- Java的反射机制和泛型
  • 一些常用的设计模式(如:单例、工厂等)掌握了以上Java知识基本可以应对很多开发场景。

二、Android(软硬件部分)

  1. 开发平台:电脑用Windows的或者Mac都可以,处理器最好i5及以上,8G内存及以上,配上固态硬盘。(推荐Mac)
  2. 开发工具:Eclipse已经很少见到,大多数开发人员都选择AndroidStudio(IntelliJ IDEA也可以,跟AS类似),调试可以用AS自带的模拟器或者第三方模拟器,有条件的请用真机。
  3. 开发环境:配好Java环境,正常安装AndroidStudio即可。

三、Android(基础编程部分)

  1. 了解项目工程各个目录的作用
  2. 学习各类基本布局的使用方法
  3. 了解基本控件的使用(如:TextView、ImageView等)
  4. Activity和Fragment的生命周期,数据交互方法
  5. 列表类控件(如:RecylerView、ListView等)和Adapter的使用方法6. Activity的启动模式,四大基本组件的作用及使用场景

四、Android(进阶编程部分)

  1. 数据库的简单存储(增删改查)
  2. Android自带的SharePreferences存储
  3. 文件存储的方法
  4. Android的消息机制和异步任务
  5. 三种动画的使用
  6. 了解Http协议相关的知识
  7. 触摸事件的分发机制
  8. 自定义View掌握

进阶系统笔记

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

总结:

各行各样都会淘汰一些能力差的,不仅仅是IT这个行业,所以,不要被程序猿是吃青春饭等等这类话题所吓倒,也不要觉得,找到一份工作,就享受安逸的生活,你在安逸的同时,别人正在奋力的向前跑,这样与别人的差距也就会越来越遥远,加油,希望,我们每一个人,成为更好的自己。

  • BAT大厂面试题、独家面试工具包,

  • 资料包括 数据结构、Kotlin、计算机网络、Framework源码、数据结构与算法、小程序、NDK、Flutter,


网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

618156601)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值