自我介绍
首先简单介绍一下自己的情况:本科山东大学,专业软件工程。没有任何项目经验,也没有任何科研竞赛经历,有参与过一篇SCI论文在投(不是第一作者,不过没啥用),当过几个学生干部,实习只有一个通信模块和商城模块的实习经历,其他的就没啥拿得出手的资历了。
面试经历 (总用时1小时)
是在腾讯会议上面试的,面试官听声音挺不错,简单调试了一下就开始面试。
简单自我介绍+讲项目
首先闲聊了一下项目一些技术无关的问题,然后开始讲项目技术难点。
我负责的是即时通信模块和商城模块,但是即时通信的实现有严重的漏洞,所以面试官问了如果重新来,我会用什么架构。
答:websocket长链接,然后说了一个简单的实现架构
-
消息发送失败如何处理 说了用户离线情况的处理
-
本地消息如何存储 用了本地数据库
-
有哪些表 消息到达时如何提升查找效率
-
然后提到了消息接收Service的保活
-
多进程保活( 一对一情况 一对多情况)这一块不是很清楚
面到这里已是大汗淋漓,严重怀疑我参加的不是一面面试
面试官也看出我的难处,于是安慰我没事,说不出来没关系只是刚好提到就顺便问一下,心有余悸继续面试。
-
Activity的生命周期
-
onCreate中的Bundle参数
-
Activity启动模式
-
说说Window
-
事件分发机制
-
实现一个自定义View,放一个图片可以单指拖动,双指缩放(双指手势不是很熟,图片相关也不熟)
-
说说AIDL
-
线程池
-
浏览一个网页的过程 越详细越好
-
三次握手 四次挥手
-
get post区别
-
算法题 猴子吃桃子每天吃一半再多一个,第十天剩1个,问一开始有多少个
小结
回过头看仍然心有余悸,面试官也说我理论知识还需巩固,同时实践看得出比较少。
自己也认为知识的掌握停留在表层,一面都战战兢兢,到了二面深入可能会撞板,接下来多用心吧!
看了网友分享的这篇面经,感触很深,首先他认识到自己有很多做的不足的地方,比如不够理论知识不扎实,项目实战经验匮乏。有句话说的好“和优秀的同事一起共事,你也会变得优秀”,腾讯一面感觉让他窒息,但是生活就是这样的,如果你不努力,总会被人超越,久而久之机会懈怠,永远成为金字塔底端的人;其次要学习好的品格,比如谦逊、理智;还有要学会选择,选择行业,选择公司,选择团队,无论是工作还是生活,我们总会面临各种选择,选择没有对错,但是会选择,才能选择适合自己的方向,自己喜欢的方向,才能走的更远。
分享读者
笔者2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,19年5月份进了字节跳动一直到现在。
被人面试过,也面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!接下来分享一份大厂面试的心得。
1.关于日常学习
我们应该多找些好的开源网站,学习论坛,多学些和自己专业、所处行业、所做领域、自己喜好相关的知识。现在不都在提终身学习嘛,找到好的方法,才能做到终身学习,或者说才能更有效的终身学习。
要学的内容,完善基础,设计模式,算法,和工作相关的内容深度挖掘。
2.关于面试准备
(1)日常生活学习英语,好的工具:薄荷阅读、百词斩、流利说
(2)提前半年准备笔试面试,刷题、基础知识、高阶知识准备,LeetCode + 《剑指offer》
(3)简历,个人基本信息、博客地址、GitHub地址、联系方式(手机、邮箱、微信号);工作经历,一般倒叙,项目简介明了,SMART原则;专业技能,对于工作几年的朋友,主要写些和项目相关的内容,面试官更看重的是这个。简历怎么写,可以参考一下个各种开源网站
Android面试题大全已在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
3.关于锻炼身体
我之前公司老板说的很对,先别去考虑锻炼带来的好处,找一个自己喜欢的运动去做,只有这样才能够坚持下来!
- 好的态度和习惯
谦逊,时刻记住无论自己的水平有多高,都要保持谦逊的态度,及时你成为了某个领域的NO.1,如果不保持这种态度,你也很难保住你的位置,骄傲不会让人进步,不进则退。永远保持一种学习的心态,因为周围总会有人比你强!
努力,同为程序员,加班是家常便饭,我原来总会给自己找理由说没时间,但是看到我身边很多同事的经历,他们也要加班,但依旧能抽出时间学习,锻炼,所以时间真的是挤出来的,说没时间真的是借口,不是没时间,只是懒得做,而懒惰会上瘾,不过只要你相信,勤奋也是会上瘾的,既然都会上瘾,那还是勤奋一点好!
理智,做重大决定之前,先问自己三个问题:要什么?为什么?怎么做?只有头脑清醒,才能做出高效的判断。我在面试过程中,和后来的选择,在我看来也是比较理智的,未必一定正确,但是相对而言更有效率。成功对每个人来说都是概率问题,不努力不是一定不成功,但是努力会提升成功的概率!
- 学会选择
1.职业规划(技术),三大方向:技术经理、架构师、专项领域专家
2.不同工作年限薪资、平台、成长的优先级
1-3年,平台>=成长>薪资
3-5年,平台>=薪资>=成长
5-10年,平台=薪资>成长(这个阶段也可以叫做规划)
3.跳槽选择,马云爸爸名言:要么钱没给到位,要么心里委屈了!跳槽三大原因:钱、价值实现、机会
4.大小公司问题,能去尽量去大公司,好处:1.镀金;2.优秀人才多,可学东西多,优秀人才能更促使自己进步。当然并不是说所有大公司都比小公司好,这个就要看选择了,相比而言同等条件下,优秀的大公司,要比优秀的小公司更有竞争力。
- 关于平台
关于平台感触到时真的很多,我本人经历和和绝大部分程序员起点相同,我从毕业开始就在小公司,也看到了很多小公司存在的问题。
1.小公司人少,人员流动比例大(因为人少,很多人抱着提高经验去的,待的多数不会太久),相对比较容易成为公司还算可以的人,而一般对自己实力都会有比较清醒的认识,知道自己还差的远,而优秀的公司是由优秀的员工组成的,只有和优秀的人再一起才更有可能变得优秀,近朱者赤近墨者黑嘛。
2.好的平台笔试面试会有一定深度,以为对人员有一定要求,而小公司在开始初期,多数存在招人难的问题,如果要求高就更难,这是个很难解决的问题。
3.另外我也见证了抖音近两年的发展过程:技术上,不同时期选型、迭代、沉淀和更替;项目上,模块化到组件化再到插件化;效率上,一直探索最大效率的协同开发。其实这些内容,每个公司平台都会宣称会做、在做、要做、能做,但是平台和个人一样,都是想变好,但是最终成为行业霸主的却始终是少数,就像牛人也就那么些而已,抛开其他因素不谈,一个公司平台,对某件事的意念、毅力、迫切程度起很大作用,都想做到高效、高质,但是总是有做到好的,做到不好的,值得思考!
本文已在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
转载:https://blog.csdn.net/AndroidAlvin/article/details/112861241