Skip to main content

标  题: CS菜鸟找小公司software engineer工作记

发信人: DrunkMonkey (努力改造,早日释放), 信区: JobHunting
标  题: CS菜鸟找小公司software engineer工作记
发信站: BBS 未名空间站 (Sun Mar 13 19:20:08 2011, 美东)

首先解释一下自己的背景和找工作的目标。本人烂校CS Ph.D.毕业,Ph.D.期间无工作经验,无Intern经验。目标是在local找一份工作,不求A,M,G,不求高薪,只要能给offer给办H1B就行。

先说说找工作的过程吧:2010年11月开始断断续续的看CRLS。虽然以前上过数据结构和
算法课,不过都快忘光了,基本上是从头学一遍。2011年1月底投出第一份简历。上周
拿到一个offer。还有一个onsite结束后面试官说我是目前的candidate里最好的,很可
能会给offer,但是要等到下周中才有结果。
第一个公司催的紧,而且地理位置很理想,也是我想要的职位,打算从了。花了一个半
月找工作,终于可以划下句号了。

以菜鸟的状态进入本版,这期间得到了版上的很多帮助和
BLESS。谢谢!
找工作的过程中有喜有忧,也有一点小小的心得,和大家分享。希望能对仍在找工作的
同学有点帮助。

先说说我觉得非常有用的资源:
1. 找工作的网站
我把简历放在monster, dice上,另外每天看看indeed。找工作期间一共投了42份简历
,其中一半在monster, dice这样的网站上投,另一半是通过indeed看到,直接email到
公司去的。
monster作用不大,联系我的都是些recruiter。
indeed非常有用。从indeed上看到职位以后,我去该公司的网站,找到HR部门的收件地
址(通常是careers@company.com,或者jobs@company.com),然后给该email地址发简历
。22份简历,拿到了3个phone interview,其中两个拿到了onsite,另一个莫名其妙的
在HR那关被灭。
总结:强烈推荐indeed!

2. 简历
简历这块儿没什么可说的,精华区里有很多讨论。
强烈推荐某位大牛的博客,也是在这个版上看到的(不知道这位筒子会不会看到这个帖
子。对你表示暴烈的感谢!):
http://randommumble.wordpress.com/
里面给出的cover letter格式,非常有用。我不管公司要不要cover letter,一律按照这位筒子给的格式写一份。一个manager level的朋友看到以后说,非常impressive.另外,简历命名规则,也很管用。至少我自己查找以前投的简历就方便多了。

以我自己为例来推荐一下cover letter吧。我把简历和cover letter贴在monster上以后,A家和M家都是第二天第三天联系我,G家是过了一周联系我(向毛主席保证,我没有投这几家!)
A家的phone interview fail了,在本版贴过面经。
M家联系我的时候,我在外地开会,和他们说好一周以后联系。等我回来再给他们写信,就没人理我了,不知道怎么回事。
G家HR说希望我在他们网站上再申请一次,然后安排面试。我算法没怎么复习,就还没投。

总结:cover letter啊cover letter!!!!!
(补充:cover letter的作用,就像randommumble筒子在他的blog里说的那样,可以帮你顺利通过HR那关。不过回帖中也有很多筒子说没啥用)

得色的楼主又想起来一点:不知道resume怎么写的吸引人的同学,可以google别人的简历。比如做machine learning的,就google "machine learning google",可以查到学machine learning的拿到google offer的牛人们的简历。说不定有帮助。
牛人们的简历通常是这么写的:designed XXXX 系统,用了xxx和xxx听起来巨fancy的技术,性能提高了x%。不纠缠于技术细节,而牛掰性又显而易见。

3. 面试准备
版上大家都说,不打没把握的仗。如果mitbbs版面总结还有10%以上题(有的说法是20%)不会或者写代码会有错,面试就是浪费机会。
我进这个版的时候,大概95%的题不会做。现在超过一半的题还是不会,特别是算法题。
如果你要找的是M,G,A这样的大公司,确实需要做很多题,练熟了再去。
如果只求找份工作,我自己的经验是小公司不那么看重算法。基本概念会,有一定的编
程经验,就可以了。需要准备以下的部分:

a. careercup 150题, 和programming interview exposed
前者尤其重要,不管多强调它的重要性都不过分。后者的每道题都必须做的很熟练。
另外,看careercup的时候,最好能扩展一下。比如smart pointer,career cup上给出了它的实现;可以扩展到现在C++里有几种smart pointer(auto_ptr, shared_ptr,区别和应用, etc)。

b. effective c++
这本书很多人说很好,但是我看不进去。推荐下面这两个链接:
C faq: http://c-faq.com/
C++ faq: http://www.parashift.com/c++-faq-lite/
把这两个链接看完,C/C++的各种考题都能应付

c. design pattern
常问的是singleton, factory。有的时候会问MVC, strategy
我还会主动说一个std::iterator
wikipedia的内容足够应付面试了

d. multi-thread
看programming interview exposed,careercup, wikipedia

e. STL基本概念
推荐the c++ standard library,看auto_ptr和第五章(google book上有)
或者随便找个stl的slides看一遍就够了

f. 面试前的临时抱佛脚
* 最简捷有效的资源:wikipedia
面试前,我会把这个职位的招聘广告翻出来,job description和requirements里所有不熟悉的技术都wiki一遍。
面试的时候,如果面试官问到这个问题,就说:我虽然没有做过这方面的项目,但是对这个技术也有所了解.blah blah blah的把wiki背一遍。或者去搜一下这个领域相关的新闻。比如做machine learning的人,我就会和他侃一下IBM的watson最近在jeoparty上的表现。
* onsite之前一般都有一段时间可以充分准备一下。我会去youtube搜相关的教程恶补,或者干脆在google上找slide。
比如,要面ORACLE的话(打个比方),可以去youtube搜一遍oracle教程。或者在google里搜oracel database .ppt。
* 恶补面试题
记得careercup开篇说过,即使是牛人,如果不了解面试题目的风格,也可能会fail。哪怕是面自己非常熟悉天天在用的技术,也建议先看看面试题。
最好的资源当然是careercup和本版。
另外,可以去glassdoor.com看到以往的面试题。
如果公司很小,在glassdoor上没有面试题的话,建议查查类似公司的面经。比如要面淘宝,就可以看看ebay的面经,没准差不多。
或者直接搜关键词,比如面oracle,搜database interview questions,说不定也有用。我曾经前一天晚上刚看的题,第二天就被面到了。

g. 算法题
推荐两个网站,一个是在这个版上看到的,一个是朋友推荐的:
http://www.ihas1337code.com/

http://geeksforgeeks.org/
当然还有mitbbs精华区和版面讨论


4. local的优势:
我的目标是在local找工作(非湾区),定位为找小公司的职位。
小公司比较愿意招local的人。常常看到招聘广告上说,local resident preferred。而local resident candidate往往不太强。曾经有一个面试官对
于我能快快写出无bug的reverse a sentence程序表示惊奇,因为之前的candidate都败在这题之下。要知道,我的水平在这个版上就属于被秒灭的那种啊!可以想象其他candidate的水平了吧...

建议:把自己的地址改成bay area吧,机会应该会多很多。


5. 心态
找工作中也有不少教训,和大家共勉:
不要因为一次的失败而否定自己。
不要等。面完了,继续投简历,继续面其他家。不要像我似的,什么都不做,天天煎熬
的等待结果。如果面完了继续move on,也许我现在手上可以有更好的offer.

最后再次谢谢这个版那么多热心的ID们!
祝大家都拿到满意的offer!

又想起来一点,补充一下:

我的感觉是,面试有两种,一种是“算法类”(A,M,G这样的大公司),一种是"概念类",考基础概念,小公司比较多。
算法类不清楚。对于“概念类”来说,考点就那么多,记住一个算一个。像我这样半路转到CS,很多基础课都没上过的人,面试的时候考的其实是背功,或者考你运气好不好,之前有没有见过这题。
比如,我被问过一道题,delete[]是怎么知道需要delete的size大小的。刚好前一天在C++ FAQ里看过这题,知道new class[]的时候,内存里第一位放的是object个数,后面才是new的内容。如果没见过这题,打死我也答不出来啊。

相信大家都考过GRE。GRE背单词的策略就是第一天,第二天,第四天,第八天... 反正就是不停的复习
我准备面试的时候用的是类似的方法。所有的"考点",比如概念,经典题的算法,记在一个本子上(最后攒了若干个本子)。平时每天晚上睡觉前翻一点,早上起来翻一点。常看常背,考点记的比较牢。
以前也常拿这个方法来期末突击复习,应付考试,很有效的

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...