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

发布于 2024-10-06 16:20:10 字数 101 浏览 0 评论 0原文

我很快需要面试一些移动开发人员职位(iPhone)的人。问题是我的强项是Java Web 开发。

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

I need to interview some people for a mobile developer position (iphone) soon. The problem is that my strength is in Java web development.

What questions should i ask without sounding like an idiot?
Also, what are valid answers to these questions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

生活了然无味 2024-10-13 16:20:10

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

  • 这里 OP 的答案类似于 “自动布局,自动布局,自动布局”。在房地产领域,有一句口号:“地段、地段、地段”;在iOS开发中它是“自动布局,自动布局,自动布局”。作为一个现实生活中的实际问题,假设您正在为某人寻找一份自由职业。在实践中,您要求他们展示的唯一一件事是他们是自动布局方面的专家,以及相关问题,例如在代码中使用约束等。

  • 您是否完全精通 PubNub、Firebase、Parse 和类似系统..今天的 baas 就是“iOS 工程”。今天学习 iOS,就是学习如何连接 baas;在 iOS 中做自由职业者就是做 baas 工作。

  • 理想情况下,您对 Android 开发也有一定的了解,您的 Mac 上是否至少有 Android Studio,并且您可以为您的三星构建一个简单的应用程序;以便您可以与同事互动。

这是旧的答案!...


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

他们是否完全熟悉这些十个关键点

  • XCode(理想情况下它是调试工具)
  • 界面生成器
  • 将应用程序提交到应用程序商店,在 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 时他们的脸亮了,那么您就准备好了。如果他们变得黑暗且看起来不舒服,继续前进......)

  • David 和 Brad 指出,也许与其他编程领域不同,iPhone 和 Mac 程序员通常需要对界面有一定的了解< /强>。您需要感受干净的 iPhone 界面,您必须知道如何使用 iOS 元素在 iPhone 上布局任何特定问题,从而增强 iPhone 用户体验。

WOW this answer is five years old. For 2015, I would just ask:

  • The answer for the OP here is something like "autolayout, autolayout, autolayout". In real estate, you have the catchphrase "location, location, location"; in iOS development it's "autolayout, autolayout, autolayout". As a real-life practical matter, say you're checking someone out for a freelance job. In practice, about the only thing you ask them to show is that they are expert with autolayout, and associated issues such as using constraints in code, etc.

  • Are you totally expert with PubNub, Firebase, Parse and similar systems ... baas "is iOS engineering" today. To learn iOS today, is, to learn to hook up to a baas; to freelance in iOS is to do baas jobs.

  • Ideally, do you have some familiarity with Android development as well, do you at least have Android Studio on your Mac and you can build a trivial app to your Samsung; so you can interact with colleagues.

Here's the old answer!...


If it was me, I would ask them...

are they completely familiar with these TEN KEY POINTS:

  • XCode (and ideally it's debugging tools)
  • Interface Builder
  • submitting apps to the app store, everything that involves (certs, blah blah)
  • in objective-C, using properties inside out
  • in objective-C, using delegates inside out
  • networking with ASIHttpRequest {this answer really was five years old!}, AsyncSockets, GameKit, Bonjour
  • total understanding of subclassing
  • basics like CoreAnimation and CoreData
  • "all the usual interfaces" on iOS like UITableView, etc etc
  • everything, from top to bottom, about memory management

I think that's a good starter list. (If I've forgotten anything obvious, it will soon be suggested.)

Note that item 10, memory management, is the critical item. You just can't build finished working production mobile device apps unless you are a memory expert on your platform. Furthermore someone who's really good at iPhone memory management is usually good at everything else on the iPhone. If I could only ask one thing that's it!

There are also a dozen little things you have to have down pat to develop for iPhone - for example "preferences," "accelerometer," "icons and splash screens," "playing sounds," and so on and on. You have to be able to do all those in five minutes, not five days of investigation. It's pretty tough really. Someone could probably list all these "minor must-haves".

A perhaps separate somewhat specialist issue is OpenGL. Depending on what you're payin' them and what you need, you may demand someone who is, furthermore, an OpenGL expert.

Is your company's field games development? If so, it is perfectly likely that, furthermore, as a "total" iPhone games developer, you may need someone who is, also, already completely expert with

  • Unity3D (for 3D etc)
  • the popular physics (2D) packages (eg chipmunk, etc)
  • one way or another, the server side of client-server systems

So that's that. A question is - what SPECIFICALLY are you going to be doing (in general terms)? ie, scientific computing, game development, marketing apps to get rich, in-house catalogs, hand-held clients, or?? If you tell us we can tell you what they need.

And finally overwhelmingly -- you would have to be able to see 3+ actual apps that they have done. With the iPhone, you really need to be able to "bring it home", writing good code snippets is not enough, you know. It's tough.


Here's the "stuff we forgot in the ten critical points" list beginning already!

  • Matt points out, they should be comfortable with "MVC" which stands for model-view-controller thinking. (This is kind of a fascist cult within the iOS world - we all adhere! We can't tell you about it until you are one of us. If their face lights up when you mention MVC, you're all set. If they get dark and uncomfortable looking, move on...)

  • David and Brad point out that - perhaps unlike other programming fields - iPhone and Mac programmers usually need a sense of the interface. You need a feel for that clean iPhone interface, you have to know how to layout any particular problem on the iPhone using the iOS elements that add up to the iPhone user experience.

峩卟喜欢 2024-10-13 16:20:10

限制自己评估那些你可以合理评估的特征。请另一个知识渊博的人来判断你无法判断的事情。

另外,你可以让候选人给你解释一下iPhone的开发,解释一下你对它不熟悉,并判断回应:候选人对此傲慢吗?候选人对此感到兴奋吗?应聘者能清楚地说明思路吗?候选人“有道理”?所有这些都是你可以合理判断的特征,它们对于任何职位都很重要。

再次强调,不要试图评估你自己不知道的事情。

Limit yourself to evaluate the traits that you can legitimately, well, evaluate. Ask another, knowledgeable individual to judge what you cannot.

Also, you can ask the candidate to explain you about iPhone development, explain that you are not familiar with it, and judge the response: candidate is arrogant about it? Candidate gets excited about it? Candidate can clearly explain train of thought? Candidate "makes sense"? All this are traits that you can legitimately judge and they do matter for any position.

Again, don't try to evaluate what you yourself don't know.

戒ㄋ 2024-10-13 16:20:10

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

可能要放入所述应用程序中的内容:

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

或者,使用一些基本的东西,例如:

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

一旦应用程序运行,请尝试旋转设备之类的操作。看看这个人的反应如何。他们知道如何修复任何错误吗?多快?如果他们不知道答案,他们会去哪里寻找解决方案?他们使用文档,还是只是从某处复制/粘贴代码?

不要试图让人们创建一个成熟的应用程序。换句话说,确保你坚持一些基本的东西。否则,就会完全适得其反。虽然压力有点大,但对于有经验的开发人员来说,没有什么是不能承受的。

Stick them in front of a machine running Xcode. Then, have them write a basic application and run it.

Things to possibly put in said app:

  • loading an image from a website while keeping the UI responsive
  • editing a table view; being able to remove a row with animation and reordering it

Or, go with something basic like:

  • a simple text editor
  • a calculator

Once the app is running, try things like rotating the device. See how the person reacts. Do they realize how to fix any errors? How quickly? Where do they look for solutions if they don't know off the top-of-their-head? Do they use the documentation, or simply copy/paste code from somewhere?

Don't try to have the person create a full-blown app. In other words, make sure you stick with something basic. Otherwise, it'll be completely counter-productive. It's a little bit of pressure, but nothing a developer with experience can't handle.

你怎么敢 2024-10-13 16:20:10

我认为要求查看一些示例代码(最好是在面试之前)仍然是一个值得的练习,特别是如果您要求面试者提供一个独立的示例。

虽然您不熟悉 Objective-C 的细微差别,但您仍然可以评估受访者评论其代码的程度,并且代码的非 Cocoa/UIKit 部分与 Java 或实际上任何其他代码都没有什么不同。其他面向对象语言。

除此之外,正如 @Arrieta 暗示的那样,最好避免语言细节并专注于解决问题的一般方法等。

I'd have thought that asking to see some sample code (ideally well in advance of the interview) would still be a worthwhile exercise, especially if you ask the interviewee for a self-contained example.

Whilst you won't be familiar with the nuances of Objective-C, you can still assess the degree to which the interviewee comments their code and the non-Cocoa/UIKit parts of the code won't be that different from Java or indeed any other OO language.

Beyond that, as @Arrieta implies it's probably best to avoid language specifics and focus on their general approach to problem solving, etc.

请叫√我孤独 2024-10-13 16:20:10

不要问他们一些你不太理解答案而无法深入研究的问题。那是自找麻烦(死记硬背和/或油嘴滑舌的工作)。

找到共同点,即使您必须回到编程或应用程序设计/测试/调试/QA 方法等基础知识。在您熟悉的领域深入研究他们的答案。只有这样你才会知道他们是否在给你胡言乱语。

iOS 开发人员应该已经在商店中有一个应用程序。在面试前看一下,并就您可能理解目标或底层技术(网络、图形等)的任何部分向他们提问,

然后您可以要求候选人解释您的共同点和他们的专业之间的主要区别你不知道的(移动设备等)。为什么 Objective C、UIKit、Xcode(等)的做法与 XYZ 共同点编码不同?看看他们是否能以一种让你理解的方式清楚地解释它(你可以稍后谷歌搜索答案,看看他们是否引导你走向正确的方向)。

Don't ask them questions about areas where you don't understand the answers well enough to dig in. That's asking for trouble (a rote memory reciter and/or a glib snow job).

Find common ground, even if you have to go back to basics of programming or application design/test/debug/QA methodology, etc. Dig into their answers in an area you understand well. Only then will you know whether they are feeding you gibberish or not.

An iOS developer should already have an app in the store. Take a look at it before the interview, and question them on any portions where you might understand the goal or underlying tech (networking, graphics, etc.)

Then you could ask the candidate to explain the key differences between your common ground and their specialty which you don't know (mobile, etc.). Why does Objective C, UIKit, Xcode (etc.) do things differently than XYZ common ground coding? See if they can explain it clearly in a way so that you understand it (you can Google the answers later to see if they led you in the right direction).

当梦初醒 2024-10-13 16:20:10

他们应该已经开发过一两个应用程序(即使只是为了他们自己),让他们解释它的结构。您应该能够明智地对类的排列进行评论,并希望他们了解一些 UML 以便能够描述类布局或调用路径。

They should have already worked on an app or two (even if just for themselves), have them explain the structure of it. You should be able to intelligently comment on arrangement of classes, and hopefully they would know some UML to be able to describe class layout or call paths.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文