月薪过万的移动开发者,前景如何?

发表时间: 2020-01-03 21:12

文|洪生鹏 编辑|静子


程序员面试,除了面试技术外,有的公司经常会问应聘者和技术无关的问题,考验求职者的综合能力,并以此作为是否录用的依据,很多时候这类问题往往没有标准答案,就看求应聘者临场的反应能力如何。


张工是一名Android开发人员,近日到某知名互联网公司面试,面谈到最后时,面试官问了张工这样一个问题:


你觉得现在做Android还有前途吗?

张工被问得有点措手不及。


现在都在说互联网寒冬,尤其是移动端开发市场趋于饱和状态,我之前找工作时,也陆陆续续找了一个月,应该是我技术水平不过关。


现在做Android还有前途吗?有人说Android开发前景越来越差了 ,我觉得是片面的,Android开发前景其实还不错。



现在各大公司其实都很缺Android中高级开发工程师,有的公司对Android开发岗位还在不断的招人。


对初级Android开发人员来说,自律和坚持,是一种持续与别人拉出人生差距的能力。初级开发者更应该想想怎么掌握好知识点,而不是轻易就转行,要是没有专研精神,不管换到哪个方向,譬如现在流行的大数据开发,都会卡在瓶颈期。


对于Android开发者,他们有的计算机相关专业毕业,有的是参加过IT培训一段时间,然后找到了一份实习工作或初级Android工程师的职位,心怀憧憬,希望在公司里好好表现自己。于是,在工作中一边工作一边学习,下班后还不忘继续给自己充电。


这是很难得可贵的。


作为一名Android 开发人员,如何在面试中脱颖而出,个人认为需要两项技能:


  • 扎实的技术基础,有技术追求和工作激情 ;
  • 良好的沟通能力和协作技能。


简单来说,就是专业能力和沟通能力。其中专业能力始终是面试成败的决定因素,那么技术掌握到什么程度才能相对轻松地通过面试呢?



面试的时候,更注重基础知识。一般来说,一场Android面试内容不太可能全是Android开发的问题,应该也会涉及到和编程基础相关的问题。比如java基础、数据结构、算法和常见的设计模式要熟悉,亦或是设计模式,单例模式、工厂模式、观察者模式等。至于数据结构在工作中不常用到,但还是有必要了解下,能够熟练掌握更好。


有从事过java开发的朋友应该知道java有个垃圾回收机制。


面试时要是面试官问“java回收机制对什么东西进行回收”,要是我们只是简单地回答对没有用的对象进行回收,按道理来说,这并没有错,只是答案可能并不是面试官问这个问题的初衷。要是我们对此能更进一步分析那就更好了,比如这样回答,GC操作的对象分为:通过可达性分析法无法搜索到的对象和可以搜索到的对象。对于搜索不到的方法进行标记。从root搜索不到,而且经过第一次标记、清理后,仍然没有复活的对象。


对于用可达性分析法搜索不到的对象,GC并不一定会回收该对象。要完全回收一个对象,至少需要经过两次标记的过程。回答问题时把问题具体化,对类似这样的对象进行回收,相信能给面试官留下好的印象。


那么我们平时如何积累面试中需要的技术,我觉得阅读源码是一个不错的首要选择,其实很多面试问题我们都可以从阅读源代码中找到相关答案,其次平时要主动学习项目中没有用到的技术,很多时候,由于项目进度的原因,我们不可能通过公司的项目来掌握Android知识中其他重要技术知识点,尤其是一些规模不大的项目来说,这个时候更需要我们主动去学习其他知识点。


比如View的绘制流程、事件分发、消息队列、Binder机制、AIDL原理等。类似这类知识点,需要我们在平时工作中不断去探索实践,不断运用,才能在工作中更好地定位问题,解决问题。


你觉得现在做Android开发有前途吗?