赞
踩
其实不是Android不行了,而是你跟不上了
我的很多读者都在反馈说,现在一个岗位可以收到的简历数,是前几年的几倍。我们必须承认,僧多粥少就是 Android 行业的现状,别说初中级工程师,就是高级工程师也是一抓一大把。企业招人的眼光也越来越高,如果你没点“真东西”,是真的挺难的。
前几天和一位 Android 前辈聊天,他说面试中很多工程师,对特别基础的问题都停留在“使用过”或者“听说过”。没有深入到技术细节里,在竞争激烈的市场中就只能被淘汰。下面这些,是他提到的几个问题,你能快速回答上么?
SoftReference(软引用)在内存不足时会被虚拟机回收,那它会不会导致 OOM?
Android 的 Touch 事件中 CANCEL 事件是如何产生的?哪些场景下会发生 CANCEL 事件?
Handler 中的 Looper 无限循环,为什么没有阻塞UI主线程?
你在简历中写“精通多线程”,那么:线程中自己的“工作内存”指的是什么? 为什么阿里开发规范中不允许使用 Executors 创建线程池?
你一定想说“面试造火箭,工作拧螺丝”。实际上,你的答案反映了你对技术理解的深度,以及解决问题的能力。 听起来很套路,但企业需要的是能对自己提交代码负责、对使用每一个工具负责的「高级/资深 Android 开发」。
初级研发工程师的定义是掌握基础的Android知识,能够独立完成一个功能,工作年限大概在1-2年,这个层级大部分人通过看一些资料书籍再经过项目练习很快可以达到。这个级别的人往往需要掌握如下一些技能:
我对中级工程师的定义是能够熟练完成功能研发外,还需要掌握常见开源库的一些原理,并仿照开源库去造轮子练习。这个阶段的人大多工作3-5年,业务开发能力熟练,碰到任何一个问题都能够得到解决,这个级别的人往往需要具备如下技能:
对于高级,就不仅限于功能和业务开发,还需要深入理解Android系统的运行原理,达到融会贯通,部分可够作为Android端架构师。这一阶段的人大多工作5-8年,具备开源库设计能力,同时对于Android系统的运行原理也比较了解。
如果达到这一水平,恭喜你,你已经超过70%左右的人,但是如果要再进一步,比如架构中/开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。
作为开发专家,那么除了理解Android的一些核心原理外,还需要具有架构设计能力,能够从更高层面看待问题,理解整个系统的设计。
那么除了上面的技术方面你与高级工程师差在哪里呢?
说到高级工程师大家的第一印象自然就是工作经验丰富,技术够牛逼。
注意这里说的是工作经验,并不是指工作时间。有的人踏踏实实做项目,业余时间想着多学点新技术,坚持读书,认真写博客总结,多实践,加上自己本身悟性又不差的,2、3 年的时间都可以有别人 3、5 年的工作经验,成长为公司的高级工程师水到渠成。而有的人混日子,做的项目得过且过,业余时间玩游戏,追剧,也许你在公司工作了 10 年看起来兢兢业业,然而你对自己没有更高的要求,安于现状,不求进步,这类人即使有 10 年的工作时间,却只能止步于此。
靠着自己持续不断的学习,以及工作经验的积累,一步一步,见得市面多,踩的坑也多,技术越来越牛逼也是理所应当的事,而技术是一个高级工程师最基本的要求,然而我却认为只要不是傻子,对技术有点追求的人,想达到这点不难,只是时间长短问题而已,除了技术,你跟那些真正的高级工程师还有其他方面的差距!
高级工程师责任心一定很强,责任心是体现一个人的态度问题,对于一个 bug ,他们永远都会重视,想尽一切办法找到原因并尽快解决,而有的人对于 bug 却是得过且过,解决 bug 的态度就是尝试,认为从表面上解决了就 ok 了。
我们 CTO 十几年的软件开发经验,有用户反馈 bug ,不管多忙,不管什么时间,一定停下手头上的事情,去找到原因并解决。我在薄荷的经历,曾不止一次跟着他为了解决一个 bug 搞到深夜,有几次深夜发现一个导致用户不能付款的 bug ,我都躺床上睡觉了,被 CTO 喊起来半夜赶往公司去修复的经历,当时还觉得不理解,时间长了,我才意识到这种责任心是职业素养,现在也深深的被感染,在任何时候、任何时间,我的手机、电脑都是不离身,出问题一定第一时间进行响应!
对比下你们,你们的责任心够强么?
我总结了一些Android核心知识点,以及一些最新的大厂面试题、知识脑图和视频资料解析。
需要的小伙伴私信【学习】我免费分享给你,以后的路也希望我们能一起走下去。(谢谢大家一直以来的支持,需要的自己领取)
部分资料一览:
44473)]
[外链图片转存中…(img-2OTxInGk-1616416844475)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。