home
code

Early beginnings...

As a student of Computer Science in High School I got my first experience with making a program from scratch that had a database and a UI.

We learnt Python and MySQL at the time. So our project was a game made using pygame that utilised a local mysql database for a simple leaderboard.

code

Level Up

In the first semester of college I once again learnt Python at a more advance level. I was introduced to concepts like OOPs, modularity etc.

I also learnt Tkinter which is another way to make UI in Python. As part of our course requirements we implemented another game using Tkinter as the UI.

code

Something new

The next language I learnt was . After rigourously using Python for 2 years, switching to C provided with a new challenge. However, in the end it proved to be a good experience. Though type safety is a concept that python chooses to avoid, on getting used to it, it can be very useful, specially in debugging.

Just as before, we were assigned to make project for this course. We implemented a calculator that did calculations other than the usual such as base conversions, matrix arithmetic and geomteric shape metrics.

code

The World of Web Devlopment

In the third semester one of the major projects we were tasked with was a full stack web application. This was the first time I was introduced to the deeper parts of web development aside from the basic HTML and CSS we are taught in school.

Our course was for learning the MERN stack (MongoDB, ExpressJs, React, NodeJs).

As a side product of the project I learnt how to handle JSON files and how servers worked. This was an interesting project and it provided me with a lot of knowledge that still comes in handy today, because in today's world a website can be a useful way to communicate with people over the internet.

Our project was a book store/ book management application. At that point in time we implemented simple CRUD operations.

code

My First Open Source Contribution

As part of the above web technologies project, I was able to publish an open source React component that provided a basic carousel for various types of html elements ranging from images to plain divs.

Beyond Web Development

In the fourth semester we were introduced to Computer Networks and Microprocessors which unlocked a realm of knowledge that was inaccessible before. Learning Computer Networks gave a very reasonable explanation for many of the standards maintained in today's web development scenario. While basics of web development usually deals with receiving, sending and representing information, Computer Networks forms the entire structure that lies in between, with its complexities hidden from one that does not look for it.

Databases

As the problem sizes became bigger, there soon was a need to maintain big data in a understandable and accessible format. So we learnt technologies like MySQL, MongoDB, etc. in great depth while also looking at their alternatives and competitors.

The Cloud

In today's systems, most data is somehow connected with the cloud to make data storage more reliable and scalable. Looking at Web development and databases from a cloud perspective seemed to be a final connecting piece that bridged the gap between book knowledge and current technology trends. As data of the future becomes larger and more intricate, the cloud seems to be a permanent tool required in some way or the other

Design in Problem Solving

This seemed to be something that was not really a part of anything else but was always used in every step of big projects. Topics like Object-Oriented Programming, and Generic Programming gave a sort of methodology to program instead of applying the usual method of rapidly inserting code lines in an insensible manner. By organising code into objects where possible, not only did the code become cleaner, but each operation made more sense. Generic Programming made the code efficient and in someways intuitive. By replacing repeated code lines with single code blocks as a "one size fits all approach" code began to look more mathematical, which is sometimes more understandable than native coding natures of a language.