今天去一家公司面试 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

11116 次点击
所在节点    职场话题
62 条回复
ibremn
2015-07-24 23:16:49 +08:00
我在帝都某家做视频的公司做 iOS 开发,偶尔也面试别人。面试基本和楼主这套流程类似,在这里介绍一下吧。。

我部门 iOS 面试流程首先是笔试,然后是一面技术、二面 Leader、三面部门技术总监、四面 HR。

首先笔试题是算走形式的,面试官也就随便看看,不作太多参考。

一面的时候,技术问题比较多,这里可能会问到内存、面向对象、设计模式、oc 语法、运行时、并发、UI、动画、绘图、排版、存储、网络、调试调优等等,偶尔会问点算法。一般面试官首先会从每个技术方向的基础问起,然后逐渐深入,这主要是全面评估一下你当前技术水平的上限(深度和广度),实际工作时并不会都用得上(就像给服务器做压测)。随后看你的简历,问一些你过去的项目经验,了解你的开发水平。对于技术来说,过了一面基本上问题就不大了。

二面是团队 Leader 面试,技术问得不多,主要是是看学习能力、团队合作能力等等,看看是不是愿意把你招进自己的团队来。另外如果有其他候选人可能会推迟几天对比一下。

三面部门总监来主要是介绍下公司、部门和团队的组成和业务,看看薪资能不能谈拢、技术评级如何。

四面 HR 就是处理一些杂事了,不太重要。


至于楼主的面试,可能在一面时,刚开始问一些基础问题的时候回答的就非常差,那后面更多的东西就无从问起了。ARC、MRC 都是非常基础的东西,即使现在没人在用 MRC 了,甚至有的直接用 Swift 了,但内存管理的原理还是要了解,不然仍然会遇到很多诸如循环引用的问题要留给别人擦屁股。Foundation API 虽然不必全都掌握,但是楼主遇到的这些确实是比较基础的一些东西。

楼主以后可以在工作中慢慢积累经验,多看文档、开源项目、技术博客,以后总会拿到合适的Offer的。

例行结尾:╮( ̄▽ ̄")╭
bengol
2015-07-24 23:23:26 +08:00
"但我就觉得,这样揪着 Foundation 框架的细节问,真能问出一个人的水平吗?"
是的
matthewz
2015-07-24 23:26:37 +08:00
我估摸着原因是专科毕业
VichyChen
2015-07-24 23:30:48 +08:00
@PP 谢谢您的回答。谢谢,无限感谢。
一直对除了父母之外,肯对自己评价、教育、教导的亲戚朋友同学同事都相当感恩T_T

我心态的焦急和浮躁身边好多人都跟我说过,特别是浮躁这一点,这几年我自己也在想为什么会这么浮躁会这么焦急。

小学升初中那会,我考上的那个初中是我在小学要考前15名才能考上的一个很好的学校。
初中接触了电脑,那时候只知道魔兽和游戏,所以高中上了一个烂学校。
到了高中又迷上了dota,还暗恋了一个女生,这是专科的原因。
到了大学后才慢慢发现了一个好学历的重要性,特别是计算机这么一个专业,没学历再加上自己大学之前没编程基础,进一流公司几乎是不可能的事。
后来才发现了,专科和本科的差别不仅仅在学历,还在于本科的计算机课程有计算机基础,有教c语言,有教编译原理,有网络原理,数据库原理,数据结构和算法。而我那种专科直接c语言都跳过了,直接c#入门、html、asp.net,然后就没有其他专业课了。在没任何人引导入程序员坑的情况下这种开局对以后的发展肯定很不好。所以这几个月才抽时间简单过了一下c prime plus的一些章节。
不要说这些课程专科也可以自学,等我知道这些大概是大三快离开学校的时候,明白这些有多么重要也是入iOS坑后才更加明白。
后来在网上看着好多社招的学生可以去面BAT,面一流的互联网公司,真心羡慕得不行。.net在互联网公司就用得少,自己基础还不行,也明白和那些名校出来的差距有多大,一流公司简直是做梦。所以在踩入iOS坑的时候自己才觉得有了一点希望。

不是在提当年勇,也可能是自我沉浸也好,自我安慰也好,不肯承认现实也好,我只是觉得在那个不懂事的小学年代,我能考上一个好初中,至少应该能说明我先天的学习能力应该没问题的,初中高中那是因为心思不在学习上,是吧?
就不说从大二大三开始,自己多少次在无数个夜晚懊悔我特么初高中这六年到底在干嘛,真是吃了屎了,这六年欠下的东西工作后至少得还多少年才还得清。
浮躁不务实的一面,语言学多了总会出现混乱,这些的起因应该都是我明白和顶尖的人的差距有多少后导致的吧,总想快点赶上,但操之过急吧。
自己也确实有输怕了急了的心理,总想憋着一股气证明自己不至于是学渣。

没有人带领,也奢望不了别人指导自己,所以自己摸索难免会走一些弯路,这是没办法的事情。

说得有点乱,我语文很渣,高中语文基本没听课是导致连2b分数线都不够只能去读3a的原因。

说到底理智的看待还是实力不够的问题,虚心接受大家评论说实力不够,也像一楼哥们说的要认清自己的定位。
我能做的也只能尽人事听天命,尽力就好了吧。。

谢谢大家的指导T_T
PP
2015-07-25 00:28:24 +08:00
@VichyChen 您只看到自己在不断的走弯路,却没有看到自己在不断的向前。:)
dalang
2015-07-25 01:00:10 +08:00
技术面试通常是安排团队两到三个开发工程师负责,通常会尽量让他们都面试一下,一方面是为了防止一个人的意见过于主观,另一方面也是出于尊重面试者。通过技术面后,会有leader 总监 hr。
但有时候我们技术面试也会只安排一个同事。可能是同事明确表示面试者与岗位要求差距太大没有继续的必要,还有可能是当天人手确实太紧。

我说的是社招。
black
2015-07-25 02:28:02 +08:00
别抱怨了,从弄明白面试的这几个问题开始继续努力吧。
VichyChen
2015-07-25 02:31:42 +08:00
@black 好的!有围观过你的项目,好棒!
Elethom
2015-07-25 03:16:47 +08:00
「难道是因为我整个面试回答过程表现得基础不牢固就直接判定可以把我刷了?」
答題的結果基本就可以把你淘汰了,完全沒看出有後面面試的必要。

「但我就觉得,这样揪着 Foundation 框架的细节问,真能问出一个人的水平吗?」
這麼簡單的東西肯定是問不出來一個人的水平的,但是行業現狀是,即使這種程度的人也不是很容易招到的。
creater
2015-07-25 06:38:08 +08:00
面过腾讯和阿里都通过的人来说一句,问你这些基础我觉得是必然,一些常用的api必须记住。不管哪种语言,内存管理都值得研究,这答不上来直接pass。
我觉得楼主面试都算简单了,遇到狠的直接手写数据结构和算法。
另外,别怀才不遇,自己并没有想象的那么优秀,一切都是你想多了。
有点重,但是是实话。
juxingzhutou
2015-07-25 08:36:41 +08:00
额,我觉得这已经算很基础的了吧,确实不难,大部分看过一遍书之前有一些编程基础的人应该都能答上来。说实话,我觉得不用说大公司了,如果我面到这样的我都不知道该问什么了。这还没问runtime,跟“揪着 Foundation 框架的细节问”还差十万八千里呢。

楼主可以理解为其实在一开始很简单的问题打不出来的时候面试官基本已经心里有数了,后面只是想礼貌性地多面你点时间,但是最后发现真的已经不知道问什么了,只能让你先走了。
jydeng
2015-07-25 08:51:34 +08:00
@VichyChen 没事拉,一次面试,不用看的太重,能力不够就补。
dearsting
2015-07-25 09:41:43 +08:00
连我这个非程序员都看出楼主基础不怎么样。。。
退一步讲,如果你觉得面试题并没有完全发挥自己的长处,应该当场就提出我比较擅长什么什么,并把话题往那个方向引导。唉不是我说啊,楼主显然从能力到心态都很不成熟,继续努力吧。
ybh37
2015-07-25 09:46:37 +08:00
没事儿,大家都从这个阶段过来的,自己知道哪里不足就好了,好好努力吧。
当年我是稀里糊涂的就从事移动开发了~后来我在微信上问我们老大为什么招我啊,我又没做过移动开发,他跟我说,就一点,C和英语基础水平不错。
cxshun
2015-07-25 09:58:08 +08:00
没关系,反正大家都经过被鄙视的那个阶段,静下心来,好好加油!
FanError
2015-07-25 10:40:28 +08:00
看完后感觉自己以后出去找不到工作了。。。
cheng4741
2015-07-25 10:49:14 +08:00
功能,界面谁都会做,你这基础太差了,addObject方法只能加Object咯,所以排除基本类型和结构体,难道一个对象调用init方法会崩?
loveuqian
2015-07-25 10:51:35 +08:00
@VichyChen 能透露一下你面这个职位多少k嘛
husinhu
2015-07-25 10:57:11 +08:00
@PP 说得很好 我就不说了
loveuqian
2015-07-25 10:59:17 +08:00
@cheng4741 请教一下我记得好像在哪里见过说init只能跟在alloc后面,不然会有其他问题,到我刚才试了下创建个字符串,循环了100遍init,好像也没啥问题

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

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

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

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

© 2021 V2EX