Job

Try not to become a man of success, but rather try to become a man of value.

— Albert Einstein

Nina And Her Very Long Hair @

  i have a tale, but not a tail
  like felius domesticum

  it’s of a girl, a real girl
  i’m calling by her real name

  and thus began
  a summer camp sonnet 十四行诗
  she saw a boy who would soon be
  a bee in her teenage bonnet
  nina and her very long hair
  held a torch that got her nowhere
  she hit him with a thunderbolt smile
  every thing she had she threw
  every dress and every shoe
  nina and her very long hair
  held a torch that got her nowhere
  as hard as she tried
  he never looked twice
  he never did see the light,
  and end the plight ([plaɪt]困境) of nina

  sometimes a film, comes over me,
  like a cold cup of tea
  and i forget, what i was set
  to snag (被绊住) and bag, grab and seize

  at seventeen
  she was still reeling 蹒跚
  she went to camp
  with a comb and a tent
  and that same old feeling
  nina and her very long hair
  held a torch that got her nowhere
  she hit him with a thunderbolt smile
  every thing she had she threw
  every dress and every shoe
  nina and her very long hair
  held a torch that got her nowhere
  as hard as she tried
  he never looked twice
  he never did see the light,
  and end the plight of nina

  and so she snipped,
  she cut and she clipped
  enough to thatch a cottage roof
  and once she’d preened,
  she glowed and she gleamed
  off she set to make him swoon

  she was the girl with very short hair,
  that got her nowhere

找工作网站 @

AngelList - Where the world meets startups

Indeed 中国 | 招聘信息搜索引擎 | 天下职位,一网搜尽

武汉大学学生就业信息网 - 专场招聘 @

就业信息_武汉大学遥感学院就业信息发布 @

大型的校园招聘一年有几次,分别是什么时候? - 职场 - 知乎 @

一般,应届毕业生招聘可分为四个阶段。不同阶段,用人单位的组成有很大不同。

  • 始于每年九月底,但真正开始在十月中下旬,持续到 11 月中下旬。这一阶段招聘企业的数量和质量相当高,所谓“金九银十”就是这个理儿~大部分互联网公司都在这个阶段完成招聘,我们当年第一个来的竟然是蜻蜓 FM… 这个坑爹货也没招啥人,据说招了两个还不是… 应届生… 流程之乱也槽点满满。11 月左右还有很多外企,宝洁啥的会稍早一些,不过现在外企也不太景气,没之前那么火爆了。
  • 11 月下旬到 1 月中旬是第二阶段,以大型国企为主,包括四大国有银行等,公务员考试也大都安排在这个时候。
  • 次年 2 月底至四月中旬。与年前相比,招聘单位无论从质量和数量上都大大下降,以中小型国企和民企为主,不过部分外企遭遇员工辞职可能会出现职位空缺从而二度招聘。
  • 5 月到七月,一般是偏僻西部地区招聘,职位较差。
微软 2016 年校园招聘 @

应届生招聘 9 月启动,敬请期待!

2017 微软校园招聘大陆、美国职位招聘9月6日启动,简历投递截至9月29日

华科,9 月 23 日。18:30 到 21:00。

9 月申请职位。

网申截止至 2016 年 9 月 29 日。

微软作为全球领先的软件、服务、设备和解决方案供应商,自 1975 年成立以来,一直致力于帮助个人和企业用户全面发挥科技潜能。四十年来,微软始终引领技术创新与变革,其卓越的软件、设备和服务能够帮助用户提升在生活和工作的方方面面,使数以亿计的用户真正受益于科技。微软公司总部位于美国华盛顿州雷德蒙德市,在全世界 190 个国家和地区建立分支机构,拥有超过 100,000 名员工。

我们建议你充分了解所有职位信息,恰当地选择你感兴趣的业务领域。每位同学可以选择 3 个志愿。我们会根据你的第一志愿安排面试,如候选人未能满足第一志愿的职位要求,我们会根据当时的职位空缺数量根据你的第二及第三志愿进行调剂。

申请提交之后,无法更改网申表信息。请大家在提交时认真检查,以免影响申请。同时,请大家尽早完成网申,以免错过后面的安排。

研发类职位考查的内容包括:技术能力、沟通能力、学习能力、理解能力、语言能力等;主要形式为电话,网络或现场进行一对一技术面试。根据岗位需求不同,部分职位可能会增设现场纸笔测试,英文听说读写测试及学术成果展示等环节。

校招团队将在笔试或面试结束后的两周之内,以电话、邮件或短信形式通知结果(通过,不通过,待定)。得到待定通知的同学,我们将同时告知有确定结果的时间,或者随时保持沟通以便让同学了解最新进展情况。

有任何疑问可以在应届生 BBS 的微软论坛(http://bbs.yingjiesheng.com/forum-228-1.html)给 HR 留言,我们会尽快答复。

在线测试:9 月底到十月中旬。11 月到 12 月发放 offer。

微软应届生校园招聘,每年都在全国各大高校招聘数百名应届毕业生。

微软校园招聘项目,旨在为有全职求职意愿的同学,提供了解微软及加入微软(中国及全球)的最好平台和绝佳机会。

进入微软,你将有何获益与发展?

  • 体验微软最前沿IT技术:第一时间接触微软最新产品,抢先一步掌握全球 IT 科技资讯;
  • 与业内精英直接对话:与技术大牛们分享交流最新的行业动态,探讨微软最顶级的技术成果;
  • 独家导师制度:不用担心进入微软后手足无措,我们将为每位新员工配备导师,你的日常学习和工作将由他(她)悉心指导,他(她)将帮助你高效完成从校园人才到企业精英的转变。
  • 良好的工作氛围与环境:与最聪明的人碰撞思维的火花,享受弹性工作时间及舒适的办公环境。
Software Engineer-ASG @

Position:

Software Development Engineer is to work with project manager to understand the customer and market requirements, architect and design software systems, implement and ship online service product with high quality assurance.

Qualifications:

  • Strongly passionate about software design and programming, capable of learning quickly and continuously; strong interest and curiosity in technology
  • Excellent analytical skills and problem solving skills, obsessed with customers
  • Solid background on computer science or related areas. Candidate with software development experience is preferred. Candidate with certain level of specialty in computer science or software engineering is preferred
  • Batcher or master degree in Computer Science or related engineering areas is preferred
  • Willing to take challenges and initiatives, be a team player, and with accountability
  • Able to work effectively in an environment where English is the primary working language

refs and see also

如何准备校招? - 互联网 - 知乎 @

知乎上 BAT 的员工多的很,找他们。一般都很乐意内推,只要你的简历别太——难看。

2016 微软校招需要多好的英语水平? - 知乎用户的回答 - 知乎 @

这里具体指的是微软(中国)的校招吧?

  • 个人觉得英语不是重点考察的地方,一般大学毕业生的听说能力就够了,比如偶就是刚过 6 级的水平:( 没考过托福雅思,也没出国交换的经历~
  • 运气好的话全中文面试,运气不好的话可能会遇到完全不会说中文的面试官,我当年的 AA 面就是老外,当时好像问了我面向对象的三个基本特征 + 拓扑排序:-)
  • 如果想准备的话,基本计算机术语 + 比较流利英文自我介绍就可以了。还不放心的话,把项目经历 / 面试官可能会追问的问题 / 常用算法数据结构的解题思路都用英文练一遍吧,就酱 ^^
阿里、百度、腾讯、微软、英特尔等著名企业,校招后的三年,员工的待遇和成长情况? - 微软(Microsoft) - 知乎 @
  • MS @

    Tim Chen

    微软校招进来 3 年,稍微快一点的话可以升到 61 了。这个级别基本属于主力部队,中坚力量了。不少同学也在这个时候考虑肉身翻墙,之前的绩效评定不错的话还是挺容易的。

    61: 级别。校招进来一般是 59。

    除了研究院其他部门也招博士,起薪和 level 比绝大多数 master 和 bachelor 高。研究院的博士就更不用说了本硕的薪资区别完全在面试的 feedback 跟学历无关。


    vczh

    微软员工:拿到了签证,摆脱空气污染。这边总部的应届生大约是俩月 BMW,三年速买房(当然都是贷款,当然了贷款有利于 credit record,没事不能全款),可以算算国内得什么样的工资才可以干翻这边的物价。

    当然了,别以为翻了墙都一样,在湾区生活的难度也没比北京低多少(逃


    如果我在国内我一定去微软,原因有三:

    • 1,给所有人机会。微软的工作机会是最平等的,这对于找工作的重要性不言而喻。如果能有机会拿到微软的实习,自然今后寻找工作的底气也就足了很多。对于跨专业的人来说更是如此,其他公司往往狗眼看人低,一看你不是计算机专业的就不要你。但微软更注重实际能力。
    • 2,升值空间大。在微软工作一段时间就可以通过内部程序申请去西雅图,解决工作,保险,签证。这是相当多数美帝研究生都无法得到的(当然有难度)。成功案例参看轮子哥。
    • 3,用户基数广。世界上所有人都在使用微软的软件。就软件而言,我实在想不出除了 oracle 以外,还有谁可以和他一拼了。注意,最近 apple 系统的 bug 急剧上升,google 软件没人用,充分凸显了软件工程行业老大哥的地位。
  • Tencent @

    做到 3 年。基本扔个简历出去每天都有各种猎头 QQ 电话狂轰乱炸的了。

    加上实习来鹅厂两年半,offer 相比刚进来的时候涨了 70%,现在跳槽了。

    个人的感觉是,任何工作,越尽心去做得到的也越多,尤其是刚来的那半年,可以很明显地感受到自己的提升。


    校招来腾讯二年,工资在涨,水平不见涨,连已经看的烂熟的 c++ primer 现在都快看不懂了,好内疚,就这样骗了公司好多钱


    我有一段时间曾经负责面试过一些社招的小伙伴,发现一个粗浅的规律:通常外部的 4~5 年的工作经验,相当于在腾讯待 2 年左右的工作经验,原因是,外部公司的往往很不重视技术人员的成长和积累。

      工作强度:
      工作强度大。
      工作强度很大。
      工作强度非常大。

  • Alibaba @

    首先关于待遇,BAT 和微软应届生年薪应该都是 20W 出头(百度 13K14.5,阿里 13K16,腾讯记不太清了,微软加年终奖大约是 24W),差距也不太大,英特尔应该低一些(12K*14)。其实我觉得一开始就算差两三万也不算什么,关键还是看自己的成长,未来你能赚多少钱。


    阿里 22 个月,百度已经待了 21 个月。机器学习应用岗位,搜索和推荐。年薪就 35。今年可能到四五十吧。

2014 年放弃阿里巴巴 offer 的人是否格外多?如果是,为什么? - 应届毕业生 - 知乎 @

一个哥们去面阿里,阿里拿一个困扰他们半年的 bug 面这个哥们,这哥们现场 5 分钟搞定,技术总监大喜,让 HR 发 offer,结果 HR 跟这哥们谈的时候说了一句“你现在的年龄和职位,不上不下,不尴不尬”。这个哥们大怒,拒掉 offer 不再跟阿里联系。

最后,HR 被开掉了。


这里熟人太多 还是匿一个吧

说到这个想起来我和阿里打交道的经历,先简单介绍一下背景吧,我是在美帝拿的 PhD,在 Amazon,Facebook,Google 打工了两年多一点,阿里上市前猎头联系到我,当时考虑到上市潜力和国内照顾家人的原因和阿里面试了一番,最后拿了个介于 p7 和 p8 之间的 offer。总体 package 当然和北美的待遇不能直接比较,但也还算合理。面试过程还是非常愉快的,阿里的工程师们让人感觉很舒服(就是同为技术宅的感觉……),对一些问题研究的也很深。没有接 offer 的很重要原因之一是杭州房价太贵,但最后拒offer 的时候阿里的 HR 给我的感觉也是相当的“奇特”,直接提出“你在 AFG 又不属于核心组(言下之意是你拽什么拽?)”。拜托,核心不核心不是你说了算的,何况我在的组还真的是这边公司的核心业务呢,只是国内还没怎么发展起来罢了……

总之,和美国公司的面试比起来,技术层次我觉得阿里已经不差什么了,主要还是 HR 的盛气凌人让人感觉很不舒服。

想投 C++ 研发职位, 暑假应该如何为秋季校招做准备? - C / C++ - 知乎 @

笔试部分:我一直觉得国内公司的笔试都差不多一套模子的,大约是这样的。

  • 计算机组织结构

    RISC,CISC 的区别,指令周期等,参考书籍:深入理解计算机系统,计算机组织与结构 (Stallings) @

    RISC, CISC @

    Complex instruction set computing, Complex instruction set computing (CISC /ˈsɪsk/) is a processor design where single instructions can execute several low-level operations (such as a load from memory, an arithmetic operation, and a memory store) or are capable of multi-step operations or addressing modes within single instructions.

    Reduced instruction set computing, or RISC (pronounced ‘risk’, /ɹɪsk/), is a CPU design strategy based on the insight that a simplified instruction set provides higher performance when combined with a microprocessor architecture capable of executing those instructions using fewer microprocessor cycles per instruction.[1] A computer based on this strategy is a reduced instruction set computer, also called RISC. The opposing architecture is called complex instruction set computing (CISC).

    RISC 的设计重点在于降低由硬件执行指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能,因此 RISC 设计对编译器有更高的要求;CISC 的设计则更侧重于硬件执行指令的功能,使 CISC 的指令变得很复杂。总之 RISC 对编译器的要求高,CISC 强调硬件的复杂性, CPU 的实现更复杂。

    RISC 设计思想准则:

    1. 指令集 —-RISC 处理器减少指令集的种类,通常一个周期一条指令,也就是说指令的周期是固定的,编译器或程序员通过几条指令完成一个复杂的操作;CISC 的指令长度通常不固定。 2. 流水线 —- 流水线的本质就是 CPU 并行运行,只是并行运行不像 FPGA 中的那么直接,它只是把一条指令分成几个更小的执行单元;CISC 指令的执行需要调用一个微程序,明显没有 RISC 的指令吞吐量大。 3. 寄存器 —-RISC 的寄存器拥有更多的通用寄存器,寄存器操作较多,例如 ARM 具有 27 个寄存器,CISC 的寄存器都是用于特定目的的。 4. Load-store 结构 —- 处理器只处理寄存器中的数据,这是因为访问存储器很耗时,同时对外部存储器的读写会影响其寿命;CISC 能够在存储器中直接运行 5. 寻址方式简化,不像 CISC 那样的复杂众多的寻址方式

    refs and see also

    指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,是从取指令、分析指令到执行完所需的全部时间。

  • 操作系统 : 死锁的条件与算法,进程的状态,进程和线程的区别,内存换页算法,同步与互斥等,参考书籍:现代操作系统
  • 计算机网络:OSI 模型,三次握手,TCP 状态转换图等,参考书籍:计算机网络与 UNIX 网络编程第一卷
  • 编译原理:考的甚少,懂这个的校招面试官也极少。我当初只在网易游戏的笔试题中遇到过,但是那道题也非常非常非常的简单,但是不知道为什么分值给的特别的高。了解好简单的词法分析,语法分析原理即可,会解左递归,知道正则表达式,状态机转换,递归下降分析即可,校招基本上碰不到优化相关的,所谓的寄存器分配等几乎是不可能遇见的。参考书籍:龙 / 虎书
  • 数据库:SQL 语句的基本写法,如 Select, groupby having,数据库的范式,数据库的索引(实现是哪种数据结构)和存储过程等,数据库的 ACID 是什么等,参考书籍:数据库系统概念
  • 数据结构与算法:各种排序算法的实现,时间与空间复杂度,稳定性等,二叉树的前中后序遍历的非递归与递归实现(已知前中序遍历,求后序遍历等),树的基本概念(如高度等),二分查找及其实现,图论算法(包括图的邻接表与邻接矩阵的表示,深度优先遍历与宽度优先遍历等(这里有可能拓展到二叉树中),最短路径等),参考书籍:算法导论,算法等
  • C 与 C++ 语言 :const, extern 的用法,各种程序题目,参考书籍: The C Programming Language,C++ Primer,深度探索 C++ 对象模型等
  • 数学题:概率论居多,偶尔见到线性代数,高数几乎没有见到。参考书籍:大学数学教材
  • 系统设计与大数据题: 一般是作为附加题出现,如给你几十兆的内存,但是却要排序上 G 的数据,问你怎么办。或者给你一个场景,让你尽可能的优化系统。参考:网上各种博客和往年的题目
  • 益智趣味题:所谓的一些趣味或者脑筋急转弯题,各种不按常规出牌,这项我是弱项,一般遇到我都会投降。参考:网上各种益智趣味题集锦
  • 其余语言题目:如 Java,JavaScript,C#,Python 等,这一项会与你的投递岗位有关。

面试部分:对于校招来说,我觉得是五分实力 + 五分运气,或者说是四分实力 + 六分运气,校招由于面试的人数众多,尤其是投递一些国内的大公司,很有可能出现面试官与你的技能不匹配的情况,甚至完全不匹配,这时候很有可能 GG 掉,所以校招的时候要保持好良好的心态。

如果是 C++ 的话,换我来做校招面试官,我会问到 C++ 语言,STL 的用法与一些实现细节,操作系统与算法等知识,并且会根据他的回答与情况进行不断的追问,参考我这个答案:实现字符串替换函数 char *strReplace(const char *original,const char *substr,const char *replace),我也会问问他简历的项目的相关东西,并且主动权主要在他手里,让他多说,然后我来问,我会希望他可以把我讲懂,我会偶尔提出我的问题,并且进行延伸,希望他可以想到办法。

心态:校招出现误杀的概率极大,所以要保持好良好的心态。比如我的简历也都被直接刷过,所以不要一些公司不通过就轻易的直接否定掉自己,这样才能自信的面对每一次面试,最后收获到自己满意的 Offer。

实现字符串替换函数char strReplace(const char original,const char substr,const char replace)? - 蓝色的回答 - 知乎 @

对于这个问题,首先情景是在面试场合,那么若我是面试者的话,我会选择先短时间实现一个可以工作的代码,然后再和面试官一起交流,探寻更高效的实现(前提他是一个好的面试官),而如果我是面试官的话,如果出这道题,我观察的不仅是他的实现,也观察他的编码习惯,Corner Case 的考虑,他的思维过程等,如这道题目,他一上来就啪啪啪的吭哧吭哧的写了,一上来就没有判定指针是否为空,就直接用了,那么这样的话,会减分不少。所以,正是如此,作为面试者,也需要揣摩出面试官的心理,针针入血,刺激到他的 High 点,产生相见恨晚的感觉那就基本上成功了。

而面试中,最好不要沉默,而要展现自己,如与面试官确定需求条件,这样也可以为自己赢得更多的一些时间思考,也表明自己是一个编码很谨慎的人,具有着职业精神,而非学生时期的那么冲动了。

而在实现这道题目的时候,你有几种方向,一种是测试驱动,即你先写单元测试用例,然后再实现,对面试官表明我的开发是有测试做积淀的,是有支撑的,而非盲目的想当然是怎么样的。第二种是直接先实现,再测试。即理清楚了需求,就直接实现,然后再来写单元测试用例来验证自己的实现是否正确。当然,这到底哪种好呢?我相信会有不同的看法,当然我更倾向于第一种。

随后在开始实现的时候,你可以边实现边展现你的思路是怎么样,并对一些该强调的地方进行强调,如这道题目,第一步判定original是否为空指针,写完后你就可以给面试官说了,然后让面试官意识到你是知道这个的,同时你可以给面试官再次确认,如果遇到这样的情况,我们应该是返回为NULL呢,还是说有其他的处理方式,或者说我们采用assert?当然这都是可以商量的。也许你会说很愚蠢,怎么婆婆妈妈的,这都是在为自己赢取时间,并且表明自己是很谨慎的,有职业素养的程序员。然后,与此同时,substr,replace为NULL的时候,我们应该返回 NULL,还是strdup等等,抑或怎么样?这些都是需要确认的。于是,实现可能是这样的:

char * strReplace(const char *original, const char *substr, const char *replace)
{
    if( original == NULL || substr == NULL || replace == NULL ) {
        return NULL;
    }

    char *newstr    = strdup(original);
    char *head      = newstr;

    char *tok       = NULL;
    char *oldstr    = NULL;

    while( tok = strstr(head, substr) ) {
        oldstr = newstr;
        newstr = (char*) malloc(strlen(oldstr) - strlen(substr) + strlen(replace) + 1);
        if( newstr == NULL ) { // failed to alloc mem, free old string and return NULL
            free(oldstr);
            return NULL;
        }
        memcpy( newstr, oldstr, tok - oldstr );
        memcpy( newstr + (tok - oldstr), replace, strlen(replace) );
        memcpy( newstr + (tok - oldstr) + strlen(replace), tok + strlen(substr), strlen(oldstr) - strlen(substr) - (tok - oldstr));
        memset( newstr + strlen(oldstr) - strlen(substr) + strlen(replace), 0, 1);
        head = newstr + (tok - oldstr) + strlen(replace);
        free(oldstr);
    }
    return newstr;
}

然后如果我是面试官,我这时候可能就会有几个问题

  • 既然用了 memcpy,那么他是否也可以自己实现 memcpy 呢?而作为面试官,实际考察点,可能不在于此,而在于他是否知道地址重叠,以及怎么处理
  • 能否有更高效的版本实现呢?

那么作为面试者,当被问住实现 memcpy 的时候,同样要清楚,其实既然这么考,自然有更深层次的考察,如果此时能知道地址重叠的情况,并知道如何处理,那就非常的棒了,因为刺激到了面试官的 High 点,抓住了他的意图。

而作为面试官,问有没有更高效的版本实现,是希望更深层次的知道他到底有多强,也是想继续拓展一下话题。那么面试者这时候也许就会想到,我们对字符串的处理,这时候可能这个字符串有很多需要替换的,其实这里面会有一个隐藏的计数 count,那么我们也许可以考虑实现一个带 Cache Position 的版本。OK,这时候,面试者可能就吭哧吭哧的讲解 Cache,然后实现 Cache 版本,这个时候,面试官也抓住了一个话题聊下去,如是否知道 L1 Cache,L2 Cache,L3 Cache,区别?是否知道 MemCached 这东西?如果用过 MemCached,就有的聊了,如果没有用过,没有关系,那么可以从 L1 Cache 这个话题开始。然后,作为面试官可以继续拓展到 CPU 的相关知识,如 Program Counter,指令周期等等,而作为面试者,这个时候则需要知道的是,考这些内容是在测自己的专业深度,不要心里埋怨平时开发根本用不上这东西,怎么考这么煞笔的问题,而应该将自己平时积累的专业深度知识都拿出来。聊完计算机组织结构知识,很容易就可以聊到操作系统知识,聊到编译器的知识,甚至于说对于面试者重新写 Cache 版本的时候,可以聊到重构,可以聊到设计模式,这样可以测出面试者的专业知识广度,这样的话,面试者的能力也能最大化的被测出来。

于是,作为面试者,可以发现自己所写的每一行代码,每一处细节都可以作为面试官的话题延伸点,那么面试者写下每一行代码的时候都要有把握解释清楚到底发生了什么,而且如果面试者足够的聪明,在写下代码的时候,甚至可以引导面试官往哪方面来问,如在实现这个函数的时候,作为面试者,我可能就会想面试官会有几个地方可能询问: 1. strstr 的用法和实现 2. memcpy 的用法与实现,乃至于 memmove 的比较. 那么当出现上述问了高效版本的时候,其实对自己是更有利的,因为提高性能的办法其实有各种方式,如果强在计算机组织等,则可以往寄存器,Cache 等低层次的说,如果强在算法方面,可以往更快的算法方面走。这个时候,在重构的时候,面试者自然也要留个心眼,进行漂亮的重构,乃至考虑到可维护性,可扩展性等方面,这样也是对自己能力的一个很好的展现。

于是,如果是一个好的面试官,很容易就能测出来面试者的水平。如果是一个好的面试者,也很容易能够展现出自己的能力,乃至引领面试官进入到自己的节奏。而这两者,我个人觉得其实更难做的是一个好的面试官,因为面试官需要实时评估,而面试者需要的仅是很好的展示自己。

strReplace("abcabc", "abc", " abcabc") 应该返回什么?

public static String replace(final String text, final String searchString, final String replacement, int max) {
    if (isEmpty(text) || isEmpty(searchString) || replacement == null || max == 0) {
        return text;
    }
    int start = 0;
    int end = text.indexOf(searchString, start);
    if (end == INDEX_NOT_FOUND) {
        return text;
    }
    final int replLength = searchString.length();
    int increase = replacement.length() - replLength;
    increase = increase < 0 ? 0 : increase;
    increase *= max < 0 ? 16 : max > 64 ? 64 : max;
    final StringBuilder buf = new StringBuilder(text.length() + increase);
    while (end != INDEX_NOT_FOUND) {
        buf.append(text.substring(start, end)).append(replacement);
        start = end + replLength;
        if (--max == 0) {
            break;
        }
        end = text.indexOf(searchString, start);
    }
    buf.append(text.substring(start));
    return buf.toString();
}
华为百度腾讯这些大公司,校招需要达到哪种水平才有机会进去? - Android 开发 - 知乎 @

本末倒置了。

华为看重学校,面试相对来说是比较水的,记得当年校招的时候华为两面加起来就 20 分钟,问的都很基础,给的也是白菜价,就没考虑。我能力还凑合,但不是什么大神, BAT 的面试对于当时的我都很有挑战,印象最深的是百度的面试,面试官坐在我对面,问一个问题,答的好在手边的纸上记下来,打个勾,答的不好,打个叉,看到满张纸的勾勾叉叉,可以想象出来我当时的压力有多大,一面就问了我两个小时,出来的时候整个人都要虚脱了。

最近项目组面试了两个人,两个都是学生,其中一个是天大的,过来当实习生,马上要入职了,没做过 Android,但据我的 Leader 说其 Java 基础吊打我们组的大部分人;另一个是在 Github 小有名气的 Android 开发者,在上面开源了一些自己的 App,代码质量不错,但面试的时候感觉基础很一般,算法也没写出来,最后没有通过面试。

现在的互联网公司更看重学生的基础能力,因为基础好的学生更具有潜力,请注意我这里的基础是指整个计算机体系的基础。就拿 Android 来说,去公司有可能写 Java,可能写 C++,可能做 H5 应用,可能做基础研究,也可能转岗去做后台等等,单一技能强弱,比如学生时代一个 App 做的好不好,反而没有你想象的那么重要,而且说实话现在学生写的 App,最多也就是拿一些开源库过来用用,自己组装一下,没有什么技术含量。

所以我认为,如果以后想去比较大的互联网公司,在写 App 的同时,研究的更深入一点,然后多看看书,把自己的基础知识补齐,在技能上有所长,但不要有短板,这才是最好的。


当过几次面试官,我一般会在以下几个方面各问一些问题:
  • 你擅长的语言方面问一些语言实现机制之类的比较深入的问题。
  • 数据结构与算法问几个,基础的数据结构,一般 hash 表、二分法、贪心什么的,如果都答上来,会问一些比较偏的。
  • 数学思维,考一些概率问题、一些巧妙的转化什么的,考察一个人的智力水平,我会问两三道题,期待能做出来一道。
  • 网络原理、组成原理、操作系统。各问一些基础问题,比如多线程、多进程、网络编程之类的,都问你一下基础的接口长什么样,你以前用过没有,有用过它做什么事之类的。还会问你,这个东西底下的原理是什么样的,为什么设计成这样。考察你思考的深度。
  • 如果做过网站的话,可能会问一些 HTTP 协议相关的东西,看看你有没有思考过你写的网站是怎么的运行起来的

就这样。你简历说你做出过什么东西,这个我可能会参考一下,然后主要问你你可能擅长的方向。

所以我想要的人就是聪明 + 懂基础知识 + 能够对一些方向的知识深入思考的。

至今面的人中,只有一个把我问的基础问题都答上来了,甚至我的加强版的问题都答上来了.. 最后给了 offer 后人家最后不愿意来百度了 ==

另外,清北肯定是有加成的,即使代码能力不成,交谈中如果发现见识还挺广,我也许也会让他(她)过了>_<另外,我们这种男女比例 20:1 的部门,女生绝对有加成。


华为不是想进就随便可以进么。。。。什么时候可以和腾讯在一起讨论了

怀疑题主是华为 hr,强行 BATH

为什么网易校招有名校情结? - 薪酬待遇 - 知乎 @

网易有名校情结你可以去 Google、Facebook 还有 Microsoft 啊。真不行阿里百度腾讯也不是进不了,一般重点还是能去的。

拿个 ACM 大奖,你去 Google 工作三年,清北去网易工作三年,你就彻底跟他们拉开差距了。

出来混迟早要还的,本科的时候别人比你努力的一点点,到最后就比你多出了一片天。

在湾区,MSRA 帮、Google 帮不知道比其他校友帮高到哪里去了。

如何评价微软 2015 秋季校招机试最后一题? - 微软(Microsoft) - 知乎

怎么进入 BAT 的研发部门? - 互联网 - 知乎 @
  • 《深入理解计算机系统》,简直神书不解释了,面试完你就会后悔没多看一遍。
  • 《TCP/IP 详解卷 1》,有了这本书码码再也不用担心我被十一五教材——没错我说的就是坑爹的计算机网络残害幼小心灵了。
  • 《算法导论》,BAT 的面试官真的没时间成天刷 OJ 成天给你来高难度题干掉你,他们出的最难的你都能在算法导论课后题里找到原型。
  • 《深度探索 C++ 对象模型》,面 C++ 岗说不出虚表实现机制?那基本就是面试成绩打对折的节奏,带上这本书防身吧。
  • 《编程之美》,帮你应付掉大部分逼格还不太够的公司。
本人在 2015 年校招拿了 BAT 以及网易游戏等 offer,而且基本上都给了 Special,那就从我的角度来谈谈今年校招的体会。 @
@1 冰冻三尺非一日之寒

综合身边一些拿到牛 offer 的同学,有个共同的特点就是:热爱这个行业。一个人在某个领域的成就是和自身在相关领域投入的时间和精力成正相关的。付出了多少,虽然短期内收益微乎其微,如果经过数年的持续努力,便会由量变产生惊人的质变。比如多读书、多看代码,一些计算机编程方面的经典书籍、GitHub 上面一些 star 越千的优秀开源项目,绝对值得多花时间研读。

我自身的情况大概是本科期间积累了 10 万行的代码量,有了这个基础硕士期间阅读一些代码呀,参与一些开源呀,就变得水到渠成。

@2 主动培养自己的动手能力

算法方面可以适当阅读算法导论、算法引论等书籍,多刷刷 leetcode, UVa 之类的培养出一定的解题思维。虽然说一些算法在工程中很难用到,但是解决问题的思路以及不断去优化业务代码的想法,这些意识是可以通过算法训练得到的。

一般国内的互联网公司还是比较看重项目经验这块的,也就是你曾经做过什么,能突出个性的地方也在于此了。这个方面可以从一些国外大学课程的大作业慢慢培养,如系统设计方面经典的有 MIT 6.824 Home Page: Spring 2014,CMU http://www.cs.cmu.edu/~dga/15-440/F12/,CMU 15-410, Operating System Design and Implementation 。如果跟着进度做完大作业的话,相信工程能力以及对系统设计的理解都会有很大的提高。

@3 核心竞争力

这个问题很大啦,那我也冒昧的说一下自己的理解。曾经很长一段时间内,我都不太清楚自己未来要干什么。不过幸运的是,身边总有一些优秀的同学在激励自己前行(寝室 7 个人有 6 个拿到网易游戏 offer 我会乱说 :-p ),而且在读研之初就得到 @靖难 学长的指点实在是人生之幸。那么问题来了,花了这么多时间去思考自己要干嘛就这么重要吗?我觉得非常重要。当有了一个努力的方向,就会不断的去靠近,围绕着这个点不断探索,最终形成别人没办法轻易超越的壁垒。

@4 关于面试

面试在于突出自己的闪光点,体现自己的不可替代性。当你一步步走过上述几个阶段的时候,便会发现其实 BAT 的 offer 并没有想象中那么难,难的是克服惰性不断的去超越自己。

找工作要从实习抓起。这并不是说实习一定会做一些多么核心的事情,而是一场面试几十分钟,面试官也无法清楚的判断你的实力,需要从你过往在哪实习过以及拿到过哪些 offer 来对你进行综合判断。

GitHub,StackOverflow 等是加分点,参与过开源项目大加分。嘴里说出的话可能有可以虚假夸大的成分,但是 GitHub 上面的代码提交记录以及代码质量不会骗人。我面试的过程中,就有几个面试官主动索要 GitHub 账号地址 kedebug · GitHub 并且当场登陆查看相关项目情况,这都是能够提升自身形象大大利好的事情。


有 985 的文凭,简历肯定过。然后笔试也是随便过不说了。然后是面试。里面主要是问一些基础问题。一般也是根据你的简历或者自我介绍来问的。所以你简历中获得自我介绍中涉及的东西一定要搞清楚。比如你写的了解通信协议,他肯定会问你这方面最重要最经典的问题,通信协议方面最重要的就是 tcp 了,他肯定会再三次握手,四次握手,滑动窗口等这些问题问你几个。你写了解网络编程,他肯定会问你,select, epoll, 的优缺点,实现机制。这些东西不能只是会用,还要了解它的实现机制。然后之后的面试可能会多问你一些项目相关的东西。这就需要你把你项目上的一些问题都想清楚了。应该还是很好过的。一起加油吧!

说实话为了满足这些大公司对基础知识的变态需求,最好的方法就是造轮子。写个操作系统写个编译器写个 tcp/ip 协议栈,肯定能秒杀这些公司基础方面的一些问题。不过这要花很多时间阿,虽然具体的技术上肯定有进步,但是其他方面意义不大。我觉得更好的方法是去参与一些开源项目。到时候就算去不了这些公司,肯定也会有更好的公司,能去了。

作者博客:kedebug


我觉得楼主有点把进 BAT 想的太难了!首先就今年 BAT 的校招过程给楼主说说首先,最早动手的是 A 大约八月末在线笔试,在线的笔试题主要分为选择题和综合题两部分选择题时间 40 分钟,基本上就是些智力题,加少许基础知识题,主要应该注意的地方就是时间!综合题包括编程题和问答题,一共应该是三道题编程题都是最基本的编程题,只要楼主平时多写代码,把基本的算法都练过一遍我觉得应该没什么问题。这就是阿里的笔试,说实话,阿里的笔试过的好多,也有可能是部门的关系,我接触到的,笔试的,只要不是抄袭的,基本上都过了,进入面试阿里的面试一共三面,这里提醒楼主一下,阿里在校招前会有内推环节,这个进入阿里的概率很大可以免去笔试,根据部门不同,面试为 2~3 轮,不过阿里的终面刷人还是很厉害的阿里的校招面试,基本上就是靠你基本功,加编程能力,基本的算法是一定要会的,上面说的剑指 offer 等是一定要看的,基本就这样。然后是 T,T 的笔试还是出的很有水平的,也是选择题加编程题,选择题是不定项选择基本以智力题和基本知识为主,主要是考察一个人的综合能力吧,不过 T 的笔试,刷人还是比较厉害的进入面试的人会少很多,面试的过程也基本就是基本知识+编程,实际上 BAT 的面试过程中让你写的代码,不会太难,毕竟是面试,是在纸上写,如果出的太难,耗费你的时间,也耗费面试官的时间。具体几轮面试,不太清楚,因为我非常悲惨的一轮游了。最后是 B, B 的笔试是三个里面最扯的了,全是大题,算法,简答题同样笔试刷人也很厉害,面试同样是基本知识加算法题,这里就不多说了一共三轮面试,我有同学非常悲惨的在终面被刷掉了

所以,通过上面楼主应该可以看出来需要学习什么了。首先,对于选择题,我觉得楼主大可不必在这里多费劲,顶多把离散数学好好看看,我觉得应该就没什么问题了。然后,BAT 都共同关注的,就是基本知识和编程能力了所以楼主的基本课程,操作系统、数据结构、计算机网络、数据库这都是需要准备的算法,很重要很重要,BAT 都很注重考算法和数据结构的剑指 offer 是本好书,我是碰到好多那上面的算法题,或者是原题,或者是相关的,所以楼主可以结合上面的答案,在算法方面多下功夫!

鉴于评论中薛同学的提醒这里忘记说一点了就是简历,简历很重要!简历上的内容很重要。我一朋友,接到国内某大型互联网公司的面试通知,就是因为简历上自己所做过的三个项目的方向,和该公司目前所要开发的方向符合,(据他说,他笔试没过)

这里对于自己的项目经历,多说点要知道,在国内像 BAT 这样的企业,是从来都不缺乏应聘者的,尤其是校招的时候,国内包括清北在内的各个高校的学生,如果是想在国内互联网发展的话,基本上都会将目光锁定在这几大公司上面,所以,对于 BAT 来说,资源是从来不缺的,所以,既然,这么多人挤破头想进去,人家自然要好好挑选,因此,这些公司对于项目经历也就看的比较重了,都是招人,我何不招些进来就可以直接上手干活的,或者有相关项目背景的。所以,楼主如果想加大进入 BAT 的概率的话,希望可以利用这一年的时间,做些相关项目,包括数据挖掘、机器学习之类的现在都比较火,基本是个互联网公司都会招这个方向的。楼主可以定向准备一下。

另外,写到简历上的项目,自己一定要搞明白,能给面试官讲明白,很多面试官,面试的时候,都喜欢直接从简历上的项目经历开始,然后根据项目中涉及到的技术进行技术问题拓展来考察你!以上!

今年(2015 年)校招 (互联网行业) 薪水情况如何?Offercome 那篇报告内容属实么? - 校园招聘 - 知乎 @

以工作地点在北京为例,对于清北学生,20w 是正常 offer,30w 算不错的,40w 的是小牛。sp offer 收割机可以拿到 40+ 户口。

当然了,不管今年具体是多少,既然已经从事了程序开发,能选的出路其实也不多。而实力越强的人工资越高,目前还是铁打的规则。与诸君共勉。


给得起 30W offer 的公司国内五家左右吧,而且一般还得是 sp,那这又是渣硕中的精英了,我估计一百个“渣硕”中了不起有五个“优秀学生”吧。。。


我是华中科技大学的应届硕士毕业生

我说一下我知道的情况

  • bat 的打包价我就不说了
  • 美团:打包价 13.5k15 A 级 1515 sp 据说是 17*15
  • 点评:有个同学拿了 23w,不知道打包价是什么水平
  • 滴滴:打包价 15k15 sp 17k15
  • 科大讯飞(武汉):9k*14
  • 华为(武汉):月薪一律 9k,年终奖不清楚,去深圳之类的地方工资会高些,我知道有人拿了 25w 的 package
  • 中国银联上海总部: 20w+ 的 package
  • 爱奇艺:(13k+500 补助)*14 (也好像是 15)

具备以下特点的应届毕业生确实基本可以拿到 20-25w 的 offer

  1. 985(包括北邮!)对口专业(计算机,软件)
  2. 有一定的基本功(操作系统,计算机网络,常用数据结构与算法,数据库,这四大方向每个认真读过一本 500 页的外国人写的教材,并编写过一些玩具代码)
  3. 至少参与完成一个拿得出手的项目
  4. 针对自己的方向,深入研读几本经典的书
  5. 能在白纸上手写一些基本的算法不出错(快排,二分,单链表逆序这种水平即可)
  6. 研究过一个开源项目的源码

refs and see also

为什么技术总是被轻视?国内做技术能不能有较大发展? - Tim Chen 的回答 - 知乎 @

两个差不多能力的人,一个做技术,一个带 10 人左右的团队。从最终结果来看,做技术的产生的影响力非常有限,完全不能和十人团队相比。你说这不公平,没什么不公平的,最后评定的时候这十人团队的贡献自然是算在团队领袖头上的。

当然也有技术做得非常牛 b 的人,比如 windows 组有个叫 landy 的,在某个 release 之后升 distinguished engineer 了,这个级别已经和副总裁一样高了。那么他做了什么事呢?他一个人把 windows kernel 的内存管理重写了一遍,极大增强了内存布局的灵活性。这事地球上没有第二个人能做。

所以你如果觉得自己比较厉害要体现价值,要么就得做别人做不了的事情,要么就带团队去,不然一个人做个螺丝钉那你所能提供的价值怎么都是有限的。


这在很多公司可能是这样的,但是在我软好多管理层都是原来技术就很牛逼的人。而且到后来这些都是相通的,技术和管理之间相互转换的事情也挺常见。


么说服老板你很重要。至于你实际上是不是发挥重要作用那另当别论,但是如果每个人都这样,你最后就会发现,你被跟你等级差不多的毫无自信的人拖累了。

别人是控制不了的,所以你为了跟他们不在一个等级上,只好无限的提高自己的等级。总有一个等级,上面所有的人,是不会因为生怕自己找不到工作,就到处做出牺牲的,譬如说加班啦,譬如说压低自己工资啦,任劳任怨做牛做马,etc。

当然了,如果你年纪大了,但是水平跟年轻人一样,那只能说活该了。你体力不如年轻人,年轻人没见过世面要求低,你就被拖累了,纯属活该。人都是想找一个钱多事少离家近的工作,这没问题。但是你如果不思进取,不热爱编程,不提高自己的技术,这就有问题了。因为你的工资取决于所有跟你同一个等级的人要求最低的那个。如果里面刚好有那么一些没见过世面的年轻人,你一辈子都别想有好的待遇。

互联网求职路上,你见过哪些写得很好、很用心的面经?最好能分享自己的面经、心路历程。 - 校园招聘 - 知乎 @
面试的本质不是一问一答,而是亮点展示

我记得前几年很火的魔术师刘谦曾经说过一句话:“很多人,包括职业魔术师,都误会魔术表演了。魔术的真正魅力倒不是偷梁换柱的那一刹那,而是整个魔术表演从开始气氛铺垫,到最后极具张力的释放整个起承转合的排演和演绎。简而言之,魔术师首先不是要会变,而是要会演。”我觉得刘谦说的这个思路套在面试上也是很实用的,很多人在参加面试的过程中,基本上是疲于应付面试官的问题,这是不对的。面试的真正本质是亮点展示,一问一答只是形式。你需要在回答面试官问题的过程中,尽可能展现出你本人的亮点。比如你面试上文所说的那个做 app 的创业公司运营总监的职位。老板可能会问你:“对来创业公司工作怎么看?”

一般人可能会回答:“创业公司个人自主权比较大,能力成长快,没有大公司那么多条条框框,同时我很看好贵公司的发展潜力,所以觉得这是一个不错的机会!”以上回答看似不错,但是没有展现出自己的亮点,光说对方怎么好了。理想的回答可能是这样的:

“我自己之前是有在创业公司工作的经历,觉得创业公司能力成长快,体制灵活,所以非常向往创业公司的工作机会。我也相信自己之前的创业公司经历能够帮我很快适应贵公司的工作节奏;同时因为我有大公司大平台的经历,所以资源相对丰富,做事也更系统化更有调理,我相信这样复合型的背景是比一般人更适合这份工作!”

这个套路不一定每次都管用,但以我的经验来看,每次我在面试过程中说了类似的话,对方往往都会露出疑似高潮的表情,基本都是当场拍板发 offer 了。

不过归根到底,面试技巧只是让你更好的展现自己,更好的挖掘你自己的价值以及让对方感受到。长期来讲的王道还是提升自己的能力和价值。说了这么多,如果大家觉得我说得有道理,可以整理一下相关的思路,运用到实践中。特别是最近有面试计划的朋友,这些方法真可以一试。如果身边有在找工作或者准备离职跳槽的朋友,可以把这篇文章推荐给他们。

2014找工作总结-机会往往留给有准备的人 - 江南烟雨 - 博客频道 - CSDN.NET

一个应届计算机毕业生的2012求职之路 - Hackbuteer1的专栏 - 博客频道 - CSDN.NET @

首先说说我拿到的offer情况:

  • 微软,3 面 ->终面,搞定
  • 百度,3 面 ->终面,口头 offer
  • 搜狗,2 面,悲剧
  • 腾讯,1 面,悲剧
  • 布丁移动,3 面,搞定
  • 涂鸦游戏,3 面,搞定
  • 友盟,3 面 ->CEO 面,搞定
  • 雅虎,4 面 ->终面,搞定
  • 微策略,2 面,悲剧
  • 人民搜索,3 面 ->终面,搞定
  • 人人,2 面 + 终面 +Special 面,搞定
  • Google,7 面,搞定
想进 Google,Facebook 等公司,校招前一段时间是用来实习还是刷算法题? - 百度 - 知乎 @

做实习吧。靠刷题想在中国通过 Google 的面试已经越来越不可能了。

这两年校园招聘有不少美国工程师来面试,我都事先 review 他们的题目,然后告诉他们你们这些题在中国学生面前没有区分度,连刷题的都能答上来,请换题。

本地的面试官就更不用说了,如果他们还面纯算法面能刷出来的题,我在后继的 committee review 里会直接忽视他的这轮面试成绩,给他一个负面反馈,如果去掉这轮之后不能证明 candidate 足够优秀,就要求 HR 加面一轮。

在刷题者面前,很多题是没有区分度甚至会有利于只刷题的人,这种就是面试官要避免的题。比如写个全排列吧,写不出来杀掉没问题,但是写出来又如何?还是不能证明这个人水平啊。比如写个 btree 吧,写出来又如何?证明 acm 过或者刷过题,写不出来呢?只能证明没有刷过题但是不证明能力不行啊。如果我来问,可能就是一个开放性工程问题,然后经过分析和各种算法比较,发现用 btree 做数据结构来搞是最优的,那就不错,不会让手写的。当然更可能的是这人列举了好几种可能的方法,比如 atree,ctree,dtree(瞎起名),告诉我他们分别的优点缺点,但是他没学过没见过 btree 真心想不出最优解来啊。这种也是高分通过的,因为他能熟练地把自己会的算法和数据结构应用到实际场景中并且能知道它们分别在这个场景里的优劣,只不过没攀 ACM 的技能树而已。这比刷题刷到高端算法轻松手写但是给个只要会搜索就能做的实际问题立刻傻眼的人要好多了。我能说我用标准 DFS 就能解的题杀过好多 ACM 金牌吗…


前面 @杨帆 或者 @陈萌萌 的答案,看起来相反,从招聪明人的角度来讲,都是一样的。杨是说不要出模板题,而是要考察根据实际情况分析问题的智力。陈则说刷题也可以训练思维。从工作的角度出发,无疑杨的观点更加正确。从目前北美面试的现状来看,陈的说法可行性和可操作性更强。如果从工作所需要用的东西出发,你是理解不了为什么面算法题的。大部分时候的确用不了自己去实现算法,用用库就行了。而算法题现在也多是要分析的,也就是杨所说的那种类型,因此可以考察人的智力。不过,其实我是不太赞成的,因为搞没搞过 acm 这方面差别真的很大。

像 Google 这样的公司根本不怎么关心你做过什么东西。你要是真做了什么牛逼的东西,会来投我们公司吗?大部分不过是模仿别人的东西又做了一个类似的,甚至还没原来的东西好。这方面的典型就是轮子哥了(如果我没搞错你们称呼的轮子哥是谁的话),有段时间总提他写的 Haskell 编译器,可也没见什么人用他的,也许是没发布吧。如果只是想进 Google,Facebook 这类公司,题主还是刷题吧,毕竟,总是出新题也不是什么容易的事情。我自己的经验是不怎么刷题也可以,我身边有刷题进的。不建议模仿我,我面试大部分靠运气。


**vczh**

当然是刷题。对于应届生,除了你简历上写你刷题的成就(譬如说 ACM 金牌什么的)以外,其他部分 google 是不看的。

话说居然有人干了这么多年还以面试杀手来炫耀,low 爆了


我是微软前员工,在之前被 Google 面试刷掉了。

体会是,微软你只要基础好就行了,实习经历会加分。Google 你必须要能做 acm,工作经历啥的基本无视。

微软面试主要面算法问题 ♥️ @

匿名用户 面试微软中国(Microsoft)的 软件研发工程师 - 北京

面试经历:

报的微软预科生计划,网测通过了,然后去面试。面试一共有三轮,每人至少两轮面试,两轮面过后,面试官根据表现情况看是否给第三次面试资格。面试比较好的一点就是基本都是面算法题,给你一道题,让你手写代码,题目基本在牛客网或者 leetcode 上能见到,然后逐步加条件,让你不断优化代码,看你解决问题的能力。面试官提出的问题

  问题1:
      用非递归方式写二叉树的后序遍历。
  回答:
      要用到栈,具体过程由于当时太紧张,没答上来。

微软的 HR 主动打电话邀请我去面试技术支持一职,虽然没有任何技术经验,但是 HR 在电话里信誓旦旦说会提供系统的培训从 0 培养。跃跃欲试投出了简历,第一轮全英文的电话面试,是华裔的美女姐姐打来的,口音很地道人也很温柔,会在你磕磕巴巴的时候耐心听你说话,说着说着就会放松,然后超常发挥过了第一轮。HR 部门效率很快,隔了没几天就通知了二面,在紫竹园区的微软上海中心。

二面一大早就开始了,第一轮是英语卷子答题,内容主要是关于商务方面的。第一轮过后无缝对接第二轮,和工程师一对一面对面解答智力问题,这一关考验你的思维能力和表述能力。面试完后等了一会,就宣布了一些人被淘汰了。第三轮是和 team leader 聊天,非常 challenge 你,会有词穷的感觉,说到后面都晕了。最后一轮是部门经理面试,等了很久一直等到 5 点半才面试,稍微聊了一下天,完全放松了,所以可能最后没通过。不过精力真的很宝贵,接到面试的同学不要大意地去试试吧。

小伙伴们, 2016 微软校园招聘开始啦!人生的舞台早已搭建好等你来绽放光芒挑战最顶尖的岗位,加入最一流的团队!微软的大门已经向你敞开 ~猛戳 : http://www.joinms.com 加入我们吧~

  • 网申报名:2015 年 9 月 1 日至 2015 年 9 月 25 日
  • 宣讲安排:以微软校招官网公布行程为准
  • 笔试:2015 年 9 月底
  • 面试:2015 年 10 月至 11 月

网申请登录微软校园招聘官网:

去年是在 hihocoder 上笔试,有 4 道题,400 分满分。每道题有 5~10 个测试用例,按 AC 的个数给分。测试用例有难度阶梯,比如前两个数据量为 10,后 3 个数据量为 1 个亿,那么如果没考虑数据规模的话就拿 40 分。

Dev 和 PM 做的题目是一样的。一般来说,第 1 题直接有思路,2、3 题努力想想有思路、4 题想不出来。(我是信通的,计算机网研 ACM 请忽略此句)Java 程序员请练习好输入输出

Runtime Error 一般就是程序崩了,不要以为在自己机器上不崩就 OK,你又不知道对方用的什么测试用例。所以一定要考虑好各种 corner case,不要有侥幸心理,设计测试用例的人会考虑好各种奇怪的情况的。

否则就会出现.. 第一题上来 10 分钟写好代码,提交了以后改 50 分钟都改不出来的情况。

应该是没有摄像头没有录音的。

同学,你进了微软了吗?

如何得到 Google 的工作机会? - Tony 的回答 - 知乎 @
Google有内部推荐计划吗?

有。Google 非常看重,并且鼓励 Referral。员工只要成功 Refer 一位最终被录取的 candidate,就能得到奖励 。换句话说,如果你有认识在 Google 工作的人,而他同时认为你确实是有这个能力的话,通常 Google 员工是很乐意帮忙 Refer 你的。

所以说,如果你真的很想来 Google 工作,可以多发展这方面的社交。比如 LinkedIn 上搜索校友,或是参加 Google 的校招活动认识 recruiter 和 / 或员工。

Google 内部推荐你的人需要填 Referral form,上面有很多类似他会怎么评价你,怎么证明你的领导才能等问题 。如果要找人 refer 的话,确保你让他充分了解你自己,这是对双方的负责。

工程师体现的途径就是你的 coding skill。coding skill 的体现在与你参加过的个人 /团体项目,github 上的协同项目,学校的研究项目,面试时的当场表现。其他所有方面几乎都不重要,唯一重要的就是你的 coding skill;能力强,Google 能包容一切,包括你的 GPA,毕业院校,专业,甚至你不是本科生都无所谓。

Google 有什么职位?

官网:Teams and Roles

分三类:

  • Build Cool Stuff: 硬件、软件工程师,产品经理,Google X 等。
  • Sell Cool Stuff: 销售,运营等。
  • Do Cool Stuff: 行政,法律,市场,招聘,公关,人事,财务等。

对于应届生:

  • 标准库各容器的基本操作的复杂度。标准库算法的复杂度,例如 std::sort() 的平均复杂度、最坏复杂度(答 O(N^2) 和 O(N log N) 都算对),最坏情况什么时候出现。
  • 标准库各容器(deque 除外)的数据结构(标准党勿喷,主流 STL 实现的数据结构都差不多),以及 vector 的容量增长方式。如果回答得特别好,还可以补充问为什么 vector::push_back() 的复杂度是分摊之后的 O(1),作为加分。
  • 出一道使用 lower_bound / upper_bound 能轻松解决的简单算法题;或者实现 set_intersection() 或 set_union() 或 merge();或者实现 word count,统计每个单词出现的次数(最多十几行代码),如果有时间,输出时再按出现次数排序。
传说中 Google 的 Benefit 真的有那么逆天吗?

比传说中还逆天。

  • 母亲有 18 星期的产假,父亲有 4 星期的产假。
  • 小孩出生后 Google 报销奶粉钱。
  • 员工的 health,dental,vision 保险同时包括员工的丈夫妻子和小孩。
  • 如果员工在 Google 工作期间去世了,员工的另一半和孩子会得到员工 5-10 年的年薪。
  • 每年圣诞节 Google 送给全体员工 Chromebook、手机或平板。2010 年更是每人发了 1000 美刀和全体员工 10% 的 raise。
  • 可以带狗上班。

Benefits真的太多了,再说就太拉仇恨了。

准备阶段

  • 找人内推。师兄或者师姐。别太在意面子。
  • 最好有一定科研经历或实习经历。其中对于去 Google 工作而言,最好的是先去 Google 实习。
  • 做一些算法题,熟悉一下套路。搞 OI 的就不用刷了,不难。
  • 多练英语。如果要拿海外岗位的话,英语不好可能是致命的。

面试阶段

  • 和所有技术面试一样。别穿正装。
  • 我只被面试过,没面试过人。从我个人的经验总结来说,最好不要有超过三分钟的空白,要保持交流,沟通思考进度,围观面试官反馈。不会就说不会,不要装逼。
  • 心态放好。此处不留爷,自有留爷处。
面试 C++ 程序员,什么样的问题是好问题? - 知乎 @

作者:陈硕

既然你是在校学生,而且编程语言和数据结构的基础还不错,我认为应该在《操作系统》和《计算机体系结构》这两门课上下功夫,然后才去读编程方面的 APUE、UNP 等书。

下面简单谈谈我对学习这两门课的看法和建议,都是站在服务端程序员的角度,从实用主义(pragmatic)的立场出发而言的。

学习操作系统的目的,不是让你去发明自己操作系统内核,打败 Linux;也不是成为内核开发人员;而是理解操作系统为用户态进程提供了怎样的运行环境,作为程序员应该如何才能充分利用好这个环境,哪些做法是有益的,哪些是做无用功,哪些则是帮倒忙。

学习计算机体系结构的目的,不是让你去设计自己的 CPU(新的 ISA 或微架构),打败 Intel 和 ARM;也不是参与到 CPU 设计团队,改进现有的微架构;而是明白现代的处理器的能力与特性(例如流水线、多发射、分支预测、乱序执行等等指令级并行手段,内存局部性与 cache,多处理器的内存模型、能见度、重排序等等),在编程的时候通过适当组织代码和数据来发挥 CPU 的效能,避免 pitfalls。Modern Microprocessors。

这两门课程该如何学?看哪些书?这里我告诉你一个通用的办法,去美国计算机系排名靠前的大学的课程主页,找到这两门课最近几年的课程大纲、讲义、参考书目、阅读材料、随堂练习、课后作业、编程实验、期末项目等,然后你就心里有数了。

学习任何一门课程都要善于抓住主要矛盾、分清主次、突出重点,关键是掌握知识框架,学会以后真正有用的知识和技能,而不要把精力平均分配在一些琐事上。

请允许我再次引用孟岩的观点:http://blog.csdn.net/myan/article/details/5877305

我(孟岩)主张,在具备基础之后,学习任何新东西,都要抓住主线,突出重点。对于关键理论的学习,要集中精力,速战速决。而旁枝末节和非本质性的知识内容,完全可以留给实践去零敲碎打。

原因是这样的,任何一个高级的知识内容,其中都只有一小部分是有思想创新、有重大影响的,而其它很多东西都是琐碎的、非本质的。因此,集中学习时必须把握住真正重要那部分,把其它东西留给实践。对于重点知识,只有集中学习其理论,才能确保体系性、连贯性、正确性,而对于那些旁枝末节,只有边干边学能够让你了解它们的真实价值是大是小,才能让你留下更生动的印象。如果你把精力用错了地方,比如用集中大块的时间来学习那些本来只需要查查手册就可以明白的小技巧,而对于真正重要的、思想性东西放在平时零敲碎打,那么肯定是事倍功半,甚至适得其反。

因此我对于市面上绝大部分开发类图书都不满——它们基本上都是面向知识体系本身的,而不是面向读者的。总是把相关的所有知识细节都放在一堆,然后一堆一堆攒起来变成一本书。反映在内容上,就是毫无重点地平铺直叙,不分轻重地陈述细节,往往在第三章以前就用无聊的细节谋杀了读者的热情。

比如说操作系统,应该把精力主要放在进程管理与调度、内存管理、并发编程与同步、高效的 IO 等等,而不要过于投入到初始化(从 BIOS 加载引导扇区、设置 GDT、进入保护模式)这种一次性任务上。

再比方说《计算机网络》,关键之一是理解如何在底层有丢包、重包、乱序的条件下设计出可靠的网络协议,这不算难。难一点的是这个可靠协议能达到“既能充分利用带宽,又能做到足够公平(并发连接大致平均分享带宽)”。而不是学会手算 CRC32,这更适合放到信息论或别的课程里去讲。

注意分清知识的层次。…“有的人学着学着成了语言专家,反而忘了自己原本是要解决问题来的。”(语出孟岩 快速掌握一个语言最常用的50%

对于并发编程来说,掌握 mutex、condition variable 的正确用法,避免误用(例如防止 busy-waiting 和 data race)、避免性能 pitfalls,是一般服务端程序员应该掌握的知识。而如何实现高效的 mutex 则是 libc 和 kernel 开发者应该关心的事,随着硬件的发展(CPU 与内存之间互联方式的改变、核数的增加),最优做法也随之改变。

注意识别过时的知识。

另外一点是 low level 优化的知识非常容易过时,编码时要避免过度拟合(overfitting)。

如果你要记住结论,一定要同时记住前提和适用条件。

最后一点小建议,服务端开发这几年已经普及 64-bit 多核硬件平台,因此在学习操作系统的时候,可以不必太关心单核上特有的做法(在单核时代,内核代码进入临界区的办法之一是关中断,但到了多核时代,这个做法就行不通了),也不必太花精力在 32-bit 平台上。特别是 32-bit x86 为了能支持大内存,不得已有很多 work around 的做法(困难在于 32-bit 地址空间不够将全部物理内存映射入内核),带来了额外的复杂性,这些做法当时有其积极意义,但现在去深入学似乎不太值得。


核心就三门课:

  • 数据结构:看《算法导论》。
  • 操作系统,看 Tanenbaum 的书,这是最最核心的课程。
  • 计算机体系结构,看 David Patterson 和 John Hennessy 合写的书。

另外,“操作系统”不是教你怎么安装配置 Linux,看原问和楼下某些答案太搞笑了。

refs and see also

北美求职记_QAMichaelPeng_新浪博客

简历写完就托朋友内推。建议大家能走内推的尽量内推。起码能拿到一个电话面试的机会,不至于直接被 HR 过滤掉. 这时已经 12 月中,正好走上美国圣诞季,一直没有消息。直到 1 月中才有两个电话面试。

面试准备,各种 OI, ACM, OJ 中的算法都不会用到,把《编程珠矶》和 @陈利人 的微博上的每道题都做出来,北美求职就不是问题.

不要说没时间,在创业公司上班且每天要做两顿饭洗碗刷锅洗家里所有衣服尿布且看一小时娃的奶爸每天早上还能抽出 3 小时左右看书写程序,大家肯定时间更充裕了。

为什么 Microsoft 不与“FLAG”并称呢? @

这个名字大概是 3,4 年前开始叫的吧,那时大概是指 “Facebook,LinkedIn,Amazon,Google”。首先这只是咱们中国人自己叫着玩的,而且我也是回国才知道有 FLAG 这个叫法,所以不算正事。主要是这四家在那个年代是最受北美牛校的毕业生欢迎的四家公司,而微软由于公司规模太大和发展速度放缓等原因稍微要落后一个梯队,所以没有算在里面。比如我认识 CMU 的校友里面,去微软的很少,基本上在上面 4 家还有 Vmware,Cisco。

再回到微软的问题:我之前很早的时候,拿了一个上海的微软(STC,在闵行的紫竹园区)的 offer,当时薪水 13.1w,股票 125 股;后来打听了一下 Seattle 的微软 Package,股票多点,也没翻 10 倍,所以基本上对 FLAG 来说就是杯水车薪。而且现在一般大牛的技术人员或者牛逼毕业生,都是只看股票不看薪水的;薪水就是个零花钱,买买车付付房租还行,根本没法发财。所以一般只看裸薪是多少(而没有股票意识)的人,都是没见过世面,也没体会过资本市场的造富速度的人。

作为已经很多年不使用 windows 平台的 IT 从业者,我说句个人观点,21 世纪初的 IT 公司,能笑到 21 世纪末的,应该是微软、Google、Amazon。FLAG 里其它几位够呛,给微软还真不在一个级数上,只是 M 放进来凑不成一个单词而已。


Targets


MISC @
(●—●) | 我的微软现场面试经历_笔试面经_牛客网 @

我问,据我了解,微软面试很喜欢问算法。是因为微软很重视这一块吗?他回答说,微软希望招一些聪明的人。。他们更希望跟一些智商比较高的人一起工作,这样合作比较顺利。。然后说当然,勤能补拙。。。 反正听起来不是很舒服。尤其在只有两个人的小屋里。

(●—●) | 牛客网内推Micro Strategy微策略SET面试经验_笔试面经_牛客网

(●—●) | 蘑菇街2017届校招内推“摸金”行动正式启动了…_招聘信息_牛客网

(●—●) | 搜索结果(微软内推)_牛客网

跨专业应届生如何才能拿到 google 等外企的 offer? - 知乎

如何评价阿里巴巴 2016 校园招聘名额缩减? - 知乎

Google 和 Facebook 还来大陆招人么?是什么时间?和硅谷面试类型一样么? - 知乎

写给准备参加秋招的学弟学妹们一定要来看哦 - 671coder 的专栏 - 博客频道 - CSDN.NET

面试体验:Google 篇 - Cat Chen - 博客园

我的算法学习之路 - Lucida

程序员英语学习指引 - Luc - 博客园

水木社区-校园招聘信息

如何拿到微软的 offer ? - 知乎 ♥️ @

拿天朝微软 offer 比拿美帝微软 offer 难太多,不过总的来说都很容易。其实刷题都没必要,我在面试前完全 0 刷题,反正不考那些奇怪的东西的,最多也就是简单的二叉树操作啊、链表数组这些你干过正事的话一定会明白的知识。

如果你面试 MSRA 而不是其他部门的话,题目就会稍微奇怪一点,他会给你一道本来很简单的题目,然后加上一些奇怪的限制,譬如说 xx 种类的指令操作次数最少啦,总线交换次数最少啦,可重入甚至多线程安全 etc,而且你还得不严格的证明一下为什么你这样就能达到最值,然后就变得无比复杂。

之前去 MSRA 面试的时候就有一道这样的题目,虽然我把思路都告诉面试官了,但是没写完,因为代码实在是太长了,在纸上写出来完全不可能在一个小时内完成。后来吃饭的时候面试官说,他第一次拿到这道题目的时候也是做了一个下午才搞定(逃

微软(Microsoft) - 应届生求职招聘论坛 - Powered by Discuz!

侯捷网站

2016各大IT公司待遇

【本周最热】网易笔试真题大汇总,告诉你历年来考了什么

【笔试经验】那些年在编程题中踩过的坑,考前必看! @
  • 即使只有一个 case,也弄成可以处理多个 case 的情况
  • 注意 clear 容器
  • 注意浏览器插件(比如 VimFX,笔试前最好关闭它)
  • 网速不要差,迅雷不要开
  • 把书签栏关了!不然手残点到就傻逼了

(●—●) | 2017校招_牛客网

(●—●) | 讨论区_百度阿里腾讯谷歌小米笔试面试分享_牛客网

【本周最热】近期最全校招笔试时间表

吴军新书《智能时代:大数据与智能革命重新定义未来》发布会

浮点数的二进制表示 - 阮一峰的网络日志

VICE 报道 | 黑客入侵你手机的一万种玩法 | VICE 中国

怎样能得到 Google 的面试机会?具备哪些素质才能获得 Offer? - 知乎

关于IT类秋招的一些常识和时间表是什么? - dorothy 的回答 - 知乎

唐志雄 | 领英

再论排序的本质 · Jan Fan

字符串匹配算法统一论 · Jan Fan

关于简历 @
  • 将你觉得最吸引人的地方写在最前面。

    除了你的个人特点是重要信息外,你的手机号,邮箱,毕业院校,专业以及毕业时间这些也都是非常重要的,一定要写在简历最上面。

  • 总之,不要写任何虚假或夸大的信息,即使你最终骗得过面试官,进了某公司,如果能力不够,在最初的试用期内,也很可能因为能力不足而被开掉。

  • 尽量避免主观表述,少一点语义模糊的形容词,除非是大公司大牛,已经有成果撑腰,否则慎用「熟悉… …」、「使用过… …」

  • 多一点表意清楚,语气肯定的数量词、名词、成果描述。一定要将自己的优势和期望明晰地表达出来,便于招聘方能对候选人有更准确的定位:

  • 介绍技术:最近几份工作经历中所参与过的产品、项目、角色

    • 在工作中做的项目的技术细节
    • 克服过的技术难点与细节
    • 感兴趣的技术
    • 在程序马拉松上参加的项目或者是业余的个人项目(+link)
    • 如果领导过技术团队,写下带的团队的规模与管理风格
  • 介绍自己:过往有特点经历、擅长的方向、对互联网的理解、职业发展规划

  • 简历有啥格式要求吗?如何包装简历?

    • 格式:简历一般建议朴素为主,一页 A4 纸、黑白。
    • 包装:一般建议“求同存异”,简历上尽可能写与求职职位相关的技术和项目背景,因为 HR 经常用关键词筛简历呢。另外,转专业的童鞋,可能没有太多的 CS 相关经验,怎么办呢,建议尽量还是找一些沾点边的项目小做一下,哪怕是沾一点点边,也可以在简历中去体现哦。
  • 其次还因为应届生的简历多是海投,HR 很难有时间一个个仔细看,所以简历尽量简洁

  • 文档的名字,绝对不要写只写简历,或者 CV 二字,令人牙痒痒。。。

    正确的标题名应该是简单的:某某大学-姓名-应征职位

  • 除非招聘启事里面提出对相貌有要求,否则最好不要放照片,除非你对自己的精气神有自信

  • 中英文简历要求格式完全相同,简历的中英文内容最好能够逐字的一一对应

  • 按照上图,我们来分步骤来详解每一步的英文该如何撰写

    • 标题,你首先要写上 CV,或者 Resume 二字,最好用小二号字体,加黑,当然上面的图没加,LZ 忘了
    • Personal Information 这个还可以写成是 Personal Profile,不过都无所谓,需要注意的是开头字母都要大写,加黑加粗
    • 我个人认为只要写三样就够了,Name,Gender,Contact,右边你可以放照片 Name 的写法,学生和在职人士不同,在职人士最好直接写英文名,比如 Sam Liu, Richard Ding, 英文很多人在职场一般中文名大家都不知道,就直呼英文名的但是学生,最好写本名,张三写 San Zhang,张三屌就写 Sandiao Zhang, 注意开头字母大写
    • Contact 要写上两个,手机 +email 地址
  • Career Objective:写上你的求职职位,Marketing Assistant 啦,Sales Rep 啊等等,按照招聘启事来,如果没有,那么不写也可以,这个我没在简历模板上加,大家自己加上去吧

  • Educaiton 教育背景,最顶端要写日期,不用写月份,年份就够了,XX 年 to XX 年足以,空开几行,用黑体字写上自己的大学名称,开头字母都要大写。时间和学校名都要加粗,后面的时间和工作经历,社团经历等也都要加粗

  • 个人建议每个人首先做一份 General 的简历

    什么叫 General 的简历呢,就是把自己在校经历全部都写好,长度大概在 2-3 页左右,然后投递具体的职位的时候,把相关的经历一条条复制过去,慢慢筛选,这样就可以成为一份 1 页左右的相配简历。通过这种做法,可以减少大量时间,根据自己的目标职位,如市场,销售,咨询,金融等等,看到不同的简历,有针对性的对自己的经历进行删改

    所以就是先编好一份原生态的简历,包含自己所有的经历,然后上网查看招聘启事和 JD,来做出不同的 3-4 份针对性简历。

  • Dec 2003 或者 Dec, 2012 标点加不加都可以

  • 实习、经历成绩

    • Responsible for XXXXXXXX 总体的职责
    • Assited the Store Manager on sale promotion, team management and inventory management
    • In charge of XXXXXXXXXXX
    • 成绩:300% promotion on revenue comparing to last year

    experience 中要注重体现你给团队或者项目带来了什么,如

    reduce 50% workload
    enhance XX
  • 不写与你投的职位无关的经验

    不要写跟你投的职位无关的经验,特别是富有中国特色的一些奖励等:

    如,CET4, CET6, 三好学生,国家一等奖学金

    证明是好学生的最简单粗暴的办法,就是你来自一个很牛 X 的学校,有很高的 GPA

  • Skill:一般的 skill 就分成语言能力(四六级)和 IT 能力两类

    写 skill 栏时,只需简洁罗列出你有哪些 skills:

    Skills: Java, C++, etc

    想要突出你哪方面的技能,证明你在哪些方面有经验,建议通过 experienc/project 去详细展开。

    技术

    必须有的:语言和平台,这里特别注意一下,不要随便写「精通」,每次有人看到写精通C++我都会问他一些Boost源码的东西,你要是没信心回答就不要说精通。这里我列一下大概的对照:

    • 了解:知道这个玩意是干嘛的,能大概写点排序什么的出来。
    • 熟悉:写过一两万行以上的代码,完整做过项目,看过至少一本最经典的技术书籍。
    • 精通:写过一二十万行以上的代码,完整的做过很多项目,看过一些语言或者标准库的源码,能理解语言的底层构架,有能力去给别人讲这门语言。

    另外在这个地方最好能看到你的 Github 地址或者博客地址。

  • 简历上的 experience/project 一定要熟悉

    HR 或面官,一般假设你放在简历上的项目和经验,应该是最突出、最能表现你自己的。而如果在实际面试中,当问到你这些项目和经验时,你答得磕磕绊绊,那么就很难不让人怀疑你是不是抱大腿或者瞎编的经验。所以,一旦是放到简历上的项目,一定要非常熟悉。哪怕面官追问你任何一个细节,你都必须做到对答如流。如果时间已经久远,一定要拿出来再重新熟悉一下或者再做一下。因为有可能面官就会问你,你当时这个项目为啥用 XX 技术,而不用 XX 技术呢?

    列出你的工作中有价值的细节(有哪些技术上的困难等)

  • 那么我们应该如何精简简历呢 ? 简单说来就是一个字:删!

  • self evaluation 或者 career highlights 都是工作 5 年以上的人写的,比如说成功的项目啦,多少年的资深经验啦,在哪个领域内的独到心得啦等等,一般应届生,没有写的必要

    不要写 self-assement,如:

    • I am self-driven and hard-working, balabala
    • keen interest in coding, never tired of algorithm research, a good learner, etc

    无论你写得多么天花乱坠,都没有人信。想要让人知道你有这些方面的品质,建议具体写到简历中的项目和经验中。比如,你想表现自己对 big data 的兴趣,你可以通过你的 experience 中有很多关于 big data 的内容去展示。或者,放到面试时,通过跟面官的沟通去表现你对计算机的热情等等。

    这些感人肺腑的个人评价我向来直接无视——我为什么要相信你呢?引用 Linus 的话, Talk is cheap, show me the code。如果要说明你是一个热爱编程的开发者,那么请出你的 Github 页面或优秀的个人作品;如果要说明你热爱学习,请给出你读过的书或写过的书评。总之,使用客观事实,而非主观描述。

  • 一定要把英文 CV 和中文 CV 放一个 Word 文档里面,绝对不要放两个不同的文档!!!!!!!!!

  • 稀释你的简历含金量,还会给人极不专业的感觉

  • 精通和 Proficient 是非常 Strong 的词汇,在简历上写精通类词汇也许会帮你得到面试机会,但你要面对难度更高的面试——招聘者会通过更高难度的问题来确认你真的是精通,而不是在嘴遁。

    但如果你真的精通某项技术,那就自信的写上精通,然后用项目经历和面试中的表现说服招聘者,这样往往有助于你拿到 Strong Offer。

  • Controlling complexity is the essence of computer programming.

    — Brian Kernighan

    控制复杂度使程序设计的根本(essense),所以绝大多数 IT 公司在招聘时都会把应对复杂度(Handle complexity)放在职位描述里面——你如果能把难题搞定,那么简单题也不在话下。如果你做过的项目足够复杂,那么就证明你能扛得住复杂度,是个好备胎备选(Candidate)。

  • 如果你的大学成绩或排名还不错,那么请把它放在教育背景中,例如:

    2009 ~ 2013    学士    大连理工大学    软件工程    GPA: 3.8/4.0,排名:3/153

    就不错。

    lucida 如此牛逼 ==

    但如果你的成绩一般(80% 一下)或排名一般(前 20% 开外),那么就不要提它们(我就是这么做的,-_–#)

    原来不是你 ==

  • 英文简历

    : 海外求职需要英文简历,而英文简历需要专业的英语——阅读你简历的人很有可能只懂英文,如果你的英文太糟糕那么他/她很可能会无视你的技术而直接把你筛掉。

    -   不要出现拼写错误
    -   不要使用全角字符
    -   使用正确的词汇
    -   使用简洁的句子
        -   “during the development period”应该是“during the
            development”:因为“development”本身已经包含“过程(period)”
            的意思。
        -   “implemented xxx successfully”应当是“implemented xxx”:既然
            使用了过去式,那么你已经把它实现(implement)了,那自然就是
            “成功”实现。如果想要强调“成功”,那么可以用“accomplished
            xxx”。
    -   避免中式英语
    -   使用一致的时态
        -   对于个人评价:使用现代式
        -   对于项目经历:使用过去式
    -   考虑提供缩写词的解释
    -   使用 Bullets 组织长段
  • 考虑提供开发社区账号

  • 不要写课程列表

  • 要把简历内容【复制到邮件中】,再搞个附件

    “没有正文只有附件,令人无从下手” 那是很糟糕的体验!

  • 不要使用 gmail 和 QQ 邮箱
    • gmail 是因为在国内速度蛮,且容易瘫痪,很多时候 HR 会回邮件,但是邮件发不出去
    • QQ 邮箱嘛,一打开就是火星文或者个人签名,始终跟 business 和 professional 不沾边。。。(我用自定义邮箱名 ==)

      用 QQ 邮箱发送求职简历,如果用户连起码的在设置中显示自己的姓名都没做更改的话,我们很难意识到这是一封真正的求职邮件。我们看到的就是一连串数字 @qq.com,没有人名。即便后面注上“求职应聘”的字样,第一时间我们也不会认为这是一封严肃的求职邮件,通常我们会选择忽略。

  • 一个高的 GPA,可以帮助 HR 简单粗暴地定位你是个好学生。因此,如果不写 GPA 的话,HR 容易默认你 GPA 很低,不然为啥你不敢写呢。基本上>=3.0 的 GPA 就可以写在简历中(这个……其实,看你应聘的岗了,你要看自己在大多数求职者中大概算不算高。不高的话别写,不然像个傻逼 ==)

  • 应届生如何使用 linkedin 来找工作

    TODO

    说老实话这种办法成功率不高,但是如果认真执着的跟 HR 沟通,加上你英文很好的话,也还是会有机会的。我身边就有人在 Linkedin 上面找过工作。

  • 部分面试官会问你对上一家公司或上一任老大、同事等的印象,请不要吐槽或给负面评价,尽量说优点。不要问为什么。

    如果去大公司面试,比较合适的离职原因是公司的发展赶不上自身的发展速度,上升空间有限。如果去创业公司,则可以说对公司产品有兴趣,或喜欢小团队的氛围。

    一般有个 1 年以上的工作经验后,多半会被问到职业规划。通常说来,在选择的技术方向上继续深入 2-3 年是不错的选择,也是不错的回答。当然如果是 5 年以上工作经验了,大概面临纯技术方向或技术管理方向的选择吧,我也不清楚哒~

  • 从企业的角度看,招人无非从这几个点来衡量:

    • 职业能力;——企业现在可以获得的价值,一般是对等交易,程序员则表现为技术实力
    • 学习能力;——企业未来可以获得的价值,也就是企业投资的增值
    • 职业态度;——工作中是否积极主动,是否维护企业的利益等
    • 沟通能力和性格。——团队协作
    • 是否可以长期留在公司。——降低企业招人的损耗

    职场中一个人的核心竞争力也是如此,所以不管是写简历还是面试,都是围绕以上几个点展开的。

  • 版面整洁、干净,也是加分项。

  • 最后,看了 10,000 份简历的心得:

    • HR/技术负责人更喜欢看到一份显示「职业上升趋势」的简历;
    • 牛人讲结果,普通人讲过程。
  • 只需要记住一个原则:跟简历关键词有关的,多写,认真写。跟简历关键词无关的,少写或者不写。

  • vczh:你要明白,简历上写的,就是你要面试官问的。你把那些书都看透了,可以写。如果你只是走马观花,最后就会被认为是诚信问题。

    面试的诀窍在于,把面试官引导到你熟悉的领域上来,让面试围绕着你做过的东西展开。

  • 不要使用不必要的条目名称 @

    条目名称(Column name)这个词很拗口,我举一个例子:“姓名:张大锤”和“电话:135-9112-7890”里的“姓名”和“电话”就是条目名称。

    绝大多数的条目名称都是不必要的——“张大锤”一看就是一个名字, “135-9112-7890”一看就是一个手机号码。这种条目信息会让简历变得拖沓啰嗦,请务必删除它们。

    此外,请牢记“个人简历”是简历上最大的废话——这当然是一封简历,不用你提醒。可笑的是很多所谓的“500强简历模板”还把“个人简历”作为简历抬头(Header)。

  • 例如:把 8618601007070 改为 (+86) 186-0100-7070

一些简历示例:

refs and see also

计算机应届生简历中,「贪吃蛇,俄罗斯方块」等小项目有必要写到简历中吗? - 知乎 @

其实真没什么。给面试官充分展示你实际水平就行了,本科生的东西low点没什么,根本不用在意。

其实大部分本科生搞得看起来高大上的所谓 XX 杯、XXX 大赛,还有神秘兮兮的什么军工项目、什么“尖端科技”,基本上都是包装起来的泡沫,实现难度十有八九还真不如贪吃蛇、俄罗斯方块(前提是自己写的没有抄代码)等等。

之前面试过一个研究生,X 航做硬件的,看简历特别高大上,各种国家级牛逼项目,什么尖端科技研究,竟然还给航天器做过东西。在某高大上研究所实习的时候还设计过什么火箭分离器,给我看他的打样的时候,还神秘兮兮特别强调这是保密的,不能拍照。

我当时作为一个小本怀着无比崇敬的心情,仔细看了会那个东西。卧槽!不就是个 51 控制个继电器么?还没加保险管!火箭上用这个?

卧槽!这哥们电路板正面铺 VCC,背面铺地,大电流竟然还没有隔离!你是设计电容器么???研究生都只能做成这样了?这种竟然还敢投打样?军工部门如果真的是这水平,还需要。。。保密么?估计火箭应该发射不出去了。说出去都没人信。

这种学生还不止一个,我一天就见了三个这样的。

我相信正规大公司的面试官肯定比我见多识广了,一定会了解你的真实水准的。

h1b 申请日期是多久?

每年 4 月 15 日结束

如果只有国内的实习经历,在美国找 full-time 的 CS 工作是不是比较困难?

是比较难,但是并不是没有可能,也不是没有机会,多投简历,总会有机会的,成功例子还是很多的

在哪里可以看程序员的工资。

paysa 比较准确, glassdoor 数据比较多

上传英文简历:添加(Max-Length:2MB, must be pdf type)
上传中文简历:添加(最大2MB, 只能是 pdf 类型)

干货,个人Skype面试技巧及准备细节分享-skype中国-微头条(wtoutiao.com)

CC150 上面重要的题目总结 - Step-BY-Step - 博客园

Google/Facebook Offer经验:肉身翻墙去美帝 | 天码营 - 新一代技术学习服务平台

: 从加州面试回来 1 周多,时差刚刚调整的差不多,觉得是时候把过去 8 个多月的肉身翻墙经历好好总结一下了。

我总共投了三家硅谷公司:Linkedin, Google, Facebook,三家都收到了 offer。

整个面试下来,总体感觉国内码农挺有竞争力(否则美帝也不会千辛万苦每年从中国
印度贩运那么多码农过去)。从国内直接去美帝不是难于登天的事情,只要下定决心,
认真准备,每个码农都能有春天。(以下的介绍都是基于以上三家的面试经历)

专注:个人感觉这 8 个月的强度可能是有生以来学习最专注的一段时期,完全赶超高
三和大一的学习劲头。在 8 个月内,基本上将大学 CS 专业课程(算法数据结构,
C++, 操作系统,网络,等)重新学习并领悟,并在某些当今热门技术方向,迅速恶补
并赶上了技术前沿。


Google 三驾马车的 paper(MapReduce, BigTable, GFS)

-   对应 Hadoop,HDFS, HBase Cassandra, Dynamo paper (关注点:consistent hash, decentralized system design(gossip))
-   Memcached (distributed cache)
-   Redis (all-in-memory solution)
-   ZooKeeper (load balancer/configuration center/name service/distributed lock etc..)
-   Thrift(cross language interface and RPC)
-   Storm(realtime streaming processing, 应对类似统计过去 1 分钟的 count 一类的题目)

一些常见面试题目,mitbbs 上已经有高人进行了全面总结,我会转载贴在下面,我基本上是 follow 之。这里有一点补充:

tinyurl 一定要非常充分的准备。我在 F,L,G 三家面试时都被问到了这题。这题看
似简单,其实可以将上面讨论的大部分东西多装进来,可以讨论的地方很多。

这道题我觉得很有价值的文章:

-   http://n00tc0d3r.blogspot.jp/2013/09/big-data-tinyurl.html
-   http://www.hiredintech.com/app#system-design (讲 design 的框架,我引用了很多他的方法论,其中以 tinyurl 做例子,讲的很透彻)

其实针对一家的 design 准备过程,就是了解这家 technology stack 的过程。当你
熟悉之后,在 design 环节灵活使用这些系统设计的 idea 来回答面试官的提问,会
和面试官产生更多的认同感(可能他每天也在使用这些系统)。这比现场凭空想象,
两人各执一词互相挑战的氛围,要轻松有爱很多吧:)

另外一块需要充分准备的就是个人的 background project,这也是 design 环节可能
会涉及的。对于之前工作上做过的项目,一定要力求没有死角,理解全面深刻。更进
一步,能够从更高的角度去看这个项目。比如我在 Google 面试时,有一轮基本上大
部分时间在讨论我做过的一个项目。因为之前针对这个项目做了很多深入思考,比如
如何将这个项目的方案推广到更泛化的语义搜索。正好在那次面试中,面试官在讨论
清楚已有项目之后,就问到了这个问题,因为之前已经总结了一些思路,所以侃侃而
谈。后来才了解,面试官在 G 家也是做类似工作,我之前思考总结的那些 idea 也给
了他不少启发,可以说是英雄惜英雄,氛围很融洽:)。个人感觉,这几家公司都会
匹配和你简历背景非常吻合(大部分情况下)的面试官来和你聊,因此如果你对你简
历的上的东西不熟悉,理解不全面,不深刻,面试官是很容易发现的,但如果你能带
给他惊喜,那么恭喜你,你很有机会能拿到一个 strong hire.


glassdoor(www.glassdoor.com)
  ~ glassdoor 更多的是了解一些面试流程,关于面试题目,很多人貌似不太愿意在
    里面详述,不过因为电面没有 NDA,所以里面电面题目相对多一些。我准备 L 家时
    基本上把 L 家的面经看完了,重题率还是挺高。

geeksforgeeks/stackoverflow
  ~ 其实不用专门去这两个网站搜索,当你在 google 里搜索某个题目时,如果出现了这两
    个网站的结果,通常是非常靠谱的。geeksforgeeks 会针对问题给出从 brute force 到最
    优解的优化过程,并且给出详细的代码和注释。stackoverflow 里针对某些算法优化的讨
    论结果是比较可信的(特别是支持率最高的回帖),容易找到最优解。

与其说去搞明白某一个高深机器学习框架(因为即使你明白,面试官不一定是那个领
域专家,你也不一定能表达明白),不如先认真学习概率和机器学习基础(在你和面
试官间寻找共同语言)。比如分类和回归问题,大家都知道 linear regression 可以
做回归,logistic regression 可以做分类,why?如果用 linear regression 做分
类可以吗?如果要解释清楚,不是能单从两个的值域有区别去说,应该从两个模型的
优化目标,即 error function 去看,这样你就会发现,如果用 linear regression
做分类,对于那些非常明显的分类正确的点,linear regression 居然还试图以二次
方去惩罚,这显然不是分类的初衷。将两个模型的 error function 画成图,一个是
U 型,一个是指数递减,一切就一目了然了。我在 L 家面试中,发现如果考察机器学
习,都是考察基本概念的理解,比如对 SVM 的 kernel 的看法,对于
regularization 的看法,对 lasso 和 ridge penalty 的看法,PCA 的讨论,
generative 和 discrimative model 的讨论,等等。我个人理解,机器学习有点像学
哲学,对于书面上的那些公式,可能有九重天的理解,如果仅仅照搬教材写出公式,
只是第一层。你能悟到第几层,能否从更高的角度去融会贯通,是面试官(特别是这
个领域很牛的专家)特别想看到的。这就需要先扎实的学习基础,然后多思考总结
(一般来说,面试现场灵光一现的情况比较少,还是需要提前积累总结)。

如果你打算以翻墙去美帝为第一目标,机会最大的两条路是:(1)在国内进入
Google, Microsoft 等外企,在中国工作一定年限后(法律上是 1 年,部分公司会延
长),通过 **L1 visa transfer 去总部工作**。(2)直接投美国公司,通过面试拿到
offer,并能在美国移民局下一年的 H1B(工作签证)抽签中拿到 H1B visa,然后去
美国工作。 这两条路各有利弊,可能需要根据个人情况进行选择:

L1 visa: 首先需要在国内待 1 年以上(Microsoft STCA 有一个不成文的规定,需
要工作满 3 年,才能 transfer),然后你需要利用出差机会,或者平时业务交流时,
跟美国team 建立联系,并且他们有意愿接纳你,这时通过公司内部 transfer 流程,
申请 L1 到美国工作。L1 不用抽签。L1 的另一个好处是,老婆跟你一起去美国后,
可以直接找工作(L2 visa)。但如果你失去 L1,那么她也失去 L2,必须停止工作并
且离境。L1 不好的一点是,你和为你办 L1 的公司死死的绑定在一起,一旦你想离开
公司,或者公司裁员,那么全家必须离开美国。并且,据说 L1 不能续签(有效期好
像是 4 年还是 5 年),一旦到期,如果你不能申请到绿卡,全家也必须离开美国。

H1B visa: 最大问题是,随着这两年美国经济复苏,企业开始大量招工,每年申请
H1B工作签证的人越来越多(特别是中国人和印度人),因此如果申请人数超过美国移
民局为各个国家设定的配额,那么大家必须采用随机抽签的方式决定。每年 4 月 1
日进行今年的抽签,如果抽中,在美国下个财年开始(10 月)时,你就可以去美国工
作了。H1B visa 的配偶和子女可以持 H4 一同前往美国,但不能工作。H1B 有效期是
5 年,到期之后可以续签。H1B 允许换工作,一般是你先找到下家,然后下家公司帮
你做 H1B transfer,办好以后就可以换公司了。H1B 2014 年中国人的抽签通过率据
说是 40% 左右。

H1B 最大的问题是从申请,抽签,到正式开始工作基本上需要大半年的周期,还不能
保证一定能抽中。因此,大部分美国公司并不愿意耗费如此大精力物力去招需要 H1B
的海外员工,如果他在本地就能招到合适的人。只有为数不多的大公司,比如 FLG,
财大气粗,码农需求量旺盛,才愿意这么干。如果你常去 mitbss,你会发现大家经常
在讨论“FLG”或者“FLAG',这其实是 Facebook, Linkedin, Google, Amazon 的缩写。
这些公司都是湾区已经上市的互联网大公司,福利待遇好,工作稳定,工程师需求大,
每年都愿意招不少的 H1B 员工。因此,如果你打算走 H1B 的路,那么毫无疑问你应
该首先锁定类似 FLG 的大公司,等拿到 H1B 进入美帝,后面如果想去更有活力的中
小公司,会更容易。据说部分 pre IPO 的湾区 IT 公司也会少量招 H1B 员工,但一
般都是从 1 月份以后才会逐渐有 hire count。而对于 FLG 等大公司,基本上你可以
在前一年的下半年 9 月 -12 月,就可以开始投简历和进行面试了。选择大公司的另
外一个好处是,他们通常有所谓的backup plan。如果你接受 offer 但没能抽中 H1B,
那么大公司可能会将你安排到海外办公室工作一年,然后可以通过 L1 visa 回总部工
作。江湖上流传的有:Google 可以安排到澳大利亚,瑞士苏黎世,Facebook 可以安
排到英国。对于一些稍微小一点的公司,如果他没有海外的大规模办公室,最多只能
给你保留 offer 一年(来年再帮你抽一次)或者 offer 作废。

H1B 分普通和 advanced, 区别是,后者会有两次抽签机会。要求是后者必须是
master及其以上学历。遗憾的是,美国并不认可中国的 master 学历,所以默认国内
master 只能抽一次。然而,部分公司及其委托的律师事务所可能会拿着你的学历和工
作经历去美国学术机构去做 master degree 认证,这样就能抽两次。 综上可以看出,
如果你是国内码农(人在国内),没有 H1B visa,那么毫无疑问,你是所有在美帝找
工作的人里面(包括所有美帝 citizen,在美帝读书之后找工作的人士),难度系数
最高的之一。不仅能够面试的公司受限,面试的时间也受限,拿到 offer 之后是否能
去美帝还得看运气,拿到 H1B 后能够开始工作的时间也受限。 如果选择 H1B,就需
要按照它的时间表来安排自己的计划。一般来说,10 月到来年 1 月是比较理想的面
试时间,面试通常会持续1-2 个月(看各公司效率),之后 offer 还需要大概 1 个
月,如果有 offer 还需要准备 H1B visa 的相关材料,所有这一切必须在 4 月之前
搞定,所以不宜将面试时间安排的离 4 月太近。我的经历是,宜早不宜迟,这样 hr
和你都比较从容,部分公司在 offer 阶段会有team match 环节(比如 Google),如
果时间充裕,还有比较大的比较选择空间,否则只能先找个坑填进去了。面试时间定
下来,就可以根据自己情况,安排准备的时间,如果计划 3 个月的准备,那么就是从
7 月开始准备(这是比较通常的情况)。

refs and see also

-   [《打造Facebook》试读:第三节 Facebook工程师面试聊什么](https://book.douban.com/reading/23757677/)

春招即将火拼,最全IT招聘官网大汇集!

美国面试之旅——面试经验分享(zz)

招聘 - 内容精选 - 知乎

就要去外企面试了,怎样快速提高自己的口语? - 知乎

怎样出色完成 1 分钟左右的英语自我介绍? - 知乎

最厉害的面试技巧都有哪些? - 知乎

华为今年开始把本科和硕士生工资调成一样了。把往年本科生比研究生低 1000 调成了北上广深本研 12000,其他的 10000……总感觉这是某种导向,或者对国内研究生水平普通偏低的实际反抗,当然也可以理解为,是对第一学历的更尊重吧……

去过投行的就知道,投行看的永远只是你的本科学校,说白了,人家压根就不 Care 你当前取得多少 stars,人家就看重你会不会学习….

微信——事实上的局域网 | 一天世界

The Three Jugs Problem. Introduction and a story

Barycentric coordinates, three jugs application