I have been programming for a year or two, I love what I do, I am constantly solving problems commit by commit, to the variety of people it feels like I am quite good at things, but this is a blog that contradicts with the idea I am good at programming. I am not, I am awful at it, I mostly write the code termed as glue code. Glue code is a term in which the programmer tends to write a system combining lots of small modules written by others. Till this date I have worked on high-level tools that encapsulate all the complexity, making it much easier to work with, this approach of programming is good, it helps programmer write code much faster that are easier to maintain and bug-free. This approach also tends to introduce the basic standards that need to be followed by a developer while building a software and also helps developer from re-inventing a wheel.
As a student and a CS undergraduate this approach is bad, why know I want to share a story, a couple of days ago I was given a set of challenge basic computational problems, as my experience on programming was quite good, I thought I could solve these problems easily, I was wrong, very very wrong, I could not even solve a basic problem (Algorithm to find out LCM), I could have solved this if I had an internet connection but the point is It’s not about internet, anyone could solve any problem looking through the pages of Stack Overflow and typing cryptic looking words on google. For god’s sake, I am a CS undergraduate, companies expect me to solve a problem by myself, think and understand the problem to write efficient software solutions.
This experience is bugging me continuously since then, I have been hunted by the experience. I wanted to improve myself and truly understand the ins and out of the computer system, As a software developer I thought I should start this journey of learning being focused more on software technology. I started learning about computational mathematics, I am just starting it out so I can’t quite comment on it !!! But I can tell It’s a foundation of Computer Algorithms. Talking more about computational mathematics it falls right in the middle of three sets Computer Science, Mathematics, and Statistics.
I have read somewhere there are two types of software developers in the world one who works with tech stack and one who knows data structure and algorithms. I am the person who works with tech stack, once those stacks get outdated I am also outdated, on the other hand, those developers who know data structure and algorithms well enough, they never get outdated, as every higher level tools depend on small and many data structures and algorithms. I am up on the journey, I want to be better at this game, I want to learn everything even though if it takes me years to really understand these concepts.