程序员怎样优雅度过35岁中年危机?深夜思考
前言
2020年是转折的一年,上半年疫情原因,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想提前准备刷下题。接下来分享一份我的字节跳动、阿里巴巴、百度、小米等大厂面试经验和总结。(文末附真题解析大全)
- 阿里(被拒)
- 字节跳动(offer)
- 小米(offer)
- 手百 (offer)
面试题目
1.一个创业公司
(发现问下来几乎全是java基础知识,几乎没有android知识)
先是笔试:
- 生产者消费者模型用线程方式实现、按元素大小拼接两个链表
- 同步和异步的区别
- 阻塞和非阻塞的区别
- 泛型擦除
- 集合中线程安全的类和非线程安全的类(SparseArray和ListArray的区别,SparseArray怎么存数据、取数据)
- Gradle插件怎么做
- https怎么实现防抓包
- 封装第三方库等等;
2.一个五六百人的民企
- 线程池
- 消息推送(自己做一个消息推送怎么实现)
- Exoplayer相对于系统的MediaPlayer有什么优点
- h5面面加载缓存,和原生怎么传递数据
- MQTT和XMPP有什么区别,为什么会有那么多协议
- https的原理,中间人攻击
- 怎么中断一个线程
3.大厂
(多家公司面试题汇总,一些我认为的简单或是常规问题就不罗列了,全是我自己之前没怎么关注的问题,所以有时第三方库烂大街的原码分析要看,但有些关键点,其实很多博文可能都没分析到,需要自己多想想,自己主动去思考)
- AsyncTask原理,在子线程中定义AsyncTask实例可不可以,为什么不可以呢
- OkHttp原理(说了那些拦截器)怎么实现多路复用的(这个主要从https实现多路复用的原理上谈,用了二进制分帧,那okHttp其实就是按分帧来读取,具体可以自己看看相关博客)
- Handler的机制,android内部是怎么实现发送延时消息,(一开始以为是用个类似于Timer之类的定时任务,后来才知道是用系统开机时间+延时时间得到一个时间T1,当手机当前时间到了T1的话,就会把消息发送出去。但有可能UI线程被阻塞了,所以到了T1时间,也不能确保100%这个Message被发出去的)
- 性能优化减少apk体积,怎么减小so包的体积呢
- 怎么给一个应用加固
- ANR的原理,怎么从trace.log中找到ANR的原因及出现的地方(找到main thread),如果只是在主线程中Thread.sleep(10S),会不会出现ANR
- JNI层的Crash怎么定位(通过ndk中相应的工具addr2line ndk-stack等可以定位到行)
- 广播为什么能作为四大组件,有什么特殊之处(经面试官提醒,能实现一对多通信),本地广播的实现原理
- Android中设计Fragment的好处,那有了Activity为什么还要设计出Fragment来呢(解耦)
- ViewStub为什么能实现延迟加载(它没有进行测量和绘制,只在调flate或是setVisibility时才会加载进布局)
- Binder怎么实现进程间通信的,怎么注册服务的。。。。
。。。。还有很多题,就不一一举例了,只能说给自己一个教训,很多东西看深点就不会多问一点就不知道了。
4.创业公司想招团队负责人
- 做过哪些性能优化,Leakcanery的原理,怎么检测内存泄漏的
- android的新技术你用了哪些
- 你认为你应用中做得比较nb的地方有哪些,你认为你项目中解决了哪些技术难点等等。。。
5.我认为反常规的面试
1)直接拿着我做的公司某个应用开始一通批判,觉得我自己对自己做的应用都不负责任,还有什么理由来应聘你,问你认为你最善长做的是什么,比如UI、功能、性能优化等,你要说UI吧,你这UI做得怎么怎么的,你要说性能吧,应用性能也确实一般般,让我觉得我没有啥善长的。回来老公说我们公司害了我,因为我现在的公司做的应用要求太低了,能用就行。但是别人对我要求松,我得对自己严要求、高标准〜〜〜〜
2)上来弄个类似于脑筋急转弯的题
Set<Short> stack = new HashSet<>();
for(Short i = 0; i < 100; i++) {stack.add(i);stack.remove(i-1);
}
System.out.println(stack.size());());
我以为会抛异常,面试官问要是不抛,又会输出什么,我想着输出1呢。后来自己下来试验了一把,发现输出100,让我百思不得其解。后来百度搜索,经别人提点才知道因为i-1这里用到了隐式类型转换i-1会转成int型的减法,所以在remove时,根本没有那个对象,所以无论怎么调stack.remove(i-1)都不会有元素移出,我不得不感叹面试官设计的陷阱。后面又问了两个矩阵传送门问题,应该有取巧的办法,可能我脑子真是太笨了,最终也没有想出来。
面试感言
自己的总体感受是:现在市场大环境不好,各大互联网招人的部门都是些边缘部门或是新设部门,有些甚至是光杆司令或是完全全新的部门,从0个人开始招,先招团队负责人等。现在市场是供过于求,有不少被公司裁掉的员工,在这个节点找工作,导致楼主去面试,面试官一上来就问你现在是离职态还是在职。如果自己不够优秀,面试官有很多选择,是不愿意付高价来招聘你的,按道理什么时候都这样吧,只是现在有点过了。市场供过于求,应聘公司有得挑,不够优秀,可有可无的人,一般会倾向于压低工资。
通过这轮面试,让我知道了自己的差距,自己的研究的东西太浅薄了,而且没有自己的优势或者说专长。而且自己作为一个女程序员,发现HR面时很吃亏,HR好像提前给你考虑了各种因素,结婚了是吧,有没有小孩,有小孩你得照顾小孩吧,我们这里很忙的。即使你再想证明自己,工作方面不会受影响,但他们还是不想冒这个险,就像我当年校招找工作,去自己老家某银行面试,省行不要女生,可以去自己家里的分行。因为你要结婚,要生孩子,要休产假,要照顾家庭。我什么都没说呢,就把我给否完了,给我先下个定义,难不成想让女程序员都不要结婚不生娃么,你也有媳妇啊。
总的来说,自己劣势挺明显的,没有在某方面有很深研究,没有什么优势,知识面的广度和深度都不够,这方面要加强,同时作为一个有娃的女程序员,已经被别人否掉了50%了,所以必须从技术方面加强吧。
工作我还会继续找,人都是追求上进的,有好机会还是会考虑挪窝的。我不想在我30岁就干一份可以养老的工作,技术我也会努力去提升,愿我和大家都会有一个更好的未来。
总结
最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
相信它会给大家带来很多收获:
上述【高清技术脑图】以及【配套的架构技术PDF】可以关注我免费获取
Android学习PDF+架构视频+面试文档+源码笔记
高清技术脑图】以及【配套的架构技术PDF】可以关注我免费获取**
Android学习PDF+架构视频+面试文档+源码笔记
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
程序员怎样优雅度过35岁中年危机?深夜思考相关推荐
- apm性能监控系统,程序员怎样优雅度过35岁中年危机?大厂内部资料
其实不是Android不行了,而是你跟不上了 我的很多读者都在反馈说,现在一个岗位可以收到的简历数,是前几年的几倍.我们必须承认,僧多粥少就是 Android 行业的现状,别说初中级工程师,就是高级工 ...
- Android高级架构师系统学习——Android-音频可视化,程序员怎样优雅度过35岁中年危机
Android Visualizer 系统 Visualizer 提供了方便的 api 来获取播放音频的波形或 FFT 数据,一般使用方式是: 用 audio session ID 创建 Visual ...
- 程序员应该如何应对35岁中年危机?
关注"小争哥"微信公众号,回复PDF获取前Google工程师的算法学习和面试经验 我们经常听程序员聊35岁中年危机,但很少听其他行业的人,比如医生,提起这个话题.也有很多从业的前辈 ...
- 程序员只能干到35岁?华为高管:年龄不是问题,关键是能力
程序员只能干到35岁?群体的年龄焦虑备受关注 前几天,一则新闻,上了微博热搜第一,抖音的关注度超过百万. 一个39岁的互联网大厂工程师,被公司裁员,却还是要面对一万五的房贷,家里的茶几.桌子.甚至衣服 ...
- 程序员卷起来,35岁怎么惨,但怎么还这么多钱?
最近好多人在讨论怎么看企鹅校招这事儿. 我能说啥?确实馋得慌啊,我当年毕业的时候咋就没这好事儿. 校招给40W,还有每月4K的房补,就连南山区的房东们看了都羡慕,然后留着口水计划怎么涨房租. 果然地产 ...
- 女程序员也会有35岁的危机焦虑吗?
提起IT行业的时候大家都会想到,对于大多数程序员而言,35岁是个比较难过的槛,很多人到了这个年龄就面临着淘汰,因为IT行业的更新迭代是比较快的,包括工作强度,不管是生理上还是说学习速度都肯定是不如从前 ...
- 大龄程序员该何去何从,35岁后的路在何方
提到程序员,大家的第一反应可能都是高薪水.福利好,但是作为程序员,他们同样有自己的焦虑,都说程序员是吃青春饭的,在企业里你很少会看到35以上的程序员,难道35真的是程序员的一道魔咒吗? 35岁以后的程 ...
- 程序员如何优雅度过一生的15个建议
首先,我要说明一下精彩的职业生涯应该是什么样. 他们不是这样的一个线性图形,不是每过一个月你就会有对应的成长.(就算是普通的职业生涯也不会这样.你不会每个月都有提升.每个月你都会变的好一点,但是每次有 ...
- 程序员如何优雅度过一生?
转载于该网页http://www.imooc.com/article/4847 现在开始: 编程: 1:写代码,写很多代码 在学校里会学到很多理论知识,但是在实际的使用练习上却不多.尤其在顶尖的大学. ...
最新文章
- python高级网络编程_python高级编程——网络编程(二)
- ceph 代码分析 读_分布式存储 Ceph 的演进经验 SOSP 2019
- oracle雾化试图_Oracle创建物化视图
- 【GOTC 预告】王思宇:从 OpenKruise 看云原生应用负载发展趋势
- flask第一章:项目环境搭建
- 二分查找、变形及应用
- Android bootchart(二)
- 消息消费轨迹存储效率优化
- hashmap什么时候由链表转为红黑树
- java重置radiobutton的选项_动态添加试题选项按钮 radioButton(一)
- Hbase的table存储详解
- ibm vios_使用IBM地理分散弹性解决方案在生产现场保留冗余VIOS配置
- WEB渗透测试(一)被动信息收集3(RECON-NG)
- Leetcode 1348:推文计数
- Java函数的基本知识
- alpine linux 安装教程,Alpine linux硬盘安装
- 图像处理:分水岭算法(图像分割)
- 使用Logistic回归预测贷款违约
- 小米开源监控系统监控mysql_小米开源监控 Open-Falcon 3.0 部署
- html点赞代码java_17种 HTML5字体图标点赞动画特效源码