一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 6304|回复: 9
收起左侧

Mathworks的onsite

[复制链接] |试试Instant~ |关注本帖
zijianz 发表于 2015-4-18 03:18:51 | 显示全部楼层 |阅读模式

2015(4-6月) 码农类 硕士 全职@The Mathworks - 网上海投 - Onsite |Failfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
已经决定去Bloomberg了,这次主要是和大家分享交流下The Mathworks的面试,楼主在那里实习过一段时间,所以有一点点了解,看到这里关于曼斯沃克的资料很少,而且内推模块写内推基本没用,所以想聊聊自己的看法。也顺便说说前几天去那里onsite的经验。
想写的东西很多,一时可能想不全,先写这些。

1. Mathworks如何招人。

  Mathworks招人分两种途径,

  1. 一种是众所周知的Support Application Engineer,这个职位很多人不喜欢(包括我),因为这个职位说白了就是,客服(一年左右调到正常岗位)。我曾经和一个从这个职位跳到正常职位的人聊过(美国人),他的原话是,我比较shy,所以我不喜欢总在那里接电话,所以我申请调到这边来了。这完全是扯淡,肯定不是因为晒,但可以知道的是,那边确实是在接电话。目的也只是为了让这些人熟悉Matlab。而且有一点会让人觉得是二等公民。Mathworks主园区四栋楼,分别叫Apple Hill 1-4. 这四栋楼都在马路的一边,而马路的另一边有一棟小楼,我不确定是不是所有的support app eng都在那边,但是大家谈起support engineers,都是用手指那边。
  但其实这是Mathworks自己没有发挥情商的产物。Bloomberg有自己的training,Facebook有bootcamp,都是入职前培训。如果Mathworks把那个东西命名为入职培训会好很多很多。培训也可以绑着做客服。单弄出这么一个职位会给人一种“莫非我不行就很难去开发职位永远做客服了?”的感觉。

  2. 就是按组招人,上面属于普招,面试有题库,永远是一群人在管理面试。而第二种很类似苹果,按组招人,互不干预。第二类招聘不会让你选什么signal processing, control system之类的东西。就是考C++和Matlab。这类面试极简单,因为大多数会在这里面你的人基本都没什么面试经验,但这类机会很难拿到,因为Mathworks公司的特点。
  首先,Mathworks不算Matlab的话,七分C++,三分Java,目前网络版会用到JS,如果你主语言是py,是减分的(而且Matlab的主竞争对手就是py)。除非你是有经验的人,有成熟的perl开发经验,否则所有的script language都是用Matlab,这里讲的主要是自动化测试。上面提到有四栋楼,其中Apple Hill 4里面全是Simulink的人,做Simulink的可以说是五分C++,五分Matlab,太多太多开发都是用Matlab在进行,这也是为什么要开设客服工程师要大家熟悉Matlab,为什么第二种招人方法难拿,因为第二种非常看重你matlab的开发经验,如果没做过大量OO Matlab,或者在这里实习过,或者是别的大公司来的有经验的,基本很难拿到。至少我在的组一半的测试都是Matlab写的,后来从Bloomberg来了个女的,用perl。

  内推之所以没用是因为重点真的不是推不推,而是你简历里有多少Matlab的开发经验,这才是重点。
  这类机会你拿到了,就很有戏,even onsite,也只会问你smart pointer,给你段C++让你看内存泄漏的题。绝对不会有绕来绕去的算法大题。
  而所谓内推,完全在于谁在推,怎么推。这点不仅仅是Mathworks,任何公司都一样。你给我简历,我写两句往库里一扔,是没用。但如果我特别认真,发自内心的给你写一封推荐信,基本可以说,你一定会得到面试。所以内推能不能拿到面试?如果推你的人真的想,就一定能,不光Mathworks,放之四海皆准。在加州我让很多人内推,毫无声息。在苹果找到了一个我们学校的学长,学长对我很好,很认真的推,苹果六个组同时找我(羞耻的全跪,但确实有4个实在不对口)。
  所以关于内推,我个人的建议是,找朋友推,别找那种不熟的人推,大家都是人,你看到库里有一个配着很敷衍的推荐信的简历你会怎么想,反正我会对这封简历有负面想法,因为推的人根本没想推。不如自己好好投。

2. Mathworks为什么看起来不太招人。

  三十年没上市的老公司(就没想上市),old school moves 相对慢一点。如果你进去会发现,大部分楼层都至少空着1/5的办公室(Mathworks每人一个办公室,even实习生)。那里原来三栋楼,曼斯沃克一栋,后来买下另外两栋,又盖了第四栋,但公司扩展却一直缓慢。
  走在大楼里,四处都能看到ReferralWorks的海报,这是Mathworks的内推模块的名字。这点和苹果也很像,鼓励招有经验的人。
  其次,如果组里缺人了,从外面招人确实是一种手段,但是招有经验的人,如果招new grad,从马路对面的客服大队里选其实相对更有质量保证。
  最后,Mathworks大多数提到的工作年限都是可以忽略的,你认为自己够牛就投。在Mathworks眼里,phd就是工作经验。
. From 1point 3acres bbs
3. Mathworks面人主要看什么。
  一言以蔽之,如果你对virtual function模棱两可,那么你必!跪!无!疑!。说白了就是OOP三大项,encapsulation,inheritance,dynamic binding。
  简而言之,就是C++的基础知识,对算法考察不多。继承,多态,继承在内存里什么样,多态是怎么实现的。他们会给你一段拿C写的很繁琐的程序,让你用继承+vFunction重写(下面会提到这道题,我问过别的的工程师,不止我一个人遇到这道题)。
  其次就是Design Pattern。
  而且,你要知道基本的测试流程。
  说白了,不是算法能力,而是软件开发能力。. From 1point 3acres bbs
-google 1point3acres
4. 我的实习。. from: 1point3acres.com/bbs
  1. 上来给我一段C语言写的程序,好几个有关但独立的struct,让我用C++重写。明显是考Virtual Function(呼应前文)。
  2. Hiring Manager,聊天,聊学校,聊发的paper,讲自己的research。
  3. 我后来的mentor,聊上面那段程序,聊继承与多态,聊STL。(放水让我过的中国好姐姐)

还是那句话,软件开发能力,不是算法能力。这里看的是hit the ground running,不会追求什么我看你潜能,几道算法题也看不出潜能。

5. 上个月的full time onsite(不签NDA噢)
  1. Hiring Manager随口聊聊背景,问几句C++和Matlab的语法。
  2. 一个15年的工程师聊C++,这次聊的我都累了,连VTable怎么实现都聊到了。
  3. Onsite,如果你去面Mathworks,记住一点,问你内存泄漏的问题随口说几句就得了,正确答案一定是smart pointer,没悬念,真的,来回来去就是它。
     1) 一个小时的presentation,选一个你骄傲的项目在所有人面前讲。(只要你onsite,这轮是必须的,作用是介绍你自己,省的后面见每个人都要介绍一遍,而且还是考察交流能力,另外,如果你present的项目和组做的东西不对口,也会减分,因为要求你选你骄傲的与组里做的最相关的项目)
     2) 一轮工程师,聊天,就写了个fibonacci,很轻松。
     (这里隔了一轮HR面,聊薪酬待遇,要老师电话之类的,问我还在面谁,我没思考就是Bloomberg和Facebook,哥们然后问我Bloomberg和FB你选哪个,我心想肯定不能说FB啊,就说BB,因为我喜欢扭腰,结果一语中的,最后真去了BB)
     3)Hiring Manager,我前面谈过,这类面试大多数人都没什么面试经验,所以身为hiring manager,拿着张纸问我behavior question。比如,“给我举一个你没有被要求却自己主动去完成事情的例子”,实在问的我想吐。
      而且这一轮我犯了两个大错。第一,他在说asked的时候(就是上面那个问题),我非常确定他说的是axed(印度人),我一直以为他说“你如何主动完成事情避免被开除”,直到他拼出来,我哈哈大笑说Asked,楼主曾经为了装逼练过英音,虽然说起话来四不像但说一个单词还是有点像的,啊(四声,吞个ou)sked和他的axed有着异常明显的区别,哥们当时就脸色一变。然后他问我什么是scope,我直接就说是namespace,他说不对,我就懵了,我就说难道你说的是global 和 local variable?他还说不对,我就真懵了。然后他一脸不屑的和我说 how about public和private?我当时又是一笑,我说一般这个我们都会叫access control或者encapsulation,哥们又瞥了我一眼... 我口没遮拦是我的错,但这种野路子的人确实没法聊,你可以期待我说private public,但你不能说namespace就是错的啊。再次证明,无论为什么,都忘OOP上靠。而且,太多无聊的behavior question了,HR问过了他又来一遍。
      经验教训就是,莫装逼。. 1point 3acres 璁哄潧
    4)第四轮是另一个manager,面的蛮好的,基本就是内存泄漏问题的各种看code。一定要明白发生exception时是怎么release dynamic memory的,而且什么情况下不会被release。一定要知道rule of three,就是当你需要定义destructor的时候,那么copy和operator=都必然需要重新定义。还有,用char*做argument的constructor究竟该怎么写,记得要自己开辟空间,不能直接assign。一定要用过C++11的smart pointer。知道是怎么实现的,我不确定我是不是对的,但我的理解那就是reference counting而已。最后她和我说了一句,你要知道,我不是最终做决定的那个人。现在想想看莫非那时她就已经知道我挂了?
. 鍥磋鎴戜滑@1point 3 acres
6. 如何得到第二种面试

不敢说建议,仅仅是个人经验和看法。

Matlab的Object分两种,上古时代是一种叫做UDD的标准(内部现在其实还在用),现在是MCOS的标准(就是现在能在doc里找到的官方matlab object)。如果你能对这两个东西有些研究,且写过OO Matlab的,一定要在简历里浓墨重彩的写。MCOS和UDD不算公司机密,网上有资料的。
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
我不敢说能给什么特别好的建议,因为我对Mathworks的了解仅在simulink的一个组和语言的一个组,但我可以非常非常确定的讲,MCOS,UDD绝对是关键字,能把你带进第二种面试的关键字。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

任何用matlab开发的,哪怕是小作业,也要浓墨重彩的写出来。强大的matlab经验就是让你脱引而出的关键,真的,这公司太依赖Matlab编程又没法对外要求(我们不在乎语言已经是一种行业态度了),所以对于new grad来说,matlab经验是唯一能做到的东西,而MCOS和UDD是让你与其他有Matlab经验的候选人区分的东西。我无数次听hiring manager吐槽太难找了解MCOS和UDD的人了。

先写这么多,想到了别的再讲。

. Waral 鍗氬鏈夋洿澶氭枃绔,总之,梦开始的地方,虽然没回去,但没有那里的实习,我得不到后来的很多机会,永远是我深爱的地方。

评分

5

查看全部评分

yumeng 发表于 2015-4-21 06:57:30 | 显示全部楼层
非常感谢 很有用的帖子
回复 支持 反对

使用道具 举报

dlgaobo 发表于 2015-7-21 00:40:35 | 显示全部楼层
感谢楼主分享,说的内容很丰富啊!
回复 支持 反对

使用道具 举报

nano 发表于 2015-7-21 04:38:41 | 显示全部楼层
谢谢分享,我面过mathworks两次,第一次那个support application engineer,control system, signal processing,无悬念挂了,好惭愧我ee的背景,第二次老板找了个director内推我,非常给力的内推,我又无耻的搞砸了,因为没有临时突击cs的东西,败给了c++,我觉得下回想找虐的时候,可以再试下

还有一个被mathwork烙印问的非常经典的问题,simplex method的时间复杂度,我只能想出来是和矩阵乘法复杂度是一致的,具体是多少,完全想不起来了
回复 支持 反对

使用道具 举报

wangtieguo 发表于 2015-8-3 13:25:39 | 显示全部楼层
请问Engineering Development Group(EDG)engineer的onsite也是这些内容吗,我是CS new graduate,接到了第一轮电面。谢谢
回复 支持 反对

使用道具 举报

ourlord 发表于 2015-10-6 05:12:07 | 显示全部楼层
看到LZ这一篇post我简直要哭瞎。今天早上去面的onsite,我现在在说一说今早的经历,也是无语。
.鐣欏璁哄潧-涓浜-涓夊垎鍦
啊先说说之前其实还面过一次mathwork,当时刚来米国读书,在cf上遇到mathwork,建议我投那个support,说是都投这个,于是我也不懂就上了,结果接到了来米第一个面试(电面),从头到尾问各种概念问题,还是个三哥,我刚到美国没2个月,美国佬的英语有时候第一遍都听不懂,更别说三哥通过电话说的话了,虽然网上有整套整套的面经,但还是有些问题我听不懂他在问的啥,感觉最后还是面完了1小时真是双方都不容易。后文肯定是没有了,网上看了看,这个support的职位如果不是问题全答对(毕竟网上成套成套的面经),估计是很难有下一轮。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

.鐣欏璁哄潧-涓浜-涓夊垎鍦打那以后我其实对mathwork映像就不好,一家20年老公司不上市,还只做2个产品,很少见扩招(后来cf就没怎么见mathwork是来正经招人的,去柜台都只是给你传单啥都不说),所以没想再续前缘。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

鬼使神差第一份实习做C++,后来也就一路C++了。mathwork最为东北几个本地的大公司评价还是可以的,而且也做C++职位要求又不高(LZ也说了,大部分就只写C++和matlab,想想只是做软件,大不了多个UI要求是吧?),现在看来真是天真啊。。。 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
.鐣欏璁哄潧-涓浜-涓夊垎鍦
于是就来我说我这次投的full time

我的简历和经历里全是C++,但做的多的是后台和服务,并不算是太软件开发,MATLAB肯定用过,但并没放进简历里。之前投的职位是纯软件开发MATLAB,C++,但是不知道为什么后来hiring manager联系我的时候变成了另外一个职位,是simulink,而且多了一个多线程并行计算的要求。但我简历里还是有一点点这方面的东西,所以还算靠边,既然人家都能看上我那我也没什么好说的。
. 1point 3acres 璁哄潧
电面和hiring manager,线上coding,作为CS真是太简单了只能说,虽然他问了我一些关于hash map实现方面的问题没答好,但我觉得还是ok的。第二轮电话是另一个组的manager,说白了纯文概念和经历,毫无难度。. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
但是,我看着这个新的职位明明说明里第一条就写着,你将来的责任会是开发并行操作blablabla,但特么他们一个都木有主动问我多线程的问题。hiring manager最后留了5分钟让我问问题,我说你不问我多线程吗?他说啊,时间不够了,以后会有人问你的。
第二个电面也是我最后提醒他说你不问我多线程么?他说哦哦那你说说你对这东西有多熟。。。。. more info on 1point3acres.com

好吧,然后接到onsite通知(到现在为止觉得还没什么问题嘛,在不看LZ这篇po的情况下),毕竟我经历全是C++,OO基础肯定没硬伤,还做过2个实习(虽然不是什么大公司),他职位要求又不高,平时题没少刷,数据结构虽然有些偏门的不是太熟但应该不是问题。而且鬼使神差的我还察觉到他估计只会问我OOP,所以我全在准备多态,encapsulation这类的问题。-google 1point3acres

做了presentation是关于我C++实习项目的一部分,按LZ的po来说可能减分了。于是开始面试,第一个来的貌似是一个非常高level的manager,可能还是department head,他上来就问了我一个concurrency的问题我特么就有点懵了,不过我想没事我想一想就是了,题目很简单:在p多个处理器的环境里,找出0~10^10内的所有质数。我一开始给了个思路我自己也觉得不太对,于是就改了改再写了一个思路,在我写这个思路的时候这个人说要发条短信,我说好吧。。。(想着是不是家里有事之类的)然后他还是对我写出来的不满意,就说我给你个hint(其实给了标答,或者说他想要我说的答案),特么就是把1,2,3,4分别丢进4个线程去看他们是不是质素,依次类推再丢5,6,7,8……我也是比较无语好吧,他给的解释是这样每个处理器才会是最大限度的计算,不会idle之类的……然后诡异的事情就发生了,他说时间差不多了,我一看哎哟怎么都半小时了,好吧出他办公室他带我去见hiring manager,hiring manager就把我直接带出楼了??我还在纳闷什么情况??他说it's over you can go home……还不给我feedback. 1point 3acres 璁哄潧

我真是没见过onsite还能这样的?也不是第一次面了,但这样才面了一个人突然就被请走我也是无言以对,hiring manager说要feedback找hr,我现在还没能成功联系上hr……我甚至下午还专门打电话给了一个我认识暑假在mathwork实习的美国小哥(人家本科。。。其实是小弟)说我这情况到底是正常不正常,我是不是哪里本质性不对,美国小哥也一路就说weird……但他还拿了return offer,说自己当时面intern真是水到都可以去死了……希望我能尽快拿到feedback告诉他到底怎么了……

还好现在是看到了LZ的贴,感觉有些事情开始make sense了........简直感觉已经从悲伤经历变成搞笑经历了....如果mathworks真是这样的公司也还是应验了我第一映像了。。。
回复 支持 反对

使用道具 举报

巫山云似盖 发表于 2015-11-19 05:45:18 | 显示全部楼层
想问lz,是不是按组招人的那种就是投完简历第一个联络你的人是developer?为什么投的是Application Support Engineer 和 Associate Software Engineer (Entry Level), 反而是一个developer来联络我介绍他们组还说有兴趣的话直接回复他,职位还变成了Senior Software Engineer,我没有实习经验。了解这种情况吗?
回复 支持 反对

使用道具 举报

kebugcheck 发表于 2016-2-19 11:01:42 | 显示全部楼层
感觉楼主好强大,竟然知道这么多内幕消息。
回复 支持 反对

使用道具 举报

yelant 发表于 2016-3-23 01:19:50 | 显示全部楼层
想问一下楼主,你后来有没有到background check那一步?
回复 支持 反对

使用道具 举报

markeey 发表于 2016-4-6 04:15:22 | 显示全部楼层
请问楼主,我面的是楼主说的第二种情况,刚收到邮件说二面,是个hiring manager,印度大哥,这种会侧重behavior,project呢还是c++,做题呢?多谢
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-10 01:01

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表