As a long-time computer scientist, I know that the field has many topics to offer. I started my journey back when I was starting my secondary education, i.e., when I was about 12 years old, by learning how to code in C++
, following an online tutorial on OpenClassooms, formerly known as "le SiteDuZero".
Back then, I was just trying to create some games after a friend told me he had developed an in-terminal app where the user has to guess a magic number. It worked as follows:
- The computer generates a random number, the magic number
- The user types a number as a guess
- The computer tells if the magic number is above or below the current guess
- Repeat
2
and3
until the user finds the magic number
Much fun you would say, and actually it was. I learned about the basic of programming, i.e., variables, branching and loop statements, etc. Trying to solve some toy problems by coding was an intellectual challenge I enjoyed, and still do! I guess it is similar to answering riddles or filling crosswords.
Anyway, I went on and joined a CS program at my local university, eventually graduating from a Master with a focus on AI and optimization.
But...
While I did learn many great concepts, I always felt that I was lacking a specific CS-related skill, and what a skill. It allows you to directly interact with end users and present all your cool results. You guessed it, I am talking about web development.
Before college, the further I went with web development, was to explore another tutorial from "le SiteDuZero" about HTML
and PHP
, but then I moved to automating some games I used to play, using AutoIt
. This story will be for another time.
During college, I was fairly proficient with Python
and thus, I thought that developing websites with Django
, a Python
web framework, would be pretty easy. I even had an idea, I was going to make some kind of streamer schedule, where each streamer can define when he will be streaming and subscribers can then have a combined agenda of all their favorite streamers' schedules. Unfortunately for me, I was quite lost in front of all the web concepts, such as ORM, templating, routing. I was trying to skip too many steps at once.
The switch
A couple of months ago, at the time of writing this article, I changed jobs. I joined a Belgium-based startup, Wequity, with the ambition to use finance to promote sustainable investment. This mission would materialize in a ESG (Environment, Social & Governance) dashboard, where end-users can monitor how well companies are doing in those dimensions. In order to make that happen, we built a pipeline to fetch articles and social media posts from the web and extract the ones about ESG. Great! We had those data, but we were struggling to allow our end users to access it with a good experience. So we hired a lead full-stack developer.
Once again, he would be able to create an awesome web app with dynamic graphs. I was amazed.
Talking with my colleague, he told me how quick it is possible to become proficient with web development using JavaScript
especially with Node.JS
. Tools I had never used before, although I know they are standard in the web industry.
JavaScript
sometimes has a bad reputation, I never really understood why. Arguments often seems pretty subjective such as "it is an ugly language" or "it is error-prone". I decided it was time for me to make my own opinion! And to that end, I built this website with in JavaScript
running on a Node.JS
server.
Getting started
- Hey, I'm going to create a
JavaScript
website! - Oh, cool, which framework will you be using?
- ...?
Of course, there are several ways to build "a JavaScript
website". When developing a web app, there are challenges which you will encounter and that have been faced by many before you. That's how frameworks emerged. Basically, it's a collection of pre-built codes which you can use for typical web tasks. There are a lot of frameworks, have a look at an overview here.
My colleague advised me to start with simpler frameworks and recommended me a Udemy course, which is apparently a gold standard. So I have been following it for a couple of months, learning about the Express
framework, which had been used by 81% of web developers in 2021, according to the overview I shared above.
You can follow my progress on this GitHub repo, and about a quarter through the lessons, I now have better understanding of web development overall, not only about JavaScript
and Express
. Concepts which did not make sense in Django
now do, and I feel as if I could go back to it. This is thanks to the great material from the instructor, which explains practically how to use it but also what happens under the hood.
However, I will stick to JavaScript
. Indeed, it is widely used, and I believe it is not by chance. I heard that you can become extremely productive with JavaScript
for web development, and that is one of my goals.
This project
Okay, I am learning about JavaScript
, what do I do now? Hey, remember that cool blog from Duarte? Let's make one too! Any resemblance is purely coincidental.
I met Duarte when I joined Wequity, he is a great Machine Learning Engineer, and was helping the project. He is also a blogger, so naturally I asked him how he made his website. He explained to me that it was actually a statically generated website, using the so-called Jamstack.
I decided to reinvent the wheel and built something similar, but using what I am learning. Of course, this website is unlikely to be efficient, but that is not the point. The point is to practice, get better, and share my journey along the way. Please feel free to check out my coding skills, as I made this website open source.
Which brings me to the end of this post. So what can you expect? Well, basically anything I feel like sharing. Currently, my areas of interest are mainly tech and sports. I already have a couple of ideas for future posts about those, in the meantime, you can already check out some videos I made. I also intend to make this website evolve, maybe some day I will transform it to a single page app, or try the latest and greatest frameworks.
Thanks for reading this introduction and see you soon!