程序员何苦难为程序员(记某BAT之一面试经历)

james19861 2014-08-07 08:37:32
BAT之一,是原来一个做IOS客户端开发的同事内推的,面试的也是他们项目组的服务端开发,但他说他们服务端是用的PHP,我也不明白他们为什么会要面我一个java开发。
周一就约了今天下午两点(周四)面试,我问周五是否可以,对面人力的小姑娘说他好不容易才和3个面试官都约好了时间不方便改,于是特意请了一天假,早上看了会《NoSQL精粹》,中午吃完饭就出发了。
前台排了号,不一会一个屌丝气质极其浓郁的人就过来叫我了,没有多余的话,就跟着他进门禁爬楼梯上二楼了,跟在他后面,仔细观察了他一下,拿着一台macbook air还夹着3页纸,一双灰运动鞋快要变成黑色了的样子。
我以为他是带我去见面试官的,没想到他直接带我到茶水间就开始了面试。
于是黑运动鞋就打开了他的mac,第一句话就是你的简历怎么打不开啊,可以确定的是我发给同事简历后,他们老大和人力都看过了,我也很奇怪我在家里也是用mac编辑完发的啊,他又问我有没有pdf格式的简历,我说没有,但我可以现在登我邮箱重新下载一份试试!没想到他转过了电脑说算了,你就口头介绍一下自己吧。
于是我开始自我介绍,他开始了……抖腿……
听完我介绍,你把白纸和笔又递给了我说,介绍一下GC吧。
我就简单画了下堆的新生代和老年代,说了下回收机制。
他又问回收的原理,我说有一种回收方式是引用计数,当计数为0时,代表该对象没有引用,GC便会在下一次运行时将其回收。
黑运动鞋不满意,还执着问我具体原理,我很是惊讶就又重复一遍。他反问那怎么判断计数为0呢?我回说可能是在堆对象的前几个字节中存储了引用数吧,我记不太清了。他还是不满意,竟然还在重复的问原理。我只得说不知道了,只记得这么多了。

紧接着,黑运动鞋又问进程和线程的区别,说了说进程线程存储空间共享问题,开始问的倒都还知道,后来问我进程间的几种通信方式,我是真一个都没想起来,只能说不知道了,最后出了公司才想起来一个管道来,惭愧……
当然,这个过程中他一直在抖腿……抖腿……

接着他又问了我堆栈的区别,问我堆上只能存放对象吗?
我说应该是的,还是就是常量区了。
他说我提示你一下吧,malloc()分配的……
malloc……哥,你确定是和我在讨论java的堆栈吗?
当然他开始就没说问的是java堆栈,这个就算我技术不精吧……

然后,黑运动鞋又拿过纸张写:int strlen(char *a) 让我求数组长度,他写得很乱,我和他确认了好几遍好几个地方,才确定他写的是前面那些东西。
我尴尬的和说自从毕业就很少写过C了,边纠结回想指针的语法,想着怎么写。

他可能是看我犹豫纠结,又说,算了,你就写个排序算法算了。我问什么排序,他想了一下说就冒泡吧。于是我开始在纸上吭哧吭哧的写冒泡,他继续抖腿……抖腿……
还好,我自己都惊讶自己能在纸上手写出来冒泡,这种在电脑上都从来不再去写的东西。写完冒泡,他又让我优化,这个我以前真没想过这个怎么优化,想了半天只能说不知道优化了。于是他合上电脑,停止抖腿,一付要走人的样子,我赶紧说你能说说怎么优化吗,我也挺想知道的,他说可以判断交换是否执行,然后提前break。仔细想了会还真是啊,这个以前还真没想过。
黑运动鞋继续起身,我突然感到他在等我起身,而我还傻呵呵的想着等接下来的两个人面试呢。
我惊讶问他:就这样了?
他点点头:就这样。
他送我出门禁,告诉前台面试结束。以前面试结束后我都会和面试人员说谢谢,再见!但我这次感到很抑郁,不想说谢谢,我向他说再见。
他没说话(好像以极低的声音嗯了一声?我不确定。),调头往回走了。
我为什么要说再见!!!!!!!!!!

出了他们大厦,说不出来的抑郁,给内推的同事打电话,他说刚面我的是他们ios客户端开发的leader ,我告诉他应该没戏了,我就先回去了。
不管怎么说,都非常感谢同事的内推了,他已经尽力了。

回到家后,我一直想不明白的是,这次面试我到底失败在了哪里,这几个实际开发从来不会遇到的鸟问题,我虽然答得不太好,但也不算太差啊,就因为我没说出进程间通信的方式?还是写出了冒泡却没有写出他期望的优化?
虽然基础问题确实能考查一个程序员的技术能力,但是这样找一客户端IOS程序员面试一个JAVA服务端程序员真的好吗?
这样只问点抽象问题,不问具体技术的面试真的能够招到你们需要的程序员?亏我还准备好好喷一喷soa, nosql了,哪怕你只问几个sql数据库方面的题也行啊。
这大热天的,请一天假,公交转地铁的,参加了这样一个没有意义的面试。呵呵!
好久没写东西,这么点东西就写了快两个小时了,写得真累,笔误及语句不通的地方就不改了,凑合看吧,酱紫!
...全文
4335 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
SakuraTomoyo 2016-10-08
  • 打赏
  • 举报
回复
萌新表示最近也在自学C,一头雾水,但是听说C比较底层,就算不精通也要懂基础,比较底层的东西是永远不会过时的
qq_34539912 2016-09-27
  • 打赏
  • 举报
回复
bat很多问的都是最基础的算法思想结构吧,比如也有问过集合底层实现,冒泡的优化还好吧,还有nio,并发包,应该都会问到的吧,他们应该比较注重程序员的上升通道的宽窄,底层明白的越多,上升通道约宽,代码质量越高,知道底层实现更能确定具体问题用哪种方式最好,c也是最基础的东西,那个不能丢的
llddy 2016-01-28
  • 打赏
  • 举报
回复
我不认为楼主技术不精,我认为一个面试官都不看这个人从事的行业与项目经历。简单问了一些没用的垃圾。这样的公司可以pass了
Alphazxp 2015-09-25
  • 打赏
  • 举报
回复
楼主技术不精,面试失败,有点恶意攻击面试官的嫌疑.
天然呆程序猿 2015-07-12
  • 打赏
  • 举报
回复
只能说楼主理论基础不行,很多理论看上去没用到,但是它无形中指导你的编程思路,对代码的理解深度,起到决定性的作用。
james19861 2014-08-08
  • 打赏
  • 举报
回复
结帖算了,技术不精,不怪别人,睡一觉起来不再纠结于他的态度了
james19861 2014-08-08
  • 打赏
  • 举报
回复
也是,其实也是,归根结底还是技术不精吧。
zapdos 2014-08-08
  • 打赏
  • 举报
回复
楼主,其实这些都是很常见的面试题,只能说你准备不足,GC、进程/线程、进程间通讯、内存模型、简单算法这些我都碰了不止一两次 如果问的是偏应用的问题,我也会BS面试官的,以前阿里就有这样的面试官,什么都问你怎么做而不问原理 如果让我来面试,我也肯定会问类似的问题 问这些不是说装逼,是看你对待问题的态度,以及你过往项目的质量 反正碰到什么问题先学会,下次再面就好了,不要期待面试官会按你的想法问
james19861 2014-08-07
  • 打赏
  • 举报
回复
GC这个就别提了,我感觉我答的还行,而且他根本就是搞IOS的,我现在想一下,其它他是不懂JAVA的,也不知道他从哪里搜的这面试题,冒泡我都手写代码出来了,就因为没优化就pass啊,好郁闷……
jxxfldt 2014-08-07
  • 打赏
  • 举报
回复
GC原理啊冒泡排序优化啊啥的 更看重基础和编程思想吧 相比应用技术的细节

662

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧