900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 膜拜大佬!焦虑的移动互联网开发者如何破局?成功拿下大厂offer

膜拜大佬!焦虑的移动互联网开发者如何破局?成功拿下大厂offer

时间:2019-12-28 17:32:07

相关推荐

膜拜大佬!焦虑的移动互联网开发者如何破局?成功拿下大厂offer

开头

很多人说Android开发前景越来越差了 我觉得这个回答是片面的

首先Android应用开发前景差是在最近两年出现的,也就是从开始,从那时起移动端的程序员已经慢慢出现供大于求的局面,本人作为移动端开发,深知这一点。

然而也必须说明一点,不论是Android开发还是iOS开发,虽然都出现了相关的程序员供大于求的情况,但市场仍然是有需求的,特别是对资深的开发人员及拥有相关底层开发知识的应用程序员市场及发展还是很多的;这里所讲的就业难都是相对于初级开发人员。

为什么会在出现应用端就业难?这是由于在前几年App风盛行,那几年只要是个和互联网的公司要是没个自己的App那都不好意思叫互联网公司,所以一般的互联网公司成立之初就会着手开发自己的App,不管是否是刚需,但市场终究是严峻的;App虽然好,能快速开展本公司的业务,但App的运营成本还是很高的,一个App在早期就开发团队来说一般都是需要至少Android开发一人,iOS开发一人,后台开发2人以上,还有UI及产品等等,当然最主要的问题是一般的公司对于这种模式都会面临回报周期长的问题,App开发完了还面临着推广的问题,市场抢占不了,也许之前的都会付之东流。于是在早期很多学校特别是培训机构就针对市场推出了应用端的培训课程,短到三个月长到半年的课程,于是乎每一个月都会有成千上万的应用端走向市场,所以时间一长,市场慢慢趋于稳定。应用端的人员慢慢就变得供大于求了,这也是慢慢出现应用端求职难的问题了。

以上说的是其中一方面,成本高和其他低成本,低运营的技术相继出现也是应用端求职难现象的助推手。

这里主要讲下出现的小程序对于App的冲击,原生App有着开发周期长,运营成本高及回报周期长的特点,所以近年来很多公司都慢慢削去了应用端从而将资金放在其他部分,直到小程序的出现,开发成本一下就可以降下不少,为什么呢,因为小程序的开发语言可以由前端的开发人员承担,而且开发一个小程序不需要维护两套代码也就是不需要像原生App一样,需要Andoid端和iOS端,因为小程序是运行在微信中的,所以只要开发人员维护一套代码就够了,这大大的降低了前期的开发成本,其他细节在这就不细讲了,总之小程序的出现不同程度上更加冲击了应用端的竞争市场,从而也使得应用端就业竞争更加激烈。

当然市场还是需要应用端的人才的,这里所说的人才指的是那些会顺应技术发展和时代的有着不断学习力的开发人员,对于那些初级的程序员市场终究对于他们是残酷的,所以提升自己的竞争力在任何职业任何时候都是非常重要的,只有这样才不会被市场所抛弃。

就先写到这,手机码字很痛苦,写的很片面不好之处敬请指出,如果觉得有参考价值的朋友也可以关注一下我 我会定期分享一些关于Android进阶方面的知识,也会分享一下最新的面试题~

面试官的问题:

(1)问:点击一个图标到这个应用启动的全过程(前面是项目经验没啥好说的)。

答:点击图标后通过startActivity远程调用到ams中,ams中将新启动的activity以activityrecord的结构压入activity栈中,并通过远程binder回调到原进程,使得原进程进入pause状态,原进程pause后通知ams我pause了。ams再根据栈中activity的启动intent中的flag是否含有new_task的标签判断是否需要启动新进程,启动新进程通过startProcessXXX的函数。启动新进程后通过反射调用ActivityThread的main函数,main函数中调用looper.prepar和lopper.loop启动消息队列循环机制。最后远程告知ams我启动了。ams回调handleLauncherAcitivyt加载activity。在handlerLauncherActivity中会通过反射调用Application的onCreate和activity的onCreate以及通过handleResumeActivity中反射调用activity的onresume。一个应用就此启动。

(2)问:Retrofit原理。

答:主要是通过动态代理将接口直接转换成代理对象。动态代理和静态代理的区别,动态代理直接在虚拟机层面构建字节码对象。

(3)问:View自定义的流程,实现哪些方法。

答:1.实现OnMeasure,onlayout,onDraw. 继续问“onMeasure中会用哪些方法?”(我觉得这题可能没大好,我是想回答的详细点的,结果还没打到点他就说好,继续下一题,不知道是认可了还是觉得我答的过于啰嗦,如果觉得太啰嗦可以提出来啊。。。) 我回答onMeasure 中传入两个int数值,这个数值32位,前2位表示模式,后30位表示宽度、高度。这是外表容器给内部view的限制。一种模式是容器给你多大的值,你就是多大的值(match_parent),第二种,容易给内部view多大的空间,内部view不用管,是多大就是多大。第三种,容器给子view多大的空间,和子view自己算出来的占用空间,选择小的那个(wrap_content).说到这我正打算说onMeasure会调用measureChildwithmargin类的函数,他说好了,然后下一题.

(4)问:问我怎么设计app的。

答:基本都用的mvc架构,曾经有个项目使用mvp。还有其它一些整体设计上的问题,很零碎,但都答的差不多。

(5)算法题,面试官的表述不是很清晰,所以开始没理解他的意思,我归纳一下题目:有1,3,7三个面值的金钱,现在要取n元。怎么取个数最少。(n是已知数) 意思就是 1a+3b+7*c=n 什么情况(a+b+c)最小。当然这是我自己归纳出来的,他开始的描述让我想哭。

答:开始脑子有点没反应过来,把它当逻辑题做了,想了5分钟后才反应过来,这是编程题啊。遍历呀。 a的取值范围(0n)b的取值范围(0n/3) c的取值范围(0~n/7) 遍历取最小值。当然这种情况效率并不高,我当时也和面试官说了,没太考虑效率,如果需要可以再改。感觉他也认可,思路对就行了。 其它一些零碎的问题没印象了,主要就这些。

我们很多程序员都有一个大厂梦,但如何针对大厂进行面试准备,很多程序员就显得手足无措了。本文就根据自己一些见解谈谈如何准备面试。

关于笔者:阿里巴巴 Android 客户端开发工程狮一枚,喜欢技术、热爱开源。

细节杂谈

之所以是细节杂谈,说实话,是因为真的不知道可以写什么,网上关于面试的文章很多,大概看了几篇之后,更不知道写什么了。而根据自己的面试经验来看,发现其实有很多细节,在面试的时候都没有被好好重视起来。所以,这里针对这些细节做个总结,也希望可以对你们有所帮助。

1. 准备一个良好的开场白

首先笔者理解的自我介绍的作用是缓解初次交谈的尴尬以及过渡开场,然后才是扩展为对候选人的口才、逻辑以及表达能力的判断。

如果你实在不知道怎么说,即便是把你简历上的姓名、年龄、爱好、工作经验复述一遍,至少也是起到了暖场的作用。当然要是能基于此,表现出一定出彩的地方,那自然是再好不过,多花点心思准备是值得的。

PS:最近看到一个有趣的分享,唐僧每次介绍自己:贫僧唐三藏,从东土大唐而来,去往西天拜佛取经。其实这几句话包涵了每人都要问自己的三个问题:我是谁?我从哪里来?我要到哪里去?

2. 谦虚是必要的,因为这是礼节

很大程度上,面试官还有一个身份就是以后可能要一起共事的同事或者老板,所以切忌不要表现的心高气傲,尤其在电话面试中,很难在短时间就能了解一个人,你所表现出的态度就显得非常重要,如果和面试官产生了争论,要注意谈话技巧,可以在你的观点前加上我理解的是什么什么…

就连牛顿说他不过是站到了巨人的肩膀上了,所以永远不要觉得自己有多牛,真正牛的人只会更谦虚。这里手动,他是我很喜欢的一个 Android 开发同学。

3. 大招放的好,工作何愁找

嗯,标题起的挺押韵,容笔者小小的骄傲下 😃

笔者在面试中,有时候和候选人聊了很久,觉得候选人基础知识扎实、项目经历也能娓娓道来,但是就是没有让人眼前一亮的东西,而且往往连续出现好几个类似的候选人之后,这种情况真的很难抉择,对于面试官来说,几个候选人表现的都差不多,你会发现…举个不太恰当的比喻,食之无味,弃之可惜。

所以,如果你有个大招就显得非常重要,让你和其他的候选人区别开来,而对于面试官来说,也会更偏向于你,甚至可以直接锁定胜局。

何谓大招,首先对于候选人来说,技术面试所涉及的深度和广度是很难全部顾及的,加之每个面试官的问题又会多种多样,所以与其担心被问到自己不熟悉的领域,不如挑几个自己的熟悉的技术点深挖下去,总结和形成自己的一套理论。

之前看到一句话说的很好,**面试的本质不是一问一答,而是亮点展示(放大招)。**所以要学会掌握面试的主动权,把话题尽量往自己擅长的地方引,当然陈述的时候记得一定要简洁扼要。

笔者当时在准备阿里面试的时候,就花了很多精力把 GitHub 一个优秀的开源框架,从设计模式、原理以及细节都琢磨了个透。

4. 算法题 — 知之为知之,不知为不知

面试中问到算法题,如果不知道就明确表示不知道,切记不要装做知道,然后不知所云的说了一大推,这样反而会给面试官留下比较差的印象,面试评价上也会比较难看,很有可能也会影响你后续的面试。

不用担心回答不知道,就感觉没戏了。这里一般有两种情况:一种确实是对算法要求高的职位,那没办法了,只能回去好好加强一下,来日再战。还有一种情况主要是考察你的综合能力,你其他方面的能力表现的非常好,可以弥补。不会有影响的。嗯,笔者当时就属于第二种(强行炫耀)。

算法真的是笔者的一大弱项,之前每次面试被问到算法题的时候,我都很头疼,不过后来索性想明白了,把更多时间放在自己所擅长的地方了。

5. GitHub — “不只是全球最大的同性交友网站“

因为 GitHub 上的开源项目,笔者多次收到过 Facebook、Twitter、英伟达 (NVDIA) 的面试邀约邮件,尽管只是一封邮件,但是对于笔者来说,自身的能力得到认可还是很开心的。

所以,如果你的 GitHub 主页足够漂亮,带来的价值远超出你的想象,尤其是对于一无学历,二无大厂背景的同学来说,就显得更重要了,一定要利用好这个平台去展示自己的能力。

6. 还有一些小细节

简历遵循 STAR 法则,内容才是王道。对于某些大厂来说,都会有自己的招聘系统,而你精心打造的酷炫简历在导入到后台后,会变得面目全非。你的简历样式做的再好看也没用,少在样式上下功夫,多在内容上下功夫。

听到面试官的问题后,先不要急于回答,给自己几秒的思考时间,多站在面试官的角度去思考这个问题应该怎么答,比如当问到你觉得你最大的优势是什么?有些同学会直接回答热爱技术……然后…然后就没有了。这样显然毫无说服力,如果加上一句,经常浏览国外优秀的技术博客、在 GitHub 参与和贡献自己的开源力量,是不是就好很多了。

**面试结束后,不要觉得不好意思,或者觉得没有必要,对面试官说一声:“谢谢,辛苦您了”。**就我个人经验来说,毕竟大部分负责的面试官都会和你聊比较长的时间,也会尽可能挖掘你的技术亮点。结尾给面试官留个好印象,如果没有通过,至少对你的面试评价上也不会太难看。

总结

算法知识点繁多,企业考察的题目千变万化,面对越来越近的“金九银十”,我给大家准备好了一套比较完善的学习方法,希望能帮助大家在有限的时间里尽可能系统快速的恶补算法,通过高效的学习来提高大家面试中算法模块的通过率。

这一套学习资料既有文字档也有视频,里面不仅仅有关键知识点的整理,还有案例的算法相关部分的讲解,可以帮助大家更好更全面的进行学习,二者搭配起来学习效果会更好。

部分资料展示:

有了这套学习资料,坚持刷题一周,你就会发现自己的算法知识体系有明显的完善,离大厂Offer的距离更加近。

资料获取方法:点赞+关注+转发,然后进入我的【GitHub】,里面有免费获取途径

BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md),里面有免费获取途径**

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。