順便打個廣告,敝司 iOS 研發工程師崗位還有一個位置,要求和 隔壁 topic 差不多,只是薪資雙倍而且可遠程。
感覺選的已經都是基礎得不能再基礎的題了,只有幾個為了考察面試者的搜索和學習能力稍有些偏。因為項目剛剛改用 Swift 用不上這些題了所以順便發出來給 V2EX 社區的各位參考下意見。題目主要考察以下幾點:
下面是面試題:
BCLayoutAxis
with following values:For debugging, we need string representations ("none", "horizontal", "vertical", "all") instead of original integer values. Use a graceful approach to represent them.
Declare a constant named kBCMyConstant
of NSString
type with value of myConstantValue
, public and private.
@interface MyObject : NSObject
@property (nonatomic, assign, readonly) BOOL favorited;
@end
Given an NSArray
instance containing several MyObject
objects, put the objects of which favorited
property are YES
into a new NSArray
instance.
NSArray *myArray = @[@"a", @"b", @"c", @"a", @"d"];
Create a new NSArray
instance from myArray
containing @"a"
, @"b"
, @"c"
, @"d"
only.
NSDate
instance is in this month- (void)myMethod;
- (void)bc_myMethod;
@property (nonatomic, copy) NSString *myProperty;
Stack, framework, address, class, function, line.
1
karnaugh 2016-07-01 12:58:31 +08:00
恩。。。然而看不懂英文啊。。。
|
2
PrideChung 2016-07-01 13:23:06 +08:00
第一题还真是懵逼了,平时都用 snippet 自动展开😅
|
3
ichanne 2016-07-01 13:27:46 +08:00 via iPhone
手写真的有点难度,可以用 Xcode 就没那么难了
|
4
a412739861 2016-07-01 13:33:16 +08:00
Xcode 里面现找呗……
感觉如果是手写,全跪,如果是开着 Xcode 连着网,还是基本能做些的,就是有些其实根本不知道原有。 |
5
a412739861 2016-07-01 13:33:44 +08:00
@a412739861 缘由……该死的输入法
|
6
Elethom OP |
7
Elethom OP @PrideChung
第一題是考察會不會把 None 置零,會不會用 mask 。 |
8
XDDD 2016-07-01 13:41:22 +08:00
@Elethom NSOption 的话根本没有 none 和 all 吧, none 用 0 , all 用 horizontal | vertical
|
9
a412739861 2016-07-01 13:42:36 +08:00 1
那 1 的话, UIView 的 autosizingMask 就有吧。
2 的话, Masonry 有吧, NSLayoutConstraint+MASDebugAdditions.h 10.也有现成的[array valueForKeyPath:@"@unionOfArrays.self"],么不是 Runtime 虽然不理解,但是 swizzle 可以照着 AFNetworking 抄吧 感觉大部分还行吧,开源库里有挺多用到了的,当然我不一定都能写出来,比如最后一个…… |
11
a412739861 2016-07-01 13:45:39 +08:00
@a412739861
10 的 order 要稍微加一点,这个只是删除重复,之前做到过。 all 我觉得是可以用 horizontal | vertical 的,不过 NSOption 里面不能这么写的吧。 |
12
loveuqian 2016-07-01 13:57:38 +08:00 1
好难。。。
我们还是来聊聊 UI 吧 |
13
iyeatse 2016-07-01 14:07:59 +08:00
除了 framework 需要 google 以外其它都可以手写,这样的大概是个什么价位= =?
|
14
kera0a 2016-07-01 14:17:16 +08:00
不难吧,
一个正常的开发,应该在 XCODE 里答对上面所有题 - -。 |
15
blackfire 2016-07-01 14:19:22 +08:00 via iPhone
没感觉有多为难………遇到这样的面试题我直接就转身走
|
17
jeremaihloo 2016-07-01 14:32:13 +08:00
其实英语还好,就是繁体字为难我了,根本看不懂
|
19
kideny 2016-07-01 15:32:18 +08:00
在台服 WOW 混了好多年的表示,繁体字什么的很简单。。。。比英语简单多了。
|
20
Elethom OP @XDDD
參考答案是: typedef NS_OPTIONS(NSUInteger, BCLayoutAxis) { BCLayoutAxisNone = 0, BCLayoutAxisHorizontal = 1 << 0, BCLayoutAxisVertical = 1 << 1, BCLayoutAxisAll = (BCLayoutAxisHorizontal | BCLayoutAxisVertical), }; |
21
Elethom OP @a412739861
首先,每個問題都可以拓展開呀。比如說寫一個 variadic method ,分別怎樣處理有 nil termination 和沒有 nil termination 的情況呢?或者 reverse 排序,會不會用 reverse object enumerator 呢?還是只會手動排序? Filter array 會不會用 NSPredicate 呢?會不會用 KVC collection operators 呢?還是只會手動 filter ? 其次,現場面試也會看你是否熟練使用工具。是否 Xcode 一個自定義 snippet 都沒有、連配色都用的默認呢?會不會用 Alfred 呢?打開 Alfred 後會不會自動切換到英文輸入法呢? Alfred 有沒有自定義的 Stack Overflow 搜索指令呢? |
22
Elethom OP @loveuqian
好呀,來聊聊: * 有哪些要素會影響視覺平衡?它們的優先級是? * 有哪些可以用於傳達情感的視覺手段? * 你對 affordance 的認識, Norman 引入設計界的 affordance 概念和 Gibson 提出的有哪些異同? * 在設計中利用 distributed cognition 降低認知成本有哪些要點?怎樣結合起來使用? * 用一個 app 舉例,它在 accessibility 上有哪些可改進的空間? * 設計 RTL 的 UI 時,要做哪些特別的處理?有哪些地方不應該做特別的處理? * 做 user research 的手段有哪些?各有什麼優缺點? * 做用戶調查問卷時提問的技巧有哪些?有哪些絕對要避免的提問方式? * 觸摸式屏幕上的交互有哪些天生的設計缺陷?分別怎樣減弱它們的影響? |
23
chmlai 2016-07-01 16:50:09 +08:00
taijiandanle
|
25
kidneyband 2016-07-01 17:11:27 +08:00
@Elethom 有点咄咄逼人了。
|
27
Troevil 2016-07-01 17:17:03 +08:00
能联网 我也能做 , 哈哈 , 虽然不做 iOS
|
28
muziki 2016-07-01 17:28:22 +08:00
看这个咄咄逼人的气势,港台来的?
繁体字混着英文看着好不舒服,要不就全英文,要不就中文,又不是那些专业名词都没有中文释义。 |
29
vincentxue 2016-07-01 17:42:42 +08:00
确实很基础,让我来尝试回答一下。
|
30
vincentxue 2016-07-01 18:04:27 +08:00 1
|
31
Elethom OP se@vincentxue
不錯。 6 是可以直接連起來寫成「 @"a" @"b"」的,如果對性能比較在意 format 也應該盡量少用。 7 是指: https://en.wikipedia.org/wiki/Percent-encoding 有興趣來敝司看看嗎? |
32
Elethom OP @vincentxue
不錯。 6 是可以直接連起來寫成「 @"a" @"b"」的,如果對性能比較在意 format 也應該盡量少用。 7 是指: https://en.wikipedia.org/wiki/Percent-encoding 有興趣來敝司看看嗎? |
33
PrideChung 2016-07-01 19:12:38 +08:00
@Elethom 能用 Xcode 的话第一题就是送分啊,随便找个系统框架定义的 Options 拷过来改改就完了
|
34
vincentxue 2016-07-01 20:03:45 +08:00
@Elethom 噢你说的那种我一般分行拼接的时候才这么写。原来 7 是说 URL encoding ,受教了。
另外我觉得第三题那种如果是对外的还是加上类名什么比较好,我一般只有在内部才会用 k 开头,外部都是类似于系统那样。估计你只是为了出题这样做吧。 我还是想问问 Runtime Section 中的第 3 题下面的注解是什么意思? 兴趣是有啊,然而我走不了。 我之前在论坛看过你们公司的招聘贴,也看到你对英文水平的解释,这一个我是不符合的。虽然我公司是中美两地的,每天都要读写英文邮件,然而要做到 [閱讀速度能和母語一致,可以流暢寫作保證不出現不符合 native speakers 習慣的寫法;聽說的話,能不用字幕完整地看懂 WWDC 、做日常交流不發生誤解] 我自认为还是有差距的,我还常常要查字典,有时候要用翻译器。其他的倒是都符合。 其实我早就想找一个可以 Remote 的工作,不是我懒得去上班,而是患有 IBS 导致我时常腹部不适。然而我现在走不了,我公司所有的产品的 iOS 项目都是我一个人单挑,如果我走了,公司的运营会受很大的影响。而且招聘一个懂音视频流和底层处理的靠谱 iOS 比较难,就算招到了也没那么快上手,所以一时半会儿也走不了。 你们还处于天使轮,即使 double 了隔壁的薪资,可能还是不太够我目前的收入。在你们团队中我的价值没有那么重要,不值我现在的价钱。我有一定的经济压力,所以对薪资还是有硬性的要求。 很可惜就这么错失了一个 Remote 工作的面试机会。。。 |
35
wezzard 2016-07-01 20:07:05 +08:00
那個 public 和 private 不嚴謹啊, C 語言的概念是 extern 和 static ,具體 pub 不 public 跟 .h 文件在構建時丟到 public header folder 還是 project header folder 還是 private header folder 有關啊 (逃
|
36
edward9941 2016-07-01 20:39:11 +08:00
第三题我认为如果 extern 的话一定要加前缀,在.m 中如果不 extern 一定要写上 static ,实际上是一个 C 的知识,我司出现很多次其他业务线有同名的造成编译失败。
|
37
wezzard 2016-07-01 20:44:01 +08:00
@vincentxue
Runtime section 下的也是基本的 API 調用哦 第一題爛大街了,想不到這年頭誰還不會 swizzle 的…… 第二題: property_copyAttributeValue(property, "T") 然後解析獲得的字符串(返回值用完後要 free 掉是一個陷阱 第三題:在方法內訪問 [NSThread +callStackSymbols] 就行了 |
38
vincentxue 2016-07-01 22:06:08 +08:00 via iPhone
|
39
green15 2016-07-01 22:31:40 +08:00 via Android
英语是个坑……
|
40
wezzard 2016-07-01 22:54:17 +08:00
@vincentxue 哈哈,我看帖子看錯位了,樓上有一個人說不會 runtime section 下的問題,我以爲是你的,就 @ 你然後答了。
|
41
runner 2016-07-01 23:03:29 +08:00
很 cool 的试题
|
42
so898 2016-07-01 23:22:37 +08:00
看了一眼题目表示一题都不会,好慌
然后看了一眼答案,原来都用过啊……看来看不懂的是英语…… 不过要是能用 xcode + stackoverflow 的话,解题应该不是啥问题 那个 constant 看着很有感想……嗯,还是 Swift 好 |
43
so898 2016-07-01 23:27:08 +08:00
说起来,考了单例而不考 Delegate 、 Block 、 Notification 啥的,也没有考线程相关的内容,感觉整套考题语法内容偏多啊
没有 iOS 或者 Mac UIKit 相关有点测不出实战做 App 能力的感觉 有点光测了基础不够实用的感觉 大胆猜测一下,出题者应该是从 C/C++一步步转过来的,现在应该主要做 Frameworks 或者核心方法实现 |
44
enjoeq 2016-07-02 00:30:00 +08:00
不用 Google ,不用 Xcode ,我都能手动做出几道题,加上 Google 、 Xcode 和 StackOverflow 的话,我相信我能把全部都搞定,除了第 4 题看不懂题目之外,好吧,我是英语渣😂。
|
45
jamescheng 2016-07-02 00:56:28 +08:00
www.hackerrank.com 无聊的人可以去这个网站去做题...哈哈
|
47
Elethom OP @vincentxue 一年超過 400k 嗎,好厲害。 qwq
|
48
jukka 2016-07-02 08:51:21 +08:00 via iPhone
不用在意吐槽啦,这个是对你们自己负责,也是对面试者负责。 :)
|
49
vincentxue 2016-07-02 10:24:11 +08:00 via iPhone
@Elethom 不是厉害的原因,拿命换的。如果你们不加班,那算下来时薪也差不多了。我经常要工作到至少晚上 10 点,忙的时候凌晨过后。当然都不是公司强制的,活太多时间太少。这也是我稍微有点不爽的地方,虽然我很爱写代码,但是没有学习的时间了。我又没别的爱好。等经济压力小的时候我还是要考虑考虑换工作了。
|
50
Elethom OP @vincentxue
確實不加班。除了有個遠程的同事早晚要接送孩子工作時間不同以外,都是 10:00-10:30 上班, 19:30 下班,中午午休一小時。除了運維上線偶爾會看守著基本上 19:30 下班,不到 20:00 公司就看不到人了。 其實你可以考慮換一份不加班的工作再接外包,這樣雖然工作時間沒變短但時間安排能自由些。 |
51
Elethom OP 不對,午休是一個半小時。
|
52
kepenj 2016-07-02 15:37:50 +08:00
第一反应打开了 Google 是什么鬼...看来板砖搬的有点久了(手动滑稽。。。
|
53
Geoion 2016-07-03 02:29:11 +08:00
手不听使唤已经打开了 google
|
54
vincentxue 2016-07-03 03:57:39 +08:00 via iPhone
@Elethom
我对外包实在是没兴趣,不喜欢不专业的人。很久很久以前接过一次外包,我就被恶心到了。可能是没遇到专业的,然而给我留下了不好的印象。而且拿着老板的薪水接外包貌似不太好,心里过不去。 我前天买了 iMac 5k ,今天下午就应该到货了。已经考虑跟公司申请远程工作,我认为应该是可以允许的。如果不允许就先辞职但一时也走不了,公司慢慢招人,我也慢慢找一个,不过薪水肯定是要降低了。目前市场看样子最多 30k 左右就封顶了,我自认为没那个自信要这个数。 |
55
nevercry 2016-07-20 23:45:55 +08:00
|