Guide For Beginners in Programming
Guide For Beginners in Programming
Guide For Beginners in Programming
DAY 1 TO DAY 10
Choose a Programming Language and Learn the Fundamentals of it. Almost it will take 4-5 days in
picking up a 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. 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.
Day 11 to Day 20
Learn Data Structures and Algorithms
Now it’s time to learn the most important part of the coding is Data Structures and Algorithms/DSA. 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 on DSA
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.
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
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. It’s good to know about the system design
part as well. 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…
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.
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.
Sometimes it’s not the years of experience that matters for the interviewer but the time you spend
sharpening your coding or technical skill matters for them. So it’s not good to judge your skills on the
basis of years of experience. Track your knowledge, give some online tests, and check how far you still
have to go.