The top 6 things to do if you are studying Computer Science in college

It is not just about solving algorithm problems on CodeChef and Leetcode. These are the six things I think are worth your time in college, written six years into working as an engineer.

Sep 07, 2023 career · learning · engineering · students

Originally published on Medium.

And it’s not just solving DSA Problems on CodeChef, Codeforces and Leetcode

Photo by Jefferson Santos on Unsplash
Photo by Jefferson Santos on Unsplash

Your years during college are one of the most underrated years in shaping your journey as a Software Engineer. Quite often, we lack guidance and end up madly following where the herd is going. The narrative around the corner is to solve as many DSA problems as possible. Quite often, the factor driving this is the huge salaries that Software Engineers often make. But this is not the only thing that matters.

I started working in the Software Engineering domain in 2017 and these are some of the things that I feel should be spent time on, during your formative years as an engineer.

Focus on understanding the Core Software Engineering Subjects

The core computer science subjects that your Computer Science curriculum teaches you are really important in the world of software engineering.

This includes Operating Systems, Databases, Computer Networking, Distributed Systems, Design and Analysis of Algorithms, Compilers and everything else that the curriculum teaches you about Computer Science.

Doing this would help you to understand how things work under the hood when you code. It gives an appreciation of how amazing the field of Computer Science is. Lastly, you can apply them to solving concepts you learn such as Concurrency, Indexing, and Sharding to name a few, to build performant applications that scale well in the real world.

I discuss here how these come into play especially when you are the person serv

Build projects in each of the subjects you study

When we are studying theoretical subjects, we get to learn a lot of concepts. To strengthen our understanding further, it helps to build projects around the same. It would help you to get an understanding of what could fail when you get to actually doing it.

To take it a step further, teach it to someone else.

Be curious

If there is one advice I could give, it would be this. Never let your curiosity die. Always question what you do:

  • Why does this library perform better than the other one?
  • Why do we use a certain programming language over the other?
  • How does the Garbage Collector in a programming language know which objects to delete?
  • Why does Java not have pointers?

Being curious helps you to go the extra mile and learn the concepts in much more depth.

Explore what you want

Software Engineering is one of those fields where you can do so many things.

  1. Do you love seeing what you build show up on user’s devices?
  • You can try learning about User Experience, User Interface design or building Frontend applications
  1. Want to learn how things work when you do something on a mobile app?
  • Explore Backend Engineering
  1. Want to understand how features are tested before it reaches you?
  • Learn about various cycles in Software Testing — Unit Tests, Behavioural Tests, Regression Tests, Performance Tests and so much more.
  1. Want to learn about how organisations actually decide what to build
  • Learn about user research and prototyping.
  1. Want to learn how Amazon recommends the shiniest iPhone 14 Pro Max or how Swiggy estimates the delivery time of your next Biryani order?
  • Learn about Machine Learning.

The list is endless. This is why Software Engineering is such a beautiful domain ❤. So many diverse sets of roles come together to build what we use in our daily lives.

Don’t jump into every other bandwagon coming your way

You would see a bunch of trends emerging in Software Engineering now and then.

  • Generative AI
  • Blockchain
  • Quantum Computing, and so on.

My primary guidance there is to follow your curiosity. Learn about a few things in depth in 80% of your time. The rest 20% of your time can go towards understanding what exists. Here is a much more detailed article that you can read later, where I cover how I deal with the explosion of opportunities.

Gain experiences by meeting new people

One of my fondest memories is attending VIT Vellore for a Cybersecurity Summer School in 2017, the final year of my college. Some of the people there were present to learn more about the field. We got to learn from several knowledgeable guest speakers and even write a research paper of our own.

The experience was amazing, to say the least. To be honest, if I could do one thing for the rest of my life at this point, it would be to spend my time constantly learning and meeting new people. You get to learn so much from everyone which could take you some months or even years to learn.

Leaving you with a few photographs from my time at the VIT Summer School.

If you found this interesting, consider clicking the ‘Follow’ button to join me on my journey of learning, exploring, and delving into the expansive world of computer science, and life and sharing my experiences with you. ❤️


Originally published on Medium.