赞
踩
是的,我工作五年了,在互联网某血汗厂。
上周和组长提了裸辞,组长拉着我聊了两个小时,希望我还是考虑考虑,建议我不要裸辞,多想想工作的意义之类的。现在的情况就是,那次谈话之后的一周,组长没给我安排活,他建议我休息一段时间再看看,然后请了个接近一周的假休息,目前处于休假状态。
之前也一直在找工作,想着骑驴找马跳下家,然后面试全跪,是的,大厂、小厂的面试都跪了。我现在开始怀疑,是不是我真的能力不行,还要价太高,需要再沉淀沉淀呢。
但是想想,每周 996 的工作时间,真的没啥时间准备面试,就算在这再干上一年,貌似还是个工具人, 到时候出去照样要经历现在一样的处境。
加上家里背着每月 1w4 的房贷,几个月还能支持,但是下份工作工资也不能低于 22k,不然生活真的没法过下去。 目前纠结的是,一个是继续苟着,找到下家再辞职。但是好多人都和我说开弓没有回头箭,既然提了那就不要留。还有就是坚持裸辞,好好准备一个月,然后找下家。我冒着很大风险毅然决然选择了后者!1月份的时候真的很焦虑,睁开眼就是钱! 每天都在准备面试,投简历!
还好在今年5月份通过内推,拿到了腾讯offer,年薪40w+, 解决了我的燃眉之急,所以真的如果有和我有相同经历的朋友,真的别放弃!可能机会下一秒就到了!
在此把我的经历写出来,也是希望能激励大家!一起共同进步吧!
一名来自阿里的中年程序员在互联网匿名社区感慨压力颇大,其称自己35岁,现在在阿里的级别是P7,也是985名校出来的硕士,但是毕业前几年一直混迹于国企和外企,感慨错过了互联网高速发展的时间,现在在北京背着200万的房贷压力颇大。
确实错过国内互联网高速那几年,北京小200万还算压力?深圳五百万压力了解一下;其实最难受的是和一帮比自己小很多岁的人一起干活,还没人家熟练,经常被白眼;混的好失败,每个月还快2万贷款,还得养孩子,压力山大啊;我也是一开始混外企。都怪当时外企工资高,另外因为互联网企业加班,没有在互联网起来的时候转型。
一面:
面试官看起来很年轻,感觉是一个刚毕业不久的小伙汁,声音很青涩哈哈哈哈
开始面试的时候把我给问懵了,当时刚午觉睡醒,还没缓过神
1.http的一套流程是什么?
2.https发起连接的流程是什么?
3.http请求的请求头中包含哪些字段?(这里忘了不少字段,只说了三四个,呜呜呜)
4.一次http请求的结构是什么样的?(这里因为网络的问题,听了三遍,终于弄懂了面试官的意思,呜呜呜)
1.能简单说说线程和进程间的区别吗?
2.进程间通讯的方式你知道有哪些吗?
3.听说过Messenger吗?(知道,但是底层还是使用的AIDL+Handler的形式,AIDL底层还是使用的Binder驱动)
1.能简单说一下数据库如何修改一张表中的数据吗?
2.给一张表增加一个字段该用什么关键字?
1.能简单说说Lock,synchronize,CAS之间的关系,以及具体实用的场景吗?
2.能详细说一下CAS是什么吗?AtomicInteger是怎么实现线程安全的?
3.具体的锁升级机制能简单讲讲吗?
4.能简单说说代理模式吗?动态代理和静态代理有什么区别?
1.能简单说一下事件分发机制吗?
2.MeasureSpec.UNSPECIFIED是什么意思?如果外层的ViewGroup的模式是AT_MOST,内层是match_parent,那么最终传递到内层的模式是什么?(AT_MOST) ps:这个问题没啥意义
(听你说了View中有scrollTo,scrollBy,那么我们分析一个场景题)
3.场景题:首先有一个FrameLayout,其中嵌套着两层View,我们在进行重写onTouchEvent的时候,如何让上层View滑动并且暴露出下层的View?(这里有一个坑,面试官说的scrollTo、scrollBy,我就在这俩上面思考怎么暴露出下层的View,最后突然想到可以通过事件来调整整个View的布局位置)
1.看过那些优秀的开源框架源码吗?
2.知道那些源码相关的设计模式呢?
3.HashMap简单说一下原理吧
二面:
二面是一个女面试官,年龄可能在40岁左右
1.熟悉那些设计模式呢?
2.动态代理底层是如何实现的?
3.讲讲Retrofit的动态代理吧
1.能简单说说JVM内存模型的目的以及在内存中区分为哪些区域吗?
2.内存回收机制大致讲讲呗?
3.类加载机制完整细致的描述一下把
4.类加载器的双亲委派原则说一下吧?(这里有一个疑问,我说父子类加载器不是继承关系,然后面试官说不太对,这里我有一点点疑问,还请大家告知一下)
5.能说一下Java .class文件的结构吗?
6.线程池的基本机制有了解吗?非核心线程如何保证延迟结束?
7.为什么内部类会默认持有外部类的引用?
1.Handler消息机制简单说一下吧(延时的消息是如何发送的?以及通过Looper.loop()是如何处理延时消息的?)
2.为什么Handler会出现内存泄漏?
3.View中的post和handler的post有什么区别?(我说view中的handler是经过重写的,会处理关于View的相关绘制事件,然后面试官说只回答对了一部分,我有些疑问,还有其他的区别吗?)
4.有用到什么内存泄漏检测的框架吗?知道原理吗?(就是上面所说的JVM内存回收机制)
5.知道关于性能优化相关的吗?能简单讲一下吗?(布局,异步,过渡绘制)
6.能讲一下Activity的启动流程吗?
7.听你讲到了进程间通讯,PackageManagerService和ActivityManagerService进行通信的方式是什么?
8.Binder驱动底层原理了解吗?(mmap的内存地址映射)
9.Serializable和Parcable有什么区别?如何使用?
10.听你说到了sp(SharedPreference),你知道sp能跨进程通讯吗?
1. 面试方面的一些经验
总共大概面试了八家,基本上每一家都到了终面,4 家给了 offer, 2 家因为薪资超预算没有录用,2 家挂掉。整个面试过程与我所预想的有比较大的差异。
因为疫情原因,今年面试流程比较长,除非现场面试,否则多数要一周多才能给到最终结果。
善用脉脉、看准网等网站了解公司内部情况,某些小公司槽点比较多。有些问题不便在面试中直接问,脉脉、看准网上有不少值得参考的评论,可以帮助大家避免不少坑。然而“尽信不如不信”,有些评价还是需要大家客观看待。
频繁换工作对求职的影响远超你的想象。 当你想要离职时,一定要想清楚是什么原因让你不得不离职。即使你想到无数的理由让你离职,请跳出自己的视角,站在一个 hr 的角度重新审视一遍你的离职理由,有些原因你自己觉得很有道理,但从 hr 的角度会有非常不同的理解。总结来说,对于离职原因的陈述既要坦诚又要客观、合理。
2 不与面试官交流
如果觉得编程题目有问题,最好是和面试官谈一下。即使不知道问题的答案,比起呆坐在那里,还不如诚实的承认自己的错误,还可以和面试官谈谈其他方面的话题,要与编程相关的话题,表明自己在这个领域个擅长。
3 代码凌乱
要注意代码规范。不管自己代码知识多么丰富,多么具有创造力,要记住面试官是在考察你的编程技巧。他为你定下任何结论的时候,都需要读懂你的代码,如果你的代码很凌乱,那么面试官根本都不想看。而且,规范代码有助于写出正确的程序。
4 不要死记代码
很多毕业生都会背一些常见的代码,但没有多少人知道这个代码真正做了什么,又是如何完成这程序任务的。死记程序语言不是面试的最佳途径,即使通过面试,在实际工作中,还是会遇到编程的其他问题。你还是会有被OUT的概率。面试其实就是考察了解这门编程语言的程度而已。
5 不谈自己的思路
面试官对你写编程的思路感兴趣,他们希望你能对不同问题给出不同的解决思路。比如,用C指针交换两数的程序,正确的思路才是最重要的,要提出自己的思路,如果错了,面试官会帮你改正,从而顺利的完成程序。
6 简历中有你不知道的技术
这是毕业生的忌讳。为了让简历入围,求职者会在简历上写出连自己都不懂的技术名称,从而吸引面试官的注意。这样会让你得到面试机会,但是面试的时候很容易会露馅。你真正的水平,很容易就会被面试官了解。
7 面试压力大
很多程序代码写不出来,不是因为不会,而是在写的时候脑袋迷迷糊糊,忘记了代码内容。这是面试紧张的结果。所以说在面试的头一天最好放轻松,保证精力充沛。面试的过程中最好也以轻松心态面对。
对于三年经验的Android开发,算法、基础知识、数据库已经不足以衡量候选人的能力。面试中大部分的时间是在讨论项目经验和对架构的理解。所以要好好整理和反思自己做过的项目(参考 STAR 原则),多看些技术博客。反复研究和提炼以往项目中的架构设计思路。
8. 没有在纸上写过代码
这是求职者最容易犯的大错之一,绝大多数的编程面试都会要求职者写出代码,而不是在电脑上打出来。在电脑上打出代码,会有文本编辑器帮你纠正代码错误,而面试的时候,就不会有人帮你纠正了。用惯电脑的求职者,在面试的时候经常会出错误,所以建议求职者,最好亲自写一下代码。
(点赞后可免费获取)
我的学习笔记和每个阶段该学的知识都放在以下的学习思维脑图里了,因为是跨专业所以知识点很细,也算比较全,需要的可以自己保存下载,如果需要xmind版本的,自己添加学习知识点的,可以查看我的【GitHub】免费分享给你!(笔记是对应思维脑图的,每个知识点细节都有详细讲解,需要的同样查看我的GitHub我分享给你)
Framework可能涉及到的知识点包括:
Android 系统架构、Zygote进程启动过程、SystemServer进程启动过程、Launcher启动过程、WindowManager体系、WindowManager体系、Binder、Handler等。 从每个话题可以多角度切入到不同的领域,全面了解候选人对进程通信机制、常用组件、插件化方案的理解程度。此外高级UI、第三方框架源码理解也是必备的知识技能等。
framwork 精编源码解析
我整理了面试遇到的一些知识点,并画成了思维导图的形式。方便大家复习。
我的学习笔记和每个阶段该学的知识都放在以下的学习思维脑图里了,因为是跨专业所以知识点很细,也算比较全,需要的可以自己保存下载,如果需要xmind版本的,自己添加学习知识点的,可以查看我的【GitHub】免费分享给你!(笔记是对应思维脑图的,每个知识点细节都有详细讲解,需要的同样查看我的GitHub我分享给你)
路漫漫其修远兮,吾将上下而求索。不经历风雨怎能见彩虹。我们要时刻保持一颗清醒的头脑,随时为自己的目标而奋斗。其实,每个人心中都有一幅画,描述着理想、信念、追求、抱负;每个人心中都有一片森林,承载着鸟语花香的甜蜜、阴森恐惧的彷徨。一个人,若要获得成功,必须拿出勇气,付出努力、拼搏、奋斗、成功。机遇不同情眼泪的忧伤、不相信颓废的绝望,只期待爱打拼、时刻准备着的人。
离开是一种痛苦,是一种勇气,但同样是一种考验,是一种新的开端。 生如棋,那么,如何走活这盘棋,如何走好这盘棋,我需要的不仅仅是面对生活的勇气,更需要有一个科学的规划。不管将来无论遇到什么样的挫折,不论现在对未来多困惑,多迷茫,都不要忘了树立一个目标。俗话说,有志者事竟成。理想是通向成功的阶梯,它能够激励你克服各种困难,承受各种挫折,最终获得成功。没有哪个用人单位会认为你代表了你的学校或者你的专业。
没有“热门”的专业,永远热门的只有自己。古人说得好,“纸上得来终觉浅,绝知此事要躬行。”我一定要在今后学习工作中努力学习,虚心请教施展自己的拳脚,体现自己的价值。我希望在我将来踏上社会之后,能够尽快的适应社会,能够在社会上有一个不错的将来,这是我寒窗苦读这么多年来一直在追求的目标。对社会做出自己最大的贡献,也算实现了自己的人生价值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。