Google Pro Tip: Use Back-of-the-envelope-calculations to Choose the Best Design - High Scalability -

  http://highscalability.com/blog/2011/1/26/google-pro-tip-use-back-of-the-envelope-calculations-to-choo.html

Building software systems at Google

  http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/en/us/people/jeff/Stanford-DL-Nov-2010.pdf

Putting Google's Network to work for You

  https://www.youtube.com/watch?v=DWpBNm6lBU4

Building Software Systems At Google and Lessons Learned

  https://www.youtube.com/watch?v=modXC5IWTJI&feature=player_embedded

Get that job at Google

  http://steve-yegge.blogspot.hk/2008/03/get-that-job-at-google.html

The Google technical interview How to get your dream job

  http://xrds.acm.org/article.cfm?aid=2539270

Interviewing @ Google

  http://www.catehuston.com/blog/2010/07/13/interviewing-google/

How to get a job at Google, interview questions, hiring process

  http://dondodge.typepad.com/the_next_big_thing/2010/09/how-to-get-a-job-at-google-interview-questions-hiring-process.html

An Inside Look at Google - Working at Google

  https://www.youtube.com/watch?v=aOZhbOhEunY

How to Work at Google -Candidate Coaching Session: Tech Interviewing

  https://www.youtube.com/watch?v=oWbUtlUhwa8&feature=youtu.be

Inside Google Australia

  https://www.youtube.com/watch?v=Y1xF3BDBHSY

Interviewing at Google

  https://www.youtube.com/watch?v=w887NIa_V9w

University Consortium | Google Developers

  https://developers.google.com/university/

Introduction to Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare

  http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-spring-2008/

Distributed Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare

  http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-852j-distributed-algorithms-fall-2009/

Advanced Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare

  http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-854j-advanced-algorithms-fall-2008/

How we hire - Google Careers

  https://www.google.com/about/careers/how-we-hire/

GitHub - google/styleguide: Style guides for Google-originated open-source projects

  https://github.com/google/styleguide

Bring questions. Build answers. - Google Careers

  https://www.google.com/about/careers/

Preparing for your Google Interview

  https://sites.google.com/site/coachingsessions1/home

The Architecture of Open Source Applications (Volume 2): Scalable Web Architecture and Distributed Systems

  http://www.aosabook.org/en/distsys.html

The Google app – Voice Search, Answers and Assistance

  https://www.google.com/search/about/

Distributed Systems and Parallel Computing - Research at Google

  http://research.google.com/pubs/DistributedSystemsandParallelComputing.html

Topcoder is repeatable, on-demand crowdsourcing, done right, at scale.

  https://www.topcoder.com/

Classic problems

Towers of Hanoi

There's a temple in the middle of Hanoi. In that temple, there are three very large diamondencrusted posts, and on those posts are sixtyfour disks, all of a different size. There are a set of priests in that temple, and their task is to move the entire stack of sixtyfour disks from one post to a second post. The rules, though, are, they can only move one disk at a time, and they can never cover up a smaller disk with a larger disk. Write a recursive program to solve this problem. What is the complexity?

Searching and sorting algorithms

Write code to search a sorted list.
Write a binary search algorithm.
Write a selection sort algorithm.
Write code to create a hash table of size 256

Shortest path problem

Write an algorithm to plan a route by minimising distance or time (eg Google Maps)

Traveling salesman

Write an algorithm to determine the least cost roundtrip, given multiple cities and varying costs of flights

Knapsack problem

Write an algorithm to optimize the value of items you can fit into a backpack based on weight and volume

Sorting algorithms - know how they work, average/worst case running times, stack space
● Insertion sort
● Quicksort
● Mergesort
● Heapsort

Searching algorithms
● Sequential search
● Binary search
● Hashing
● Binary search trees
● Key indexing

Other algorithms
● Priority queues
● Selection

Back of the envelope calculations
● Know your powers of 2 (binary)
● Be able to express mega/giga/etc in binary and/or scientific notation
● Know cycle times and disk seek times for CPUs
● Explain and justify your assumptions
● Don’t be afraid of dealing with huge numbers!

Sample questions from Programming Pearls

1. Given a file containing at most ten million 7digit integers with no duplicates. What is an efficient way to print these numbers in ascending order using just 1.5Mb RAM and reading the data just once? What are the consequences of only having 1Mb of RAM and no other storage? How would your answer change if duplicates were permitted?

2. Given a sequential file that contains at most four billion 32bit integers in random order, find a 32bit integer that isn’t in the file (and there must be at least one missing...why?). How would you solve this with unlimited main memory? How would you solve it if you could use several external files but only a few bytes of main memory?

3. Rotate a onedimensional vector of n elements left by i positions. For instance, with n=8 and i=3, the vector abcdefg is rotated to defghabc. Simple code uses an nelement intermediate vector to do the job in n steps. Can you rotate the vector in time proportional to n using only a few dozen extra bytes of storage?

4. Given a dictionary of English words, find sets of anagrams. For instance, “pots”, “stop”, and “tops” are all anagrams of one another because each can be found by permuting the letters of the others.

5. Write functions for the following date problems: given two dates, compute the number of days between them? given a date, return it’s day of the week? given a month and year, produce a calendar of the month as an array of characters

6. Given a very long sequence (say, billions or trillions) of bytes, how would you efficiently count the total number of one bits? (i.e. how many bits are turned on in the entire sequence)

7. Although Quicksort uses only O(logn) stack space on the average, it can use linear space in the worst case. Explain why, then modify the program to use only logarithmic space in the worst case.

8. Write a program for finding the kthsmallest element in the array x[0...n1] in O(n) expected time. Your algorithm may permute the elements of x.

9. Build the fastest possible complete function to generate a sorted array of random integers without duplicates. (You need feel constrained to use any prescribed interface for set representation)

10. Implement heapbased priority queues to run as quickly as possible? at what values of n are they faster than sequential structures?


Chrome 为何会成功?

谷歌 Chrome 十年封神记

学习笔记之Google的更多相关文章

  1. Guava学习笔记:Google Guava 类库简介

    http://www.cnblogs.com/peida/tag/Guava/ Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, cachin ...

  2. MVP学习笔记——参考Google官方demo

    demo地址:https://github.com/googlesamples/android-architecture 在这个项目里,每个包的分工都很明确,大体上来说,一个包会对应一个界面.一个界面 ...

  3. java学习笔记(13) —— google GSON 实现json转化方法

    1.配置struts.xml <action name="getGsonAction" class="com.test.action.json.GetGsonAct ...

  4. Guava学习笔记目录

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra ...

  5. Java学习笔记(五)——google java编程风格指南(中)

    [前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...

  6. Google TensorFlow深度学习笔记

    Google Deep Learning Notes Google 深度学习笔记 由于谷歌机器学习教程更新太慢,所以一边学习Deep Learning教程,经常总结是个好习惯,笔记目录奉上. Gith ...

  7. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  8. react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置

    参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...

  9. CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案

    一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...

随机推荐

  1. xss payload大全

    刚好刚才在fuzz一个站的时候用到,就从笔记里抛出来了. code: (1)普通的XSS JavaScript注入 <SCRIPT SRC=http://3w.org/XSS/xss.js> ...

  2. istio 简介

    最近接触到了 istio,感觉十分强大,写篇短文推荐给大家.本文所涉及的具体实验步骤可以参考官网教程. istio 相关文章列表: istio 简介 istio 性能测试 istio 是什么 Isti ...

  3. 006-guava 集合-集合工具类-集合扩展工具类

    一.概述 需要实现自己的集合扩展.也许你想要在元素被添加到列表时增加特定的行为,或者你想实现一个Iterable,其底层实际上是遍历数据库查询的结果集 二.使用 2.1.ForwardingList装 ...

  4. 一、搭建简单的axis web服务

    转: 一.搭建简单的axis web服务 1.在官方网站下载axis的工程(这个等下就有用的)和源码.jar包等,下载地址是: http://labs.renren.com/apache-mirror ...

  5. 报错:WARN [WorkerSender[myid=1]:QuorumCnxManager@584] - Cannot open channel to 2 at election address /x.x.x.x:3888

    报错背景: zookeeper安装完成之后,启动之后正常,但是查看log文件zookeeper.log时发现报错. 报错现象: -- ::, [myid:] - INFO [WorkerSender[ ...

  6. 函数返回new对象

    #include <iostream> using namespace std; // foo()函数本质上没什么问题,但建议你不要这样写代码 string &foo() { st ...

  7. [ kvm ] 学习笔记 2:虚拟化基础

    1. 虚拟化概念 什么是虚拟化 虚拟化是使用所谓虚拟机管理程序从一台物理机上创建若干个虚拟机的过程.虚拟机的行为和运转方式与物理机一样,但它们会使用物理机的计算资源,如 CPU .内存和存储.虚拟机管 ...

  8. 【分布式一致性】etcd

    etcd: https://jimmysong.io/kubernetes-handbook/concepts/etcd.html 什么是 分布式一致性: http://thesecretliveso ...

  9. 微服务Consul系列之集群搭建

    在上一篇中讲解了Consul的安装.部署.基本的使用,使得大家有一个基本的了解,本节开始重点Consul集群搭建,官方推荐3-5台Server,因为在异常处理中,如果出现Leader挂了,只要有超过一 ...

  10. SQL触发器中的inserted表和deleted表

    开发也有年头了,但是触发器确实用的比较少,但是无容置疑触发器确实不错, 最近项目要求需要用到的触发器特别多.频繁,觉得很有必要记录和积累下. 在触发器语句中用两个特殊的表一个是deleted表和ins ...