Are Algorithms Important In Programming?

DHARA DOSHI
TechbasiCS
Published in
3 min readMar 20, 2016
In the long run, algorithms are essential in programming!

Many students or software developers in early phases of their career ask this question. They believe in the things they see, and what they see is the amazing Android/iOS/Windows apps, web apps that we all use everyday. They are tempted to write one of their own, they think that’s programming and they wonder about the importance of learning algorithms.

Programs are an implementation of algorithms in a particular programming language. An algorithm is a step-by-step procedure to solve a problem.Programs and Algorithms are tools and techniques used towards one end: Problem solving.Algorithms are one of the most important aspects of Computing.Let me share a few problems they solve :

  • The Human Genome Project makes use of sophisticated algorithms to solve mysteries in medicine.
  • The Internet ,in it’s entirety is composed of so many algorithms ,which make it possible for people like you and me to have the knowledge of the universe at the click of a button.
  • Be it Google’s search engine or Maps (which show us possible routes to reach our destination or eCommerce sites which use Cryptography for security ,all of these wonderful applications that make our lives better today ,have algorithms at their core.
  • Google’s Self-driving car, Recommender systems at Amazon, spam detection in mails are few of the algorithms in the Machine Learning, Natural language processing, Artificial Intelligence space.

So internalize it , that the entire technology stack has and will always be based upon the foundations of algorithms .

Are algorithms necessary? Hell, yeah! No two ways about it .Do you need to study them ? Well,it depends !

The thought process behind these algorithms are sometimes very complex and difficult to master. Yet, there will always be people who are interested in writing these libraries ,frameworks,compilers and programming languages and for them algorithms are essential to master.Today, there are numerous libraries that provide the power of algorithms, leverage them and program your application.If you are interested in writing a web application or an android application , and what you want to do has already been done by someone and exposed through a library , it makes a lot of sense to use it rather than reinvent the wheel.

But a basic understanding of algorithms will go a long way, later into your software development career , say when you come across an acute performance efficiency problem and no library can help you.

To prepare yourself for that , check out the following resources to hone your skills:

  1. Start Warming up on algorithms right from Trees,graphs, heaps to dynamic & greedy programming.

2. TopCoder is one of the most important competitive programming forums today.Look at one of their tutorials to start competing in these challenges.

3. I have heard a lot of good about this book because of it’s simplicity and humor.

4. This course by Tim Roughgaden is absolutely the best course I have taken on Algorithms

5. And finally the bible of algorithms:

Other avenues where being good at Algorithms will help are:

Get paid for the Algorithms you write

Open Marketplace for Algorithm

This seems to be good news for the algorithm enthusiasts to get some cash while working on awesome algorithms.

Get hired in top tech companies

Google/Facebook/Microsoft love asking algorithms based question in their interviews, so if you want to be a software developer in any of these companies, this answer on Quora is an exhaustive guide ,you’ll love me for sharing this gold mine.

If you like this article,please give your love and Recommend it :)

And don’t forget to give some feedback in comments :)

--

--

TechbasiCS
TechbasiCS

Published in TechbasiCS

Thoughts about Computer science, tech and being in the software industry. Be ready to be motivated!

DHARA DOSHI
DHARA DOSHI

Written by DHARA DOSHI

Computer Science Addict, Software Engineer, Philosopher, Avid Reader, Lover of learning, Optimization Freak.