移动开发人员面试的问题,非移动开发人员可以问

mko*_*yak 17 iphone mobile-phones objective-c

我很快就会采访移动开发人员(iphone).问题是我的优势在于Java Web开发.

我应该问什么问题,听起来不像白痴?此外,这些问题的有效答案是什么?

Fat*_*tie 18

哇,这个答案已经五年了.对于2015年,我只想问:

  • OP的答案就像"autolayout,autolayout,autolayout".在房地产中,你有"位置,位置,位置"的标语; 在iOS开发中,它是"autolayout,autolayout,autolayout".作为一个现实生活中的实际问题,假设你正在检查某人的自由职业.在实践中,你要求他们展示的唯一一件事就是他们是autolayout的专家,以及在代码中使用约束等相关问题.

  • 你是PubNub,Firebase,Parse和类似系统的专家吗?baas"今天是iOS工程".今天要学习iOS,就是要学会与baas联系; 在iOS中自由职业者是做baas工作.

  • 理想情况下,你是否也熟悉Android开发,你至少在你的Mac上安装Android Studio,你可以为你的三星构建一个简单的应用程序; 所以你可以与同事互动.

这是旧答案!...


如果是我,我会问他们......

他们是否完全熟悉这些十大要点:

  • XCode(理想情况下是它的调试工具)
  • Interface Builder
  • 将应用程序提交到应用程序商店,涉及的所有内容(证书,等等)
  • 在objective-C中,使用里面的属性
  • 在objective-C中,使用内部代表
  • 与ASIHttpRequest联网{这个答案真的已经五年了!},AsyncSockets,GameKit,Bonjour
  • 完全理解子类化
  • 像CoreAnimation和CoreData这样的基础知识
  • iOS上的"所有常用接口",如UITableView等
  • 关于内存管理的一切,从上到下

我认为这是一个很好的入门名单. (如果我忘记任何明显的事情,很快就会建议.)

请注意,项目10(内存管理)是关键项目.除非您是平台上的内存专家,否则您无法构建完成的生产移动设备应用程序.此外,一个非常擅长iPhone内存管理的人通常擅长iPhone的其他任何东西.如果我只能问一件事就是这样!

还有十几个小东西你需要为iPhone开发 - 例如"偏好","加速度计","图标和启动画面","播放声音"等等.你必须能够在五分钟内完成所有这些工作,而不是五天的调查.真的很难.有人可能会列出所有这些"小必备品".

OpenGL可能是一个独立的专家问题.根据您支付的费用以及您的需求,您可以要求某人是OpenGL专家.

贵公司的野外游戏开发?如果是这样,那么,作为一个"全面"的iPhone游戏开发者,你可能还需要一个同样已经完全专家的人

  • Unity3D(用于3D等)
  • 流行的物理(2D)包(例如花栗鼠等)
  • 这种或那种方式,客户端 - 服务器系统的服务器端

就是这样.一个问题是 - 你将要做什么(一般来说)?即科学计算,游戏开发,营销应用程序致富,内部目录,手持客户端,或?? 如果你告诉我们,我们可以告诉你他们需要什么.

最后压倒一切 - 你必须能够看到他们已经完成的3个以上的实际应用程序.有了iPhone,你真的需要能够"把它带回家",编写好的代码片段是不够的,你知道.这很难.


这是"我们忘记了十个关键点的东西"列表已经开始!

  • Matt指出,他们应该对"MVC"感到满意,这代表模型 - 视图 - 控制器思维.(这是iOS世界中的一种法西斯崇拜 - 我们都坚持!我们不能告诉你它直到你是我们中的一员.如果你提到MVC时他们的脸都亮了,你就全都搞定了.如果他们变得黑暗,看起来不舒服,继续...)

  • 大卫和布拉德指出 - 可能与其他编程领域不同 - iPhone和Mac程序员通常需要一种界面感.您需要了解干净的iPhone界面,您必须知道如何使用添加到iPhone用户体验的iOS元素来布局iPhone上的任何特定问题.

  • +1很棒的答案.也就是说,我不知道如果没有任何上述知识的人将能够评估答案,除了了解受访者是否对自己的经验/知识水平有信心. (4认同)
  • 我认为这些都是好点,但我肯定会将MVC方法添加到该列表中. (3认同)
  • 应该提到的另一件事是调查他们制作功能界面的能力.即使应用程序只是表视图的基本表视图,您也应该能够判断接口是可用还是非常糟糕.如果你自己不是一个很大的用户界面,那么只要确保你自己动手,实际使用它,就自己对整个事情的运作方式有所了解. (3认同)

Esc*_*alo 9

限制自己评估合法,好评,评估的特征.让另一位知识渊博的人判断你不能做什么.

另外,你可以让候选人向你解释iPhone的发展,解释你不熟悉它,并判断回应:候选人是否傲慢?候选人对此感到兴奋吗?候选人可以清楚地解释思路吗?候选人"有道理"?所有这些都是你可以合法判断的特征,它们对任何职位都很重要.

再次,不要试图评估你自己不知道的东西.

  • @Joe Blow:"这种关于兴奋的艺术品并没有让火箭发射",我不敢苟同.ATTITUDE是一个好的太空计划和一个糟糕的太空计划之间的区别.任何人都可以整合一个微分方程(通过正确的训练),但它需要球和态度来说"现在把这个狗屎送到火星并使它完美无瑕".良好的技术人员和伟大的火箭科学家之间的区别不是技术技能(给定最低基线)是热情,友情和态度,恕我直言. (2认同)

jos*_*aul 5

将它们粘在运行Xcode的机器前面.然后,让他们编写一个基本的应用程序并运行它.

应用程序可能放入的内容:

  • 在保持UI响应的同时从网站加载图像
  • 编辑表格视图; 能够删除动画行并重新排序

或者,使用基本的东西:

  • 简单的文本编辑器
  • 一个计算器

应用程序运行后,请尝试旋转设备等操作.看看这个人的反应.他们是否意识到如何解决任何错误?太快了?如果他们不知道他们的头脑,他们在哪里寻找解决方案?他们使用文档,还是只是从某个地方复制/粘贴代码?

不要试图让这个人创建一个完整的应用程序.换句话说,确保你坚持使用基本的东西.否则,它将完全适得其反.这有点压力,但没有经验的开发人员无法处理.