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

Popular posts from this blog

FOUNDATIONS OF CYBERSECURITY GOOGLE(COURSERA) QUIZ ANSWERS

HOW TO BYPASS THE 2FA(TWO FACTOR AUTHENTICATION)

BITFLIPING

PlayItSafe google cyber security professional course 2 (COURSERA)

AUTOMATED SCRIPT FOR FINDING XSS

BEGINNER BUG BOUNTY TOOLS PART-1

The article explores the technique of remote server control through reverse shells employed by hackers, emphasizing their ability to gain unauthorized access and control over servers.

BEGINNER BUG BOUNTY TOOLS PART 2

Things should do after sublister(sublist3r)

Identifying the device category using the Win32_Battery WMI class.