程序员如何作好应聘?简历、面试和Offer

其实每一个工程师都讨厌Bug、代码不整洁、性能太差、用户界面不人性化等,这些都是一些技术细节,是能够慢慢体会和提升,总能找到答案去改进的。但在工做中,我应该学习和使用什么样的技术?为何要自动化测试?如何搭建一个产品,看起来比较靠谱?我怎么去选择一份工做?若是我在一家大公司工做,如何跳槽到创业公司?我如何谈判取得更多的薪金或奖金?什么是股票激励?这些问题却是更棘手,本文将给出一些介绍和辅助工具。html

                                                       

《程序员面试白皮书》是一本我但愿本身在大学就能看到的一本书。在我读大学的时候,跟不少同窗同样也走过很多弯路:艰难地啃着计算机必修课,被里面的指针和对象搞的晕头转向,对i++和++i区别死活不理解,为操做系统的调度策略而抓狂,很难对专业书产生兴趣,只是想着去应付考试和学分。当咱们毕业后,虽然有了计算机学位和实际工做经历,但其实仍是不知道最想获得什么。我当时心中有个情节,就是但愿能去最好的公司,好比Google,由于据说那里面都是最聪明的人,有着最好的待遇和福利,作着最有影响力的事情。当我鼓起勇气去尝试的时候,我失败了,而且要进入6个月的冷藏期(失去在一段时期内继续面试的机会)。而我发现当时的面试表现是那么的稚嫩和糟糕,我开始懊恼,开始检讨,开始从新准备,这样才有了我下一个面试机会和其余的Offer。固然若是一切能够从新再来,我能够更有自信更好地发挥个人能力,也许当时的理想公司就会给我Offer。前端

整个招聘流程主要以下:申请某个公司你感兴趣的职位,投出你的简历。HR从简历库中筛选符合要求的简历,安排面试。面试主要分为电话面试和现场面试,若是面试表现优秀,HR会同你讨论待遇、福利、起始时间等具体信息。针对上述流程,让咱们一一分析其中的关键环节。程序员

简历面试

简历是求职的第一关,尽管简历不能决定最后的录取结果,可是一份结构清晰、内容充实且具备针对性的简历,能够给你带来宝贵的面试机会。本节将从格式、内容安排和描述技巧等方面介绍如何生成一份对HR有吸引力的简历。能够根据不一样的职位描述适当更改简历的某些内容,但不建议准备太多份区别过大的简历,以避免本身投递的时候产生错误。若是你真的须要这么多简历以应对不一样职位,则应当考虑下本身的优点在哪些方面,适当减小求职目标。注意,下文的描述注重在北美求职的简历结构,其中大部分要点具备普适性,可是若是在国内求职,有些地方可能须要根据实际要求进行更改。算法

1.1.1 格式编程

除非你想面试用户体验或者设计相关的职位,不然简历的格式尽可能以简介清晰为主。标题及名字等重要信息能够适当加粗或者增大字体,其余文字描述尽可能统一字号。字体选定一种便可,不建议用不一样的字体去突出不一样的内容:不一样的字体会显得版面杂乱,而且对排版形成困难。英文简历Calibri是比较适宜的字体,中文能够用宋体。简历能够用Word、Latex、Pages或者InDesign制做,可是最后务必导出成PDF,确保在不一样的平台上,对方看到的格式一致。安全

1.1.2 内容安排服务器

简历是一个提供信息、展现本身的平台。对于刚毕业、没有什么工做经验的人来讲,简历通常控制在一页为宜,若是是PhD,须要适当列举一些相关的文章发表信息,那么简历能够扩展至两页。这里就给一个示例,它在一页纸的长度中精炼地描述了求职者的教育背景、实习经历、技能和专业背景,如图1-1所示。网络

                    

图1-1 一页纸的简历数据结构

简历的第一要务是让对方可以认识并联系上你,因此名字、邮件、电话、地址等基本信息缺一不可。特别的,对于在美国本地求职的人而言,邮编很重要,由于网上的申请系统每每会根据邮编将申请者按地域划分。对于不少公司而言,他们会优先考虑本地的申请者。因此当你申请的公司在当地有总部/分部时,务必写上本地的邮编。

这里有个小技巧,因为绝大部分科技公司都在加州,特别是北加州硅谷附近,因此若是有朋友在加州的话不妨写朋友的地址。这样作的确能够提升被选中面试的概率,甚至有些小公司可能会跳过一轮电话面试直接邀请你去公司面试。如今绝大部分面试过程都是经过电话或邮件肯定,除了最后给你发Offer,招聘的中间部分都不会给你提供地址寄送任何文件。若是公司决定给你Offer,你也彻底有机会和HR确认/更新你的实际地址。这样作的缺点是,可能去公司面试的时候你须要本身安排机票住宿,若是真到了这一步,权且就当花钱买个机会了。

基本信息以外,对于刚毕业的学生而言最重要的信息包括学校、专业和学位。学习成绩对于大部分公司而言只是加分项,若是GPA低于3.3,能够考虑不包括成绩。固然,若是GPA是你的亮点之一,那也彻底能够包含此信息。在这方面,Oracle是出了名的名校控,若是你高GPA、名校出身,基本上半只脚已经踏入了Oracle。相对而言,其余公司并无这样的要求。此外,对学生而言能够列举一些在校学过的相关课程。只须要列举课程名便可,内容数量以5项左右为宜,课程名尽可能选择你们熟知的,好比算法、数据结构、操做系统等,若是是研究生课程,能够加上“高级(advanced)”关键字。

简历中另外一个十分关键的内容是以前作过的项目描述,包括工做经历、实习经历或者课程项目经历,这些部分的目的在于展现你具备相关经验,具备较强的技术实力,可以加入团队一块儿完成一个复杂的项目。这里,咱们主要介绍如何选择合适的项目,在描述技巧部分,会进一步介绍如何描述使得你的项目更有趣。就项目内容而言,你须要优先选择和职位描述相关的项目,相关性包括:须要类似的知识,须要使用相同的软件或开发环境,须要相似的编程语言或编程模式,须要实现相似的功能等等。这些项目最能体现你的价值,使得你从一堆申请者中脱颖而出。若是没有类似的经历,那么你能够列举一些比较复杂的项目,突出你的综合能力。这些能够包括:毕业设计、课程的学期做业、网上参与合做的开源项目等。列举的目的主要是突出你的技术水准优秀,具备与他人合做的能力。就项目种类而言,你须要优先选择业界的工做实习经历,只要它们和你所求职位的描述大致在同一个行业便可。毕竟,有实际的工做经验能够传达下列信息:你对业界有必定的了解,熟悉业界的开发模式和开发周期,可以适应公司的工做环境。

简历的最后部分能够用来列举你的技能,包括熟悉的编程语言、开发环境、技术强项等。这部分的目的在于让HR可以从简历库中匹配到你的信息。一般,每一个职位都有一些技术要求,HR会经过查询关键字,从简历库中选择匹配程度高的简历。这部分能够大大增长简历被匹配上的可能性。列举的原则是,并不须要特别熟悉,只要实际用过就能够在此列举。注意,若是你有幸被安排了面试,必定要回到这个部分,确保你所列举的部分至少都能回答一些基本的问题,千万不要给人作假的感受。每每,HR并不必定了解你项目部分的描述是否与职位要求一致,所以,你这部分所列举的技能须要尽可能用业界标准的语言,列举名词便可。

1.1.3 描述技巧

描述的技巧主要体如今项目描述方面。项目描述主要突出你作了什么,实现了什么样的目的。项目名称通常须要让读者大体了解你作了什么,而后以以下模版,“经过……开发方式(或者技术),作了……,最终实现了……的结果”,描述项目的具体内容。就英文简历而言,通常以过去时为主,以动词开头,描述你作过了什么,实现了什么目的。举例以下:

Software Engineering Internship,XX Company,6/1/2014 – 9/1/2014

Interned with the server team.

Implemented a distributed access control algorithm in C++, which improved login time by around 50%.

英文简历常见的另外一个问题是如何翻译专有名词,好比在国内大学得到的种种荣誉等。此时,必定要参考网络资料,确保读者的理解和你想要表达的意思一致。甚至能够用一句话简单描述这是怎样的荣誉,或者用百分比表示只有top的学生才能得到该项荣誉。举例以下:

Excellent Student Award

Granted to recognize overall outstanding performance.

另外一个很好学习途径,就是去LinkedIn上看一些优秀人士的我的主页,特别是你想去的公司的工程师的背景。通常都会很清晰地构建他的目标和过去经历,不须要照搬内容,但能够给你启发,当你去投这些公司时,你就知道什么样的简历更容易被他们欣赏。

面试

根据面试的不一样对象,在招聘过程当中你可能须要面对 HR、技术面试官和老板。针对不一样的角色,你应该准备不一样的面试方式。具体分析如图1-2所示。

图1-2 面试须知

1.2.1 HR

HR是你与公司的链接点。一般,HR负责安排协调面试,主要经过邮件联系。HR也有可能会直接打电话联系你,目的是了解你的基本状况,包括身份、毕业/离职时间等。HR一般会介绍职位要求和公司的基本状况,而且在面试当天接待你,了解你是否有其余面试安排或者其余公司的Offer。此外,HR还负责面试你的沟通能力,向老板反馈性格方面与团队的契合度以及对公司感兴趣的程度。所以,每次与HR的沟通也须要热情、职业。适合向HR了解的信息包括:公司的总体氛围、面试的流程安排、最近公司人员流动状况等。

1.2.2 技术面试官

技术面试官主要负责衡量你的技术水平,以及判断你是否符合职位要求。整体而言,对科技公司,技术面试官的意见最为重要。技术面试包括电话面试和现场面试,前者主要偏向概念性的问答,也包括经过协做网站直接写代码等。现场面试一般包括白板写代码,解决一个算法问题或者设计问题等。本书的主要目的就是帮助你经过这轮面试。

一些面试的小技巧以下:必定要先沟通,明确本身了解题意,不要过度考虑或者欠考虑。首先能够给出一个比较容易想到、但并非最优的解决方案,再逐步优化。在思考的时候也要把思路讲出来,哪怕不是很成熟的方案。一旦遇到困难,能够先本身设法解决,若是五分钟没有思路,能够向面试官求助。适当的提示并不会影响你面试的最终结果。当开始写程序的时候,尽可能注意语法格式、变量命名等,避免写伪代码,越接近真实代码越好。写完之后本身检查下有没有明显的错误,能够列举几个简单的测试数据,与面试官一块儿检验一下整个运行过程。

面试是一个合做解决问题的过程,沟通必定是面试的关键:须要经过沟通展现你的逻辑性、理解能力和表达能力。在面试的最后,一般对方会给你提问的机会,你能够问的问题包括:团队平时使用什么样的技术,一般的工做压力和工做时间,公司最让人兴奋的地方;在当前职位工做了多少年,面试官以前的工做经历与如今相比有什么异同等。

面试考察的基本功,包括如下方面:

程序风格:能正确使用缩进,括号要对齐,变量名能够起的有意义;

编码习惯:异常检查,边界处理;

沟通:让面试官时刻明白你的意图,不要闭着眼睛不停地写。由于你的算法未必对。对了你也未必写得出来。中间稍微有点问题,你就失败了。对于面试官来讲,他根本不知道你的解题进行到哪一步了;

测试:主动写出合理的测试用例(Test case),一些常见的用例,如null检查。通常你没写的话,面试官会让你写,但若是你主动写出来,说明你有好的习惯,容易加分。

技术面试的流程一般以下,可供参考。

当你拿到一个具体问题时,能够按照如下流程回答:

1.明确题意:经过与面试官交流明确须要解答的问题。这部分主要为了让本身放松心态,而且给面试官留下你具备良好团队意识和交流能力的印象。

2.描述大致思路:描述你打算用什么算法,什么数据结构。主要是为了让面试官了解你的思惟过程,若是你给出的解答与他想要的答案误差太多,能够及时纠正。同时,描述思路也给了你本身思考的机会。

3.实现算法:先处理边界条件。对于重要的算法模块,加一些注释或者与面试官进行交流。目的是让面试官始终了解你在作什么,算法框架是什么。

4.跑一个测试:用一个测试用例走一遍你写的程序。目的在于和面试官一块儿确保你的算法是有效的,能够在过程当中及时发现并纠正本身的错误。同时,给面试官留下你有写单元测试(unit test)习惯的良好印象。

5.描述算法复杂度,回答面试官的问题。

1.2.3 老板

团队的老板一般最后一个出场面试,或者陪同面试者一块儿吃午餐。老板负责收集整理全部人的反馈,而且决定是否发Offer。一般而言,老板可能不会问过于技术的问题,而是侧重考察你的协做沟通能力。老板的问题可能包括:如何面对工做中的难题/压力,你以前作过的项目,为何适应这个职位等等。与老板沟通须要表现出你对他们团队的热情,而且在回答中尽可能体现本身为何适合这个职位。面试是一个相互的过程,经过与老板的面试,你须要了解这些问题:团队的成员构成,通常状况下项目如何分配,老板对你的指望,老板对团队在公司中发展的一些展望等等。

另外,准备一些常见的行为问题:好比你有没有过失败的经历,若是你老板给你不喜欢的任务怎么办,你想象中要成为何样的人。这里一方面能够结合自身精力,另外一方面多关注公司的介绍页面,包括公司创始人背景、企业文化、招聘的要求。这些均可以提早作好功课,尽可能体现出来你的激情、负责、勤奋等优秀品质。

Offer

若是走到这一步,那么祝贺你,你成功了!在这一步,你须要一些谈判技巧,为本身争取更多的利益。首先,你要作的是与HR核对信息,包括你的地址、入职时间等。

一般,HR会简单介绍你的待遇福利,当你确认无误后,HR会生成正式文档让你签名。在这个阶段,你可让HR解释Offer条约中你不理解的部分,而且协商你的待遇。协商的最多见方式是,当你有其余公司的Offer,你但愿最想去的公司可以match其余公司的最高值。注意,在这个阶段,HR是与你站在一条战线上:HR也不但愿你轻易地拒绝他们的Offer。所以,你彻底有理由提出你本身的要求。通常在你有其余公司Offer的状况下,HR都能争取到一些更多的利益。从争取难度而言,入职时的签字奖金最容易争取,股票和基准工资则比较难有提高。固然,工资待遇是重要的一方面,但在你决定是否接受Offer的时候,综合考虑公司的发展前景、团队在公司中的地位、老板与你交流时你的感觉、团队氛围等也是必不可少的因素。

对于美国的绝大部分公司,Offer上都不会写雇佣时间,这意味着双方均可以随时终止合同。一般状况下,大公司不会轻易裁人,哪怕裁人也会有必定的补助。另外一方面,这也说明你能够随时离职,甚至在入职以前,也即毁约。通常来讲,不建议这种作法:更合理的作法是尝试与HR沟通,告知对方本身还有其余的面试/Offer,须要推迟一段时间作决定。若是实在万不得已,有其余更好的选择,你须要尽早与HR沟通,但愿对方理解。必定不要拖到最后告诉对方本身不去了,这样的作法很不职业,也不礼貌。

当你接受Offer以后,能够向老板要一些材料,本身先准备一下,以便工做开始的时候可以更快上手。通常新到一个公司都会有数周甚至数月的上手时间,团队会专门有人帮助你了解他们的项目。新的旅程就此开始!但这仅仅是开始,将来也许是更大的挑战,能不能融入团队中,能不能抵抗住压力,工做内容是否符合本身的兴趣,这些都是未知数。因此咱们说没有绝对正确的选择,只要用你的才华和汗水付出才有实际意义!

常见问题

问题1:如何知道一些靠谱的公司?

首先,了解一下“牛人”都选择去哪些公司。若是公司名气不大,能够去流量排名上去看他处于什么地位,公司有没有上市,它的融资规模,还能够从Linkedin看它的员工是否优秀。

在硅谷,你们很是热情地谈创业谈机会,咱们也经过本身的一些观察和积累,看到了很多最近几年才涌现出来的热门创业公司。给你们一个列表,这个是华尔街网站的全世界创业公司融资规模评选([http://graphics.wsj.com/billion- dollar-club/](http://graphics.wsj.com/billion- dollar-club/)

)。它原本的标题是“Billion Startup Club”(十亿美金创业公司俱乐部),不到一年的时间,截至2015年1月17日,如今的排名和规模已经发生了很大的变化,如图1-3所示。

第一,估值在10Billlon(百亿美金)的公司达到了7家,而一年前一家都没有。第二,第一名是中国人家喻户晓的小米,第三,前20名中,绝大多数(八成)在美国,在加州,在硅谷,在旧金山!好比Uber、Airbnb、Dropbox、Pinterest。第四,里面也有很多以类似模式取得成功的公司,如Flipkart就是印度市场的淘宝,Uber与Airbnb都是共享经济的范畴。因此你们仍是能够在移动(Uber)、大数据(Palantir)、消费级互联网、通讯(Snapchat)、支付(Square)、O2O App里面寻找大的机会。

图1-3 十亿美圆创业公司俱乐部

问题2:硅谷的Startup有什么技术方案?

分类介绍以下,如图1-4所示。

编程语言:Python、Scala、Swift for iOS、C/C++、Java等主流开发语言;

前端:Play、Video.js、Jade、HTML5等;

框架容器:Docker、Mesos、Vagrant等;

日志监控:Datadog、Sumologic、Akka、Kafka等;

后台数据处理:Hive、Scalding、EMR、Big Query等;

图1-4 硅谷经常使用技术矩阵

虚拟机:EC2等云服务;

服务器:Nginx等;

配置工具:NPM、Zookeeper、Puppet、Gradle等;

信号通知:SQS等;

代码托管:Github、SVN等版本控制工具;

数据存储:Cassandra、MySQL、S三、Redshift等;

内部工具:Phabricator、Slack、Google Docs、RelateIQ、Jira等协做工具。

以Coursera为例,做为创业公司,Coursera力图保持敏捷和高效。从技术上来讲,全部的内容都是在基于AWS开发,能够想象随意启动云端服务,作一些实验。公司大体分红产品组、架构组和数据分析组。由于公司比较新,因此没有什么历史遗留迁移的问题。你们大胆地使用Scala做为主要编程语言,采用Python做为脚本控制,好比产品组就是提供课程产品,里面大量使用Play Framework、Javascript的Backbone做为控制中枢。而架构组主要是维护底层存储、通用服务、性能和稳定性。笔者所在的数据组,一部分是对商业产品、核心增加指标作监控、挖掘和改进;另外一部分是搭建数据仓库,完善与各个部门的无缝数据流动,也用到不少技术;例如使用Scalding编写MapReduce程序,也有人作AB testing框架、推荐系统,尽量用最少人力作有影响力的事情。其实除了开源世界,Coursera也积极使用第三方的产品,好比Sumologic作日志错误分析,Redshift做为大数据分析平台,Slack作内部通讯。而全部的这些的目标就是想解放生产力,把重心放到用户体验、产品开发和迭代上去。

问题3:何时才知道准备好面试?

能够从以下几个方面来衡量。

算法是否过关,是否能写出递归和动规;

Coding是否过关,是否能在编译器中写出Bug Free;

Design是否过关,是否能给出Tradeoff;

项目经历整理,可以流利说出架构、难点、本身的贡献;

加分项:Github、Blog、参与Open Source。

问题4:如何拿到美国工做签证?

要来美国工做,通常是要求具备H1B(工做签证)的身份,得到该身份须要有雇主向劳工局提出申请(sponsorship)。根据如今的形式,每一年的名额都是一抢而空,那么这就须要抽签决定。在4月1日以前提出申请,4月1日以后开始抽签,若是是在美国获取硕士以上的学位,能够有优先级,抽取几率更高,而根据今年状况,普通的抽中概率是50%。即使没有抽中,若是是拥有美国的硕士学位,可使用OPT照样工做,而且能够省社会安全税(Social Security Tax)。而若是是海外的学位,只能等来年再抽签。

像Google、Facebook这种全球性公司,他们也会提供其余国家办公室的机会,工做一年后再经过L1或者H1B继续到美国工做。另外若是你抽中了H1B,那么若是之后再跳槽,则能够经过办理转职(transfer)沿用以前的名额,而不须要再次抽签。H1B每3年能够续一次,最多6年。若是H1B到期时已经申请绿卡,那么仍是能够延长H1B的有效时间,直至绿卡生效。

问题5:我不是算法大牛,不是ACM队员,据说Google,Facebook有不少牛人才能进,那我怎么能拿到好Offer?

首先要有信心,算法不是想象那么难。缘由有如下两个方面:

第一,由于面试常见的算法就那么几种。只要你努力去总结归类类似题目,只作不多的题,就能够触类旁通掌握不少的题。不要盲目关注数字。作题质量很是重要。标准是:你作过的题目,让你再作一次,你就能“完美解决”。

第二,即便你知道一道题的解法,你未必能写好。由于你可能每次写出来的程序都很随性,这样会漏洞百出。程序员是一个很是讲究严谨性的职业,若是你在总结题目的时候可以找到这些题目的模板,把模板提炼好,碰到相似的题目,能够一边写模板,一边想一想怎么在模板上作一点简单的改动。这样既节省时间又保证不会出错。

问题6:从其余专业转作计算机专业的该怎么准备?

1.让本身更专业。例如,你的简历只能放和计算机有关的东西,其余东西再牛也不能发挥用处(如学生会主席)。若是简历仍是很空,就多去作项目。实在没项目,就把非计算机专业的项目改写得更接近。

2.在某一方面达到工程师实力。临时转行时间短,找一个容易入手的准备,若是你之前作的事情跟数据有关,就申请数据分析师(Data Analyst)。若是你原本就会一些基本技术,能够作前端,用JavaScript、HTML和CSS,去真正作一个本身博客。若是对产品感兴趣,就玩Django、Ruby on Rails这样的网站框架,了解一个网站是怎么搭建起来的。若是对移动开发感兴趣,就写几个在iOS或者Android上的App。这样作的好处是,简历不空,若是问到,能够得心应手。若是不相关,坦诚相见,说因为我是转行的,在这方面不熟悉,能够尝试一下。也能够直接告诉面试官,我是转行的,我对计算机很感兴趣,作了这么这么几个项目。因而面试官不会问你难题。而实际上你早就准备好了,超出面试官预期,会获得一个面试高分!

问题7:面试时候如何表现本身体现沟通能力?

首先你要站在面试官的角度思考问题。面试官要招你进去当同事,你但愿同事怎么样?

你能够反复和面试官交流本身的想法,获得面试官承认之后再动手写。能够讲讲你是怎样想到这个思路的。从而展示你的沟通能力。记住,你并非要说服他接受你的想法,而是要把你的想法解释给他听。面试官提出质疑的时候,第一,不要以为面试官什么都不懂,怎么这都不知道(其实他只是看一下你是否真的懂);第二,面试官比你经验丰富得多,颇有可能就是你犯错了,赶忙想一想是否是真的有问题。

问题8:面试中出了Bug怎么办?

避免Bug很重要,这个须要咱们平时不断地练习,按照上述的方法准备,仍是能够避免一些“坑”的。但碰巧你可能不在状态,写出了Bug被面试官指出,是否是就挂了呢?

首先别担忧,出Bug很正常,也许面试官来面试你以前正在Debug。衡量一个程序员能力的标准,并非他能想出多牛的算法,而是程序员在遇到问题的时候分析和解决问题的能力。而出Bug的时候,正是展示你是不是一个合格程序员的时候!

Debug的流程以下所示:

1.经过测试用例定位Bug所在位置;

2.不要当即修改代码,从新梳理逻辑。由于颇有可能还有其余Bug;

3.走完全部逻辑以后,内心有数怎么改了,再动手开始改;

4.用测试用例再走一次新的代码;

5.在整个过程当中,不停地告诉面试官你在作什么(在不影响正常写程序的状况下)。

这样,成功排解Bug,不但不会减分,还会由于你优秀的Debug能力和与此同时展示出来的沟通能力而加分。

问题9:如何作出最后选择Offer?

在考虑Offer以前,先对公司作个研究,好比这家公司是什么规模,产品是什么,Glassdoor员工如何评价的,你的职位你喜欢吗?这就跟选学校同样,若是选错了,也是须要走不少弯路。咱们我的的参考是首先这家公司是上升期的,产品是否有爱,团队是否比较强,可否学到东西。对公司分类,例如Hortonworks这种是纯技术性的,面向企业级的,可能没多少人知道,而Uber是大众消费性,不少朋友都用过。如今的热点是移动互联网,你们也能够多考虑这一块。

若是上市的公司,会给限制性股票,分3~4年行使期权,创业公司通常给期权,不一样就是限制性股票是白送的,不须要本身掏腰包,期权须要本身买入,不一样时期价格不一样,但股票交的税很是高,有些期权是长期避税的。最后也要考虑你的兴趣和对风险的承受能力,若是去大公司作个螺丝钉,实现共产主义生活也无可厚非。去小公司压力大,成长快。但也要作好失败的准备,看看当年Zynga教训。

                                                

《程序员面试白皮书

董飞, 逸超 著

本书做者来自硅谷一线的IT公司,书中包含了做者亲身的经验和体验,书中收集的题目部分来自互联网上分享的面试经验、在线编程网站leetcode,以及一些著名的面试参考资料。

本书适合想要从事正规的程序员、架构师以及相关IT公司的专业人士和学生参考,尤为适合那些以一线IT外企或互联网公司为求职目标的读者阅读。

相关文章
相关标签/搜索