Hi, Iā€™m Martin šŸ‘‹

Developer, Maker & Designer

En Desarrollo

Hola šŸ‘‹, por el momento esta seccion aun esta en desarrollo šŸ™‚ pero permanece al pendiente en mis redes sociales para recibir las actualizaciones.

Conocimientos Basicos

Algorithm Complexity: You need to know Big-O. If you struggle with basic big-O complexity analysis, you will struggle in interviews.

Sorting: Know how to sort. Don't do bubble-sort. You should know the details of at least one n*log(n) sorting algorithm, preferably two (say, quicksort and merge sort). Merge sort can be highly useful in situations where quicksort is impractical, so take a look at it.

Hashtables: Arguably the single most important data structure known to mankind. You should know how they work. Be able to implement one using only arrays in your favorite language, in about the space of one interview.

Trees: Know about trees, basic tree construction, traversal and manipulation algorithms. Familiarize yourself with binary trees, n-ary trees, and trie-trees. Be familiar with at least one type of balanced binary tree, whether it's a red/black tree, a splay tree or an AVL tree, and know how it's implemented. Understand tree traversal algorithms: BFS and DFS, and know the difference between inorder, postorder and preorder.

Graphs: Graphs are really important at Google. There are 3 basic ways to represent a graph in memory (objects and pointers, matrix, and adjacency list). Familiarize yourself with each representation and its pros + cons. You should know the basic graph traversal algorithms: breadth-first search and depth-first search. Know their computational complexity, their tradeoffs, and how to implement them in real code. If you get a chance, try to study up on fancier algorithms such as Dijkstra and A*.

Other data structures: You should study up on as many other data structures and algorithms as possible. You should especially know about the most famous classes of NP-complete problems, such as traveling salesman and the knapsack problem, and be able to recognize them when an interviewer asks you them in disguise. Find out what NP-complete means.

Mathematics: Some interviewers ask basic discrete math questions. This is more prevalent at Google than at other companies because we are surrounded by counting problems, probability problems, and other Discrete Math 101 situations. Spend some time before the interview refreshing your memory on (or teaching yourself) the essentials of combinatorics and probability. You should be familiar with n-choose-k problems and their ilk - the more the better.

Coding: You should know at least one programming language really well, and it should preferably be C++, Java, Python, C, Objective-C, Swift, Kotlin, Javascript. The language you feel most comfortable in should be indicated as the language you are interviewing in at the top of this email. Please notify me if it seems incorrect.

Plataform - Web development: HTTP(S), how browsers work, APIs, authentication, cookies. Understanding the architecture of the web and how to optimize web applications. Basic SQL and relational database administration. HTTP Protocol Basics: Pa I, Pa II.

Big Data - Basics of data modeling fundamentals, database architecture/eciency, SQL commands/syntax and query and schema design. These pages are great resources to get staed with your prep: Intro to SQL (Kaggle), Intro to SQL (Khan Academy).

Networking - TCP/IP, UDP, ICMP, IP packets, DNS, OSI layers, load balancing, static routing, BGP, OSPF in Linux/UNIX.

Infrastructure - Shell scripting, logging, initialization, soware packaging and distribution. Kernel, libraries, system calls, memory management, permissions, le systems for Linux/Unix or Windows. Container technologies like Kubernetes and Docker.

Recursos recomendados por Google

Sitio oficial de preparacion para roles en Google

Como prepararte para una entrevista laboral en Google

Ejemplo de entrevista laboral en Google

Como contrata Google

Recursos para repasar

Fundamentos del protocolo HTTP

Fundamentos de SQL

Interview Tips

Clarify: You are welcome to ask follow up questions if you do not understand the question or need additional information.

Situation: Describe the situation that you were in or the task that you needed to accomplish. You must describe a specific event or situation, not a generalized description of what you have done in the past. Be sure to give enough detail for the interviewer to understand. This can be from a previous job, a volunteer experience, or relevant event.

Task: What goal were you working toward? Outline the quantitative or qualitative outcomes you had to achieve.

Action: Describe the actions you took to address the situation. What specific steps did you take and what was your particular contribution?

Results: Describe the outcome of your actions. How did the project or situation end? What did you accomplish?