第一篇:我是如何成为了谷歌的软件工程师
作者 YK Sugi 编译 Mika
本文为 CDA 数据分析师原创作品,转载需授权
前谷歌软件工程师YK Sugi分享了他是如何通过六个步骤,顺利开启了自己的数据科学职业生涯。
大家好,有很多人问我如何获得谷歌的软件工程师工作,在本文中我将分享我是怎么做的。
用相同的方法,你也可以在顶尖科技公司获得软件工程师的工作。
在以上公司顺利求职共需要6个步骤,此外我还将讨论以下内容:
· 首先该如何学习编程 · 学会编程后要学什么 · 如何获得第一份编程工作或实习机会 · 软件工程师工作求职的最佳方式 · 如何充分准备编程面试 · 是否要获得计算机科学学位? · 是否要毕业于顶尖大学?
好的,我们开始吧!
第1步:学习编程
这是成为软件工程师所需的最低要求。
为此,我建议你使用Codecademy和freeCodeCamp等交互式网站。在这些网站上你可以学习大多数编程基础知识,SoloLearn也是不错的选择。
之后,我会使用视频教程来学习更深入的知识。我推荐YouTube,Pluralsight,Lynda.com和Udemy等网站。在这些网站上,你能够找到以下主题的教程:
· Web开发 · 移动开发 · 游戏开发
取决于你的兴趣。
但是等一下,我应该先学习哪种编程语言呢?
我的简短回答是,选择JavaScript或Python,但这实际上取决于你的兴趣。我在之前的文章中有探讨过这个问题。
第2步:做些个人项目
在学习了一些编程教程之后,你应该通过构建一些个人项目来练习学到的知识。
为此,你应该找到你感兴趣的东西。
例如,如果你喜欢摄影,那么你可以开发一个网站整理你所拍的照片。如果你对股票感兴趣,那么可以构建一个系统来分析股票图表。如果你喜欢解决问题,那么可以尝试参加编程比赛。
当处理项目时,首先要尽可能靠自己完成。然后,如果遇到困难,可以使用在线或离线资源获取其他人的帮助。例如,如果遇到与编程相关的问题,你可以在Stack Overflow对特定技术问题进行提问。
第3步:获得第一个编程工作或实习
一旦完成了一些个人项目,你就有机会获得第一份编程工作或实习机会。这样在与顶级科技公司面谈之前,你将有一些编程的经验。
你完全有可能在一家顶级科技公司获得第一份工作,但是这种几率比较小,你获得的第一份工作更可能是在一家不那么知名的公司。
**申请软件工程师工作的最佳方式**
除了在网上投简历,你还有其他的方法可以尝试。
在LinkedIn上,首先找到你感兴趣的公司的招聘人员。然后,你可以问他们你是否有资格获得你感兴趣的职位。如果你的资格还不够,你也应该问他们如何能更好地做准备。
还有Meetup这种人脉网络的网站,你可以直接与当地公司的工程师和招聘人员进行交流。
这还不是全部。
LinkedIn这种人脉网站对于中小型公司的职位很适用。但是,对于想应聘谷歌和Facebook等大型公司而言,效果就不那么好了。
对于这些大公司,我建议结合以下三种方法:
1.参加你附近大学举办招聘会。
2.通过在其中一家公司工作朋友的推荐。3.网上投简历。
结合这些方法能够增加你获得大型公司面试的机会。
对于大型公司,LinkedIn上大公司招聘人员收到的消息太多了,因此效果不太好。
第4步:学习数据结构和算法
谷歌和微软等顶级科技公司在面试时,经常会问到关于数据结构和算法的问题。所以,如果你对这方面不太了解,那么你应该学习。
针对这方面的基础知识,我推荐我YouTube频道的数据结构和算法系列视频。
书籍:
《算法设计手册》(The Algorithm Design Manual)作者Skiena 《算法》Algorithms 作者 Robert Sedgewick
第5步:准备编程面试
谷歌和微软等公司的编程面试很难,但可以有针对性的进行准备。
一旦你对数据结构和算法有了深入了解,我就会推荐以下三种资源用于练习:
· Leetcode——练习编程面试问题的互动平台。· 《搞定编程面试》(Cracking the Coding Interview)——关于编程面试的热门书籍。· 每日编程问题(Daily Coding Problem)——每天给你提供一个编程问题的邮件列表。
在自己练习几周之后,你可以开始进行模拟面试。
**怎么做模拟面试**
与你的朋友一起练习,从我以上提到的资源中选问题互相提问。
解答每个问题,并对你的解决方案进行解释。
在练习时,除了面试者还要充当面试官的角色,从而揣摩面试官的想法。
进行约20次模拟面试,之后你对实际面试将有一定把握。
第6步:反复尝试
使用我以上提到的三种方法应聘顶级科技公司:
· 招聘活动/招聘会 · 朋友推荐 · 网上求职。
如果第一次没有成功,请不要泄气。在找到心仪的工作前必然会经历一些失败。
在我成为谷歌的软件工程师之前,我曾尝试了五次。
总结:
第1步:学习编码 第2步:做些个人项目
第3步:获得第一个编程工作或实习第4步:学习数据结构和算法 第5步:准备编程面试 第6步:反复尝试
等等,真的那么简单吗?
是的,但是完成这六个步骤需要大量的时间和精力。
其他问题
问题1:我需要获得计算机科学学位吗?
不用,但是拥有计算机科学学位有很大帮助。如果你参加一个完善的计算机科学课程,当中包含了步骤1,2,3和4的大部分内容(学习编程,做个人项目,获得第一个编程工作或实习,以及学习数据结构和算法)。
如果没有计算机科学学位,你需要自学当中许多内容。
要注意,即使拥有CS学位,获得顶级科技公司的软件工程师工作也需要付出很多努力。
问题2:我是否需要毕业于麻省理工学院,斯坦福大学,卡内基梅隆大学等顶尖大学?
同样,并不需要。毕业于顶尖大学当然有些帮助,但这并不是必备条件。
谷歌人事业务部的高级副总裁Laszlo Bock也同意这一观点。
在他的书《 Work Rules!》中提到,比起来自麻省理工学院等顶尖学校但表现平庸的学生,谷歌更青睐来自普通院校但表现优异的学生。
我认为这是有道理的,如果你很聪明且专注,那么来自哪所学校并不重要。
问题3:我需要很高的GPA(绩点)吗?
不用。
较高的绩点在面试中有一定优势,但你拥有扎实的实践经验,且完成了有趣的项目更为重要。
事实上,根据《 Work Rules!》,谷歌过去常常注重面试者的绩点。然而之后他们发现,较高的绩点并不意味着出色的工作能力。因此谷歌不再强调面试者的绩点。
问题4:那我需要什么?
你所需要的是强大的编程能力和解决问题的能力,熟练掌握计算机科学的基础知识,以及在简历中展示出完成的项目和具备的经验。
根据我在文中提到的六个步骤,你就能做到。
问题5:怎么能写一篇好的简历呢?
你可以参考我在面试谷歌时用的简历。
简历的篇幅最好控制在一页,我的稍微有些长,但可以作为参考。
祝你好运!
第二篇:谷歌工程师文化
Google狂热的技术信仰,塑造了独特的工程师文化,这跟我们常见的销售导向的企业文化截然不同。
1.在Google,工程师享受最高的待遇。工程师在Google,有最好的办公室,最好的薪水,就连著名的“20%的时间”原则,也只是对工程师有效。所以,产品经理、销售人员,在Google永远是处在被别人俯视的位置上,因为在Google看来,工程师的出色工作,可以让销售人员变得没价值。
2.工程师在那里享有充分的自由,他们可以访问所有的Google核心代码,所以在他们发挥他们的天才创意的时候,从一开始就可以考虑如何跟Google已有的平台衔接。当然,他们的作品的所有权,属于Google。
3.不担心上班会迟到,由于公司实行的是弹性工作制,很多员工都是中午才上班。
4.只要你不利用Google的品牌和资源,你甚至可以一边在Google工作,一边创办自己的公司。
5.管理层不能限制员工在公司内部自由流动。“只有做自己喜欢的事情,才能很有创意。如果有所限制的话,就难以发挥出个人的最大潜力”。
6.最为人称道20%的“员工自由时间”。这个制度让Google在条件许可的范围内,最大限度地把工作变成一种兴趣。在Google工作的人,感觉不像是在一家公司上班,更像是在一个大学或研究机构做有趣的研究。而Google则可以从这些自由员工的大脑中,源源不断地提取新的创意和新的商业计划。Google的聪明就在于,它知道即使不给员工自由时间,员工也会想办法偷懒,与其偷偷摸摸,弄得两边都不爽,何不让员工公开地、自由地支配一小段时间?更重要的是,员工的感受会完全不同,有了20%的自由时间而不是20%的偷懒时间,他感到自己被尊重,他感到自己在为兴趣工作。
7.不管是在哪一栋办公室,每走20步、每过个转角,就会看到食物。这里有20个零食间,24小时供应各式各样的糖果、饼干,还有在超市一瓶要价超过新台币100元的「Naked juice」100%纯果汁。而这一切,都免费。
8.Google也有硅谷最出名的五星级「免费吃到饱」餐厅。这个由Google前CFO(主厨长)查理‧艾尔斯(Charlie Ayers)一手打造的Charlie's Cafe,里面就有85位厨师和助理,提供85%都是有机食材做成的有机饮食。中午过后,Google的五星级餐厅打烊,你又能看到工人搬进了音响、气球、电子琴,另一场party不远了。
9.Google有沙滩排球场、游泳池、健身房,还有全身按摩服务;他们提供托婴、牙医、甚至医师看诊;Google有洗衣间,欢迎员工把脏衣服带来洗;Google还摆有钢琴,任何人、任何时间都可以演出自己的另一面。
10.在Google工程师办公空间中,没有隔间屏风,取而代之的是一个个白壁红顶、看似现代蒙古包的帐篷。这种帐篷式办公室可以随拆随搭,正符合Google一直都以2~3位工程师随项目编组的小团队模式,开发新产品。
11.Googlers除了能带宠物来上班,还享有20%的工作时间来养自己感兴趣的「宠物计划」(pet project),也就是工程师每周有一天,可以为自己最狂野的梦想付出。不少Google最受欢迎的产品,像是G-mail、Google News等,都是由宠物计画中诞生的创新。
12.Google有一种平等、自由的文化,每个人都能发出自己的声音,就连跳槽Google的李开复说,他看到Google有在微软看不到的创新活力,哪怕想法还没有成熟的商业模式,还是可以去尝试。
13.GOOGLE内部一些员工经常集中起来“头脑风暴”。这样一种独特的内部文化,打破了金字塔式的等级结构,打破了传统的管理内耗,打破了员工思维和自身工作范围的框架,打破了产生官僚主义和自私自利思想的土壤,属于一种尊重个性张扬、个性解放的管理新思维,正好与GOOGLE所从事的2.0范畴的网络业务的个性化相映成趣。
第三篇:什么是java软件工程师?
什么是java软件工程师?
Java软件工程师的定义:
Java软件工程师主要是运用Java这个开发工具去完成软件产品的软件程序设计、开发、测试、维护升级等工作。
成为java软件工程师必备的条件:
有一定的软件分析设计能力;熟悉Java、Servlet、JSP、EJB等开发技术;熟练使用Eclipse或jbuilder等java开发工具;熟悉JAVA+STRUTS体系结构和开发工具;熟悉至少一种数据库的开发和设计;具有良好的学习能力,具有强烈的工作责任心、有良好的沟通能力和团队合作精神。
Java软件工程师主要的工作内容:
完成软件的设计、开发、测试、修改bug等工作,包括业务需求的沟通,功能模块详细设计,业务功能实现与单元测试,系统维护;参与产品构思和架构设计;撰写相关的技术文档;支持售前技术服务;支持项目对产品的应用服务。
Java软件工程师的薪资:
根据I统计,在所有软件开发类人才的需求中,对Java工程师的需求达到全部需求量的60%~70%。同时,Java工程师的薪水相对较高。Java软件工程师一般月薪范围在4000-10000元,远远超过了应届毕业生月薪2500元的平均水平。通常来说,有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—13万左右。
Java软件工程师发展前景:
目前,虽然Java人才的薪水很高,但是对该类人才需求旺盛的IT企业却很难招聘到合格的Java软件工程师。其中,最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人要求有较大的差距。因此,计算机专业的大学生欲成为Java软件工程师,最便捷的一条路就是参加以实战项目为主要教学方法的Java职业技能培训,从而有效地缩短同企业具体用人要求之间的差距。
Java软件工程师的未来发展方向大致分为两类:
一是成为管理人员,例如产品研发经理,技术经理,项目经理等;
二是继续他的技术工作之路,成为高级软件工程师、需求工程师等。
第四篇:软件工程师是干什么的
软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格.。
一般情况下.都是分4级软件技术员助理软件工程师软件工程师高级软件工程师目前国内软件测试工程师的来源主要有三方面:一是以前专业做软件开发的人员后来转行做软件测试,二是从大学招聘的本科或者研究生,三就是通过培训机构招聘的专业学员。据了解,在国外测试人才的供应方式多以第三种为主,而国内目前除少数培训机构外尚未形成足够的人才供应规模。以北京中关村为例,现有软件企业5000多家,仅对曰本软件外包领域的人才缺口就高达5000人,而对美软件外包人才缺口更大,可供量不足10%。中关村一位负责人介绍,未来5年北京将有至少200亿美元的外包订单,由此可推算出中关村将出现100万的软件人才缺口。巨大的产业前景和匮乏的人才现状,使越来越多的IT企业关注软件测试人才的储备工作。
软件构架师
什么是软件构架师?构架师是在分析设计阶段根据系统的主要功能和特性对软件总体蓝图做出规划的开发人员。请注意,这是一件风险很大的工作,设计出的构架要能够容纳主要的功能需求,还要有健壮的结构,还要有一定的扩展余地。这不是一件轻松的事,因为软件是十分精细的,简单的说,软件的开发过程就是不断给出逻辑判断的过程,这样的逻辑判断称为断言,当一个软件设计完毕,成千上万个断言就被建立起来,它们是隐含在程序和数据中的,一眼看上去,很难发现。如果存在自相矛盾的断言,那么这个软件系统的某些功能就肯定有问题。
很遗憾,恐怕没有一个软件不含有这样自相矛盾的断言。构架师的任务就是在设计构架时,尽量减少引入或者诱导产生自相矛盾的断言,才能最终保证软件质量,减少开发成本。构架设计就有点像下围棋开局的时候,凭经验判定该下哪几步,但这却是关系到成败的关键步骤。所以,训练构架师是很难的,经验很重要,这需要长时间的实践。只是看看那几本关于软件构架的书,学习到一些风格、模式这类的东西是远远不够的!
关于更加有效的训练构架师,我可以提供以下建议:
1、加强数理逻辑知识,掌握公理语义,能够通过逻辑演算找出构架的问题。
2、注重专业化,不要指望一个构架师什么类型的软件都能搞,既然主要靠经验,就要专业化。
3、学习开发案例,找到以前的设计文档来分析问题。从需求-〉构架-〉详细设计,一层一层找问题,从四个方面:(1)主要找别人的问题,要求构架师在尽量短的时间内发现别人的构架问题。(2)构架是否简单、易于理解?记住科学家说过“正确的必简单”。给出任意一个需求,构架师能不能找到相应的模块,还能改进吗?(3)构架容易扩展吗?在这个构架上增加一个合理的需求,引起的变更范围是哪些?能改进使变更范围缩小吗?(4)构架的其他方面——健壮性、稳定性、高可用性、负载均衡等等。
第五篇:我是谁,为了谁
发言稿
程
霞
“我是谁、为了谁、依靠谁” “我是谁,为了谁,依靠谁”发言稿
发言人:程 霞
各位尊敬的领导大家好:
六个字、三个简单的问题,工作多年却从来没有思考过,作为一个共产预备党员深感惭愧。近日经认真深刻的思考,对三个问题有了更深的看法和感悟,反思如下:
首先,“我是谁”这个问题。我是名来自边远农区一个普通农民家庭的孩子,当初凭借父母的勤劳和自己的努力通过国家层层选拔和认可,自愿成了一名牧区学校的教师,工作之后,也是凭着自己的努力和成绩得到单位的肯定,在这些过程中,没有一个环节被享所谓“权贵”的不公。而我自己在平时的工作中,常常会有抱怨,抱怨身处的环境不好,抱怨领导的决策不近情理等,缺忘记了自己是谁,把一切困难问题的责任都推向外界因素,缺少反思“我是怎样的出路,怎样选择了一条路”。
其次,“为了谁”这个问题。多年来我们在社会上一直拥有一个光荣的称号“人民教师”,人民将我们比喻为“蜡烛”、比喻为“春蚕”,“奉献”是师德的精髓和灵魂,而平时只觉得“人民教师”为人民服务这些对我来说太大太空,认为老师的工作就是完成自己的课堂工作。深知教师是自己的职业,自己却履行了教师职业的部分职责,教好学生不是简单的上好课,需要从多方面去影响学生,就是需要我们有高尚的师德,并将师德的全部履行在日常工作和日常生活中,带出一批又一批对社会有用的人才,才能体现我们的社会价值。我们不仅承载许多家庭的幸福愿望还承载着社会和国家给我们的信任和期望,为了学生的成长和长远的发展考虑,“一切为了学生,为了学生的一切”是教师的天职。
最后,“依靠谁”这个问题。眼下的我们穿梭在美丽的校园里,坐在宽敞明亮的办公室,用着现代化的办公设备,为了健康和便捷,使用着高科技的白电子板设施,这一切都是国家和政府为了学生的发展索必备的,另外政府还给我们外出提深自己能力的学习机会和深造自己的机会,从各方面证实政府和国家是我们的坚实后盾,而学生就是我们的依靠,有了这个依靠才能谈及我们的发展,才能体现我们的人生价值,依靠学生我们才拥有了这份高尚的工作,得到了该有的待遇,也因为依靠学生才有了自己的幸福生活,因此,有学生才有我们,常说,老师如同父母,倒不如说学生是我们的父母,我们应该用心爱护、用心去启迪他们,用思想和智慧为学生搭建通往智慧的桥。
以上是我对三个问题的反思,未来还很长,我会在生活和工作中点滴做起,做一名拥有高尚师德的教师、做一名人民满意的教师。