Data Structures and Algorithms: Through a Beginner's Perspective

Data Structures and Algorithms: Through a Beginner's Perspective

Introduction

Before you dive into my coding world ,let me introduce myself, am Shreyaushi Das currently a 1st year(2024) student pursuing a bachelor’s in Information technology. I had computer in my 12th standard thus I know a little bit of Java and there we were introduced to the topic of Data Structure and Algorithms, at first I didn't knew how crucial as well as important the topic was, fast forward to college DSA is a must to do topic to land a job.

What is data structure and algorithm?**

Data structure is like a building block of efficient software development. You need to know data structure is a way of organizing and storing data so that it can be accessed easily. Data structure mainly can be classified into 2 broad categories linear data structure which includes array, stack queue, etc. and another one is non-linear data structure which provides for tree and graphs. Whereas an algorithm is a step-by-step procedure a computer follows to tackle a problem , a knowing algorithm is an essential part of programming and computer science.

Importance of DSA in today’s tech world?

Ever since I joined college I have kept hearing that DSAs a must need to do for a coder as they are the foundation of efficient problem-solving, software development, and system design. The companies are looking forward to working with those who have knowledge of DSA as it provides a backbone for all types of coders whether they want to explore web dev, designing, or developing an AI-based tool. DSA gives you the tools to write better, more efficient, and more scalable code. For an interview, there are a rounds specified for certain company hiring where the candidates are often evaluated based on their problem solving and technical skills on a given time thus also viewing if 1 can handle the work under pressure and time management skills.

Which language to choose ?

If you are new to the coding world and want to start DSA the big question you would be having is which language should I focus to ace my DSA skills, fret not I was one of them between the 3 most popular languages C++, Java and Python I was lost too. Python being the most highly demanding language in the tech world I decided lets start with Python but while following a Youtube channel I discovered DSA in Python is comparatively easy as Python has inbuilt functions that can be called and bhoom! Your program is solved which in the end doesn’t result in me learning anything. Also if you are choosing to go for Python there are very few resources available on the internet for use in Python.

There are a few companies that take their DSA interview rounds in C++ or Java. To be on the safer side I decided to continue my DSA journey with Java as I have learned basics such as sortings (selection. bubble, insertion), binary search, stack and queue, recursion, etc in 12th standard. But if you do not have prior knowledge then you can start with C++ too as it is mostly used for DSA because of its large community, you will not face problems in searching C++ resources. C++ doesn’t have inbuilt functions like Python which makes it look challenging language to learn, which can appeal to individuals who enjoy problem-solving and want to improve their coding skills.

If you want to consider C++ to ace your data, it not only sharpens problem-solving abilities but also strengthens programming fundamentals and deepens your understanding of key computer science concepts. Additionally, it enhances career prospects, especially in industries requiring high-performance computing expertise.

Some YouTube channels you can check are

codewithHarry & Jenny's lecture

If you want to consider Java like me then it offers the advantage of transferable skills, versatility, and strong industry demand, making it a valuable choice for career opportunities. Its ease of learning and effective implementation of DSA concepts further enhance its appeal.

Some YouTube channels you can check are:

Abdul Bari & Kunal Kushwaha

Snippet from my DSA Journey

I have started with the Abdul Bari playlist which includes a total of 163 videos and if are just like me who lose patience while watching large videos this playlist would be best as the time for each video ranges from 10 minutes to 30 minutes. The playlist starts with the basics of an algorithm.

Algorithm and program difference is algorithm is domain knowledge , can be written in any language and is independent of hardware and software , where as the program should be done in a specified computer language , dependent on hardware and software . Time complexity is introduced with different types of functions such as constant, linear, quadratic, logarithmic exponential , etc.

There are asymptotic notations to simplify time functions like big-oh(which is upper bound), big-omega(lower bound), and theta(average bound). Theta is mainly preferred as it gives the average bound. To know asymptotic notations better we need to dive deeper into their properties like general, reflexive, transpose, transitive, and symmetric.

Conclusion

Data structures are vital in programming as they help manage data complexity, improve code efficiency, enhance data integrity, support fast data retrieval and manipulation, and enable scalable software design. Selecting the right data structure allows developers to create efficient, scalable, and maintainable code.

This was my little take on data structure and algorithms till now. I hope to be consistent in my learning and hope to share my leetcode journey blog too.. till then Happy learning coders!!