Guide For Beginners in Programming

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

100 DAYS OF CODE – A COMPLETE GUIDE FOR

BEGINNERS AND EXPERIENCED


Well, there are a lot of topics and things to cover if you’re targeting some big tech companies. The
challenge is the limited timeframe and based on our research we need to say that it may take almost 14
weeks or 100 Days. We have divided the complete topics into 100 days and all you just have to do is to
follow it and stay committed to coding for 100 days.
If you follow this approach and stay committed to coding then not only you will develop a good coding
habit but also you will be able to crack the interviews of 60-70% of tech companies.

 Data Structures and Algorithms (Coding part and problem solving)


 System Design
 Operating System and DBMS (database management system)
 Object-Oriented Design
 Cultural Fit
If you’re a beginner then make the target to solve almost 450-500 coding questions.
If you’re an experienced person then make the target to solve almost 300 to 350 questions.
System design round is mostly asked from experienced people so beginners have to focus on this section
less but experienced one has to focus on this section more.
If you’re a beginner then try to commit your time for at least 4-6 hours every day.
If you’re an experienced one then you need to commit for 2-3 hours every day.
Ideally, you shouldn’t take more than 20–30 minutes to solve any given problem but keep in mind that
this rule is not applicable to all the questions.
Prerequisite: We are assuming that if you’re a beginner then you already have completed some projects
in your college and if you’re an experienced developer then surely you might be working on some
projects.

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.

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
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…

 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 basic 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.
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.

100 Days of Code For Experienced


Before you go ahead keep in mind that you need to focus on many things. You’re expected to perform
well in the coding round, system design round and in the other rounds as well. You have the advantage
to use the knowledge you have learned in your day-to-day job.

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.

You might also like