先简单自我介绍下:
专科毕业,经验刚好两年,一年半.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
1
banri 2015-07-24 21:42:19 +08:00
自我定位是个重要的过程
|
2
porrat 2015-07-24 21:48:10 +08:00 via iPhone
回答倒数第二段,不一定能问出水平,但至少知道你的基础如何,经验如何。看你的描述,基础差太远。
|
3
jamesxu 2015-07-24 21:50:25 +08:00 via iPhone
面的很正常啊,不考你的基础那考什么?
写代码要不要翻 API 跟你基础好不好也没多大关系,人家要招 iOS 开发,他问的应该都是比较常见的问题,你不能以只学了 5 个月为理由来塘塞 |
4
Daddy 2015-07-24 21:51:34 +08:00
v2的日常
期待下一季 |
5
hoogle 2015-07-24 21:53:59 +08:00 via iPhone
目测微信, 都是很基础的。 如果社招估计悲剧。。
|
6
VichyChen OP |
7
paradoxs 2015-07-24 21:57:37 +08:00 1
"明天星期六你们要上班吗?"
这才是被刷的原因 |
8
beimenjun 2015-07-24 21:58:15 +08:00
最近面试的几个帖子,我都觉得用人方没什么问题。
五个月不到的经验,问你这类,我觉得还可以吧。社招遇到愿意培养自己的公司也算是运气,大家还是希望社招能直接上手是最好的。人之常情而已。 |
9
n6DD1A640 2015-07-24 21:58:42 +08:00
比较好奇现在还有多少人用 MRC。
|
10
VichyChen OP @beimenjun 谢谢回答。主要是自己一直看招聘上的要求都是要求作品,搞得自己以为有个能证明自己有生产力的东西别人就不会关注太细节的东西。是内推,社招以我的学历和经验肯定没戏,所以自己也很珍惜这次的机会,但没想到会是这样,哎算是升下级了。
|
11
johnsmith123 2015-07-24 22:08:44 +08:00
大公司问基础不是理所当然的吗? 人家大公司想问什么还需要你这个新手指点?
|
12
VichyChen OP @johnsmith123 谢谢回答T_T 求助如何编辑帖子,v2没怎么发过帖子没研究过。
|
13
loveuqian 2015-07-24 22:15:58 +08:00
我现在在培训班呆了1个月,想提问一下
可变字典那题 setvalue 应该就是 KVC 吧,可以改变值,setobject 这个没接触过 可变字典 addobject 这个好像也没接触,字典里面不是放键值对嘛,怎么可以加对象? 然后最后那个 dealloac 放最后是老师一直强调的,一定要最后,而 layoutSubview 就一定要先 super layout 一下 另外你的源码已经下载了,学习一下,希望到时候我面试也能拿出一些东西 最后,大家一起加油吧!!! |
14
VichyChen OP @loveuqian 噢写错了,应该是 NSMutableArray,打错了= =
看看效果就好,代码就别看了,后面没重构不忍直视= = |
15
skyleft 2015-07-24 22:29:48 +08:00
广州也有一流的互联网公司吗?
微信?网易?YY?唯品会? |
16
PP 2015-07-24 22:29:49 +08:00 via iPad 17
小伙儿,我认真说,您仔细听。
您叙事很有条理,问题也表达得比较清晰,虽然略有繁缛,总体来说还是比较难得的。能看得出来,您遇到的面试比较正规,框架性很强,务实的讲,这类面试对求职者是较为公平的。您提出的问题综合起来应该是为什么没有全面考察您的能力,对吧?出现这种诉求可以理解,其原因就在于您默认此类评估(注意:我用“评估”替换“考察”了)必然应该是全面的,但是需要明确的是,这种“理想状态”是很难实现的。 评估是一项非常高端的能力,在各项管理能力当中稳居前列。公司通过组织框架将各项功能进行分解和执行,评估会被执行于人力、商务、财务、法务等各个环节,面试只是其中一小项。在面试评估活动中,越大的公司越能够承担大的评估成本,愿意提升面试人员的能力,愿意对面试方法和途径进行投资,以便更好的筛选合适的人才。明白这一点,就不难理解,任何投资都不是无限追加的,当面试评估投资的产出达到预期目标或决策者承受上限后,该评估方法将被暂时固定下来。同时,从管理层级上看,不同级别的岗位评估投资也不会一样。看到这里,相信您能够明白,莫说初级职位,即便是高级职位也很难负担得起您期望中的全面考察。 论过了事,我们再来谈谈人,看看您的状况。作为年轻人,希望获得机会与认可,希望被伯乐发现,这不能说有错,因为这毕竟不是什么是非问题,然而如果长期持有这种心态,无疑会逐渐失去自主性。特别是您现在觉得对方抓住您的不足来评判您的能力,在我看来已经属于心态失衡了,很难说是轻是重,总归不是一个好苗头吧?此外,您也有浮躁不务实的一面,“语言学多了总会出现混乱”这话是您自己讲的,首先多和精不一样,其次您的资历多不到哪里去,再次多了会混乱的观点无论是从逻辑角度还是从实践角度都是错的。如果我是您的面试官,仅凭这一句话就可以看出许多问题。您自己觉得呢? 不要把自己当作等待伯乐发现的千里马,戒骄戒躁,扎扎实实努力才是正途。小伙儿加油吧! |
17
Andiry 2015-07-24 22:37:12 +08:00 via Android
说到底就是实力不足,再正常不过的情况。
|
20
targz 2015-07-24 23:01:20 +08:00
和楼主的情况差不多,不过还在自觉中,尝试投了几家,直接被拒。。。共勉吧
|
21
ibremn 2015-07-24 23:16:49 +08:00 7
我在帝都某家做视频的公司做 iOS 开发,偶尔也面试别人。面试基本和楼主这套流程类似,在这里介绍一下吧。。
我部门 iOS 面试流程首先是笔试,然后是一面技术、二面 Leader、三面部门技术总监、四面 HR。 首先笔试题是算走形式的,面试官也就随便看看,不作太多参考。 一面的时候,技术问题比较多,这里可能会问到内存、面向对象、设计模式、oc 语法、运行时、并发、UI、动画、绘图、排版、存储、网络、调试调优等等,偶尔会问点算法。一般面试官首先会从每个技术方向的基础问起,然后逐渐深入,这主要是全面评估一下你当前技术水平的上限(深度和广度),实际工作时并不会都用得上(就像给服务器做压测)。随后看你的简历,问一些你过去的项目经验,了解你的开发水平。对于技术来说,过了一面基本上问题就不大了。 二面是团队 Leader 面试,技术问得不多,主要是是看学习能力、团队合作能力等等,看看是不是愿意把你招进自己的团队来。另外如果有其他候选人可能会推迟几天对比一下。 三面部门总监来主要是介绍下公司、部门和团队的组成和业务,看看薪资能不能谈拢、技术评级如何。 四面 HR 就是处理一些杂事了,不太重要。 至于楼主的面试,可能在一面时,刚开始问一些基础问题的时候回答的就非常差,那后面更多的东西就无从问起了。ARC、MRC 都是非常基础的东西,即使现在没人在用 MRC 了,甚至有的直接用 Swift 了,但内存管理的原理还是要了解,不然仍然会遇到很多诸如循环引用的问题要留给别人擦屁股。Foundation API 虽然不必全都掌握,但是楼主遇到的这些确实是比较基础的一些东西。 楼主以后可以在工作中慢慢积累经验,多看文档、开源项目、技术博客,以后总会拿到合适的Offer的。 例行结尾:╮( ̄▽ ̄")╭ |
22
bengol 2015-07-24 23:23:26 +08:00
"但我就觉得,这样揪着 Foundation 框架的细节问,真能问出一个人的水平吗?"
是的 |
23
matthewz 2015-07-24 23:26:37 +08:00
我估摸着原因是专科毕业
|
24
VichyChen OP @PP 谢谢您的回答。谢谢,无限感谢。
一直对除了父母之外,肯对自己评价、教育、教导的亲戚朋友同学同事都相当感恩T_T 我心态的焦急和浮躁身边好多人都跟我说过,特别是浮躁这一点,这几年我自己也在想为什么会这么浮躁会这么焦急。 小学升初中那会,我考上的那个初中是我在小学要考前15名才能考上的一个很好的学校。 初中接触了电脑,那时候只知道魔兽和游戏,所以高中上了一个烂学校。 到了高中又迷上了dota,还暗恋了一个女生,这是专科的原因。 到了大学后才慢慢发现了一个好学历的重要性,特别是计算机这么一个专业,没学历再加上自己大学之前没编程基础,进一流公司几乎是不可能的事。 后来才发现了,专科和本科的差别不仅仅在学历,还在于本科的计算机课程有计算机基础,有教c语言,有教编译原理,有网络原理,数据库原理,数据结构和算法。而我那种专科直接c语言都跳过了,直接c#入门、html、asp.net,然后就没有其他专业课了。在没任何人引导入程序员坑的情况下这种开局对以后的发展肯定很不好。所以这几个月才抽时间简单过了一下c prime plus的一些章节。 不要说这些课程专科也可以自学,等我知道这些大概是大三快离开学校的时候,明白这些有多么重要也是入iOS坑后才更加明白。 后来在网上看着好多社招的学生可以去面BAT,面一流的互联网公司,真心羡慕得不行。.net在互联网公司就用得少,自己基础还不行,也明白和那些名校出来的差距有多大,一流公司简直是做梦。所以在踩入iOS坑的时候自己才觉得有了一点希望。 不是在提当年勇,也可能是自我沉浸也好,自我安慰也好,不肯承认现实也好,我只是觉得在那个不懂事的小学年代,我能考上一个好初中,至少应该能说明我先天的学习能力应该没问题的,初中高中那是因为心思不在学习上,是吧? 就不说从大二大三开始,自己多少次在无数个夜晚懊悔我特么初高中这六年到底在干嘛,真是吃了屎了,这六年欠下的东西工作后至少得还多少年才还得清。 浮躁不务实的一面,语言学多了总会出现混乱,这些的起因应该都是我明白和顶尖的人的差距有多少后导致的吧,总想快点赶上,但操之过急吧。 自己也确实有输怕了急了的心理,总想憋着一股气证明自己不至于是学渣。 没有人带领,也奢望不了别人指导自己,所以自己摸索难免会走一些弯路,这是没办法的事情。 说得有点乱,我语文很渣,高中语文基本没听课是导致连2b分数线都不够只能去读3a的原因。 说到底理智的看待还是实力不够的问题,虚心接受大家评论说实力不够,也像一楼哥们说的要认清自己的定位。 我能做的也只能尽人事听天命,尽力就好了吧。。 谢谢大家的指导T_T |
26
dalang 2015-07-25 01:00:10 +08:00 via iPhone
技术面试通常是安排团队两到三个开发工程师负责,通常会尽量让他们都面试一下,一方面是为了防止一个人的意见过于主观,另一方面也是出于尊重面试者。通过技术面后,会有leader 总监 hr。
但有时候我们技术面试也会只安排一个同事。可能是同事明确表示面试者与岗位要求差距太大没有继续的必要,还有可能是当天人手确实太紧。 我说的是社招。 |
27
black 2015-07-25 02:28:02 +08:00 via iPhone 1
别抱怨了,从弄明白面试的这几个问题开始继续努力吧。
|
29
Elethom 2015-07-25 03:16:47 +08:00
「难道是因为我整个面试回答过程表现得基础不牢固就直接判定可以把我刷了?」
答題的結果基本就可以把你淘汰了,完全沒看出有後面面試的必要。 「但我就觉得,这样揪着 Foundation 框架的细节问,真能问出一个人的水平吗?」 這麼簡單的東西肯定是問不出來一個人的水平的,但是行業現狀是,即使這種程度的人也不是很容易招到的。 |
30
creater 2015-07-25 06:38:08 +08:00 via Android
面过腾讯和阿里都通过的人来说一句,问你这些基础我觉得是必然,一些常用的api必须记住。不管哪种语言,内存管理都值得研究,这答不上来直接pass。
我觉得楼主面试都算简单了,遇到狠的直接手写数据结构和算法。 另外,别怀才不遇,自己并没有想象的那么优秀,一切都是你想多了。 有点重,但是是实话。 |
31
juxingzhutou 2015-07-25 08:36:41 +08:00
额,我觉得这已经算很基础的了吧,确实不难,大部分看过一遍书之前有一些编程基础的人应该都能答上来。说实话,我觉得不用说大公司了,如果我面到这样的我都不知道该问什么了。这还没问runtime,跟“揪着 Foundation 框架的细节问”还差十万八千里呢。
楼主可以理解为其实在一开始很简单的问题打不出来的时候面试官基本已经心里有数了,后面只是想礼貌性地多面你点时间,但是最后发现真的已经不知道问什么了,只能让你先走了。 |
33
dearsting 2015-07-25 09:41:43 +08:00
连我这个非程序员都看出楼主基础不怎么样。。。
退一步讲,如果你觉得面试题并没有完全发挥自己的长处,应该当场就提出我比较擅长什么什么,并把话题往那个方向引导。唉不是我说啊,楼主显然从能力到心态都很不成熟,继续努力吧。 |
34
ybh37 2015-07-25 09:46:37 +08:00
没事儿,大家都从这个阶段过来的,自己知道哪里不足就好了,好好努力吧。
当年我是稀里糊涂的就从事移动开发了~后来我在微信上问我们老大为什么招我啊,我又没做过移动开发,他跟我说,就一点,C和英语基础水平不错。 |
35
cxshun 2015-07-25 09:58:08 +08:00
没关系,反正大家都经过被鄙视的那个阶段,静下心来,好好加油!
|
36
FanError 2015-07-25 10:40:28 +08:00
看完后感觉自己以后出去找不到工作了。。。
|
37
cheng4741 2015-07-25 10:49:14 +08:00
功能,界面谁都会做,你这基础太差了,addObject方法只能加Object咯,所以排除基本类型和结构体,难道一个对象调用init方法会崩?
|
40
loveuqian 2015-07-25 10:59:17 +08:00 via iPhone
@cheng4741 请教一下我记得好像在哪里见过说init只能跟在alloc后面,不然会有其他问题,到我刚才试了下创建个字符串,循环了100遍init,好像也没啥问题
|
41
lynulzy 2015-07-25 10:59:33 +08:00
@PP 受益,现在年轻的程序员们确实都有一种躁动的气息(包括本人在内)。
LZ大概没弄明白 ,首先,两年开发经验和两年iOS开发经验的区别,如果有两年iOS开发经验您所遇到的问题是可以给人满意的回答的,(如果准备继续爬iOS坑的你,可以在以后回来再看看这些问题)。 其次,现在大公司和创业公司很明显的收人标准是不一样的 。大公司有从实习生培养起来的,而且这些实习生以后也会在这些公司里成长许多,日常的开发任务足够了。但是不免一些技术成熟的牛牛们的离职,所以他们社招招的都是中高级别以上的职位。试想,您已经有两年的工作经验,还会愿意和实习生一起学习吗?所以从根本上来讲,这个机会也许本身就不适合你。但是,既然想要做iOS开发,这样的面试经历还是要有的,每一次(高效的)面试都会有一些技术上的成长,因为面试的问题都是基础问题,或许你只是有印象而并不深入理解,如果能探明个究竟,这些问题会让你换个角度理解iOS开发,重新认识自己的技术水平,这个探索的过程就是技术成长的过程。 |
42
cheng4741 2015-07-25 11:05:05 +08:00
@loveuqian 你要么记错了,要么那个人是瞎bb。init又不分配内存,它就是一个普通的方法,跟你写的其他方法没区别。
|
43
loveuqian 2015-07-25 11:35:52 +08:00 via iPhone
@cheng4741 所以alloc完成了分配和初始化嘛?一直误会alloc是分配,init 是初始化,我说为啥赋值了再init没有改变值
|
44
zylll520 2015-07-25 13:01:37 +08:00 1
@loveuqian alloc 只是分配了内存空间,相当于系统把你要的内存区域的地址丢给你,但是你还是要对你拥有的变量\属性进行初始化,而在 NSObject 中默认实现的 init 方法内容是 return self。
Foundation框架是最基础的框架,所以面试官看你开发经验不多当然要问些基础内容了,这些细节能体现一个人的细节和自己以后的发展 比如说 NSMutableDictionary 对象的 setObject:forKey: 方法中的 key 要求遵守 NSCopying 协议。 不要说网上什么都有,但那不是你的啊,你去搜一下就会用了,不明白背后的原理就没什么意思了,前期自学还是踏实一点,加油! 学完 Objective-C 还有 Swift 等着你哦~ |
46
charlie21 2015-07-25 18:35:08 +08:00
既然这么多人都支持这家公司的做法
既然这么多人都觉得这个面试虽然打击了 LZ ,但是对 LZ 是一种恰如其分的激励 那么 建议爆一下这家公司的名字,这家在面试题里出了 [[NSMutableDictionary dictionary] init] 这种题的公司的名字。 我太好奇了 |
48
sangmong 2015-07-25 21:08:20 +08:00
自己基础都不扎实,还说人家面试有问题??
|
51
deston 2015-07-25 22:35:09 +08:00 via Android
基础真的很重要
|
53
ren2881971 2015-07-25 23:44:20 +08:00
dj~ 平常心平常心。。。
|
54
railgun 2015-07-26 00:10:55 +08:00
人家要的是一上来就能干活的工程师,不是只学了一半的新手。虽然你有其他语言的经验,然并卵。人家要的又不是架构师。
根本原因就是定位不一样,没什么好纠结的 |
55
miki6180 2015-07-26 02:50:07 +08:00 via iPhone
是你自己基础不扎实,不能怪面试官。
|
56
Hysteria 2015-07-26 03:58:47 +08:00
|
57
zhenghuiy 2015-07-26 09:39:55 +08:00 via Android
表示曾经因为常上的网站不是github和stackoverflow、看的书不是英文原版而被拒过(实际上我当时也都有在做,stackoverflow的rep当时是150,但那个时间点以前常上的网站的确不是这两个),这是在前面笔试面试全通过的情况下。如果是社招那我没什么好说的,但是是实习生招聘,对于我们这种大学里完全靠自学、没有人带的野路子程序员来说,有时还真无奈。
也有碰到技术终面直接丢一个更像逻辑题的算法题的,具体内容一直没听懂。因为面试官他在自己讲的时候也断断续续讲了好几分钟的题目大意,我询问几次他还是吞吞吐吐。后面也就没有然后了。当然后来才明白,他们当时根本不缺人手。 相对这些经历,楼主你还觉得你碰到的面试经历坑么? 一方面是建议楼主多努力点,如果真正努力,5个月的时间也足够打好基础了。另一方面是建议楼主放宽心,招聘方有招聘方的考虑与权利,何况这种问基础的没什么错。也不要过度看重一线互联网公司,现在刚起步的话,如果能进不错的创业公司也可以的。 |
58
Tassel 2015-07-26 15:20:41 +08:00
猜的不错的话,是某音乐。我前几天也去面了结果呵呵了
|
59
bla 2015-07-26 19:31:38 +08:00
面试 个人认为被虐或者不爽纯属正常。 我也经历过在各种招聘上投完简历 被约 然后几经周折去面试,结果待了不久就出来了,最少的5-10分钟。很抱怨这种类型的招聘意义何在?简历既然符合初步要求,为何面试这么短就出来了,认为自己把面试当回事,然而面试官却不把你的到来当回事。不过这种情况应该算是少的,绝大部分还是尊重面试者的。而且我认为把面试当做一种对知识的填充是极好的心态,比如就像这次面试到结尾,对方通知您回家等消息后,您完全可以对不明白的地方向面试官提问 或者 自己在一些自己不了解的知识上进行探讨,面试官不一定会回答全部,至少应该会回答部分内容 或者 一个解决问题的方向等等。最后心态最重要 多投几家就好了
|
60
gs038538 2015-07-26 20:08:37 +08:00 via Android
自己的定位很重要。
|
61
linsk 2015-07-27 10:38:31 +08:00
点了感谢,以资鼓励。无论是拿过去的骄傲还是现在的offer来衡量都是靠外部标准,虽然不可避免但Linsk同学认为可以看淡一点,建立属于自己的标准吧。
|