黑马程序员技术交流社区

标题: 知己知彼,一招制敌,拿高薪就是这么简单! [打印本页]

作者: 就业高冷派    时间: 2016-12-8 05:44
标题: 知己知彼,一招制敌,拿高薪就是这么简单!
本帖最后由 就业高冷派 于 2016-12-8 05:44 编辑

知己知彼,一招制敌,拿高薪就是这么简单!

挑战公司: No.1:西安种子科技
公司地址:西安高新技术产业开发区高新六路26号融信科技园密斯楼一层
面试时间:11 29 15:00 PM.
面试结果:顺利拿下 Android 高级开发工程师,9k offer

距离农历新年还有两个月的时间,可是作为Android刚毕业的学员们,会有多种顾虑,比如:软件公司年底不招人啦,过完新年再去大城市找工作了,好多公司都要求有三年经验,感觉自己学的不好怕面试失败等.为此超哥就特意利用空闲时间在拉勾网和智联招聘网上投了不到十份简历,简历的内容都是咱学生的简历修改的,简历中的技能点都是老师讲过的,两年经验,本科学历.差不多过了三天收到了种子科技有限公司的面试邀请.

面试前传:

在收到面试邀请后,我就在网上查了他们的官网,了解到他们是做AR,VR技术的新创业公司.刚进行完天使轮融资,由此我推测该公司应该不差钱,关键是面试应该会被问到JNI技术,另外从招聘简章中看出他对人才的要求是具备扎实的java基础,能够独立开发,懂数据结构和算法,有做项目的经验等.于是在一个万里晴空,冬日里的暖阳晒的人暖暖的,只想坐在阳台左手一杯热茶,右手一本闲情小说(在雾霾严重的西安这种天气真心的很难得)的下午,我打印了份简历就单刀赴会去面试.公司位置不算难找,主要是我在他们公司的官网上搜索到详细地市,然后百度地图搜索公交路线,并将搜索结果手机拍照,方便手机不联网情况下也能快速查看.





到了他们公司前台后,就给前台美美说我是来面试的,她问我是收到邀请了吗.我说是,然后前台美美就说您稍等先坐会儿,我去跟我们技术说一声,您是要喝茶水,咖啡还是白开水?(我心里想,哎呀,不错哟!两个您字叫的心里暖暖的,本来说喝杯咖啡的,可转念一想只要是水都行,呵呵!),于是要了杯白开水就坐在沙发上等着.差不多过了两分钟,前台MM带我到会议室后说技术马上就来,话音刚落,进来一个年轻小伙子,看着年龄不大,我客气的对他寒暄说:”你好”,他说:”没事,你坐”然后就开聊:




面试过程问答精选::

Q:你先做个自我介绍吧?

A:我就简单做了自我介绍,就不在这里多讲了.只是提醒大家在自我介绍的时候,不需要讲太多,条理清晰明了就可以.尽量包含,姓名,年龄,籍贯,工作经验和能力等,扬长避短你懂得!


Q:看你简历做了好几个项目,都上线了吗?

A:都上线了,而且下载量也都过万,特别是最近做的这个项目,听老板说海外市场反响很好,用户下载量突破了上百万.作为团队的一员,我感觉挺有成就感的.


Q:哦,那用户量的确挺多.做海外市场,那应该做了语言适配吧

A:是的,我们的应用做了简体中文,繁体中文,英文,韩文,日文,还有阿拉伯语等差不多十多个语言适配,都是在资源res目录下创建不同的语言包,我们把要翻译的语句交给运营,运营将翻译好的文字给我们,然后写入到相应的语言String.xml文件中.我们的软件会根据手机系统的语言自动适配相应的语言.


Q:你简历中提到你这个应用是手机文件管理类的软件,你是如何获取手机中的图片和联系人信息的.

A:哦,这个我们用到了Android中四大组件之一ContentProvider,通过看系统的源码,我能够查到手机系统中的照片和联系人数据库提供给调用者的Url,通过UriMatcher匹配到相应的Url,然后使用ContentResolver对象相应的增删改查的方法对数据库进行访问和操作.


Q:你们这个应用需要访问网络吗,用的什么框架?

A:之前项目中用的是Volley,谷歌提供的框架,当用户访问服务器频繁且数据量不大的情况下使用.我在项目中对它进行了二次封装,将View层和Controller分离,在Controller层进行网络请求,并对数据进行了二级缓存的处理.最近的项目中用的是okHttpUtils,感觉这个很好用,链式编程,指定Url和参数并调用执行的方法,就会有两个最基本回调方法,一个是onResponse表示请求成功,一个是Error表示网络访问失败.数据请求成功就将Json数据存入到对象中,通过消息机制,在主线程做相应的逻辑,如果是失败,给用户友好的提示.


Q:你的项目中的图片是怎么处理的?

A:哦,这个我们在项目用的是ImageLoader,它有强大的缓存管理机制,但是有个致命的缺点就是加载网络图片资源使用的是异步任务,当ListView中有convertView复用后,快速滑动ListView有时候会出现图片加载异常或者错乱.所以现在我们项目中用的是Glide,它是一个高效开源的图片加载框架,它功能很强大,可以加载gif图片,并且做了很好的缓存处理和图片压缩优化,具有代码简洁使用方便等优点.


Q:线程间通讯你们用啥技术?

A:我在代码中最常用的是Handler消息机制和runOnUiThread这两个API.


Q: EventBus你有用到过吗?

A:哦,这个技术我有了解过,也写过简单的Demo,它有事件订阅者和时间发布者,同时有四个方法的回调,用来指定事件是优先运行在主线程还是在子线程中.方法中的参数Event就是事件发布者发布的事件,可以拿到该事件做相应的逻辑.


Q:看你还集成过友盟SDK,你们是用它来做什么的呢?

A:我们在这个项目中用友盟统计做了异常收集和版本更新,同时,我们还对用户常用功能页面进行了数据统计和分析,了解用户的操作偏好,便于把握我们产品的更新迭代的方向.


Q:你之前做过JNI的开发吗?

A:JNI没有做过,这个是Java和C代码互调的技术,因为Android是基于Java语言的,而C代码可以驱动硬件操作内存,常常开发一些智能家居设备这个技术用的比较多一些,C语言不懂,只会用Java语言调用C写的本地方法.


Q:你这个项目中用到了哪些Android5.0哪些最新的技术?

A:谷歌在Android5.0的时候,提出了他的画面分层设计理念和配色方案,同时集成了Material Design包,其中包含了很多很强大很好用很漂亮的控件,比如: RecyclerView、CardView、ToolBar、DrawerLayout、FloatingActionButton、Snackbar增强了和用户之间的交互体验.


Q:看你项目经验挺丰富的,行吧,你稍等,我给我们老大说一声.过了几分钟,来个了个头不高年龄稍长的男的,上来就问我懂算法不?

A:算法不太懂,就只知道一些数据结构的概念,比如:树,队列,栈,链表,数组等,之前开发用到过快速排序(根据招聘简章要求,面试前提前看了下)等.


Q:没关系,Android开发中用到算法不多,当然你懂更好,不懂的可以学么.我们这个AR技术牵扯到一些算法,你了解AR不?

A:不…了…解,装作傻傻的样子.面试前在咱们的官网上看到然后百度了一下,但还是没有搞懂什么是AR什么是VR.


Q:…………………………..

哈哈,然后所谓的技术老大就开始给我讲他们做的技术,并给我展望了一下他们未来发展的方向,以及跟京东等知名大企业合作的经验等.我要做的就是面部保持微笑,听他讲的滔滔不绝.

最后给我介绍他们的公司人员匹配即员工薪资待遇等,问我可以接受加班等,我打了官腔敷衍一下说:”可以的,软件开发没有不加班的,但也别让每天都加班吧”,他说:”不会的,另外,我们这边加班都是有加班费的”等等.然后说:”你是否决定过来可以考虑下,稍后HR会给跟你沟通.我说好的.


面试后传:

第二天早上9.30左右,HR美美打电话过来,问我是否愿意过去,我推辞说有另外一家公司给我更高的薪资,HR美美然后就晓之以情,动之以理让我去他们公司,我说考虑后给她回复.急的HR美美在电话里说”别考虑了,你就来嘛”,我当时心里想”女施主,请你自重,我可是个正经人哈,嘻嘻嘻!”然后,然后就是没有然后了.



作者: FAN8210    时间: 2016-12-8 14:33
厉害了哇塞





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2