My journey into the Tech Industry
A journey from discovering programming in school to becoming a full-time software engineer, fueled by curiosity and self-learning.
I started programming when I was in grade 8. Not true. All I knew was some HTML and CSS. The first time I got exposed to programming was in grade 11 in school. The first few weeks were lectures, and I didn't give much thought to it. The aha moment for me was in the CS Lab. It just felt intuitive. I did quite a bit of stuff and wrote programs in C++.
University Days
Fast forward to university. I have no idea why I chose Electronics & Biomedical Engineering as my undergrad subject. Electronics was just never my thing. The first semester of university passed quickly. It was in the second semester where I had a computer science course, Programming in C. A few weeks into the course, COVID hit. Suddenly, no lectures meant I had control over what I did. I'd wake up, turn on my computer, and browse for hours. It was then I thought of building something.
Knowing a bit of HTML and CSS, my initial instinct was to build a website. I watched a couple of YouTube videos, and I was in. I quickly realized that web development wasn't just about writing HTML and CSS. To host a website, I'd need a server, an application server to serve my frontend content, and a database server to store data. The part I loved reading about was computer networking. I told myself, before I start learning programming, I'm going to master one thing first: Touch Typing.
The Touch Typing Journey
Learning to type is one of the fundamental skills everyone should acquire, even if you're not in the software industry. It changes the way you interact with computers. I found a website called Ratatype that teaches touch typing for free and kept practicing until my speed reached a little over 80 WPM. Now, I no longer have to look at the keyboard while typing.
Diving Into Programming
At the time, I knew some C++, but searching the web for the best programming languages always pointed to Python and JavaScript. So, I started learning them.
Coming from C++, Python was super easy to start with. Maybe it was because of its English-like syntax or the fact that you don't have to compile and then run an executable. (P.S.: C/C++ is still my favorite programming language!) A couple of weeks in, I loved coding in Python. It was time for me to revisit web development.
Choosing a Web Framework
The next realization: learning Python alone wasn't enough. To build web applications, I needed an HTTP server. Searching the web for Python frameworks, I kept finding Flask and Django. Then came the toughest choice for any programmer: choosing a framework. Most people recommended Flask for beginners, so I started with Flask.
After reading the Flask documentation, I got a Flask app running my website. Out of curiosity, I decided to try Django and rebuilt the same app. I instantly fell in love with Django. It had everything I needed: an admin panel, database connectivity, authentication, authorization, and more.
The First Deployment
Next, I wanted to deploy my application to the web. I quickly realized that Django's development server wouldn't suffice. After some research, I discovered I could host my Django app for free on PythonAnywhere. I signed up and started following the instructions. That’s when everything changed.
While following the steps, I forgot to set an environment variable, and the config file opened in vim. Panic struck. I didn't know what to do and ended up closing the browser tab. But when I retried, I reached the same step. I realized I was in a terminal-based editor called vim. The first thing I learned in vim was how to exit. Initially, I didn't like it, but since I had a Mac where vim was pre-installed, I started using it for small file edits. Over time, I grew to love vim and now use it with plugins as one of my main code editors.
Learning About Servers
A few months later, I felt PythonAnywhere didn't offer enough flexibility. I decided to move my app to a virtual machine (VM) in the cloud. This decision taught me a lot about servers and setting up applications. While deploying directly on a VM isn’t ideal for production, it gave me a deeper understanding of networking. I explored tools like Docker and Nginx, which further fueled my passion for software development.
Stepping Into the Industry
To gain industry experience, I pursued a remote internship as a Python Developer. It lasted three months, and I absolutely loved it. The company even offered to extend the internship, but I had to decline due to upcoming finals. A few months later, I landed a job as a Software Engineer through college placements. Today, I'm working full-time as a Software Engineer and loving every moment of it.
Thank you for reading!