on a quest with Data Structures

Shubham Sawant
howcatcancode
Published in
3 min readAug 9, 2017

Not so long ago I started with Data Structures, I remember joining a tuition class and leaving it in between because I wanted to apply my own mind in solving problems. Let’s just say you want to learn Data Structures on own, though you have formal classes and all.

Start with making a plan of action. In this post, I would like to suggest a plan with some of good resources and methodologies.I follow Learning by Doing philosophy proposed by John Dewey.

For starting to learn anything new we must fix what resources we are going to follow. Analyze sources and choose a few from the huge pool out there.

We’ll divide the further text into three sections -

Importance of Data Structures

Why do we need Computers? Well, the literal meaning of Computer is something/someone that compute, compute logical or arithmetic operations. Every operation is performed on some Data. Simply adding two number involves two numbers and an operation of summing the numbers. We want quick results or we want to solve problems with less amount of time.
To achieve this, one of the important things is how we store the data. Hence we try to store data in such a manner that the desired operations can be done in the least possible time. We design proper structure for our data to achieve better efficiency. How to design/identify proper structure ? What are the common operations that we perform? It’s all about the access manipulations that we perform. Design data-structures is same as that of designing containers.

Some operations for containers are — access element, delete element, get size of container, replace element, search element.

All of the computer stands on top of Data Structures and Algorithms that harness the power of Data Structures’ Design. We’ll keep Algorithms for next post.

Resources to be used

We have a lot of freely available and good resources at our disposal, we need to identify and use them wisely.

Books

Books are the best Teachers that we can have. Following are some of the books to start with for Data Structures. Books are arranged in an order for Beginners to Masters.

  1. Data Structures: A Pseudocode Approach with C
    Authors: Richard F. Gilberg, Behrouz A. Forouzan
  2. An Introduction to Data Structures with Application
    Authors: Paul G.Sorenson, Jean-Paul Tremblay
  3. Data Structures Using C and C++
    Authors: Yedidyah Langsam , Moshe J. Augenstein , Aaron M. Tenenbaum
  4. Data Structures and Algorithms in C++
    Authors: Michael T. Goodrich, Roberto Tamassia, David M. Mount
  5. Handbook of Data Structures and Applications
    Authors: Dinesh P. Mehta, Sartaj Sahni

Video Tutorials/ Online Courses

Following are a few fundamental tutorials and Online Courses to start with Data Structures, these can be followed on self-pace.

  1. Data Structure by mycodeschool.
  2. Programming, Data Structures and Algorithms by NPTEL
  3. Harvard: Introduction to Computer Science by edx
  4. IITBombayX: CS213.1x Foundation of Data Structures by edx

Online Practice Portals

  1. Visualgo-Training
  2. Geeksforgeek — DS
  3. Hackerearth — Data Structures Notes and Problems for Practice
  4. Hackerrank — Data Structures Problems

Plan of Action

Following is the plan of action for beginner but enthusiast with determination to learn Data Structures.

  • Decide Programming Language - Be wise and according to multiple constraints such as your academic need or industry need choose a proper programming language.
  • Decide Resources to be followed.
  • Make a Plan to manage multiple Resources.
  • Learn, Understand and Implement the Data Structures ( Implementation is of utmost Importance).
  • Practice regularly on coding web-portals, viz hackerrank, hackerearth.
  • Write good code, with comments and modularity.
  • Try to read errors and think like compiler while debugging code.
  • It’s good practice to think about the future, write code which will require less amount of efforts to add an enhancement. As in write reusable code.
  • Ask for code reviews to seniors, teachers or you can post codes codereview-stackexchange.

Ultimately CODE.

With this I’ll stop, I’ll keep on updating the resources. I want readers to come up with short descriptions for all the resources mentioned here, you can do that in comments. If you have any question please ask in comments and if you find this helpful pass it on to those who might like this.

Have look at my other post : ) and Thanks for your precious time.
Happy Coding, keep the bitpawsonboard.

--

--