Looking back and doing some retrospective justification of my actions, I feel that I did a good thing by focusing on some fundamentals such as Object-Oriented Design, Unix and Linux Systems, Basic Programming and Computational theory. But I also regret not focusing enough on Fundamentals of Software Engineering Processes, Algorithms and Data Structures (the advanced stuff) and Probability and Decision theory.

In my undergrad, I have had some courses that I didn’t fancy like Signals and Systems, Discrete Mathematics, Formal Languages and Automata Theory. Sure, they were interesting and gave you a good understanding of the fundamentals of computing science but I was of the opinion that Universities should structure the degree to suit the current industry by including courses related to modern Web App development (we did have a couple of courses but I didn’t like the depth of it).

But now as I am working on my major undergrad project and also interviewing at companies, one of the lessons I learned is how critical the fundamentals are, whether basic programming and discrete math skills or algorithms, programming and operating system skills. It’s a good idea to spend a reasonable amount of time mastering the basics, and the advanced concepts will flow easily to you. It’s all connected.

Now that I have landed multiple job offers even before finishing my degree, listening to my seniors about how life is in IT (at most times they’re doing something mediocre that is not at all exciting for the sake of, you guessed it right,money), I feel like I should work for a couple of years and pursue a master’s degree. It will allow me to expand my knowledge in the field.