Getting Started With Algorithms For Budding Computer Science Engineers
- In Programming
This article is going to be different from a ton of articles out there on the internet. It will be different because I’m going to explain it in a way that would directly get inside of you (doesn’t matter what your IQ is).
I will not be going to copy-paste the definitions from books to bore you rather I would try to make you understand from the best of my knowledge.
In this article, I want you to understand the origin, present and future of the algorithms. And how algorithms are shaping our everyday reality. Because many times you think you understand but you didn’t. Let’s try to understand the actual reality of an algorithm. Because algorithms are the soul of computers.
I think I’ve said enough… Let’s Get Started With Algorithms.
- Do you have to be good at mathematics to become a great programmer?
- Programming Best Practices – The Art of Building Modular Applications
Algorithms are older than you think
The oldest algorithm (300 BC) known to us as the Euclidean Algorithm is where it all started in the history of mankind.
It was the first documented step-by-step process to find the greatest common divisor. This simple algorithm changed the way people looked at a problem.
Pseudocode for the same would be:
define calculateGCD(a: integer, b: integer) if a equals 0 return b otherwise return calculateGCD(b % a, a)
The algorithms did not became happenings until 1960s. This was the time when we started advancing in the field of computers. And to make computer solve a problem we required algorithms.
This was the time when the usage of word Algorithm took a leap.
This was also the time when the usage of word Computer started growing at almost the same rate as the word Algorithm. Both words show amazing co-relation over time. See the image below.
Now the people were no longer alien to Computers. People started recognizing the power of computers and what they were capable of. And soon they realized that the success of computers directly depends on its ability to efficiently solve a problem. And to efficiently solve a problem it requires better algorithms.
More algorithms mean more mathematicians/programmers. Thus the demand for computer programmers started growing tremendously.
You can see all that just by looking at their word usage.
That is the history of Algorithms and how it plays an important role in human evolution.
You might be thinking that how is this going to help you understand Algorithms better?
The truth is once you know the origin of anything, you tends to know its importance and that is where we are heading next.
Why Study Algorithms?
This is a perfectly valid question in 2019. But not so much in the 1960s. In that era, algorithms were the soul of every great program. And studying algorithms really helped them to efficiently solve the problems that could not otherwise be addressed.
But today the algorithms are not taken seriously by the college students. The main reason behind it is the ever increasing number of programming languages and frameworks and online communities that provides everything without many efforts. Also, today you have the most sophisticated machines with more than 4GB RAM and a terabyte of storage space. Who cares about efficiency and storage, eh?
This is a really bad way to look at it. Especially when the world needs new algorithms to make impossible possible (Artificial Intelligence).
If you are in India and your only goal is to land a job in the IT sector, then probably you do not need to study algorithms at all. You should start practising your Googling skills but if you want to work for Google or Facebook or you want to compete in the market then Studying Algorithms are going to play the major role in your journey.
Reasons to Study Algorithms
#1. To solve problems that could not otherwise be addressed.
A very useful implementation of algorithms is while creating networks or circuits.
It asks for the minimum number of nodes or edges that needs to be removed to separate the remaining nodes into their isolated sub-graphs.
Can you do it without actually formalising an algorithm?
#2. For intellectual stimulation.
Learning algorithms actually increases your intellect. It makes you smart and provides you a new way to look at the world around you.
I would like to quote Francis Sullivan:For me, great algorithms are the poetry of computation. Just like verse, they can be terse, allusive, dense, and even mysterious. But once unlocked, they cast a brilliant new light on some aspect of computing.~ Francis Sullivan Click To Tweet
And Donald Knuth:An algorithm must be seen to be believed.~ Donald Knuth Click To Tweet
#3. To Become Proficient ProgrammerI claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures. Click To Tweet
And Niklaus Wirth:Algorithms + Data Structures = Program.~ Niklaus Wirth Click To Tweet
Every great programmer focuses on solving the problem in the most elegant and efficient manner. And every bad programmer just wants to get the job done.
No world would have existed around us without the algorithms.
#4. Unlocks secrets of life and universe
Algorithms usage has increased by many folds in the scientific research and development.
Algorithms are becoming a modern day language to communicate ideas across the globe.
Today computational models are replacing the Mathematical Models in science inquiry.
Cleary, algorithmic approach are far easier to teach and illustrate.
#5. Simply Fun and Profit
Why not study algorithms?
You never know when you are stuck by the Idea God. It is always good to know algorithms so that you can manifest your ideas into reality.
How to Get Started With Algorithms
You just need a pen and a paper and a basic knowledge of any one programming language. To put it in bullet points:
- Knowledge of any one programming language
I will be writing a series of articles on Learning Algorithms for the next few months focussed on making you understand how it is done. I will also encourage you to put your thoughts in the Disqus comments below. This is one of the best ways
you we can learn and grow.
This article was only focussed on Getting you curious about the algorithms. In the coming articles, I will be talking about some of the most important algorithms in the world and how it changed our present and impacting our future.
I will not just talk about the algorithm rather help you understand it and implement it with your choice of programming language.
Make sure you subscriber to BeMyAficionado so that the latest post will directly land in your inbox. Or you can subscribe for the push notification by clicking on the bottom right bell.
I hope to see you next time.