├── Codeagon.md ├── One-Week-Interview-Prep.md ├── README.md ├── Front-End-Interview-Questions.md └── Javascript-Notes.md /Codeagon.md: -------------------------------------------------------------------------------- 1 | * [2017](https://www.hackerrank.com/contests/codeagon/challenges) 2 | * [2016](https://www.hackerrank.com/contests/codeagon-2016/challenges) 3 | * [2015-16](https://www.hackerrank.com/contests/codeagon-15-16/challenges) 4 | * [2015](https://www.hackerrank.com/contests/codeagon2015/challenges) 5 | -------------------------------------------------------------------------------- /One-Week-Interview-Prep.md: -------------------------------------------------------------------------------- 1 | 1) http://old.hiredintech.com/the-master-program --Hired in tech step by step tutorials with questions interview prep in a week. 2 | 2) https://www.interviewbit.com/courses/programming/ --Interview bit coding platform with theoretical explanations in the form of videos. 3 | 3) https://github.com/lifeboardshortcut/java-cheat-sheet --Common java concepts to get ready for prep in java.(solutions) 4 | 4) https://github.com/yangshun/front-end-interview-handbook -- Front end interview handbook for facebook. 5 | 5) https://github.com/mbeaudru/modern-js-cheatsheet -- modernjs-cheatsheet 6 | 6) https://leanpub.com/javascriptallongesix/read -- basic js concepts 7 | 7) https://github.com/wwwebman/front-end-interview-questions -- recent front end interview questions 8 | 8) https://repl.it/ -- platform for js practice. 9 | 9) https://www.hackerrank.com/domains/tutorials/10-days-of-javascript -- 10 days of js on hackerrank 10 | 10) https://www.toptal.com/javascript/interview-questions -- 37 javascript interview questions 11 | 11) https://www.toptal.com/javascript/interview-questions -- git repo for front end 12 | 12) https://www.toptal.com/javascript/interview-questions -- javascript garden explanation about js. 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Technical Interview Preparation Resources 2 | 3 | | Data Structure | Algorithms | Networking| Operating System| Database| 4 | |----------------|------------|-----------|----------------|---------| 5 | |Linked List |Complexity Analysis|Network Layer| Process and Threads | SQL Query| 6 | |Doubly Linked List|Searching (Linear and Binary)| HTTP Protocol| Memory Organization| Indexing| 7 | |Queue|Sorting Algorithms| TCP & UDP Protocol| Booting Process | Normalization| 8 | |Stack|Basics of Graphs|Subnetting | Paging| ACID Property| 9 | |Hash Table|BFS and DFS | Masking|Deadlock| SQL Injection and Prevention 10 | |Binary Tree|KMP Algorithm| STMP and POP3| Starvation| 11 | |Binary Search Tree|Robin-Karp Algorithm| Working of PING| Critical Section| 12 | |Priority Queue|Dijkstra's Algorithm|TCP Handshake |IPC| 13 | |Trie|Prim's Algorithm|| Inode 14 | |Suffix Tree| Divide & Conqure and DP| | | 15 | 16 | 17 | ## Specific Position Interview Topics 18 | | Frontend Devs | Backend Stuff|Android Devs| 19 | |-------------|--------------|------------| 20 | | HTML5| HTML|Java| 21 | | CSS3|CSS| Android Versions and changes| 22 | |JavaScript| Server configs| Working with Android Studio | 23 | |JQuery| Working with APIs| Android UI and UX| 24 | |Saas|Chrome Dev Tools| Best Practices | 25 | |React|Python, PHP or Ruby| 26 | |Angular| 27 | |Chrome Dev Tools| 28 | 29 | ## Links to Algorithm Study 30 | | Topic | Links | 31 | |----------------|------------| 32 | |Cracking the Coding Interview|[PDF Link](https://www.dropbox.com/s/sqfrohhoogrs3nk/cracking-the-coding-interview.pdf?dl=0)| 33 | | Cracking the Tech Career | [PDF Link](https://www.dropbox.com/s/72eg4nozynsno2o/Cracking%20the%20Tech%20Career.pdf?dl=0) | 34 | | Computer Science Distilled | [PDF Link](https://www.dropbox.com/s/k5aqfxgnvacmrkb/Computer%20Science%20Distilled.pdf?dl=0) | 35 | |Dijkstra's Algorithm | [Coding Ninja Explanation](https://www.youtube.com/watch?v=7GoDDj3onfI&index=7&list=PLrk5tgtnMN6QkNhdIiClZIhxJGwzCEVv9)| 36 | | 10 Java Regular Expression Examples | [Blog Post](http://www.mkyong.com/regular-expressions/10-java-regular-expression-examples-you-should-know/) | 37 | | Interview study level wise on InterviewBit | [Interview Bit](https://www.interviewbit.com/courses/programming/) | 38 | | CS Concepts Brushup in 7 days | [Hiredintech.com](http://old.hiredintech.com/the-master-program) | 39 | | Break Into Tech Job & Interview | [Article](https://haseebq.com/how-to-break-into-tech-job-hunting-and-interviews/) | 40 | 41 | 42 | 43 | ## Technical Interview Resources/Links 44 | #### Video 45 | * [Google shares Technical Interview Tips](https://www.youtube.com/watch?v=qc1owf2-220&autoplay=1) 46 | * [White Board Solving Technical Questions](https://www.youtube.com/watch?v=XKu_SEDAykw) 47 | #### Articles 48 | * [Google Tech Dev Guide](https://techdevguide.withgoogle.com/) 49 | * [Tech Interview DOJO on Skillenza](https://skillenza.com/communities/tech-interview-dojo) 50 | 51 | 52 | ## Competitive Coding Tips 53 | * [Avoid TLE Errors](https://www.youtube.com/watch?v=2frmG3Z_PRo) 54 | -------------------------------------------------------------------------------- /Front-End-Interview-Questions.md: -------------------------------------------------------------------------------- 1 | * Explain the concept of ES6 Promises to a 5-year-old. 2 | * What are the advantages of using ES6 maps over objects? What about using ES6 sets over arrays 3 | * Given input: 4 | 5 | // could be potentially more than 3 keys in the object above 6 | items = [ 7 | {color: 'red', type: 'tv', age: 18}, 8 | {color: 'silver', type: 'phone', age: 20} 9 | ... 10 | ] 11 | 12 | excludes = [ 13 | {k: 'color', v: 'silver'}, 14 | {k: 'type', v: 'tv'}, 15 | .... 16 | ] 17 | function excludeItems(items, excludes) { 18 | excludes.forEach(pair => { 19 | items = items.filter(item => item[pair.k] === item[pair.v]); 20 | }); 21 | return items; 22 | } 23 | 24 | 1. Describe what this function is doing... 25 | 2. What is wrong with that function ? 26 | 3. How would you optimize it ? https://www.glassdoor.co.in/Interview/Given-input-could-be-potentially-more-than-3-keys-in-the-object-above-items-color-red-type-tv-age-18-QTN_2372314.htm 27 | 28 | 29 | 30 | * code an observer pattern 31 | * Given 2 identical DOM trees (but not equal) and one element of the first DOM tree, how would you find this element in the second DOM tree? 32 | * Write an array flatten function. 33 | * 34 | No Offer 35 | Positive Experience 36 | Difficult Interview 37 | Application 38 | 39 | I applied through a recruiter. The process took 2+ months. I interviewed at Facebook (Menlo Park, CA (US)) in October 2016. 40 | 41 | Interview 42 | 43 | I applied through a recruiter who contacted me in September. She was nice and we booked a Phone/Screen coding interview. 44 | They are using CoderPad for these. This first interview consisted of 3 questions, they all seemed pretty easy and then the interviewer asked for edge cases, a bit more challenging but nothing impossible. The interviewer was really nice and encouraging. 45 | After that, I had another Phone/Screen interview which was basically the same.… 46 | Show More 47 | 48 | Interview Questions 49 | 50 | Given 2 identical DOM trees (but not equal) and one element of the first DOM tree, how would you find this element in the second DOM tree? 51 | 3 Answers 52 | Write an array flatten function. 53 | 3 Answers 54 | Write an emitter class: 55 | /* 56 | emitter = new Emitter(); 57 | 58 | // 1. Support subscribing to events. 59 | sub = emitter.subscribe('event_name', callback); 60 | sub2 = emitter.subscribe('event_name', callback2); 61 | 62 | // 2. Support emitting events. 63 | // This particular example should lead to the `callback` above being invoked with `foo` and `bar` as parameters. 64 | emitter.emit('event_name', foo, bar); 65 | 66 | // 3. Support unsubscribing existing subscriptions by releasing them. 67 | sub.release(); // `sub` is the reference returned by `subscribe` above 68 | 69 | * Can you write a function that deeply flattens an array? 70 | * some HTML and CSS design given a picture by the interviewer. 71 | * Given two identical DOM tree structures, A and B, and a node from A, find the corresponding node in B. 72 | * Given a picture, how would you hide/show a child picture on hovering on this parent? 73 | * How would you ensure clicking on this picture would go to a specific link? 74 | * How would you ensure the child is positioned in the top right of the parent picture? 75 | -------------------------------------------------------------------------------- /Javascript-Notes.md: -------------------------------------------------------------------------------- 1 | * Arrays are of reference type in JavaScript 2 | * [When creating prototype object of reference type](https://gist.github.com/happymishra/0ba5ae121273e83c5883162f26410ee3#file-prototypeissue2-js) 3 | * define all the object specific properties inside the constructor and all shared properties and methods inside the prototype 4 | * [Prototypes](https://hackernoon.com/prototypes-in-javascript-5bba2990e04b) 5 | * problem with using object literals (pre-ES6), is property/key orders are not guaranteed, \\all keys can only be strings.\\ 6 | Objects also lacks a forEach method. If you are used to iterating arrays using .forEach(), objects cannot be iterated in this way. 7 | * Map provides a very convienent, .size property to get the size of the map. 8 | * Another option to iterate the map is to use for..of syntax, which can easily provide access to the keys and values of the map. 9 | ``` 10 | for([key,value] of m) 11 | console.log(key + '=' + value) 12 | ``` 13 | 14 | * m.keys() returns a full-blown iterator, so you can iterate the keys one by one, on demand, using .next() 15 | * difference between map.values() and map.entries() => values return only the value, entries return an array of the kind [key, value] 16 | * Maps can take 2d arrays in the constructor. Each array entry should have the format [key, value]. 17 | ``` 18 | var arr = [['a', 1], ['b', 2]] 19 | var m = new Map(arr) 20 | ``` 21 | * In set, you can *.add* same values. 22 | * Difference between Arrays and sets : 23 | \\ Arrays -> contains whatever value you push 24 | \\ Sets -> contains only unique values 25 | * no primitive values can be added to WeakSet. It only accepts objects. No .forEach() to iterate 26 | * According to Document Object Model (DOM), every HTML-tag is an object. Nested tags are called “children” of the enclosing one. 27 | * The DOM represents HTML as a tree structure of tags. 28 | * Tags are called element nodes (or just elements). Nested tags become children of the enclosing ones. \\ 29 | **As a result we have a tree of elements: is at the root, then and are its children etc.** 30 | * The text inside elements forms text nodes, labelled as #text. 31 | \\**A text node** contains only a string. It may not have children and **is always a leaf of the tree**. 32 | 33 | * Everything in HTML, even comments, becomes a part of DOM. 34 | * The reason we've put the