今天去一家公司面试 iOS,回来后觉得很不舒服。

2015-07-24 21:38:00 +08:00
 VichyChen

先简单自我介绍下:
专科毕业,经验刚好两年,一年半.net,从今年3月1号到现在的iOS经验。iOS几个月学习过程中自己模仿了个金山词霸一些功能界面,也当练习也想着出去面试可以展示下自己有生产能力,就是没上线而已,但我觉得比一些就两三个简单界面的上线 app 有意义多了吧。
https://github.com/VichyChen/BiggerEnglish
PS:看看截图效果就好,代码比较渣,各种耦合,请原谅,一方面自己刚开始是为了实现效果,一方面一开始也没规划好,为了赶时间就没仔细去重构了。

面试机会是之前公司一个组长帮忙内推的,公司应该算是广州的一流互联网公司了。
老实说,作为一个专科狗能得到这种去一流互联网公司面试的机会真心是感动得不行,也很珍惜。这两个星期以来各种准备面试,也知道大的互联网公司会比较考察大方向,但我这种专科狗直接.net入门的基础确实很差,但我还是尽量把简单的算法,协议,设计模式啥的给准备了一下,我知道的我尽量做好准备,短期内我准备不了的我也无能为力,也只能尽人事听天命。

接下来是下午的情况:
下午2点到了面试地点之后,做了一个小时的题,题目有语义逻辑题还有技术题,做完之后看了下时间是 15:08。
然后一个应该是和我差不多年纪的面试官来面试。
面试开始,先简单的自我介绍后,就直接拿刚我做的题开始谈。原来选择题是多选,难怪之前有些题目总觉得单选就选起来很怪,就把一些能改的改了。谈的过程就提的内容,包括选择题的选项扩展。
哎,谈的过程中暴露了自己oc代码行数还写不够多的问题,Foundation 框架的数据结构和一些 API 自己确实不熟悉,比如:
NSMutableDictionary 的 setobject 和 setvalue 什么区别(这个确实平时没注意到)。
NSMutableDictionary addObject 的参数类型不可以是什么,有 int、BOOL还有两个肯定可以的。我当时就选了 int 而已,面试官问我为何,我说是c的数据类型所以不行吧,老实说自己写的时候确实没关注过这么细节的问题,哎,然后面试官就说那 BOOL 呢?这时候我脑袋中忽分不清 C#、JAVA、C、OC 的布尔分别对应哪个。。语言学多了总会出现混乱,所以这道题也这样过去了。
还有一道选择是几个选项中的代码哪个跑起来会崩,比如一个[[NSMutableDictionary dictionary] init],我就以为是后面的 init 多余了会报错,因为我记得自己写的时候都是 [NSMutableDictionary dictionary] 就可以了,后来回来跑了一下居然没问题,但这种情况的题目我感觉我真心无能为力啊,因为自己没试过,平时写直接 dictionary 也没出现过问题啊。
还有一道题的选项是 dealloac 应该在调用父类的 dealloac 前先释放自己类的资源。噢我当时说了应该放前面放后面没影响吧,结果回来搜了一下果然是 dealloac要放最后面。我也知道 oc 的内存管理是重点,所以我也有仔细学过内存管理,也有看过 MRC,但这个问题在我这种苹果大力推 ARC 这个阶段入门,没经历过 MRC,没写过 MRC的人来说感觉真有点无能为力啊。
然后聊完题目,面试官就问有没有做过什么东西,我说有自己做了一个练习的demo,我说要不要给你看一下?他说不用。然后问用xib还是纯代码,我说纯代码。然后问有用 AutoLayout 吗?我说有。然后他就说好那可以了,看看今天还是明天等通知,星期一如果没通知可能就没结果了。我说明天?明天星期六你们要上班吗?然后他那时候不知道回答了啥,反正也就这样蒙过去了。
出来后我看了下时间,15:33。除了做题的1小时,面试就面了20分钟,难道是因为我整个面试回答过程表现得基础不牢固就直接判定可以把我刷了??但这难道是一个一流互联网公司的面试方式吗??没问曾经的工作经历,没问之前做过什么东西,没问学习过程,就抓着面试题问了Foundation 的东西,然后就没了??还是之后还有项目经理,HR面试之类的流程?这也都不清楚,难道就这样了??

如果是因为我整个面试回答过程表现得基础不牢固,那我也只能无话可说,我也就认了。
但我就觉得,这样揪着 Foundation 框架的细节问,真能问出一个人的水平吗?就连写 JAVA 写 C#,经常有时候也要翻 API,翻 MSDN 吧,Foundation 细节有些记不清有些没用过,对我这么个踏入 iOS 坑不到5个月的人来说应该也特别正常吧??

哎,其实我就想发出来看看大家觉得这是个什么情况而已,大家轻喷,谢谢T_T

11126 次点击
所在节点    职场话题
62 条回复
lynulzy
2015-07-25 10:59:33 +08:00
@PP 受益,现在年轻的程序员们确实都有一种躁动的气息(包括本人在内)。

LZ大概没弄明白 ,首先,两年开发经验和两年iOS开发经验的区别,如果有两年iOS开发经验您所遇到的问题是可以给人满意的回答的,(如果准备继续爬iOS坑的你,可以在以后回来再看看这些问题)。
其次,现在大公司和创业公司很明显的收人标准是不一样的 。大公司有从实习生培养起来的,而且这些实习生以后也会在这些公司里成长许多,日常的开发任务足够了。但是不免一些技术成熟的牛牛们的离职,所以他们社招招的都是中高级别以上的职位。试想,您已经有两年的工作经验,还会愿意和实习生一起学习吗?所以从根本上来讲,这个机会也许本身就不适合你。但是,既然想要做iOS开发,这样的面试经历还是要有的,每一次(高效的)面试都会有一些技术上的成长,因为面试的问题都是基础问题,或许你只是有印象而并不深入理解,如果能探明个究竟,这些问题会让你换个角度理解iOS开发,重新认识自己的技术水平,这个探索的过程就是技术成长的过程。
cheng4741
2015-07-25 11:05:05 +08:00
@loveuqian 你要么记错了,要么那个人是瞎bb。init又不分配内存,它就是一个普通的方法,跟你写的其他方法没区别。
loveuqian
2015-07-25 11:35:52 +08:00
@cheng4741 所以alloc完成了分配和初始化嘛?一直误会alloc是分配,init 是初始化,我说为啥赋值了再init没有改变值
zylll520
2015-07-25 13:01:37 +08:00
@loveuqian alloc 只是分配了内存空间,相当于系统把你要的内存区域的地址丢给你,但是你还是要对你拥有的变量\属性进行初始化,而在 NSObject 中默认实现的 init 方法内容是 return self。

Foundation框架是最基础的框架,所以面试官看你开发经验不多当然要问些基础内容了,这些细节能体现一个人的细节和自己以后的发展

比如说 NSMutableDictionary 对象的 setObject:forKey: 方法中的 key 要求遵守 NSCopying 协议。

不要说网上什么都有,但那不是你的啊,你去搜一下就会用了,不明白背后的原理就没什么意思了,前期自学还是踏实一点,加油! 学完 Objective-C 还有 Swift 等着你哦~
cxe2v
2015-07-25 16:10:35 +08:00
@zylll520 哈哈,我是先学SWIFT倒回去再看OC
charlie21
2015-07-25 18:35:08 +08:00
既然这么多人都支持这家公司的做法
既然这么多人都觉得这个面试虽然打击了 LZ ,但是对 LZ 是一种恰如其分的激励
那么
建议爆一下这家公司的名字,这家在面试题里出了 [[NSMutableDictionary dictionary] init] 这种题的公司的名字。

我太好奇了
5up3r
2015-07-25 19:27:26 +08:00
@PP 说的很好,感谢!
sangmong
2015-07-25 21:08:20 +08:00
自己基础都不扎实,还说人家面试有问题??
kemingcao
2015-07-25 22:06:06 +08:00
@PP 听君一席话,胜读十年书!
moxhuis
2015-07-25 22:28:35 +08:00
@PP 感谢 现在这样为别人能写这么大一段干货的人已经很少了。感谢这位前辈
deston
2015-07-25 22:35:09 +08:00
基础真的很重要
skydiver
2015-07-25 22:57:03 +08:00
@paradoxs 233333333
ren2881971
2015-07-25 23:44:20 +08:00
dj~ 平常心平常心。。。
railgun
2015-07-26 00:10:55 +08:00
人家要的是一上来就能干活的工程师,不是只学了一半的新手。虽然你有其他语言的经验,然并卵。人家要的又不是架构师。
根本原因就是定位不一样,没什么好纠结的
miki6180
2015-07-26 02:50:07 +08:00
是你自己基础不扎实,不能怪面试官。
Hysteria
2015-07-26 03:58:47 +08:00
@PP 我也觉得您老说得太好了。= - =

楼主主要问题就是接触OC的时间太短了,相信只要继续加油,写更多的代码,找到一份自己满意的工作是没有问题的
zhenghuiy
2015-07-26 09:39:55 +08:00
表示曾经因为常上的网站不是github和stackoverflow、看的书不是英文原版而被拒过(实际上我当时也都有在做,stackoverflow的rep当时是150,但那个时间点以前常上的网站的确不是这两个),这是在前面笔试面试全通过的情况下。如果是社招那我没什么好说的,但是是实习生招聘,对于我们这种大学里完全靠自学、没有人带的野路子程序员来说,有时还真无奈。

也有碰到技术终面直接丢一个更像逻辑题的算法题的,具体内容一直没听懂。因为面试官他在自己讲的时候也断断续续讲了好几分钟的题目大意,我询问几次他还是吞吞吐吐。后面也就没有然后了。当然后来才明白,他们当时根本不缺人手。

相对这些经历,楼主你还觉得你碰到的面试经历坑么?

一方面是建议楼主多努力点,如果真正努力,5个月的时间也足够打好基础了。另一方面是建议楼主放宽心,招聘方有招聘方的考虑与权利,何况这种问基础的没什么错。也不要过度看重一线互联网公司,现在刚起步的话,如果能进不错的创业公司也可以的。
Tassel
2015-07-26 15:20:41 +08:00
猜的不错的话,是某音乐。我前几天也去面了结果呵呵了
bla
2015-07-26 19:31:38 +08:00
面试 个人认为被虐或者不爽纯属正常。 我也经历过在各种招聘上投完简历 被约 然后几经周折去面试,结果待了不久就出来了,最少的5-10分钟。很抱怨这种类型的招聘意义何在?简历既然符合初步要求,为何面试这么短就出来了,认为自己把面试当回事,然而面试官却不把你的到来当回事。不过这种情况应该算是少的,绝大部分还是尊重面试者的。而且我认为把面试当做一种对知识的填充是极好的心态,比如就像这次面试到结尾,对方通知您回家等消息后,您完全可以对不明白的地方向面试官提问 或者 自己在一些自己不了解的知识上进行探讨,面试官不一定会回答全部,至少应该会回答部分内容 或者 一个解决问题的方向等等。最后心态最重要 多投几家就好了
gs038538
2015-07-26 20:08:37 +08:00
自己的定位很重要。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/208149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX