Ridwan’s Edition: My Journey Into Tech

Table of contents

No heading

No headings in the article.

Hi, my name is Ridwan Waheed, and this is my story.

After completing my undergraduate degree, I had an interest in acquiring a tech skill, and after researching, I found that data science was the most in-demand tech skill. Additionally, my educational background in surveying and geoinformatics was already related to handling and managing large amounts of data, so it made perfect sense for me to pursue this path. To start, I took multiple courses on the subject, specifically focused on Python for Data Science, and SQL for data analysis.

During the period that I was enrolled in these data science courses, I found that I enjoyed programming, but analyzing data was not what I enjoyed. So, I started researching and following tech communities on Twitter to find a path that would pique my interest. That was when I discovered web development and decided to enrol in the Duke University Software Engineering Specialization course on Coursera. Through this course, I learned the basics of HTML and CSS and also found it enjoyable to use JavaScript to create dynamic and interactive web pages. I was able to put my new skills to use by creating simple web applications, such as a To-do list and a Paint application, on CodePen: Online Code Editor. At this stage, my skills were still very rusty, so don’t expect a fancy webpage.

After completing the course, I became thoroughly captivated. I had a strong desire to dive deeper and continue learning beyond the basics. To that end, I enrolled in Angela Yu's web development course on Udemy. The course covered the basics and intermediate levels of HTML, CSS, and JavaScript. I was able to put my new knowledge to use by building an online information resource (Tindog) for dogs with HTML and CSS. You can find the Tindog at [](http://file///C:/Users/Ridwan/Desktop/ridwanwaheed.github.io/Tindog/)ridwanwaheed.github.io/Tindog/[]. As you might have observed, my skillset has experienced a massive improvement from what it used to be, and I had already started coding using an IDE (Visual Studio).

The web development course by Angela Yu provided a comprehensive overview of both frontend and backend web development. However, I needed a deeper understanding of certain topics such as CSS flexbox and grid, as well as JavaScript. I found that CSS-Tricks.com helped me better understand these topics through clear explanations and graphical illustrations. To further strengthen my skills, I also followed additional resources like Traversy Media on YouTube, which employed a more practical approach to teaching these concepts. Following the resource, I built a cloud hosting website (Zino Cloud) with HTML and CSS that works with some animations but has no functionalities. You can find the website hosted on Netlify at [https://elastic-gates-297fba.netlify.app/index.html]. At this stage, I was ready to dive deep into JavaScript.

I enrolled in the FreecodeCamp JavaScript Algorithms and Data Structures course, where I gained a strong foundation in JavaScript by learning the basics such as variables, arrays, objects, loops, and functions. Additionally, I also learned two important programming styles: Object-oriented Programming (OOP) and Functional Programming (FP). This course prepared me for further advancement in JavaScript. After completing it, I enrolled in the highly recommended Jonas Schmedtmann's The Complete JavaScript Course 2023: From Zero to Expert! This course elevated my JavaScript knowledge to a whole new level, as the concepts were well explained, the approach was practical, and my previous knowledge from the FreecodeCamp course was very helpful. Through this course, I discovered that I enjoyed the logical aspect of web development more than the design aspect, and my interest shifted from front-end to back-end development. After completing this course, I revisited the web development course by Angela Yu to explore the backend section, and I was captivated and fascinated by it. I finally found my true interest: backend development.

From this point on, my tech career started taking shape. I reached out to a senior developer whom I had contacted previously during my initial research into different tech paths and following tech communities on Twitter. I asked him to teach me programming and guide me in my tech career. Unlike others, he replied and asked about my current level of knowledge, to which I replied that I was a total beginner. He asked me to learn JavaScript and get back to him when I had advanced beyond the beginner level. I waited a year before contacting him again, after completing the Jonas Schmedtmann JavaScript course. To my surprise, during our first conversation, he had asked if I had any interest in backend engineering. I quickly expressed my interest and let him know that I was currently researching backend courses. He then set up a meeting where he introduced me to backend engineering, a product he was working on, and offered me a two-month internship, paying for my courses and providing a monthly stipend. However, this opportunity was contingent on passing a test to assess my JavaScript knowledge, which was a quiz app that stored user login details, answers, and total results in the local API storage.

During the internship, I began by familiarizing myself with the official Node.js documentation and taking the SQL - The Complete Developer's Guide (MySQL, PostgreSQL) course by Maximilian Schwarzmüller. I then moved on to learning Typescript and more about Node.js by using resources such as the FreecodeCamp page on YouTube. However, unlike before, I did not build any web applications with this new knowledge. Instead, I was introduced to the Node.js framework being used to build the backend of the ongoing product's app, AdonisJS. AdonisJS is a Node.js framework that brings fluency and expressiveness to the Node.js ecosystem and is also known for its beautiful code and simplicity for the backend. To be honest, I struggled to get familiar with the framework, not because it was hard to use or the documentation was lacking, but because I had no prior experience with backend development or working with frameworks. My boss wrote a series detailing the process of building a web application using Vue for the front end and AdonisJS for the back end, which you can find at https://tech.ndianabasi.com/series/google-contacts-clone. This series helped me to understand API development with AdonisJS and Version Control (git), and it introduced me to testing APIs with Postman, but it wasn't enough to get me started working on the company's product app, as I couldn't afford to make a costly mistake. I completely lost confidence and composure when I was introduced to the product's backend. I had never seen such a large codebase, let alone worked on it. I struggled to even remember the most basic things.

To help me become familiar with API development, I was given a smaller project to work on with a junior front-end developer. The project was a FIFA World Cup web application that provided and stored details about the group stage, such as the 32 teams, matches played, teams in each group, match results, and so on. This project tested my knowledge and helped me become comfortable building RESTful APIs with AdonisJS. I became familiar with the AdonisJS folder structure, concepts such as routing and controllers, database migration, models, factories, seeders, validators, middleware, and testing. I learned how to connect to the database, store and retrieve data, create endpoints, and, most importantly, do API testing. Testing was particularly challenging for me as I was not familiar with it, having primarily used Postman to test API endpoints while following the series.

I have found that, unlike data science, web development is something I not only want to do but also enjoy. I am still learning and improving my skills, particularly in the area of backend development. I now feel confident in my abilities and am ready to take on a job in this field. I am excited about the opportunity to work on the product's backend and face the challenges that come with it while also continuing to learn and gain more knowledge and experience. I plan to learn a popular framework like Express.js in the future, but for now, I want to focus on AdonisJS and gain a deeper understanding of backend development, specifically with Node.js. My ultimate goal is to further my education by pursuing a graduate degree in software engineering at a renowned university and ultimately become a geospatial software engineer, developing cutting-edge tools that enhance quality of life and contribute to the advancement of geospatial technologies.

Thank you for taking the time to read. I hope it was worth your while.