我的情况
2002年毕业。 2002~2005做售后技术支持,2005离职转做软件开发。 2009开始做项目经理,后来做部门经理,期间还有50%左右精力在技术上。 2014.10~2014.11,项目总监,偏重管理,脱离技术细节。 2014.11~2014.12,主动回归开发岗位,进入C3公司。 2014.12~2015.11,离开C3,以技术合伙人身份与朋友创业,技术总监。 2015年11月25号解散团队,重新开始找工作。
下面把我面试三个公司的关键节点和问题列出来回顾一下,也许对大家也有帮助。我最终入职的单位将从这三家中产生。如果你不耐烦看面试问题,也可以跳到最后看我总结的如何准备面试。
如何准备面试
虽然我面试过很多人,也被很多人面试过,但我个人不是特别擅长面试。这次求职,因为年龄大了相对慎重,想得稍微多了一些。我留意了面试过程,也做了一些反省,收获了一些个人经验,和大家分享一下。
下面几点对面试很重要:
- 个人的职业定位
看我的经历,每家都逃不掉这方面的问题,如果自我定位不清楚,面试时肯定出问题。
- 个人与企业的匹配度
这方面的准备是必须的,你应聘一个职位,要了解企业对这个职位的要求,要看自己的知识、技能、经历与企业的要求契合的点在哪里。
多数企业招人时首先考虑的是人职匹配。假如你挖掘不出来匹配的点,可能简历关都过不了。
- 了解企业
要尽可能多了解目标企业,比如它所处行业的状况,它的产品,它的文化,它的竞争对手……越多越好,别怕花功夫。我面试C1时就忘掉了一些产品信息……
面试官会更倾向于接受对自己公司有了解的求职者,这说明你的意愿强,而你愿意了解,了解了之后还来,还说明你和公司的匹配度相对较高。
- 个人形象
颜值不可更改,衣料好坏也不重要,整体上做到干净、整洁即可。记住,没有人有义务透过你凌乱邋遢的外表去发现你的内在,也没人有你爸妈那份耐心。
- 心态调试
心态调试有两个方面。
一方面是对多久找到工作的预期。 因为经济或他人的期望带来的压力,求职者容易焦急,失去平常心态,产生胡乱先找一家干着的想法,此时面前有根稻草都可能被当做橄榄枝,很容易导致选择不慎,害人害己。露水夫妻很容易分开,代价是非常高的。我的想法是要沉下心来,慢慢来,坚信一切都来得及,美好的相遇一定在等着自己。
另一方面是关于企业和求职者关系的。 这里没有谁强势谁弱势,企业和求职者是双向选择,不必紧张也不必焦虑,保持从容淡定的心态才能更好的展现自己。
而对于像我这种过了35岁的程序员,还有年龄带来的问题需要调试。我是相信,经验和阅历同样产生价值,技术专家也可以像老中医那样越老越吃香。
一些常见的HR面试问题,和需要注意的细节我都整理在了我的【GitHub】有需要的可以查看领取!
多数面试题分析
Activity
- 生命周期及横竖屏切换时生命周期
- 启动模式
- 内存不足时,怎么保持Activity的一些状态,在哪个方法里面做具体操作?
- 介绍Activity、Service、Broadcast、BroadcastReceiver、Intent、IntentFilter
- 怎么在启动一个activity时就启动一个service
- 同一个程序不同的Activity如何放在不同的任务栈中?
- 如何将一个Activity设置成窗口的样式
- 如何退出Activity?如何安全退出已调用多个Activity的Application?
- Activity中如何动态的添加Fragment?
- activity的启动过程 参考
- 不用Service,B页面为音乐播放,从A跳到B,再返回,如何使音乐继续播放?
- windows和activity之间关系?
- 一个activity打开另外一个activity,再打开一个activity?回去的时候发生了什么操作?
- onActivityResult(int requestCode, int resultCode, Intent data)方法的用法;
Service
- 注册Service需要注意什么
- 什么是Service以及描述下它的生命周期。
- Service与Activity怎么实现通信
- Service有哪些启动方法,有什么区别,怎样停用Service?
- 什么是IntentService?有何优点?
- Service和Activity在同一个线程吗 main 线程 UI线程
- Service里面可以弹土司么
- 如何启用Service,如何停用Service
- 什么时候使用Service?
- 说说Activity、Intent、Service是什么关系
- AIDL,两个android应用间的互相调用方法?
- AIDL的全称是什么?如何工作?能处理哪些类型的数据
编程算法题
- 冒泡排序
- 求素数
- 单例模式——写一个Singleton出来
- 二叉树遍历
- 最长不重复子串(最长重复子串)
- 有一个一维整型数组int[]data保存的是一张宽为width,高为height的图片像素值信息。请写一个算法,将该图片所有的白色不透明(xffffffff)- 像素点的透明度调整为5%。
- 写一个求递归程序 求54321
- 请使用java或者C++实现反转单链表
- 生产者、消费者
- 死锁(同步嵌套同步且锁不同)
- 写一个多线程实例代码;
- 写一个方法,交换两个变量的值?
- 给最外层的rootview,把这个根视图下的全部button背景设置成红色,手写代码,不许用递归
- 给一串字符串比如abbbcccd,输出a1b3c3d1,手写代码(注意有个别字符可能会出现十次以上的情况)
- 一个序列,它的形式是12349678,9是最高峰,经历了一个上升又下降的过程,找出里面的最大值的位置,要求效率尽可能高
- 二叉查找树的删除操作,手写代码
- 二分查找,手写代码
- 有海量条 url,其中不重复的有300万条,现在希望挑选出重复出现次数最高的 url,要求效率尽可能的高
- 一篇英语文章,去掉字符只留下k个,如何去掉才能使这k个字符字典序最小
- 弗洛伊德算法和 Dijkstra算法的区别?复杂度是多少?讲讲 Dijkstra算法的具体过程
- 反转字符串,要求手写代码,优化速度、优化空间
- 给出两个无向图,找出这2个无向图中相同的环路。手写代码
感悟
1、在中国你千万不要以为学习技术就可以换来稳定的生活和高的薪水待遇,你更不要认为那些从事市场开发,跑腿的人,没有前途。
2、在学习技术的时候千万不要认为如果做到技术最强,就可以成为100%受尊重的人。
3、你更不要认为,如果我技术够好,我就自己创业,自己有创业的资本,因为自己是搞技术的。
4、技术仅仅是一个工具,是你在人生一个阶段生存的工具,你可以一辈子喜欢他,但最好不要一辈子靠它生存。
5、每个人的技术都是有天花板的,你的技术到了天花板的时候,你的收入能否满足你,这个是需要考虑的。当然,你家里有矿或者北京二环内有几套房,那你完全可以把技术当爱好。
最后
我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了7、8年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。
其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。
不断奔跑,你就知道学习的意义所在!
小福利
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。有**【Android架构视频+BATJ面试专题PDF+核心笔记等资料】。希望能够帮助到大家提升技术。如果大家想要获取的话,可以**简信我【666】免费获取哦~
高级UI,自定义View
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
如果需要PDF版本可以在群文件夹里,自行领取!
-
自行下载直达领取链接:【点击资料下载】