Roadmap
I fell in love with computer programming during my first year at the University of Lagos as a biochemistry major. Ironically, all first-year science majors had to take a basic computer science course which final assignment entailed creating a Visual Basic calculator program. Creating the program from start to finish without help was probably the most impressive thing I had done up till that time. I was excited to see my program work and I started to think about computer programming more seriously.
I made research about the programming industry and discovered that Python was a prevalent programming language (unlike VB). I read articles and watched videos, trying to understand the possibilities one could achieve with Python as a programming language. I found out a lot of interesting stuff, so I decided to learn Python during my free time (while studying biochemistry).
Python
October 2019
I started learning Python through Sololearn. Data types, data structures, control flow, functions, object-oriented programming; I consumed a lot of content in a little time and developed doubts. I could write basic programs but I needed more insight. Therefore, I read many textbooks to digest the fundamentals of computer programing and the Python programming language. Python for Dummies, Automate The Boring Stuff with Python, and Learn Python The Hard Way were some of the books that I loved.
After becoming comfortable with Python, I thought web development (specifically with Django) would be a good way to start a career. Then, I discovered HTML and CSS which are necessities for my Django projects. I learned the basics about them and got intrigued. So, I took some time to focus on them.
HTML/CSS
December 2019
HTML and CSS distracted me from Python because unlike Python where most of my programs were run in the terminal, HTML/CSS allowed me to easily create webpages that are accessible via the browser.
JavaScript
February 2020
After becoming proficient in HTML/CSS, JavaScript became necessary to facilitate interactivity on my web pages. Learning JavaScript was quite easy and straightfoward because I had already spent months learning the intricacies of computer programming (with Python). I had to adapt to the difference in their syntaxes nonetheless. I built few web pages with the combination of HTML, CSS, and JavaScript.
React
July 2020
I had become a DOM ninja when I discovered Reactjs, although I'd seen the word flying around in publications while I was learning JavaScript for the web. Reactjs changed my perspective on web development completely. My initial intention was to learn HTML, CSS, and JavaScript as requirements for my views in Django apps; I didn't know that the JavaScript community already had a better solution.
Express
November 2020
I practiced React for months and built a few SPAs after which I tried to revisit Django [REST Framework] but discovered that I could also write server-side applications in JavaScript with Expressjs. While Django provided almost everything I needed to develop a stable backend service, Expressjs only offered the bare necessities but I liked the idea. The freedom to structure my app the way I wanted it helped me to understand APIs and the client-server architecture much more than I did with Django.
A single file, with few lines of code, is enough to run an express
server:
const express = require("express");
const app = express();
app.get("/", (request, response) => {
response.json({
status: "success",
message: "Hello World"
data: {},
});
});
app.listen(8080);
React Native
April 2021
Naturally, as a React developer, I'd learn about React Native, a react-analogue for cross-platform mobile application development. I only learned the basics of React Native because it wasn't easy to deploy apps and it required a lot more computer resources to setup, compared to web development.
Next.js
May 2021
React is great, but can really be unproductive when working with large projects. Nextjs was the superstar of web development this time, and fortunately, it was based on React. Not only the developer experience makes it good, even the user experience likewise. Nextjs handles image optimization, static, server and hybrid page rendering, TypeScript support, smart bundling, route pre-fetching, and more. No config needed. It made web development a lot easier and way faster for me.
TypeScript
December 2021
TypeScript was a little challenging at first because I was used to dynamically typed languages like Python, but before I knew it, I became addicted. Choosing TypeScript for my nodejs projects begs no question, it's simply the only choice. Type-safety, easy documentation and 90% less bugs; I'd only write JavaScript if you forced me. Ironically, the love for TypeScript made me to start writing typed Python code using
mypy
.
Dart
March 2022
Just like React Native, I learned Flutter superficially, as well as the underlying programming language, Dart. Dart is sweet. While I'm not an OOP fanatic, I love Dart's syntax, type system and sound null-safety. Writing Dart programs makes me feel confident.
C
September 2022
I enrolled into the ALX software engineering program and was greeted with the C programming language. C, to me, was some antique and scary programming language that should never be patronized, but ALX demystified that. In few months, I was already developing complex data structures and algorithms from scratch with C.
This was a major turning point in my career; when I decided that I would transition into software engineering full-time; I dropped out from my biochemistry major (it was my third year). While I was able to secure a job and an optimistic feeling about my programming career, I still loved the academia and wished to pursue university education in computer science for reasons that include the opportunity to conduct academic researches, develop a first-rate understanding about the intricacies of computer science in order to solve very difficult problems, invent new ideas, and eventually improve the quality of life in my country and around the world. Therefore, instead of giving up on university education, I enrolled at Miva Open University to pursue a bachelor degree in computer science.
There are many other things that I learned over the years, interesting activities I participated in, experiences that shaped me, and challenges that I don't need to mention. All of these only made me love computer science and programming even more. I watch videos and read articles about different programming languages, libraries, frameworks, emerging technologies, and other topics at my leisure, not because I need to know everything, but because I find learning amusing and have nothing more interesting to do.