×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

重开一贴,转贴-doihaveto(luckycouple)贴的link:看看滑铁卢大学真正牛娃写的COOP经验分享; 尤其是老redneck要读一下。这和大部分人想的“码工”就是坐在小黑屋里冥思苦想的刻板印象大不相同啊。 哈哈, 一日3餐免费, 没有固定的上下班时间。

本文发表在 rolia.net 枫下论坛CS co-op经验分享

发表于 2011-6-15 01:17:02 | 只看该作者 回帖奖励
本帖最后由 wensi 于 2011-9-11 08:21 编辑

(好久没有码这么多字了,假如有地方读得不通顺请告诉我,我会修改,谢谢)

先介绍一下我自己:我是CS的学生,winter term刚读完2B。现在正在苹果co-op, iOS team做frameworks。本文写的大部分都是个人的经历和感想,希望能对将来想到硅谷co-op的同学有所帮助

::72::::72::::72::


1,简历篇

我是transfer student, 这是我第一个work term。因为没有经验, 刚开始申请的时候很认真, 花了一整周末写resume和cover letter, 找了很多人改, 最后PD1 resume critique竟然fail了。个人感觉PD的resume critique没有什么帮助, 大部分都是按照rubrick很死板的改分。TC网站上可以预约一对一的resume critique, 比PD的有用很多, 但是要早预约, 否则会没有位置。当然,最好的方法还是找前辈们的简历做参考, 毕竟他们的简历让他们找到了想要的工作。要是找不到的话可以在Google上搜索和你感兴趣的职位相关的简历, 比如说用这些关键词:"Google waterloo resume", 能搜索到很多前辈们的用来参考。

简历的排版很重要, 不整洁的话很容易留下不好的第一印象. 尤其是万恶的Jobmine只支持HTML。假如你用很眩的Word排版, 然后save as HTML, 很多内容都会乱掉, 所以上传之前一定要注意排版没有问题, 没有乱码什么的。至于内容嘛, PD讲的很详细, 别的贴子也有细述, 我就不献丑了。另外,朋友给我提到了很重要的一点:中国人认为谦虚是美德, 但是当HR读简历时, 你谦虚了别人没谦虚, 你面试的机会就小了很多。只要你能back it up, 尽量想办法impress你的读者。还有一点, 尤其对于新生, 很多人由于工作经验不够, 喜欢把上过的课和课里做的assignment也写上去。可是大家学的课都是一样的, HR读简历时看到一遍又一遍会无聊的, 所以你要想办法吸引他的眼球。有些课的project/assignment, 你可以更进一步, 加一些功能或者加一些UI, 然后放到类似SourceForge或GitHub之类的开源网站上, 这样简历上就可以写"contributed to the open source community", 看起来会比较出众。

至于cover letter, 个人喜好吧. 我觉得除非是公司要求(有的公司要求, 我懒得写, 就干脆不申请了...)或是你的dream job, 一般没有必要些. 很浪费时间, 而且大部分人都不看(我老板亲口告诉我他不看cover letter)。提到这个, 有一点要注意一下, 写resume的时候你最好知道你的resume会被谁读, 然后对症下药. 例如Google, Microsoft, Facebook, RIM都是先有一轮HR screening, 然后会根据你的qualification转发到对应部门的工程师; 而Apple, Bloomberg会直接落到工程师手里 (这些只是我听说的, 希望大家可以更正/补充).



很多新生在准备简历时会因为没经验发愁。我这里总结一些方法来让你的简历更充实,而且大一就可以做到。同样的,假如你work term没找到工作,不妨尝试一下这些活动,会对未来找工作有很大帮助:

- Open source projects: 开源活动其实要比大家想象的容易很多。你只需要到SourceForge或GitHub这样的开源网站找到自己感兴趣的project,把代码下载下来读就行了。假如遇到困难,在mailing list或IRC上求助,只要你注意点netiquette,大家都愿意帮你的。刚开始可以从简单的学习,比如说试图添加修改点小功能,或者提交一两个patch。时间长了有可能做很多很有意思的东西。当你快毕业的时候,说不定可以用它来做thesis/research project。做这个最好的一点就是没有什么年级或分数的限制,只要你愿意,高中的时候都可以参与。而且参与的期间你会学到很多很多上课学不到的东西,比如说阅读上万行的代码。

- URA(undergraduate research assistant): 很多同学知道TA但不知道URA。简单来讲,它是大学提供本科生体验研究的机会。你每星期只要抽出几个小时,去lab帮一下忙,期末的时候做个总结就好。而且是paid, 每小时10块钱,比打工强。CS的学生没必要只在math department找URA。只要prof同意,任何department的URA都可以做。很多时候教授人手不够,但是因为没时间,不在网上post。假如你对哪个教授(或者他的grad student)的research感兴趣,你给他发封邮件他就会考虑。我来UW前的夏天发现SYDE的一个教授搞multi-touch,觉得很有意思,给她发了封邮件,然后来UW的第一个学期就在她的lab帮忙。

- Velocity: Velocity其实是一个学生宿舍,只不过住那的学生都对startup(创业)感兴趣。你可以和一群朋友做一个startup project,一起住在velocity。里面设施很好,很新;学校会会每隔一段时间举办一些活动,让大家和象牙塔外面的人物接触。住那的学生也很有意思,很有想法。申请没有年级要求,你也不需要有project,填份表就可以。房租和其他宿舍差不多,只不过很多人不知道而已。Velocity还有个好处就是假如你有个project,学校approve之后你可以用来做work term。也就是说你work term不用找工作,专心做你的project就好。

- Competition: 大学间的竞赛大部分都很花时间精力,例如ACM ICPC和Putnam。但是,一些公司举办的竞赛会容易很多。Microsoft, facebook, ebay每年都会举行一个叫hackathon的比赛,给你24-48个小时让你编出一个程序。像这样的竞赛一般竞争都不是很激烈,而且不是很花时间(顶多一个周末)。因为重在参与,他们经常会有莫名其妙的奖项,所以运气好还会有surprise。更何况得不得名次比赛经历用在简历和面试上都很好。除了hackathon之外,类似的竞赛还有google code jam, google AI challenge, Microsoft XNA contest (dream.build.play)等等。只要你留意MC/DC墙上,类似的竞赛会经常有。

- Conference: 有空多去些conference不仅可以开阔眼界还可以认识很多人。我去过的有CUTC,NBTC,Impact Conference,都是一年一度的。UW提供一些subsidy,一般你早注册的话,门票会很便宜(Impact是免费的)。如果你想主动一些,可以找speaker聊天。只要你能引起他的兴趣,也许一个summer job就搞定了。Conference同样会有比赛,参加那些放在resume上也不错。我去年去CUTC,他们邀请了Microsoft,IBM,和Deloitte的人力为学生提供建议,内容我下文有写。

- Google Summer of Code: GSoC每年夏天招取一千多个学生帮助开源项目。你可以申请你感兴趣的项目,然后会被分配一个mentor通过IRC来指导你。GSoC基本上就像一个summer job,每星期要工作大约40个小时,一夏天Google会提供5000USD的补助。一般你的mentor都是开源界的大牛,所以你一夏天能学到很多很多东西。另外,GSoC的申请3月才开始,也就是说假如你first round没着到工作,你可以考虑它,CECS认GSoC为一个正常的work term。

- Student Clubs/Council/Society: 我觉得CS工作一般不是很重视student clubs,更重视technical experience。所以我resume上的extracurricular非常短。但是,你可以想办法把extracurricular变成technical experience。很多club都需要网站啊,iPhone app啊,数据库啊之类的东西。你可以主动找club president看他们需不需要做这些东西,对一二年级学生是很好的experience。比如说我上学期住WCRI,我们需要一个数据库前端来让学生查看他们的pi bucks,一直没有人做,感兴趣得人可以去WCRI office问一下。


Interview/Resume Tips from CUTC
Here is a short summary of the notes I took from CUTC. The advise was given by HR specialists from Microsoft, IBM and Deloitte.

Microsoft

wants specialized developers, prefers platform developers to web/mobile developers
emphasizes on critical thinking
likes students who can play nicely with others, earn respect, and learn from full-time employees
only hires MBA students from 13 designated universities
wants student to do research and learn about the company before applying
likes specific objectives in the resume, including internship period
likes student talk about personality in their resume (e.g. passion, hobby)
thinks it's a common practice to search student's online identity (blog, Facebook, etc)
during an interview, prepare at least one question to ask to the recruiter

IBM

likes business minor (or any other business component)
likes international experience
wants specifics about skill set (e.g. level of proficiency)
wants an unofficial copy of the transcript attached
wants expected date of graduation in the resume
doesn't read student's cover letter (generally)
likes students who are confident & presentable (dress appropriately)
likes students ask about recruiter's background
wants students to be nice to everyone (including the security)
likes a hand-written "thank you" letter handed to the security after interview

Deloitte

emphasizes on the business component and the ability to network
has positions on advisory work, merge/acquisition delivery, consulting etc
likes referrals, claims that consultants hire consultants
likes working abroad experience (networking)
thinks a resume with high quality writing can add value
makes cover letter & transcript mandatory
advises students not to ask about pay during the 1st interview
has a dinner interview in the 2nd round, expects students to network

Certain re-occurring advise mentioned by all companies and are looked upon with great importance:

research about the companies with great focus
network, know as many people as possible, best to have referrals
start approx. 6 month earlier to look for jobs



2, 面试篇

第一个round申请了大约40个工作,收到了将近20个interview, 最后有8个offer (Apple, Google, RIM, Autodesk, Capcom, PwC, and a few silicon valley startups)

最有意思的面试是Google的. 我收到了一个Software Engineering的面试, 一个Associate Technology Manager的面试. SE职位面试是两个back-to-back technical interview,各45分钟,分别两个不同的full time电话面试。第一个Interviewer很厉害,在UVa Online (一个算法比赛的网站) 排名25。他先让我在Google Doc上编一个paint的fill method, 很简单的backtrack algorithm; 然后让我构思一个window system应该如何管理/渲染很多窗口, 重点在窗口使用的数据结构, 和窗口重画的方法(窗口可以被部分遮挡)。第二个interviewer是个印度女的, 我当时用的一超烂的手机做的phone interview,超悲剧,既听不清,编码又不方便(没有耳机/话筒), 感觉搞得挺砸的. 她让我试图实现Google的"did you mean"功能, 我刚开始有点紧张, 不知所措. 后来她给了我点提示, 其实就是简单的combinatorics (MATH 239), 更换字母然后在数据库里找. 之后她又问了一些runtime complexity之类的东西, 感觉回答的还不错. 面试完当晚我还让HR转发了一封thank you letter, 也不知道他们有没有看. 总之没什么坏处.

两个technical interview过了之后, 假如Google觉得你合格, 你就可以开始host match. 这时候虽然jobmine上不会显示(jobmine上有个bug可以看你有多少offer), 但是你基本上已经可以放心了. 一般大公司technical interview之后都会有host match (苹果比较独特, 我后面会讲). Host match主要的目的是让你找到适合你的团队, 所以你有可能会有很多面试. 但是这时候就不是你回答了, 你可以尽情提问你的interviewer, 关于各种各样你感兴趣的问题.

除了SE之外, 我还收到了一个Associate Technology Manager (ATM)的面试. 当你递完你的resume之后, HR会根据你的qualification来forward你的resume到不同的部门. 因为我有startup experience, HR给了我一个ATM面试, 主要和google的vendor (3rd party)做交涉. ATM的fulltime是一个轮换的职位, 每半年换一次你的负责内容, 有时会很technical (编码), 有时会完全business. 面试的问题也两边(technical/non-technical)都有. 虽然ATM听起来好像是management的职位, 实际上薪水不如工程师高.

Bloomberg的面试我感觉是最难的, 至少是最煎熬的. ::29:: 第一轮纯technical, 连续2个小时4个面试官轮流问问题. 不说别的, 光在那一动不动的坐两个小时就够受的... 问得问题很杂, 包括算法, 数据结构, 编程语言和complexity. 让我记忆最深的是, 我坐下没两分钟, 他们问得第一个问题是让我现场在纸上写<auto_ptr>的implementation (C++里的smart pointer). 我当时就傻了, 糊弄糊弄写完了之后他们才哄我说这个问题完全non-trivial, 后面的问题都不会有这么难。(顺便提一下,假如面试题不会的话,你完全可以让面试官给hint,不会留下不好的印象。很多难的面试题你太快答出来的话,面试官会认为你之前回答过同样的问题。)第二轮共1小时, 2个面试官. 第一个是HR, 给我介绍了一下公司然后顺便把薪水也告诉了我. 听了之后我心花怒放, 以为offer稳拿. 没想到接下来的面试又是technical. 面试官貌似将会是我的manager, 问得超technical的C++ pointer问题, 4道题我答上来两道半. 最后没拿到offer.

Apple的面试还算简单, 第一轮是onsite。面试官(我现在的boss)直接从苹果总部飞到UW来面试. 半个小时, 问一些简单的算法问题, 时间一下就过去了. 我那天早上超悲剧, 8:30的面试, 闹钟没响, 我8:15起了之后连西服都没穿(后来才知道CS的面试大部分interviewer都不在意你穿什么)直接飞奔到TC, 出了一身汗, 还肚子痛. 整个面试都在一边擦汗一边想着不要拉裤子... ::46::::46::::46:: 第二轮是和我大boss, 45分钟, 问了一些深一点的数据结构, 例如hashmap是如何implement的(red-black tree or self-balancing tree, NOT array), 和一大堆memory management的问题。总体来说面试不是很难。后来跟他闲聊了一会, 发现我之前自学iPhone programming的教材(Stanford CS193P)就是他策划的。

最后讲一下startup吧. Startup的面试五花八门, 什么样的都有, 什么问题都有. 有一个公司给了我20行没comment的python代码, 让我解释代码的作用, 过了20分钟我还是一头雾水, 然后interviewer直接"we'd like someone who can start working on the first day without any help"就拜拜了... 另外一个startup没问任何technical问题, 跟我扯了5分钟说"I'm sure you know your stuff, you will hear from us on the ranking day", 最后连个rank都没给...


面试完假如你对这个公司感兴趣的话,不管你感觉面试的怎么样,都千万别忘了问面试管要名片。一是让面试官觉得你有诚意,但最重要的是以后还想联系他会非常非常容易。至少你有他的名字和联系方式。

Ranking

大公司有个好处就是他们招生没有名额限制,所以你只要符合要求,就会拿offer,不用担心rank不到的悲剧。一些招生有名额限制的公司会在ranking day前几天联系你,问你会不会接他的offer,然后跟你谈薪水。他们也怕给你offer了你不接,所以想做好准备。

另外,Jobmine有一个bug,可以让你在ranking day前看你有多少个offer。具体别的贴子里有写,我就不多说了。还有,你要是觉得jobmine很丑,有一个东西叫jobmine plus,比jobmine好看点。

Salary

美国工作薪水相对要高一些,尤其是CS,每小时25-45之间,还有各种补助(机票,住宿,伙食)。硅谷的startup一般背后都有风险投资(venture capitalist),所以待遇也很好。有一个San Francisco的startup给我一个月5,800的base salary + bonus + meal plan, meal plan是一张credit card, 我吃饭可以随便刷。

假如rank了之后你收到了不止一个offer的话,你就可以谈工资了。有一些公司会主动联系你,听说Facebook和微软请了所有面试通过的学生吃晚餐。一些startup为了挖墙脚,会match大公司的工资。大公司一样可以谈,我一朋友用Google做筹码,让Apple每小时多给了她五块钱。

Suggestions

一般大公司在夏天都会有很多实习生,所以会有很多有意思的活动。可以在这期间认识全世界各地的人,和美国一流大学的学生。相比之下,秋天或冬天去的话就会有很多损失。

给新生一个建议: 好好学CS 246, 不是一个很受欢迎的课, 但是你迟早会受用的。我感觉我将近一般的面试题都在CS 246里讲过 (C/C++, memory/pointer, virtual function/abstract class, template, design patterns).

另外强烈推荐一个网站: glassdoor.com 非常有用, 上面有各种公司的面试题和薪水信息。

3,签证篇

中国护照签证会很麻烦,因为我是中国护照,所以不知道加籍的是不是也这么麻烦。

首先,CECS会联系你,告诉你所有的步骤,让你去Mandatory session。只要你仔细读instruction跟着走就不会出错,就算你出错了CECS也一定会联系你的。

我这里大概讲一下需要的东西:

背景调查: 苹果真的会做背景调查的,而且做得非常详细。首先查犯罪记录,一般人这方面都不会有问题。接下来查你的工作记录。比如说你之前工作的公司,职位,都会直接打电话问你的reference。所以你简历里千万别胡扯。最后需要一个notary public,我也不知道那到底有什么用,但是貌似蛮神秘的。UW提供notary public,在NH 2楼找一个女的叫Tracy Dietrich (ext. 36125, 需要预约)。她会给你盖个章,然后在你签名上压出来一个很酷的印子 :P。

J1 visa:来美国实习的签证叫J1, or exchange visitor。大部分美国公司都是通过一个叫AIPT CDS的机构来帮你准备J1 visa。你首先要交visa fee(800 USD),SEVIS Fee(180 USD),然后办DS2019。大部分公司都会为你交,所以你整个签证过程应该不用花一分钱的。DS 2019会是你最重要的证件之一。别看它就一张纸,你要弄丢了(甚至搞脏了)重办要140 USD,而且你一辈子只能重办3次。拿到DS 2019和DS 7002之后(一般要2-3个星期),你就可以预约美国使馆办J1。J1一般一个星期就可以办好,但是appointment要尽量早。

2 year restriction rule:有时候一些国家会有这个条规,要求你毕业后必须回国工作两年。至于你需不需要会在你J1 visa上显示。目前为止我只认识一个黎巴嫩人被这个条规约束。

I-94:你入境之前,必须在海关拿一个I-94 form。一般入关是会被直接钉到护照上,千万别搞丢了,否则你有可能要重新入境的。

签证办好后,一定要保管好你的DS2019,I-94和J1 visa。办social security number和驾照都会用到的。


4, 人文篇

硅谷(Silicon Valley): 硅谷在美国加洲中部,旧金山(San Francisco)以南。包括城市San Jose,Santa Clara,Mountain View,Cupertino,Sunnyvale,Milpitas,Redwood City和Palo Alto。硅谷顾名思义,3面环山,所以高速上的风景非常好,尤其是Mountain View。很多大型科技公司的总部都在这里,包括Apple,Google,Facebook,LinkedIn,Mozilla,Adobe,AMD,Intel,nVidia,Cisco,eBay,HP,Intuit,Oracle,Yahoo,Symantec,VMware,EA等等。

旧金山湾区(San Francisco Bay Area): 湾区包括整个旧金山,奥克兰(Oakland),和硅谷。一般硅谷的工程师在LinkedIn上的地区都会写成SF Bay Area。旧金山是加州的经济聚点,因为很多风险投资(Venture Capitalist),很多Start-up都聚集在旧金山,例如Twitter, Yelp, Flickr, Zynga, Craigslist等等。苹果一年一度的WWDC和Google的Google I/O都是在旧金山举行。另外,旧金山还拥有世界上最古老的唐人街。金门大桥,九曲花街,渔人码头每年吸引着上百万的游客观光。

气候:硅谷最给力的就是气候了,和多伦多简直天壤之别。一年四季都是15-20摄氏度。冬天最冷也有5度,夏天最热不过30。其实整个加州海岸的四季都不是很明显,主要分旱季雨季。这一夏天总共就下了一场雨。。。几乎每天都是阳光明媚。虽说硅谷四季如春,但你往东开个4-5个小时就会发现气候截然不同。刚开始你会看见大片大片的丘陵,接下来是平原和盆地。再往东开是各种各样的山脉(Yosemite和Sierra Nevada),然后一望无际的沙漠。虽然从东到西开车只要4-5个小时,却聚集了美国海拔的两极(Mount Whitney最高,Death Valley最低)。


5, 工作篇



Offer: 苹果与很多大公司不同的一点是它非常非常注重细节。从很多苹果产品都可以感觉到这一点。苹果甚至连intern的offer都设计的非常精致:拆开信封之后,首先映入眼帘的是一个银色的苹果,印在雪白的三面折叠的纸文件夹正中央。打开第一面写着"Welcome to Apple",第二页就是"The Offer",和其他的材料。我朋友说他打开苹果offer的感觉就像他打开第一个iPod。

First day: 苹果每周一都有新的员工开始上班,全职的和实习生都有。上午大家会聚集在一个叫Town Hall的地方(假如你平常关注苹果,Town Hall就是Steve Jobs介绍新产品,开记者招待会的地方)看一个介绍苹果的录像,更加了解它的企业文化。中午你和你的老板一起进餐,领取badge和setup workstation。下午又有一个training,虽说是training,其实就是HR叨叨一些苹果的规矩,比如说 "stay away from MacRumors and Gizmodo" :P 接着的几天看你的运气了,假如你老板不忙的话会给你internal device (dev-fused iPhone/iPad/iPod)和代码,假如他忙的话你就悲剧了。我认识很多人(包括我自己)第一个星期都没事干,看看Youtube上上Facebook神马的。

Office: 我有幸在苹果最酷的部门实习 - iOS。办公楼就在Infinite Loop上,里面都是iPhone的工程师和设计师。我去的时候办公室里只有另外一个intern。因为美国学校大部分都是6月放假,所以前几个星期办公室里非常冷清(现在倒是人满为患,10个人share一个办公室)。iOS的intern平时很闲,跟fulltime正好相反。因为苹果的制度(confidentiality),所有的iOS intern都在lockdown外面,而团队里其他的人都在lockdown里面。也就是说你平常不会见到你的老板和同事,而是和其他的intern在一起工作。更悲剧的是我们那层厕所也是在lockdown外面,所以每次去厕所必须到楼上或楼下。。。除此之外作为iOS的员工有各种各样的好处,比如说我办公室里有一个snack bar,里面有源源不断的零食饮料,让我每天都必须控制自己不要一夏天增个二三十斤。。。还有晚餐,iOS和MacOS的员工每天晚上有免费的晚餐,让我非常Happy :) 公司没有特定的穿着制度和上下班时间。因为我团队里其他人都早上来的比较早,所以我一般都8-9点上班, 5-6点下班。我办公室里有个美国人巨给力,每天早上11:30走进办公室,还没坐下5分钟他boss就跑下来邀请他一起吃饭。。。

Project: 上面提到的,公司规定实习生不能参与团队项目,所以我们只能做一些side project,例如团队想要做但却没时间做的东西。假如你有感兴趣的主意,可以和你老板商量,只要和你的部门相关一般老板都会让你做的。相比fulltime,实习生的工作量很轻。主动点的可以到处找事干,不主动地话。。。办公室里我旁边是个泰国人,蛮牛的,代表泰国参加过IOI (International Olympiad of Informatics)和ACM-ICPC。他老板平常比较忙,不怎么管他,他就一天到晚的玩flash拼图,让我整个办公室的人都无语了。。。

Intern Events: 苹果的intern events安排的真的非常到位,绝对是整个夏天的亮点。其中包括去看棒球比赛,游乐场,圣何塞观光等等。但最有意思的还是公司高层的演讲:从六月底开始,基本上每个星期都会有一个VP在Town Hall演讲,都是很有来头的,比如说Jonathan Ive, Tim Cook, Scott Forstall等等。HR没有安排Steve Jobs,但他每个夏天都会突然找一天来做演讲。这些机会真的非常珍贵,有些全职的工程师,来苹果几年来还没有机会听那些人讲话。而且每个人的演讲都会非常有收获,绝对的听君一席话,胜读十年书。演讲后面还有问答,每个人只准问一个问题,所以其他intern问的问题也都是非常值得一听的。最后,intern可以参加苹果的所有培训,从Photoshop, Cocoa programming到摄影,武术,美声;让你夏天绝对有事干。

Co-workers:苹果工作最有意思的一点就是能遇到很多很多不同背景的人。我办公室里10个intern来自10所不同大学,5个不同国家,讲8种不同的语言(当然工作的时候大家都讲英语,有时候法语,这点很无奈,苹果法国人真的很多)。和Google,Facebook之类的网络公司相比,苹果的人才非常多样化。从实习生的分布就可以体现出来:有人做软件,有人做硬件;有搞设计的,有搞销售的;有MBA做市场的,做运营的,各种各样的人都有,所以你不会天天只和软件工程师打交道。刚来的时候,感觉大部分的实习生都是Apple fanboy,苹果忠实的粉丝。而我是来了苹果两个月之后才买的第一台Mac,开始很不适应他们天天在办公室里说苹果怎么怎么NB,微软谷歌怎么怎么不好。。。后来慢慢学会了沉默是金。。。

企业文化

一个公司最有意思的就是它的企业文化,苹果更是如此。首先第一点,我非常鄙视苹果全公司上下对Steve Jobs唯命是从。比如说Steve不喜欢吃牛肉,公司食堂就没有牛肉。。。Steve是Pescetarian(只吃鱼和素),公司食堂餐餐都有素食和三文鱼Tuna什么的。。。感觉非常极端。工作也是一样,假如你被分到Steve不喜欢的项目,你的美好前程就基本上GG了。。。MobileMe和FinalCut Pro就是很好的例子。

细节

当然除此之外,苹果有很多优点,比如说对细节的注重,我之前已经提到过。

专注

另外一点是苹果的专注。虽说每年上百亿的利润,苹果的产品线非常简单:Mac (MacBook/iMac/Mac Pro)和iOS (iPhone/iPad/iPod Touch)。相比之下Google的产品简直多如牛毛。。。简单的产品线意味着更多地投入,更多的创意,和更大的风险,也就是说你手中的iPhone的每一个细节都是经过N多人的反复推敲最终的决定。另外,它同样意味着很多的放弃,放弃很重要的功能因为它不是最重要的,放弃超前的理念因为市场短期内接受不了,放弃畅销的产品因为要推出更畅销的产品(iPod Mini -> iPod Nano)。

刚来苹果的时候我很不明白这一点。因为作为一个developer,我总是想给用户提供更多的选择,更强大的功能。因此我和苹果的设计师争吵了几次,闹了点小矛盾。为了尊重他的意见,虽说我不是很赞同他的观点,但还是去除了很多次要的功能和设计。直到两个月后我才发现他的用意:一棵树只有剪去杂枝才可以长高,一个软件只有去掉不必要的功能才能体现出它真正的用处。也许这就是为什么苹果系统一直以操作简单而得人心。后来我在TED上看到了这个演讲,感觉很受启发,和苹果Simplicity的理念有异曲同工之妙:Barry Schwartz: The paradox of choice

机密

苹果的保密措施绝对是业界里出名的。很少能有人在新苹果产品推出之前准确的猜测出产品的内容。因为我一直比较拥护开源软件,很欣赏Google的开放,所以刚开始不适应苹果的各种保密措施,比如说代码要放在加密过的文件夹里,下班要把所有硬件锁起来(虽然办公室已经很戒备森严了。。。)更可笑的是苹果总部附近有一家西餐厅,很多记者经常会假装到那里吃饭,实际上偷听苹果员工的谈话,来推测苹果的下一步。导致苹果要求所有员工谈论项目时必须用代码,离开公司不允许讨论工作的内容,甚至不能告诉家人。

在苹果一段时间之后,我慢慢发现这样做确实有它的道理,他不仅有利于公司本身,而且对消费者也有好处。我暂且不讨论公司与公司间利益上的竞争。苹果这样做对它的产品非常的有利。假设苹果泄露了一个功能,而这个功能在开发末期出问题,苹果取消这个功能会让用户失望,继续这个功能会影响产品的质量,很难办。但是假如这个功能一直都是保密的,即使在最后关头苹果决定取消这个功能,也不会有任何销售上的损失,更不会让用户失望,因为他们根本没有期望。相反的,假如你看着一个产品得一点一点进步,当你最后看到它发布的时候不会有任何惊讶,你会觉得它是理所当然的,即使它很完美。但假如事先没有一点预兆,然后看到一个非常完美的产品,你会被WOW到,用专业术语,它会产生unexpected value。所以刚开始,我的项目稍微有一点进展我就给我老板看,看完之后没什么反响。明白这点之后,我只等项目有大幅度的进展才给我老板看,然后他看了会被impress,觉得我做了很多。虽然只是perception的不同而已。

完美

(语言问题。。。这个概念我可能解释得不好。。。)

大家都知道苹果追求完美,但到底怎样做算追求完美?苹果的“追求完美”并不是改进现有的产品,把最好的做得更好,虽然有时候这是追求完美的一个步骤。苹果的追求完美更多在于明确的定义目标,然后从多个方面寻求最能达到这个目标的方法。例如,当微软决定一个产品的颜色,它会提供N种不同颜色,然后做市场调查(user focus group),从而决定哪个颜色最受欢迎。而苹果的设计师会尝试N种不同的颜色,根据他的经验,选择一个最靠谱的,然后细分这个颜色(比如说把蓝色分成纯蓝,青蓝,天蓝,海蓝,蔚蓝,靛蓝,等等等等)然后再次根据他的经验,选择最好的。我觉得整个设计过程就像艺术家创作一样:画家不会画10幅画然后让观众选最好的,画家会投入精力和灵魂,来创作他自己认为是最好的。

6,总结篇

写了这么多,最后总结一下感想把。这一夏天真是学了很多很多东西,虽然有点小偷懒(湾区的生活实在太美好了)。这个co-op收获绝对大大的。。。

优点:
- 能认识很多不同的人,苹果真的聚集着各行各业的精英
- 可以看iPhone代码,然后随便改。。。比Jailbreak爽多了。。。
- 有机会和苹果高层接触,还可以经常看到Steve Jobs
- 工作环境无可挑剔,苹果总部非常漂亮
- 各种各样的优惠,免费门票神马(WWDC门票一张1,599...)

缺点:
- 公司的机密措施,实习生只能参与已经对外公布了的项目
- 你的项目要经过好几层批准才可以被Ship(Facebook每天都可以ship代码。。。)
- 要求不是很严,导致我经常上班偷懒,上校内,看YouTube,打游戏神马的。。。
- 乔布斯小气。。。别的公司一日三餐都是免费的。。。
- 没美女。。。虽说苹果内部停车场就像Auto show一样。。。

说实话,我开始的首选是Google而不是苹果。我来苹果之前从没买过苹果产品更不是苹果粉丝,虽说刚来的时候不是很喜欢苹果,但是一夏天过后,我觉得我真的很欣赏这个公司,觉得来苹果是个正确的选择(尤其是现在苹果超过Exxon Mobil成为世界上最有价值的公司,而且上个季的业绩是Google的2.5倍)。


后记:我boss问我下学期是否愿意回苹果实习,我的决定是选择尝试其他的公司。毕竟不同公司有不同的文化,能学到不同的东西。Co-op绝对是获得不同经验的最好机会。但是等我毕业可以成为一名正式员工的话,苹果会是我的首选之一。

全文完更多精彩文章及讨论,请光临枫下论坛 rolia.net
Sign in and Reply Report

Replies, comments and Discussions:

  • 枫下家园 / 望子成龙 / 重开一贴,转贴-doihaveto(luckycouple)贴的link:看看滑铁卢大学真正牛娃写的COOP经验分享; 尤其是老redneck要读一下。这和大部分人想的“码工”就是坐在小黑屋里冥思苦想的刻板印象大不相同啊。 哈哈, 一日3餐免费, 没有固定的上下班时间。
    本文发表在 rolia.net 枫下论坛CS co-op经验分享

    发表于 2011-6-15 01:17:02 | 只看该作者 回帖奖励
    本帖最后由 wensi 于 2011-9-11 08:21 编辑

    (好久没有码这么多字了,假如有地方读得不通顺请告诉我,我会修改,谢谢)

    先介绍一下我自己:我是CS的学生,winter term刚读完2B。现在正在苹果co-op, iOS team做frameworks。本文写的大部分都是个人的经历和感想,希望能对将来想到硅谷co-op的同学有所帮助

    ::72::::72::::72::


    1,简历篇

    我是transfer student, 这是我第一个work term。因为没有经验, 刚开始申请的时候很认真, 花了一整周末写resume和cover letter, 找了很多人改, 最后PD1 resume critique竟然fail了。个人感觉PD的resume critique没有什么帮助, 大部分都是按照rubrick很死板的改分。TC网站上可以预约一对一的resume critique, 比PD的有用很多, 但是要早预约, 否则会没有位置。当然,最好的方法还是找前辈们的简历做参考, 毕竟他们的简历让他们找到了想要的工作。要是找不到的话可以在Google上搜索和你感兴趣的职位相关的简历, 比如说用这些关键词:"Google waterloo resume", 能搜索到很多前辈们的用来参考。

    简历的排版很重要, 不整洁的话很容易留下不好的第一印象. 尤其是万恶的Jobmine只支持HTML。假如你用很眩的Word排版, 然后save as HTML, 很多内容都会乱掉, 所以上传之前一定要注意排版没有问题, 没有乱码什么的。至于内容嘛, PD讲的很详细, 别的贴子也有细述, 我就不献丑了。另外,朋友给我提到了很重要的一点:中国人认为谦虚是美德, 但是当HR读简历时, 你谦虚了别人没谦虚, 你面试的机会就小了很多。只要你能back it up, 尽量想办法impress你的读者。还有一点, 尤其对于新生, 很多人由于工作经验不够, 喜欢把上过的课和课里做的assignment也写上去。可是大家学的课都是一样的, HR读简历时看到一遍又一遍会无聊的, 所以你要想办法吸引他的眼球。有些课的project/assignment, 你可以更进一步, 加一些功能或者加一些UI, 然后放到类似SourceForge或GitHub之类的开源网站上, 这样简历上就可以写"contributed to the open source community", 看起来会比较出众。

    至于cover letter, 个人喜好吧. 我觉得除非是公司要求(有的公司要求, 我懒得写, 就干脆不申请了...)或是你的dream job, 一般没有必要些. 很浪费时间, 而且大部分人都不看(我老板亲口告诉我他不看cover letter)。提到这个, 有一点要注意一下, 写resume的时候你最好知道你的resume会被谁读, 然后对症下药. 例如Google, Microsoft, Facebook, RIM都是先有一轮HR screening, 然后会根据你的qualification转发到对应部门的工程师; 而Apple, Bloomberg会直接落到工程师手里 (这些只是我听说的, 希望大家可以更正/补充).



    很多新生在准备简历时会因为没经验发愁。我这里总结一些方法来让你的简历更充实,而且大一就可以做到。同样的,假如你work term没找到工作,不妨尝试一下这些活动,会对未来找工作有很大帮助:

    - Open source projects: 开源活动其实要比大家想象的容易很多。你只需要到SourceForge或GitHub这样的开源网站找到自己感兴趣的project,把代码下载下来读就行了。假如遇到困难,在mailing list或IRC上求助,只要你注意点netiquette,大家都愿意帮你的。刚开始可以从简单的学习,比如说试图添加修改点小功能,或者提交一两个patch。时间长了有可能做很多很有意思的东西。当你快毕业的时候,说不定可以用它来做thesis/research project。做这个最好的一点就是没有什么年级或分数的限制,只要你愿意,高中的时候都可以参与。而且参与的期间你会学到很多很多上课学不到的东西,比如说阅读上万行的代码。

    - URA(undergraduate research assistant): 很多同学知道TA但不知道URA。简单来讲,它是大学提供本科生体验研究的机会。你每星期只要抽出几个小时,去lab帮一下忙,期末的时候做个总结就好。而且是paid, 每小时10块钱,比打工强。CS的学生没必要只在math department找URA。只要prof同意,任何department的URA都可以做。很多时候教授人手不够,但是因为没时间,不在网上post。假如你对哪个教授(或者他的grad student)的research感兴趣,你给他发封邮件他就会考虑。我来UW前的夏天发现SYDE的一个教授搞multi-touch,觉得很有意思,给她发了封邮件,然后来UW的第一个学期就在她的lab帮忙。

    - Velocity: Velocity其实是一个学生宿舍,只不过住那的学生都对startup(创业)感兴趣。你可以和一群朋友做一个startup project,一起住在velocity。里面设施很好,很新;学校会会每隔一段时间举办一些活动,让大家和象牙塔外面的人物接触。住那的学生也很有意思,很有想法。申请没有年级要求,你也不需要有project,填份表就可以。房租和其他宿舍差不多,只不过很多人不知道而已。Velocity还有个好处就是假如你有个project,学校approve之后你可以用来做work term。也就是说你work term不用找工作,专心做你的project就好。

    - Competition: 大学间的竞赛大部分都很花时间精力,例如ACM ICPC和Putnam。但是,一些公司举办的竞赛会容易很多。Microsoft, facebook, ebay每年都会举行一个叫hackathon的比赛,给你24-48个小时让你编出一个程序。像这样的竞赛一般竞争都不是很激烈,而且不是很花时间(顶多一个周末)。因为重在参与,他们经常会有莫名其妙的奖项,所以运气好还会有surprise。更何况得不得名次比赛经历用在简历和面试上都很好。除了hackathon之外,类似的竞赛还有google code jam, google AI challenge, Microsoft XNA contest (dream.build.play)等等。只要你留意MC/DC墙上,类似的竞赛会经常有。

    - Conference: 有空多去些conference不仅可以开阔眼界还可以认识很多人。我去过的有CUTC,NBTC,Impact Conference,都是一年一度的。UW提供一些subsidy,一般你早注册的话,门票会很便宜(Impact是免费的)。如果你想主动一些,可以找speaker聊天。只要你能引起他的兴趣,也许一个summer job就搞定了。Conference同样会有比赛,参加那些放在resume上也不错。我去年去CUTC,他们邀请了Microsoft,IBM,和Deloitte的人力为学生提供建议,内容我下文有写。

    - Google Summer of Code: GSoC每年夏天招取一千多个学生帮助开源项目。你可以申请你感兴趣的项目,然后会被分配一个mentor通过IRC来指导你。GSoC基本上就像一个summer job,每星期要工作大约40个小时,一夏天Google会提供5000USD的补助。一般你的mentor都是开源界的大牛,所以你一夏天能学到很多很多东西。另外,GSoC的申请3月才开始,也就是说假如你first round没着到工作,你可以考虑它,CECS认GSoC为一个正常的work term。

    - Student Clubs/Council/Society: 我觉得CS工作一般不是很重视student clubs,更重视technical experience。所以我resume上的extracurricular非常短。但是,你可以想办法把extracurricular变成technical experience。很多club都需要网站啊,iPhone app啊,数据库啊之类的东西。你可以主动找club president看他们需不需要做这些东西,对一二年级学生是很好的experience。比如说我上学期住WCRI,我们需要一个数据库前端来让学生查看他们的pi bucks,一直没有人做,感兴趣得人可以去WCRI office问一下。


    Interview/Resume Tips from CUTC
    Here is a short summary of the notes I took from CUTC. The advise was given by HR specialists from Microsoft, IBM and Deloitte.

    Microsoft

    wants specialized developers, prefers platform developers to web/mobile developers
    emphasizes on critical thinking
    likes students who can play nicely with others, earn respect, and learn from full-time employees
    only hires MBA students from 13 designated universities
    wants student to do research and learn about the company before applying
    likes specific objectives in the resume, including internship period
    likes student talk about personality in their resume (e.g. passion, hobby)
    thinks it's a common practice to search student's online identity (blog, Facebook, etc)
    during an interview, prepare at least one question to ask to the recruiter

    IBM

    likes business minor (or any other business component)
    likes international experience
    wants specifics about skill set (e.g. level of proficiency)
    wants an unofficial copy of the transcript attached
    wants expected date of graduation in the resume
    doesn't read student's cover letter (generally)
    likes students who are confident & presentable (dress appropriately)
    likes students ask about recruiter's background
    wants students to be nice to everyone (including the security)
    likes a hand-written "thank you" letter handed to the security after interview

    Deloitte

    emphasizes on the business component and the ability to network
    has positions on advisory work, merge/acquisition delivery, consulting etc
    likes referrals, claims that consultants hire consultants
    likes working abroad experience (networking)
    thinks a resume with high quality writing can add value
    makes cover letter & transcript mandatory
    advises students not to ask about pay during the 1st interview
    has a dinner interview in the 2nd round, expects students to network

    Certain re-occurring advise mentioned by all companies and are looked upon with great importance:

    research about the companies with great focus
    network, know as many people as possible, best to have referrals
    start approx. 6 month earlier to look for jobs



    2, 面试篇

    第一个round申请了大约40个工作,收到了将近20个interview, 最后有8个offer (Apple, Google, RIM, Autodesk, Capcom, PwC, and a few silicon valley startups)

    最有意思的面试是Google的. 我收到了一个Software Engineering的面试, 一个Associate Technology Manager的面试. SE职位面试是两个back-to-back technical interview,各45分钟,分别两个不同的full time电话面试。第一个Interviewer很厉害,在UVa Online (一个算法比赛的网站) 排名25。他先让我在Google Doc上编一个paint的fill method, 很简单的backtrack algorithm; 然后让我构思一个window system应该如何管理/渲染很多窗口, 重点在窗口使用的数据结构, 和窗口重画的方法(窗口可以被部分遮挡)。第二个interviewer是个印度女的, 我当时用的一超烂的手机做的phone interview,超悲剧,既听不清,编码又不方便(没有耳机/话筒), 感觉搞得挺砸的. 她让我试图实现Google的"did you mean"功能, 我刚开始有点紧张, 不知所措. 后来她给了我点提示, 其实就是简单的combinatorics (MATH 239), 更换字母然后在数据库里找. 之后她又问了一些runtime complexity之类的东西, 感觉回答的还不错. 面试完当晚我还让HR转发了一封thank you letter, 也不知道他们有没有看. 总之没什么坏处.

    两个technical interview过了之后, 假如Google觉得你合格, 你就可以开始host match. 这时候虽然jobmine上不会显示(jobmine上有个bug可以看你有多少offer), 但是你基本上已经可以放心了. 一般大公司technical interview之后都会有host match (苹果比较独特, 我后面会讲). Host match主要的目的是让你找到适合你的团队, 所以你有可能会有很多面试. 但是这时候就不是你回答了, 你可以尽情提问你的interviewer, 关于各种各样你感兴趣的问题.

    除了SE之外, 我还收到了一个Associate Technology Manager (ATM)的面试. 当你递完你的resume之后, HR会根据你的qualification来forward你的resume到不同的部门. 因为我有startup experience, HR给了我一个ATM面试, 主要和google的vendor (3rd party)做交涉. ATM的fulltime是一个轮换的职位, 每半年换一次你的负责内容, 有时会很technical (编码), 有时会完全business. 面试的问题也两边(technical/non-technical)都有. 虽然ATM听起来好像是management的职位, 实际上薪水不如工程师高.

    Bloomberg的面试我感觉是最难的, 至少是最煎熬的. ::29:: 第一轮纯technical, 连续2个小时4个面试官轮流问问题. 不说别的, 光在那一动不动的坐两个小时就够受的... 问得问题很杂, 包括算法, 数据结构, 编程语言和complexity. 让我记忆最深的是, 我坐下没两分钟, 他们问得第一个问题是让我现场在纸上写<auto_ptr>的implementation (C++里的smart pointer). 我当时就傻了, 糊弄糊弄写完了之后他们才哄我说这个问题完全non-trivial, 后面的问题都不会有这么难。(顺便提一下,假如面试题不会的话,你完全可以让面试官给hint,不会留下不好的印象。很多难的面试题你太快答出来的话,面试官会认为你之前回答过同样的问题。)第二轮共1小时, 2个面试官. 第一个是HR, 给我介绍了一下公司然后顺便把薪水也告诉了我. 听了之后我心花怒放, 以为offer稳拿. 没想到接下来的面试又是technical. 面试官貌似将会是我的manager, 问得超technical的C++ pointer问题, 4道题我答上来两道半. 最后没拿到offer.

    Apple的面试还算简单, 第一轮是onsite。面试官(我现在的boss)直接从苹果总部飞到UW来面试. 半个小时, 问一些简单的算法问题, 时间一下就过去了. 我那天早上超悲剧, 8:30的面试, 闹钟没响, 我8:15起了之后连西服都没穿(后来才知道CS的面试大部分interviewer都不在意你穿什么)直接飞奔到TC, 出了一身汗, 还肚子痛. 整个面试都在一边擦汗一边想着不要拉裤子... ::46::::46::::46:: 第二轮是和我大boss, 45分钟, 问了一些深一点的数据结构, 例如hashmap是如何implement的(red-black tree or self-balancing tree, NOT array), 和一大堆memory management的问题。总体来说面试不是很难。后来跟他闲聊了一会, 发现我之前自学iPhone programming的教材(Stanford CS193P)就是他策划的。

    最后讲一下startup吧. Startup的面试五花八门, 什么样的都有, 什么问题都有. 有一个公司给了我20行没comment的python代码, 让我解释代码的作用, 过了20分钟我还是一头雾水, 然后interviewer直接"we'd like someone who can start working on the first day without any help"就拜拜了... 另外一个startup没问任何technical问题, 跟我扯了5分钟说"I'm sure you know your stuff, you will hear from us on the ranking day", 最后连个rank都没给...


    面试完假如你对这个公司感兴趣的话,不管你感觉面试的怎么样,都千万别忘了问面试管要名片。一是让面试官觉得你有诚意,但最重要的是以后还想联系他会非常非常容易。至少你有他的名字和联系方式。

    Ranking

    大公司有个好处就是他们招生没有名额限制,所以你只要符合要求,就会拿offer,不用担心rank不到的悲剧。一些招生有名额限制的公司会在ranking day前几天联系你,问你会不会接他的offer,然后跟你谈薪水。他们也怕给你offer了你不接,所以想做好准备。

    另外,Jobmine有一个bug,可以让你在ranking day前看你有多少个offer。具体别的贴子里有写,我就不多说了。还有,你要是觉得jobmine很丑,有一个东西叫jobmine plus,比jobmine好看点。

    Salary

    美国工作薪水相对要高一些,尤其是CS,每小时25-45之间,还有各种补助(机票,住宿,伙食)。硅谷的startup一般背后都有风险投资(venture capitalist),所以待遇也很好。有一个San Francisco的startup给我一个月5,800的base salary + bonus + meal plan, meal plan是一张credit card, 我吃饭可以随便刷。

    假如rank了之后你收到了不止一个offer的话,你就可以谈工资了。有一些公司会主动联系你,听说Facebook和微软请了所有面试通过的学生吃晚餐。一些startup为了挖墙脚,会match大公司的工资。大公司一样可以谈,我一朋友用Google做筹码,让Apple每小时多给了她五块钱。

    Suggestions

    一般大公司在夏天都会有很多实习生,所以会有很多有意思的活动。可以在这期间认识全世界各地的人,和美国一流大学的学生。相比之下,秋天或冬天去的话就会有很多损失。

    给新生一个建议: 好好学CS 246, 不是一个很受欢迎的课, 但是你迟早会受用的。我感觉我将近一般的面试题都在CS 246里讲过 (C/C++, memory/pointer, virtual function/abstract class, template, design patterns).

    另外强烈推荐一个网站: glassdoor.com 非常有用, 上面有各种公司的面试题和薪水信息。

    3,签证篇

    中国护照签证会很麻烦,因为我是中国护照,所以不知道加籍的是不是也这么麻烦。

    首先,CECS会联系你,告诉你所有的步骤,让你去Mandatory session。只要你仔细读instruction跟着走就不会出错,就算你出错了CECS也一定会联系你的。

    我这里大概讲一下需要的东西:

    背景调查: 苹果真的会做背景调查的,而且做得非常详细。首先查犯罪记录,一般人这方面都不会有问题。接下来查你的工作记录。比如说你之前工作的公司,职位,都会直接打电话问你的reference。所以你简历里千万别胡扯。最后需要一个notary public,我也不知道那到底有什么用,但是貌似蛮神秘的。UW提供notary public,在NH 2楼找一个女的叫Tracy Dietrich (ext. 36125, 需要预约)。她会给你盖个章,然后在你签名上压出来一个很酷的印子 :P。

    J1 visa:来美国实习的签证叫J1, or exchange visitor。大部分美国公司都是通过一个叫AIPT CDS的机构来帮你准备J1 visa。你首先要交visa fee(800 USD),SEVIS Fee(180 USD),然后办DS2019。大部分公司都会为你交,所以你整个签证过程应该不用花一分钱的。DS 2019会是你最重要的证件之一。别看它就一张纸,你要弄丢了(甚至搞脏了)重办要140 USD,而且你一辈子只能重办3次。拿到DS 2019和DS 7002之后(一般要2-3个星期),你就可以预约美国使馆办J1。J1一般一个星期就可以办好,但是appointment要尽量早。

    2 year restriction rule:有时候一些国家会有这个条规,要求你毕业后必须回国工作两年。至于你需不需要会在你J1 visa上显示。目前为止我只认识一个黎巴嫩人被这个条规约束。

    I-94:你入境之前,必须在海关拿一个I-94 form。一般入关是会被直接钉到护照上,千万别搞丢了,否则你有可能要重新入境的。

    签证办好后,一定要保管好你的DS2019,I-94和J1 visa。办social security number和驾照都会用到的。


    4, 人文篇

    硅谷(Silicon Valley): 硅谷在美国加洲中部,旧金山(San Francisco)以南。包括城市San Jose,Santa Clara,Mountain View,Cupertino,Sunnyvale,Milpitas,Redwood City和Palo Alto。硅谷顾名思义,3面环山,所以高速上的风景非常好,尤其是Mountain View。很多大型科技公司的总部都在这里,包括Apple,Google,Facebook,LinkedIn,Mozilla,Adobe,AMD,Intel,nVidia,Cisco,eBay,HP,Intuit,Oracle,Yahoo,Symantec,VMware,EA等等。

    旧金山湾区(San Francisco Bay Area): 湾区包括整个旧金山,奥克兰(Oakland),和硅谷。一般硅谷的工程师在LinkedIn上的地区都会写成SF Bay Area。旧金山是加州的经济聚点,因为很多风险投资(Venture Capitalist),很多Start-up都聚集在旧金山,例如Twitter, Yelp, Flickr, Zynga, Craigslist等等。苹果一年一度的WWDC和Google的Google I/O都是在旧金山举行。另外,旧金山还拥有世界上最古老的唐人街。金门大桥,九曲花街,渔人码头每年吸引着上百万的游客观光。

    气候:硅谷最给力的就是气候了,和多伦多简直天壤之别。一年四季都是15-20摄氏度。冬天最冷也有5度,夏天最热不过30。其实整个加州海岸的四季都不是很明显,主要分旱季雨季。这一夏天总共就下了一场雨。。。几乎每天都是阳光明媚。虽说硅谷四季如春,但你往东开个4-5个小时就会发现气候截然不同。刚开始你会看见大片大片的丘陵,接下来是平原和盆地。再往东开是各种各样的山脉(Yosemite和Sierra Nevada),然后一望无际的沙漠。虽然从东到西开车只要4-5个小时,却聚集了美国海拔的两极(Mount Whitney最高,Death Valley最低)。


    5, 工作篇



    Offer: 苹果与很多大公司不同的一点是它非常非常注重细节。从很多苹果产品都可以感觉到这一点。苹果甚至连intern的offer都设计的非常精致:拆开信封之后,首先映入眼帘的是一个银色的苹果,印在雪白的三面折叠的纸文件夹正中央。打开第一面写着"Welcome to Apple",第二页就是"The Offer",和其他的材料。我朋友说他打开苹果offer的感觉就像他打开第一个iPod。

    First day: 苹果每周一都有新的员工开始上班,全职的和实习生都有。上午大家会聚集在一个叫Town Hall的地方(假如你平常关注苹果,Town Hall就是Steve Jobs介绍新产品,开记者招待会的地方)看一个介绍苹果的录像,更加了解它的企业文化。中午你和你的老板一起进餐,领取badge和setup workstation。下午又有一个training,虽说是training,其实就是HR叨叨一些苹果的规矩,比如说 "stay away from MacRumors and Gizmodo" :P 接着的几天看你的运气了,假如你老板不忙的话会给你internal device (dev-fused iPhone/iPad/iPod)和代码,假如他忙的话你就悲剧了。我认识很多人(包括我自己)第一个星期都没事干,看看Youtube上上Facebook神马的。

    Office: 我有幸在苹果最酷的部门实习 - iOS。办公楼就在Infinite Loop上,里面都是iPhone的工程师和设计师。我去的时候办公室里只有另外一个intern。因为美国学校大部分都是6月放假,所以前几个星期办公室里非常冷清(现在倒是人满为患,10个人share一个办公室)。iOS的intern平时很闲,跟fulltime正好相反。因为苹果的制度(confidentiality),所有的iOS intern都在lockdown外面,而团队里其他的人都在lockdown里面。也就是说你平常不会见到你的老板和同事,而是和其他的intern在一起工作。更悲剧的是我们那层厕所也是在lockdown外面,所以每次去厕所必须到楼上或楼下。。。除此之外作为iOS的员工有各种各样的好处,比如说我办公室里有一个snack bar,里面有源源不断的零食饮料,让我每天都必须控制自己不要一夏天增个二三十斤。。。还有晚餐,iOS和MacOS的员工每天晚上有免费的晚餐,让我非常Happy :) 公司没有特定的穿着制度和上下班时间。因为我团队里其他人都早上来的比较早,所以我一般都8-9点上班, 5-6点下班。我办公室里有个美国人巨给力,每天早上11:30走进办公室,还没坐下5分钟他boss就跑下来邀请他一起吃饭。。。

    Project: 上面提到的,公司规定实习生不能参与团队项目,所以我们只能做一些side project,例如团队想要做但却没时间做的东西。假如你有感兴趣的主意,可以和你老板商量,只要和你的部门相关一般老板都会让你做的。相比fulltime,实习生的工作量很轻。主动点的可以到处找事干,不主动地话。。。办公室里我旁边是个泰国人,蛮牛的,代表泰国参加过IOI (International Olympiad of Informatics)和ACM-ICPC。他老板平常比较忙,不怎么管他,他就一天到晚的玩flash拼图,让我整个办公室的人都无语了。。。

    Intern Events: 苹果的intern events安排的真的非常到位,绝对是整个夏天的亮点。其中包括去看棒球比赛,游乐场,圣何塞观光等等。但最有意思的还是公司高层的演讲:从六月底开始,基本上每个星期都会有一个VP在Town Hall演讲,都是很有来头的,比如说Jonathan Ive, Tim Cook, Scott Forstall等等。HR没有安排Steve Jobs,但他每个夏天都会突然找一天来做演讲。这些机会真的非常珍贵,有些全职的工程师,来苹果几年来还没有机会听那些人讲话。而且每个人的演讲都会非常有收获,绝对的听君一席话,胜读十年书。演讲后面还有问答,每个人只准问一个问题,所以其他intern问的问题也都是非常值得一听的。最后,intern可以参加苹果的所有培训,从Photoshop, Cocoa programming到摄影,武术,美声;让你夏天绝对有事干。

    Co-workers:苹果工作最有意思的一点就是能遇到很多很多不同背景的人。我办公室里10个intern来自10所不同大学,5个不同国家,讲8种不同的语言(当然工作的时候大家都讲英语,有时候法语,这点很无奈,苹果法国人真的很多)。和Google,Facebook之类的网络公司相比,苹果的人才非常多样化。从实习生的分布就可以体现出来:有人做软件,有人做硬件;有搞设计的,有搞销售的;有MBA做市场的,做运营的,各种各样的人都有,所以你不会天天只和软件工程师打交道。刚来的时候,感觉大部分的实习生都是Apple fanboy,苹果忠实的粉丝。而我是来了苹果两个月之后才买的第一台Mac,开始很不适应他们天天在办公室里说苹果怎么怎么NB,微软谷歌怎么怎么不好。。。后来慢慢学会了沉默是金。。。

    企业文化

    一个公司最有意思的就是它的企业文化,苹果更是如此。首先第一点,我非常鄙视苹果全公司上下对Steve Jobs唯命是从。比如说Steve不喜欢吃牛肉,公司食堂就没有牛肉。。。Steve是Pescetarian(只吃鱼和素),公司食堂餐餐都有素食和三文鱼Tuna什么的。。。感觉非常极端。工作也是一样,假如你被分到Steve不喜欢的项目,你的美好前程就基本上GG了。。。MobileMe和FinalCut Pro就是很好的例子。

    细节

    当然除此之外,苹果有很多优点,比如说对细节的注重,我之前已经提到过。

    专注

    另外一点是苹果的专注。虽说每年上百亿的利润,苹果的产品线非常简单:Mac (MacBook/iMac/Mac Pro)和iOS (iPhone/iPad/iPod Touch)。相比之下Google的产品简直多如牛毛。。。简单的产品线意味着更多地投入,更多的创意,和更大的风险,也就是说你手中的iPhone的每一个细节都是经过N多人的反复推敲最终的决定。另外,它同样意味着很多的放弃,放弃很重要的功能因为它不是最重要的,放弃超前的理念因为市场短期内接受不了,放弃畅销的产品因为要推出更畅销的产品(iPod Mini -> iPod Nano)。

    刚来苹果的时候我很不明白这一点。因为作为一个developer,我总是想给用户提供更多的选择,更强大的功能。因此我和苹果的设计师争吵了几次,闹了点小矛盾。为了尊重他的意见,虽说我不是很赞同他的观点,但还是去除了很多次要的功能和设计。直到两个月后我才发现他的用意:一棵树只有剪去杂枝才可以长高,一个软件只有去掉不必要的功能才能体现出它真正的用处。也许这就是为什么苹果系统一直以操作简单而得人心。后来我在TED上看到了这个演讲,感觉很受启发,和苹果Simplicity的理念有异曲同工之妙:Barry Schwartz: The paradox of choice

    机密

    苹果的保密措施绝对是业界里出名的。很少能有人在新苹果产品推出之前准确的猜测出产品的内容。因为我一直比较拥护开源软件,很欣赏Google的开放,所以刚开始不适应苹果的各种保密措施,比如说代码要放在加密过的文件夹里,下班要把所有硬件锁起来(虽然办公室已经很戒备森严了。。。)更可笑的是苹果总部附近有一家西餐厅,很多记者经常会假装到那里吃饭,实际上偷听苹果员工的谈话,来推测苹果的下一步。导致苹果要求所有员工谈论项目时必须用代码,离开公司不允许讨论工作的内容,甚至不能告诉家人。

    在苹果一段时间之后,我慢慢发现这样做确实有它的道理,他不仅有利于公司本身,而且对消费者也有好处。我暂且不讨论公司与公司间利益上的竞争。苹果这样做对它的产品非常的有利。假设苹果泄露了一个功能,而这个功能在开发末期出问题,苹果取消这个功能会让用户失望,继续这个功能会影响产品的质量,很难办。但是假如这个功能一直都是保密的,即使在最后关头苹果决定取消这个功能,也不会有任何销售上的损失,更不会让用户失望,因为他们根本没有期望。相反的,假如你看着一个产品得一点一点进步,当你最后看到它发布的时候不会有任何惊讶,你会觉得它是理所当然的,即使它很完美。但假如事先没有一点预兆,然后看到一个非常完美的产品,你会被WOW到,用专业术语,它会产生unexpected value。所以刚开始,我的项目稍微有一点进展我就给我老板看,看完之后没什么反响。明白这点之后,我只等项目有大幅度的进展才给我老板看,然后他看了会被impress,觉得我做了很多。虽然只是perception的不同而已。

    完美

    (语言问题。。。这个概念我可能解释得不好。。。)

    大家都知道苹果追求完美,但到底怎样做算追求完美?苹果的“追求完美”并不是改进现有的产品,把最好的做得更好,虽然有时候这是追求完美的一个步骤。苹果的追求完美更多在于明确的定义目标,然后从多个方面寻求最能达到这个目标的方法。例如,当微软决定一个产品的颜色,它会提供N种不同颜色,然后做市场调查(user focus group),从而决定哪个颜色最受欢迎。而苹果的设计师会尝试N种不同的颜色,根据他的经验,选择一个最靠谱的,然后细分这个颜色(比如说把蓝色分成纯蓝,青蓝,天蓝,海蓝,蔚蓝,靛蓝,等等等等)然后再次根据他的经验,选择最好的。我觉得整个设计过程就像艺术家创作一样:画家不会画10幅画然后让观众选最好的,画家会投入精力和灵魂,来创作他自己认为是最好的。

    6,总结篇

    写了这么多,最后总结一下感想把。这一夏天真是学了很多很多东西,虽然有点小偷懒(湾区的生活实在太美好了)。这个co-op收获绝对大大的。。。

    优点:
    - 能认识很多不同的人,苹果真的聚集着各行各业的精英
    - 可以看iPhone代码,然后随便改。。。比Jailbreak爽多了。。。
    - 有机会和苹果高层接触,还可以经常看到Steve Jobs
    - 工作环境无可挑剔,苹果总部非常漂亮
    - 各种各样的优惠,免费门票神马(WWDC门票一张1,599...)

    缺点:
    - 公司的机密措施,实习生只能参与已经对外公布了的项目
    - 你的项目要经过好几层批准才可以被Ship(Facebook每天都可以ship代码。。。)
    - 要求不是很严,导致我经常上班偷懒,上校内,看YouTube,打游戏神马的。。。
    - 乔布斯小气。。。别的公司一日三餐都是免费的。。。
    - 没美女。。。虽说苹果内部停车场就像Auto show一样。。。

    说实话,我开始的首选是Google而不是苹果。我来苹果之前从没买过苹果产品更不是苹果粉丝,虽说刚来的时候不是很喜欢苹果,但是一夏天过后,我觉得我真的很欣赏这个公司,觉得来苹果是个正确的选择(尤其是现在苹果超过Exxon Mobil成为世界上最有价值的公司,而且上个季的业绩是Google的2.5倍)。


    后记:我boss问我下学期是否愿意回苹果实习,我的决定是选择尝试其他的公司。毕竟不同公司有不同的文化,能学到不同的东西。Co-op绝对是获得不同经验的最好机会。但是等我毕业可以成为一名正式员工的话,苹果会是我的首选之一。

    全文完更多精彩文章及讨论,请光临枫下论坛 rolia.net
    • 谢谢信息,收藏了。
      • 昨天孩子和我聊了聊学习和实习的事,他提到他们同学中发展的比较好的都是自己对计算机有兴趣的,因为计算机的学习和工作其实都蛮辛苦的,如果是被父母推去学的孩子大多都比较痛苦,有孩子还降级了,所以也要尊重孩子自己的兴趣。
    • 肉联有不少码工。码工的生活,并不神秘
      • 公司规定实习生不能参与团队项目,所以我们只能做一些side project,例如团队想要做但却没时间做的东西。
        • 引用句子要全面,这句话特指的是Apple。
          • 美国工作薪水相对要高一些,尤其是CS,每小时25-45之间,还有各种补助(机票,住宿,伙食)。
            • 2011年,是transfer student, 第一个work term。
              • WORK INTERN= CO-OP?
                • You can "call" it "work term", "co-op" and "intern", to name a few. You can still use your so-called term, "BS", provided that you insist, but these do not change the truth.
                  • 原来如疲啊,你家十二岁的娃真幸福!
              • For reference, Glassdoor’s list of the top 25 highest paying companies for interns listed Palantir ($7,012), Vmware ($6,966), Twitter ($6,791), Linkedin ($6,230) and Facebook ($6,213) as the leaders for highest monthly salaries.
    • 为什么掐了这么久,这信息神贴才千呼万唤始出来呢?
      • 这个帖子也不是新出来的,是2011年6月的帖子,现在拿出来只是让感兴趣的家长学生参考下。
        • 能把在肉联上的 2011 年的 COPY 给了 LINK 吗?谢谢。
          • 可能是那个滑大国人扎堆的论坛里2011年的贴,肉联也许没有人转过来
    • 圣诞快乐!辛苦啦! 结论 化铁炉全球第一,万岁万岁万万岁。祝新年继续化铁抠凹!
      • 刺哥好像还是不服啊 ?! 不过俺一直认为要做学问,得去多大; 要当码工,得去滑大。
        • 一般工业学术在本科毕业的时候才分家,滑大把这个过程提前到高中毕业了。
          • 的确,滑大的 Co-op 把孩子方向多少给框定了。
            • 某些华人推爸推妈目光短浅只求短凭空,不管孩子兴趣如何或者是不是码工的材料,一味推抠凹,让人叹为观止。
              • 别在继续这么无聊了,你家孩子选专业的时候会听你的吗?这面长大的孩子都有自己的考量,父母的建议最多是参考罢了。
                • 喔,推爸推妈太辛苦啦啦啦!
                  • 岁数大了,该有点风范了。好好带你孙子吧。
                    • 谢谢谢谢, 边跟孙子玩儿边上网聊天。
                      • 幸福的人
                        • 他刚才还在说言传身教的道理, 我是相信他的孩子在他的影响下会成为几年前向McMaster匿名捐款3亿加元那一类的人。
                          • 借你吉言, 一个华丽转身从T&T收银的亿万富翁。
        • 大美芷,这有什么服不服啊?我家娃当初不报化铁炉,也没有去T&T收银或刷试管儿。我孙子也不会上那个抠凹,照样会活的很好。
          • 赞 x1000. 好心态 !!
            • 化铁炉的毕业生我见过一些,个别的很不错,大部分一般化,还有一些相当差。
              • 在哪,优秀的和极差的都占少数,中间的占绝大部分。
                • 化铁炉推爸推妈眼里嘴里可不是酱紫
          • 刺哥得改一改,你这老是“化铁炉"会让滑大学生的家长们感到 ”刺眼“。
            • 化字更传神吗, 寓意也更好。
          • 说什么哪? 大美帝国没有你一家, 不也照样欣欣向荣!
            • LOL太有喜感了, 娃才十二岁就开始推, 敬仰!
          • 推爷爷,说话不要太肯定,你家孙子长大了会听你的吗?要是他真想去滑大,你管的了吗?
            • 家庭的影响对孩子是最重要的。
    • 这谁呀,在这意淫,“码工”就是坐在小黑屋里冥思苦想的刻板印象