Git Product home page Git Product logo

anushka23g / complete-placement-preparation Goto Github PK

View Code? Open in Web Editor NEW
3.1K 64.0 971.0 2.54 MB

This repository consists of all the material required for cracking the coding rounds and technical interviews during placements.

Python 100.00%
placements placement placement-preparation placement-preparation-portal faang faang-interview faang-preparation amazon aws datastructures algorithms-and-data-structures data-structures datastructures-algorithms interview algorithms technical-interviews dream-company language google dsa-for-free

complete-placement-preparation's Introduction

๐ŸŽ Placement-Preparation- Complete Roadmap ๐ŸŽ


This repository consists of all the necessary questions and their solutions required for cracking the coding rounds and technical interviews at tech companies as well. And this content will surely help you to crack your dream company. This material has been taken and combined from various different sources. It will be a complete roadmap for your placement prep.

# ๐Ÿš€ Getting Started
The folders above consist of all the required questions and their solutions as well, according to each topic

These resources helped me to get an internship at my Dream company Amazon and I hope it will help you too! I will keep on updating this repository, If I feel that anything is missing.

Let me know,if you wish to add anything else to this content.

๐Ÿ“ฎ The pdfs added above consist of the 500 Most asked questions on DSA in FAANG interviews- topicwise


### THE PDF FILES CAN BE FOUND [HERE](pdfs) ### THE MARKDOWN FILES CAN BE FOUND [HERE](md)

***If you like the content and wish to support/sponsor it*** โค๏ธ:

Buy Me A Coffee
or send me an email at [email protected]

๐Ÿ† What do I need to prepare for the interviews?

To get your dream company, you should be good in the following while facing an interview:

๐Ÿ“˜Solid Data Structures and Algorithms. Deep understanding of these subjects, how to combine them, how to find/design suitable ones for a problem, etc. This is not surprising as indeed these are the most foundational topics on which much of CS rests.

๐Ÿ“˜Strong in OOPS. OO Design and principles, subtle aspects of language, strong understanding of the language capability and limitations, its design and implementation.

๐Ÿ“˜Good understanding of OS, DBMS, Networks. These subjects were highlighted whose understanding is extremely important on being a successful software engineer for high-end work.

๐Ÿ“˜Ability to write well structured and efficient code. Ability to evaluate efficiency of the code at different levels โ€“ algo, DS, execution level (OS), hardware to reduce memory as well as time; understanding of different layers of the system, and ability to evaluate/assess the program at these different layers.


๐Ÿ† Picking a Language

Before anything else, you need to pick a programming language to do your interviews in. I do support learning and writing code in different programming languages. But when it comes to the programming interview preparation, I feel itโ€™s important to choose one language to focus your prep on and get to know it very well. It takes some time for languages to master, and if you spend most of your time and resources on mastering algorithms, there's hardly any spare effort left to master a new language. If you are comfortable with using one of the mainstream languages, only for interviews, there is no good need to learn a new language.

Pick up a language you have worked with and you are confident with!

But if you have enough time, I'd suggest you to learn the most used languages during candidates
(this is just my suggestion, you can also go with any other language you want or you are comfortable with):
๐Ÿ“• C++
๐Ÿ“• Java
๐Ÿ“• Python
๐Ÿ“• C

Some of the languages used at various organisations as reported online:

๐Ÿ“™ Amazon: Java, Javascript, Ruby, Python, Perl sources
๐Ÿ“™ Facebook: PHP, C++, Python, Java, Perl. High regard for dynamic/scripting languages. sources
๐Ÿ“™ Google: C/C++, Java, Python, Javascript, Go sources
๐Ÿ“™ Microsoft: C++, C#, Java, Python sources

Tip: Go for the language you are comfortable with, doing any kind of problem, solving things and writing code AND also please know about the internal functionalities as well and how different data structures are implemented in it.


๐Ÿ† How can I best prepare for interviews?

Practice writing code in a Google doc, then running test cases on the code and optimizing it. Below are some materials that will help. Inside the information there will be a few links, a video, and also a few practice problems to help you know what to expect. Here are the top notes: You will be given a problem or puzzle to solve and youโ€™ll need to talk about your approach and discuss the complexity of the solutions you are proposing. You will then need to code up your solution. Youโ€˜ll want to practice coding with the first 100-150 unsorted problems on LeetCode.

Always talk through your solution, explain any trade-offs you are making between time and memory and ask any questions you need to clarify the question. It is worthwhile to talk about your initial thoughts to a question, though a brute force solution will be received less well than taking time to compose a more efficient solution.


๐Ÿ† The sequence for studying Data Structures and Algorithms should be as follows:

1๏ธโƒฃ Arrays & Matrix
2๏ธโƒฃ String
3๏ธโƒฃ Searching
4๏ธโƒฃ Sorting
5๏ธโƒฃ Hashing
6๏ธโƒฃ Stack
7๏ธโƒฃ Queue
8๏ธโƒฃ Linked List
9๏ธโƒฃ Recursion
1๏ธโƒฃ0๏ธโƒฃ Backtracking
1๏ธโƒฃ1๏ธโƒฃ Tree
1๏ธโƒฃ2๏ธโƒฃ BST
1๏ธโƒฃ3๏ธโƒฃ Heap or priority queue
1๏ธโƒฃ4๏ธโƒฃ Graph
1๏ธโƒฃ5๏ธโƒฃ Greedy
1๏ธโƒฃ6๏ธโƒฃ Dynamic programming
1๏ธโƒฃ7๏ธโƒฃTrie


๐Ÿ† Technical Preparation tips:


The main areas software engineers should prepare to succeed at interview at FAANG:

๐Ÿ“— Algorithm Complexity: It's fairly critical that you understand big-O complexity analysis. Again run some practice problems to get this down in application.

๐Ÿ“— 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 absolutely 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. 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.

๐Ÿ“— Operating Systems: Know about processes, threads and concurrency issues. Know about locks and mutexes and semaphores and monitors and how they work. Know about deadlock and livelock and how to avoid them. Know what resources a processes needs, and a thread needs, and how context switching works, and how it's initiated by the operating system and underlying hardware. Know a little about scheduling. The world is rapidly moving towards multi-core, so know the fundamentals of "modern" concurrency constructs.

๐Ÿ“— Coding: You should know at least one programming language really well, and it should preferably be C++ or Java. C# is OK too, since it's pretty similar to Java. You will be expected to write some code in at least some of your interviews. You will be expected to know a fair amount of detail about your favorite programming language.


๐Ÿ† Projects:

โœ”๏ธ For examples of project you can check my other repositories here , Will be adding more projects soon!
โœ”๏ธ If you are a beginner and wish to learn Data Structures and Algorithms in a fun way ๐Ÿ˜ , try working on this project, It will help you clear a lot of concepts, make you confident about your skills and you'll gain better knowledge of DSA.
๐Ÿฆ„ You can also contribute to the project and help the community if you wish to!


๐Ÿ† SOME EXTRA TIPS:

๐Ÿ”ฐ Coding Practice

๐Ÿ“’ LeetCode (Go to Problems -> Algorithms)
๐Ÿ“’ GeeksForGeeks
๐Ÿ“’ Hackerrank

๐Ÿ”ฐ General Interview Prep

๐Ÿ“š GeeksforGeeks
๐Ÿ“š High Scalability
๐Ÿ“š Interview Puzzles DONT FORGET TO CHECKOUT my followup article more better preparation HERE - Has more tips and tricks on how I prepared!! Will be soon adding resources for CS Fundamentals as well...

Do star, fork and share the repo to show your support, it would help others too!

Let me know your views on the repository or any changes or improvements and if you wish to contribute too at: [email protected] or LinkedIn

โค๏ธ Thank you all for making this repository trend at Number 10, in the worldwide trending on Github

complete-placement-preparation's People

Contributors

anjannair avatar anushka23g avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

complete-placement-preparation's Issues

Change from PDF to markdown

Github's preview for PDF is quite slow and the hyperlinks you have given inside the pdfs don't seem to be clickable while in github.

Only downloading the PDF gets the hyperlinks. But since the documents are in a relatively quite simple format I think it would be great if it was converted to Markdown files as it would render fast previews in Github as well as give access to the links within Github itself without having to download the file.

Unable to access content

I am not able to access the pdf , it only the front page that i am able to see and download.Kindly check this !

Making a copy of markdown file for the pdf's.

Please make a exact copy of the pdf's in form of markdown files and link them in README.md so that we don't have to download the pdf's (this will also help to get the updated changes). Moreover, tools like pandoc could be used to convert those markdown files to pdf's. I can send a pr, just let me know.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.