Android面试感想

又到了一年面试季,因为公司内部的变动,出来面试了几家公司,结果很不理想。所以写写经验,给自己提醒一下,总结后续几年如何去规划发展自己。

ps:感想百度的面试官,对我的评价很到位,也让我更加的认清自己。

个人发展经历

  1. 从13年工作,作出的第一个Android作品很简单,只是一两个界面的开发。那时候,核心部分也就是使用的第三方的播放器,所以给我的认知是Android很简单。
  2. 进入第二家公司,自己要做播放的SDK。一切从头开始,完全不知道怎么处理。慢慢了解到有一个github,知道有很多的开源项目,所以开始从寻找第三方的内容到寻找开源的项目。 因为接手开源项目比较多,这个时候我的认知更加的变形,更加的认为开发就是拼接别人的代码。总是认为开发很简单。
  3. 从进入第二家公司开始,就进入视频行业无法离开。接触到FFmpeg,接触到 libRtmp,接触到 libYuv。所以自己总想着学习JNI,买了很多书籍,不断的重复开源库的编译工作,但是从没有想着看源码。
  4. 进入第三家公司,成为了一名SDK使用者。并不是说没有接触SDK的机会,只是自己因为懒而抵制去学习。

面试问题

  1. 做过很多有意义的项目,使用了很多流行的SDK,但是完全不知道或者说自己这么做的意义。这里在此感谢百度的面试官,他们问我说:你作为一名有多年工作经验的开发者,你做过的项目中的闪光点是什么?
  2. 准备了很多面试题,也面试了几家公司,我发现大家都面试一些最基本的内容。但是就算这最基本的内容,也需要面试者了解其中原理是什么。而这个,确实我所欠缺的。就像我知道:苹果会从树上掉下来。但是我就缺少研究“苹果为什么会从树上掉下来”的精神。
    记得之前面试,有人问我“Thread 和 Runnable实现线程有什么区别?”,说真的,我其实并没有研究过,只是背过答案,甚至我都不知道问这个问题的意义何在?也不想去研究为啥大家都问这个问题。
  3. 缺少一种思维,感觉自己的大学生活都荒废了。很多算法问题,或者遇到一个BUG的解决思路 ,在实际工作中遇到这种类型的问题,我肯定能够作出,或者说知道怎么样去查找答案。但是呢?没有研究过为什么要这么做。

自己的不足

写这篇文章,其实对自己挺失望的。
  1. 缺少闪光点。不管是一个项目还是自己的知识,缺少一个让别人眼前一亮的闪光点
  2. 缺少深挖原因。不管是Android还是Java,其实都是一群大牛的智慧。但是我只懂得怎么使用,但是完全没有去研究为什么这么做。
  3. 眼高手低,总想着学这个学那个,但是完全没有静下心来去研究。就像面试官问我在看什么书,我回答在看设计模式。但是面试官直接批评我,你平时工作中能用到那么多的设计模式么?我们能用到的设计模式就那么几个,而且是最基本的。确实这样啊,平时工作中用到的,就那么几个设计模式和算法。至于其他的,也许以后会用到,但是完全没有必要把大量的时间花在这上面。不需要学习那么多的设计模式,我真正需要的是研究通最简单的几个。
  4. 能说出自己做的东西。感觉在每家公司都做了很多东西,但是实际上却没发告诉别人。每次面试,只能回答我在这个项目里用了这个SDK,在那个项目里用了那个SDK。但是一个项目,除去别人的SDK,自己也会做很多很多的内容啊...这些为什么就说不出呢?

遇到的面试题

  1. 上传图片+文字(Multipart/form-data)
  2. 如何升级数据库,以及数据库优化
  3. 线程,锁,关闭
  4. 链表反转
  5. 棋盘问题(建模过程、解决思路、二叉树)
  6. 项目中用到的SDK,以及为什么要用它们,它们有哪些闪光点

后续的发展

我不是有多年工作经验的人,我是一个Android新手

要展现自己的工作经验,要找到自己的闪光点。

  1. 找到每个项目中的闪光点,至少明白自己为什么要这么做
  2. 不要只是局限与使用SDK,至少能了解到这些SDK是怎么做的,哪怕写不出一样的,也要写出简单的
  3. 不要眼高手低,多学学Android

你可能感兴趣的:(Android面试感想)