Wednesday, November 6, 2013

Data Structures: How to Strengthen Your Knowledge

Source: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCziehDm8fCTyy5rcmfWphOSXqqSoUYfmIk0xHRxlCEDKRksXZKgJyNyt-pMGagc2YDuK019Rn5Kr_XNWArHuPaS8UqnvC9oAjXIGbIS4GUyQ26OebP5o915xv6WNX533ctHbCJ-a_nCw/s1600/DATA+Structures.png


The key to a solid foundation in data structures and algorithms is not memorizing every detail of each structure and its forms, and not to memorize each Big-O time. This knowledge is beneficial, don’t get me wrong, but in order to truly grasp the concept of each structure and algorithm, we must start from the basics.

One of the most important concepts to learn, visualize the data structure. Understand what the data structure looks like, what it should accomplish, and how it is used. This is an extremely important task that you can do, from basic stacks and queues to the most difficult self-balancing binary trees, visualization is key to understanding how the structure should work. I find that it helps to draw it out and map it step by step in order to fully understand it.

Next is to know when and how you can use different data structures for certain applications. It's difficult to know when you would need to use a heap instead of a tree or even a hash function so fully understanding what each one does is essential. Practice makes perfect with this tip. Grab a book on data structures and find some sample problems and just start knocking them out. It'll start becoming second nature after a couple of problems.


Companies that ask technical questions during their interviews will definitely be asking about data structures and how well you know them and to apply that knowledge in some sample problems. Being able to understand and visualize complex data structures will definitely put you ahead of the game. I hope these two tips helped you out! Good luck!
Source: http://img.wonderhowto.com/img/15/10/63474989383032/0/coding-fundamentals-introduction-data-structures-and-algorithms.w654.jpg


4 comments:

  1. Hi Steve,
    I like the tone of your post, you sounded like you are giving some tips to a friend on data structures. And yes, as you said, visualizing the data structure really helps. I always do that. First visualize and then use a pencil-paper to draw it out. While writing a computer program, one of the most important decisions to make is choosing the appropriate data structure and one cannot do not that unless he knows what his program should do and which data structure supports that functionality. As you said, every software programmer should have good understanding of data structures.

    ReplyDelete
  2. I like the encouraging nature of your post Steve. it is a very conversation tone that helps us get more comfortable with the imposing monoliths that are data structures. I remember when I took CS 146 last semester, and I was having a lot of trouble with self balancing binary trees. For the longest times I could not wrap my head around them, but when my prof suggested to grab a piece of paper and draw it out. that was when things started to fit into place. That link you provided was a very helpful one. I think I will hold onto that.

    ReplyDelete
  3. This is a great article. I love that you wrote this for us. This applies to all the students who will be reading this post. And you are so right about needing to know this knowledge for interviews. It will definitely give the interviewee the edge when answering questions. I also loved how you linked some reading material for further knowledge. I really don't feel like this article was lacking anything.

    ReplyDelete
  4. Hello Steve,
    First of all, I like the pictures that you used for your blog post. They definitely describe and present a simple, yet effective image of data structures. As for the rest of your blog post, I find it interesting and beneficial for understanding the concepts of data structures. I do agree that it really helps to draw out the structure to fully understand it since it is a challenging concept to grasp. Keep up the good work.

    ReplyDelete