学习笔记之Google
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的更多相关文章
- Guava学习笔记:Google Guava 类库简介
http://www.cnblogs.com/peida/tag/Guava/ Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, cachin ...
- MVP学习笔记——参考Google官方demo
demo地址:https://github.com/googlesamples/android-architecture 在这个项目里,每个包的分工都很明确,大体上来说,一个包会对应一个界面.一个界面 ...
- java学习笔记(13) —— google GSON 实现json转化方法
1.配置struts.xml <action name="getGsonAction" class="com.test.action.json.GetGsonAct ...
- Guava学习笔记目录
Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra ...
- Java学习笔记(五)——google java编程风格指南(中)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
- Google TensorFlow深度学习笔记
Google Deep Learning Notes Google 深度学习笔记 由于谷歌机器学习教程更新太慢,所以一边学习Deep Learning教程,经常总结是个好习惯,笔记目录奉上. Gith ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- react-native学习笔记--史上最详细Windows版本搭建安装React Native环境配置
参考:http://www.lcode.org/react-native/ React native中文网:http://reactnative.cn/docs/0.23/android-setup. ...
- CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...
随机推荐
- ES6深入浅出-4 迭代器与生成器-3.生成器 & for...of
迭代器平时用的很少.但是如果你是写框架的,你会经常用到迭代器. 生成器是专门用来做迭代器的东西 发布器是要产生一个叫做next的对象,如果你要产生这种对象.就可以使用ES6新出的语法. ES6的新语法 ...
- 使用navicat的坑
小黄人发送数据,测试软件是否将数据存入mysql数据库中,使用的是navicat. 首先截断了表,所有数据清零,但是此时表并没有回到第一页[由于前面查看最新数据,已经翻到了最后一页],然后小黄人发数据 ...
- TroubleShooting经验总结
1.WinDbg是微软开发的免费源代码级的调试工具.WinDbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件.WinDbg对于dump文件的调试可以通过菜单设置Symbol Fi ...
- WEUI switch 如何取值?
let id = $(this).attr("id"); let name = $(this).attr("data-name"); HTML: <div ...
- keepalived通过飘移ip实现高可用配置步骤
环境:两台虚拟机即可 centos7.3虚拟机A 10.0.3.46 centos7.3虚拟机B 10.0.3.110 对外开放的虚拟ip 10.0.3.96(这个ip只需要在keepalived里面 ...
- rem设置网页字体大小
「rem」是指根元素(root element,html)的字体大小,好开心的是,从遥远的 IE6 到版本帝 Chrome 他们都约好了,根元素默认的 font-size 都是 16px.这样一个新的 ...
- 【CSS3 DEMO】扑克正反面翻牌效果
在线预览地址:http://dtdxrk.github.io/game/css3-demo/drawbox.html 用到两个属性: 一个是动画时间 transition-duration: 0.8s ...
- node不要使用最新版本,使用LTS版本
错误现象 const { Math, Object, Reflect } = primordials; 原因 使用了最新的node版本 解决 使用稳定版本,参考官网说明,目前10.x的版本是稳定版本( ...
- 树莓派3B安装arm64操作系统
pi64 pi64基于Debian 9,地址如下https://github.com/bamarni/pi64 烧录过程还是用SDFormatter格式化,用Win32DiskImager写入即可,没 ...
- 反馈神经网络Hopfield网络
一.前言 经过一段时间的积累,对于神经网络,已经基本掌握了感知器.BP算法及其改进.AdaLine等最为简单和基础的前馈型神经网络知识,下面开启的是基于反馈型的神经网络Hopfiled神经网络.前馈型 ...