Algorithms

https://www.hackerrank.com/do... 
https://oj.leetcode.com/probl... 
http://lintcode.com/ 
http://www.ninechapter.com/so... 
http://www.geeksforgeeks.org/...
• TopCoder Algorithm Tutorial: http://help.topcoder.com/data... 其中几何算法的教程要仔细看
• CC150: Cracking the Code Interview: http://www.valleytalk.org/wp-... 

OO Design

http://blog.csdn.net/longyulu...

System Design

Here are some articles about system design related topics.
• How to Rock a Systems Design Interview
• System Interview
• Scalability for Dummies
• Scalable Web Architecture and Distributed Systems
• Numbers Everyone Should Know
• Scalable System Design Patterns
• Introduction to Architecting Systems for Scale
• Transactions Across Datacenters
• A Plain English Introduction to CAP Theorem
• The CAP FAQ
• Paxos Made Simple
• Consistent Hashing
• NOSQL Patterns
• Scalability, Availability & Stability Patterns

Hot Questions and Reference:

There are some good references for each question. The references here are slides and articles.

Design a CDN network
Reference:
• Globally Distributed Content Delivery.

Design a Google document system
Reference:
• google-mobwrite
• Differential Synchronization.

Design a random ID generation system
Reference:
• Announcing Snowflake
• snowflake.

Design a key-value database
Reference:
• Introduction to Redis.

Design the Facebook news seed function
Reference:
• What are best practices for building something like a News Feed?
• What are the scaling issues to keep in mind while developing a social network feed?
• Activity Feeds Architecture

Design the Facebook timeline function
Reference:
• Building Timeline
• Facebook Timeline.

Design a function to return the top k requests during past time interval
Reference:
• Efficient Computation of Frequent and Top-k Elements in Data Streams
• An Optimal Strategy for Monitoring Top-k Queries in Streaming Windows

Design an online multiplayer card game
Reference:
• How to Create an Asynchronous Multiplayer Game
• How to Create an Asynchronous Multiplayer Game Part 2: Saving the Game State to Online Database
• How to Create an Asynchronous Multiplayer Game Part 3: Loading Games from the Database
• How to Create an Asynchronous Multiplayer Game Part 4: Matchmaking
• Real Time Multiplayer in HTML5

Design a graph search function
Reference:
• Building out the infrastructure for Graph Search
• Indexing and ranking in Graph Search
• The natural language interface of Graph Search and Erlang at Facebook.

Design a picture sharing system
Reference:
• Flickr Architecture
• Instagram Architecture.

Design a search engine
Reference:
• How would you implement Google Search?
• Implementing Search Engines

Design a recommendition system
Reference:
• Hulu’s Recommendation System
• Recommender Systems

Design a tinyurl system
Reference:
• System Design for Big Data-tinyurl
• URL Shortener API.

Design a garbage collection system
Reference:
• Baby's First Garbage Collector.

Design a scalable web crawling system
Reference:
• Design and Implementation of a High-Performance Distributed Web Crawler

Design the Facebook chat function
Reference:
• Erlang at Facebook
• Facebook Chat

Design a trending topic system
Reference:
• Implementing Real-Time Trending Topics With a Distributed Rolling Count Algorithm in Storm
• Early detection of Twitter trends explained

Design a cache system
Reference:
• Introduction to Memcached.


linspiration
161 声望53 粉丝