Yes ! you heard me right. I am very much interested in writing and sharing the progress of my interview preparation in this blog. Starting from tomorrow, I will be using different problems to learn Algorithms with Data Structures.
In this journey, I would love to solve different kinds of problems by which I can learn and understand the Why and how to use different Data structures in different scenarios.
Why and What are Algorithms
For this question, if I put it bluntly. Computers are dumb ! Yes, they are ! They don't know What to do ? When to do it? How to do it ? anything. But all they know is to follow the instructions given to them. So since a machine is so dumb we have to write everything in a form of Binary for it to understand. So one might wonder that my python or java code is not is binary, how will my machine understand me ? To answer it simply, your java or any other language is called a high-level language. At the end of the compilation, it will be Binary. Compilers are not a topic of this blog so we shall discuss them in detail some other time.
Let's get back to the point. The systematic code you write for a machine to understand without any ambiguity can be called an Algorithm. YES, that means your "Hello World program is also an algorithm. But in this complex world of cloud computing, your print statements is very little.
Different types of algorithms
There are numerous algorithms out in the world. But there are a few which are fundamental for the rest
- Recursive Algorithm
- Divide and Conquer Algorithm
- Dynamic Programming Algorithm
- Brute Force Algorithm
- Backtracking Algorithm
- Greedy Algorithm
In this process of 100 Day, I will be discussing each one of the above Algorithms
And also in I would highly recommend you to join the 100-days Coding cult. I bet It will be great.
Benefits: What the #100DaysOfCode can do for you
There are several good reasons you should consider committing to this challenge:
Coding will become a daily habit for you — a habit that you can easily maintain after you’ve finished the challenge.
Every day that you consistently code, you’ll build momentum. That momentum will make it easier for you to learn more advanced topics. You won’t have to spend extra time trying to remember what you did previously. You can stay in the “flow” of coding.
You’ll make friends and meet like-minded people who are also working through this challenge alongside you. They’ll help you find the strength to keep coding even on the days when you don’t feel like you’re making progress. They can also help you when you inevitably get stuck.
The projects that you’ll build will be small in scope, so by the time you finish, you’ll have completed several of them — and gained a wide range of experience.
If you were just working through tutorials, you wouldn’t have much to show for it. But with #100DaysOfCode, you’ll build real portfolio projects that you can show to potential employers and share with your family.
These projects will give you practice with concepts that frequently come up during developer job interviews.
Your GitHub profile will look extremely active. And yes, hiring managers and recruiters do look at these.
You’ll greatly diminish your fear of starting a new coding project. It will become a natural, ordinary thing to do.
You’ll have a good reason to stop procrastinating and start coding every day.