美文网首页Android潜修者Android 开发经验集Android面试
Android面试一天一题(Day 17:老外的面试题)

Android面试一天一题(Day 17:老外的面试题)

作者: goeasyway | 来源:发表于2016-06-29 13:38 被阅读4728次

2015年7月的深圳,炎热,有一个周末正在和同事聚餐,接到了Hans的跨洋电话要我帮他做一道Android面试题。Hans是西安人,粗犷风趣又有些较真,我2013年底来深圳第一个识认的同事就是Hans,正好他那租的房子有一间要空出来,于是我们便成了同事加室友。Hans用了很多时间学习英语,包括上班时间,所以我们一直很佩服他的“不要脸”。历经七次雅思考试之后终于如愿出国,现今在新西兰找了前端开发的工作,超低介买了二手宝马跑车,正在办理移民,关于他的种种便又被传为了佳话。

你在路上时常常会被别人当成笑话,但当你到达目的地时就会变成神话。

面试题:做一个完整的项目,提交到github。

老外的这首题并不难,简单说就是从网络上下载JSON数据,然后解析到ListView上展示出来。具体的要求如下:


但这样的题,其实又很难,因为面试官可以很容易地看出你对需求理解,对细节的把握。大家可以关注一下Guidelines部份,老外比较在意面试者是否会真正的使用Git,希望能频繁地提交Git,并有相应的提交说明。从这点来说,老外比较注重开发人员的团队协作能力的。

正因为Hans大部份时间都用在英语和抄贵金属上了,Android开发有些手生,我也就帮他把这个题做了。之前也有遇到的外国公司的面试,发现他们都比较注重实际的动手能力。一般都会让你做一个项目,或者在网络协同白板上写一些代码给他们看。

当时MVP这种模式(风格)比较流行,虽然这题很简单,但是我还是用了MVP模式去现实一个整体的框架,网络部份用retrofit,并结合rxjava进行异步处理。算是一种比较流行的搭配了,咱在外国人面前不能档次太低了,不是吗?

这个Demo工程我上传到Github了,建议大家先用自己的方式动手写一下再上传Github。

SimpleListDemo

注意:试题中的下载JSON的网址 “https://dl.dropboxusercontent.com/u/746330/facts.json” 貌似在国内打不开,我使用VPN是正常的。我下载了一份放在这个工程的根目:facts.json,无法访问网络的可以自己从文件加载。

运行效果

小结

有一次在成都的一个创业咖啡吧里参加一个软件沙龙活动,聊到如何辨认一个开发人员的真实水平。一个刚分享完6个月不拿工资与公司共度难关最后盆满钵满的哥们意气风发地说,我会让他上真机写代码!

不过我并不太认同这种做法来判断一个人的真实水平,但它可以做为一定考量,如可以明显的看出面试者对工具的熟练程度,是否遵守代码规范等。但是真机题的水平并不代表面试者就能合适以后的开发工作,正如一个后来参与我们讨论的阿里项目经理所说的观点一样,在面试时不一定非要看对方的技术能力,对方的理解力和解决问题的思路也很重要,而对理解力这方面的问题其实可以通过简单的交谈技巧来得到答案。

Even 原创
简书链接:http://www.jianshu.com/users/f9fbc7a39b36/latest_articles
转载请注明出处。

相关文章

  • MS(5):android之进阶篇

    七、自定义View MS思考:Android面试一天一题(Day 30:老外的自定义View面试题)MS思考:老外...

  • 面试题

    最全的BAT大厂面试题整理答案Android面试一天一题(Day 37:一套高级工程师的面试题)Android面试...

  • Android面试一天一题-goeasyway

    以下文章作者:goeasyway Android面试一天一题(1 Day) Android面试一天一题(2 Day...

  • 面试题系列

    jsonChao大佬系列面试题公众号面试题jsonChao腾讯面试题一天一道Android面试题「码个蛋」每日一题...

  • Android面试一天一题(Day 17:老外的面试题)

    2015年7月的深圳,炎热,有一个周末正在和同事聚餐,接到了Hans的跨洋电话要我帮他做一道Android面试题。...

  • MS(1):Android之架构篇

    一、架构相关 1、MVC,MVP,MVVM MS思考:Android面试一天一题(Day 33:Android开发...

  • MS(2):Android之基础知识篇

    二、组件 1、Activity----------1 MS思考:Android面试一天一题(3 Day):Acti...

  • MS(7):非技术问题篇

    一、GM问非技术问题汇总 MS思考:Android面试一天一题(Day 34:常去的Android相关站点) 说下...

  • Android面试题

    Android面试必备: (一)、Java面试题 (二)、Android面试题 (三)、Android高级面试题

  • MS(3):Android之机制原理篇

    五、重点机制原理 1、Handler机制 MS思考:Android面试一天一题(8 Day):Handler相关分...

网友评论

  • 郭某人1:这个小demo 结构很清晰
  • 7794dde0494b:我看了下代码,楼主写得很好,不过有几处小细节个人觉得没处理好:
    1.Service放在了实体类的包里面
    2.Activity和实体建个base更好
    3.rxjava访问网络那块其实做个封装更好,如果修改网络层,就要修改presenter的代码
  • 顺几:json
    可以直接使用国内的API市场上的各种免费API获取
  • hwj3747:再加个dagger2解耦就更好了
  • 8cd249b8ddf2:楼主一些总结真的醍醐灌顶
  • 签到钱就到:改一下FactRestService.java文件里SERVICE_ENDPOINT的链接和GET内容,就可以直接显示了 。
    final String SERVICE_ENDPOINT = "https://raw.githubusercontent.com/goeasyway/SimpleListDemo/master";

    /**
    * Use Retrofit to get JSON from URL, then parse it.
    * @Return Observable
    */
    @get("/facts.json")
  • ryanhoo:非常好的面试题,我看了 Github 上的代码,并提了一个 issue https://github.com/goeasyway/SimpleListDemo/issues/1
    goeasyway:@ryanhoo :+1:thanks
  • 李斯维:> 你在路上时常常会被别人当成笑话,但当你到达目的地时就会变成神话。
    这句话不敢更赞同!
    李斯维:@545a3c856c5f 这是作者的话,你得问作者才行
    李斯维:不能用引用?
  • cfc16b00d579:谢谢分享!
  • ff4728286854:错别字这么多,不想再看下去了
    ff4728286854:@goeasyway 哈哈:smile:
    goeasyway:@哈哈人生 原谅我语文是体育老师教的
  • timloong:这题出得好👍 果然是见过世面的~~头回认真看英文题的飘过~~
    ITIan:@android_tim 大学没过4级的我轻松看懂,看来经常翻墙比背单词读英语书好多了😂

本文标题:Android面试一天一题(Day 17:老外的面试题)

本文链接:https://www.haomeiwen.com/subject/tbrvrttx.html