100 days of coding challenge topics
100 days of coding challenge topics
Day 1 to Day 10
Choose a Programming Language and Learn The Fundamentals of it
You need to choose a programming language and you need to be stick with it. Explore various programming languages, read about them, try it out in your code editor, and check if you’re comfortable with it or not.
A lot of questions will arise when you will be choosing a language. Is Python better than Java? C++ is a faster language, so I should choose this language, Java syntax is more complicated but big companies are working on it, what if I know more than one language?
All these questions will create confusion and you will also switch to some different languages when you will try the languages in your code editor. Explore the languages and pick one which is best for you. Don’t choose a language just because it is very popular in the tech industry. You need to choose a language you’re most comfortable with. Almost it will take 4-5 days in picking up a language.
Once you choose a language learn the fundamentals of it but if you already know the fundamentals (you might have created your project in that language) then brush up on it. It has been seen that a lot of people forget the basic things of their chosen language. So you need to make sure that you have a good command of your chosen language. Learn the basic syntax, give some online tests, and remember the basic things of your chosen language. It may take around one week or 7 days to learn the fundamentals of your language.
Few things you should remember are…
Reading/Writing from/to files.
Reading input from the console.
Split strings
2D array implementation and how to use it.
Very basics things of language such as in C/C++ handling null-terminated strings
A lot of companies such as Lyft and Salesforce have a slight difference in their hiring procedure. They want the candidate to write code and solve the problems on a laptop. You will have to write the complete program and your code should pass the given test cases. You may have to work on command line arguments or you may have to parse the CSV or text files.
Other companies such as Google, Amazon, or Microsoft use a whiteboard. So it’s good that you know the basics of your language to handle both of the coding scenarios in your interview. So almost it will take 10 days to make a decision that which language is best for you and you’re comfortable with.
Resource
C Programming Language
C++ Programming Language
Java Programming Language
Python Programming Language
Day 11 to Day 20
Learn Data Structures and Algorithms
Now it’s time to learn the most important part of the coding i.e. Data Structures and Algorithms. This subject is mostly taught in undergrad and most people ignore the importance of it. But the topic in this subject is the most important thing to cover in the coding interviews.
Learn the basics of various data structures and algorithms including the complexity part. Topics are given below…
Time and Space Complexity Analysis
Arrays
Stacks
Queues
Linked List
Trees
Tries
Graphs (BFS and DFS)
Hashing
Heaps
Sorting
Searching
Cover all the above fundamentals and implement various DSA in your code editor. You also need to cover the String part which is most likely asked in the interviews.
If you’re thinking that you already know all the topics in DSA then just give some online tests and test your skill. You will surely find that you still need to revise the basic concepts.
Learn to implement array, linked list, stack, queue, tree, etc. The basic foundation helps a lot in solving the coding question so do not skip it and have a good grasp on it.
Day 21 to Day 40
Solve Basic Level Problems
Once you get familiar with the basic data structure and algorithm practice for the basic coding questions. Practicing basic level questions will help you in stretching your mind and it will prepare you to tackle medium level problems.
Do not skip the basic level otherwise, you will face difficulty in solving harder problems and you will have to go back to the basic level again. Try to solve almost 200 basic level questions within 10 days. Depending on the time and speed you can increase the number of questions. Almost 8-12 questions a day within the timeframe of 4-6 hours will help you in building a good foundation.
Sample Array Problems
Merge Two Sorted Arrays
Subarray with given sum
Find duplicates in an array
Missing number in an array
Array Rotation
Sample Linked List Problems
Detect Loop in a linked list
Rotate a linked list
Merge two sorted linked list
Searching in the linked list
Find a middle element in a linked list
Sample Stack and Queue Problems
Sort values in Stack
Implement Two Stacks using one Array
Sample Tree Problems
Minimum value in Binary Search Tree
Height of a Binary Tree
kth maximum value in Binary Search Tree
Sample Graph Problems
Implement Breadth-First Search and Depth First Search
Sample Heap Problems
Find k smallest and largest elements in a list
Day 41 to Day 60
Solve Medium Level Problems
Now it’s time to practice for some medium level questions. Medium level problems will prepare you to solve harder problems and these questions are most likely asked in the interviews. Try to solve almost 150-170 medium level questions within 20 days. Depending on the time and speed you can increase the number of questions. Almost 7-8 questions a day within the timeframe of 4-6 hours are good enough.
Sample Array Problems
Inversion of array
Maximum of all subarrays of size k
Trapping rainwater
Kadane’s algorithm
Sample Linked List Problems
First non-repeating character in a stream
Rotate a linked list
Remove loop in a linked list
LRU Cache
Clone a linked list
Find the Intersection point of two linked lists
Sample Stack and Queue Problems
Get minimum element from the stack
Queue using Two Stacks
Stack using Two Queues
Sample Tree Problems
Check for BST
Vertical traversal of binary tree
Boundary traversal of binary tree
Delete a node from BST
Sample Graph Problems
Detect Cycle in a directed and undirected graph
Find the number of islands
Word Boggle
Implementing Dijkstra
Day 61 to Day 75
Solve Hard Level Problems
Once you solved the basic and medium level question, move to the hard problems which are the last ones. Try to solve almost 80-90 hard level questions within 15 days. Depending on the time and speed you can increase the number of questions.
Sample Problems
Find median in a stream
N-Queen problem
Sudoku problem
Traveling salesman problem
Boolean parenthesization
Best Resource for Solving Coding Questions: GeeksforGeeks Practice Portal
Day 76 to Day 85
System Design
For beginners, this section is not much important but sometimes interviewers asked system design-related questions to the non-experienced candidates as well. So it’s good to know about the system design part as well. Firstly learn the basic concept of system design such as Load Balancing, Caching, Proxies, CAP Theorem, Consistency, Sharding or data partitioning, etc.
You will be asked to design a web-scale service. So once you’re done with basic concepts, prepare yourself for some most likely system design round questions such as…
URL Shortening Service (TinyURL)
Design Facebook Newsfeed
Design Uber or Lyft
Preparing these questions will help you in handling this round and you will get to know what exactly you have to do in this round. You will be taking ownership of this round and you will describe the different components of the system.
Interviewers check that if the candidate is able to build a large and complex system or not. As we have mentioned this round is mostly not asked from the beginners so you don’t need to go into too much depth of this section. However, you should have the knowledge that what exactly happens in this round so in case if it is asked in the interview, you can handle it.
Must Go Through:
5 Common System Design Concepts for Interview Preparation
How to Crack System Design Round in Interviews
Top 10 System Design Interview Questions and Answers
Design Twitter
Design Dropbox
Day 86 to Day 92
OS and DBMS
Now it’s time to study the two most important computer science subjects, operating systems, and database management systems. Most of the time junior engineers struggle with the OS and DBMS related questions and skip this part. But preparing these two subjects are also important for the interviews.
Go through the basics concepts of operating system such as
Process and Process Management
Thread and Concurrency
Multithreading
Lock
Process Scheduling
Synchronization and Deadlock
CPU Scheduling
Distributed file system
Memory management
Critical section problem
Also, prepare yourself with some database-related questions such as relational and non-relational databases, sharding, scaling, ACID property, indexing, etc.
Resources
Commonly Asked Operating Systems Interview Questions | Set 1
Most asked Computer Science Subjects Interview Questions in Amazon, Microsoft, Flipkart
GeeksforGeeks Operating System
GeeksforGeeks DBMS
Day 93 to Day 99
Object-Oriented Design
Prepare yourself for an object-oriented design question for 7 days. You should have a good understanding of software design patterns, SOLID/DRY principles, and various oops concepts. Some object-oriented design questions are given below…
Design an ATM
Design Vending Machine
Design a Parking Lot
Design a Movie Ticket Booking System
Your main goal is to gather all the requirements and transform that into comprehensible classes. You need to identify different objects and entities from a problem statement.
In interviews, you will have to explain different components and their interface. Also, you will be explaining how different components are interacting with each other using the interfaces. Prepare yourself with a use case diagram, activity diagram, and class diagram.
Day 100
Cultural Fit
Last day prepare yourself for the cultural round. Companies do not hire toxic people and also they don’t hire candidates who are not passionate about the product. Understand the culture of the company. For example, in Amazon culture is deeply rooted, and they conduct the bar raiser round. They care a lot about the leadership principle.
In interviews, you will have to show interest in the product and you will have to be honest. Fake people won’t be entertained. So make sure that you keep in mind all these things and you prepare yourself with the right attitude.
Comments
Post a Comment