I'm never going to be a frontend developer, CSS is annoying.
- Sean, after making his first website
Going into web dev was an idea I've had for a long time, ever since I knew what web dev was, but I was always put off by the idea of having to design UIs and working with CSS, until I found out about templates and component libraries.
First Contact
I first touched HTML and CSS in high school where we had to create a static HTML website in my ICT class. Unsurprisingly, almost all my classmates hated it, even me, since none of us saw usefulness in such a task (bear in mind, I didn't decide to take CS until after). After a lot of struggling, I did manage to create one, and you can still actually find it in my GitHub here.

For me, the most frustrating part of development was CSS, as it was a pain having to center every div, color every element, size every image, to make it look just a bit like the design I had in mind. Though early exposure to HTML/CSS would normally be a good thing, the frustration that clung on to me didn't do well for any web dev aspirations I might have in the future.
In fact, this frustration, or I might say "fear", of CSS persisted throughout my university life. I knew I didn't have much of a knack for design, so I never bothered learning or picking up web dev, as I thought I would have to create designs from scratch if I wanted to do anything noteworthy. I knew website templates existed, but who would that impress? So I just stuck to backend development technologies like databases and data science things like R and Python ML libraries.
Fast forward to earlier late July 2023, I just finished my university and had a nice vacation my family. Now I'm looking for a job, preferably in software development, and so the painful process of job hunting began. A month goes by and no hits. So I started looking for things to do that would be helpful for my career. I tried joining a game jam, but didn't see it through to the end as it was held for only two days and both my team mate and I were too inexperienced at Unity. Indeed, I was interested in backend technologies and data science, but how can I gain experience if I had no servers manage, databases to configure, or models to train.
Second Chance
Out of desperation, I finally looked into making a website. A personal website. One that recruiters can look at to know more about me and that can impress people at first glance. And so, after 3 years of a CS degree with minimal HTML/CSS, I began to poke at it again. I soon realized that making my website from scratch is going to be a tough process, as I expected, so I looked at how others do it. How do others cope with CSS? And to my surprise, it is a common pain shared by many others, and there are a lot of solutions for it. But I didn't use them yet. Instead, I watched a tutorial video that used a website template.
Templates wouldn't impress anyone, right?
That's what I thought for a long time, but I realized that 99% of the population wouldn't even know how to create a HTML page. Who am I trying to impress, Jeff Bezos? And even he wouldn't care that I'm not using the latest technology for my website. I told myself that as long as I have a website, even if it's a crap one, that already makes me slightly more impressive that others who don't have one.
And so, you can see the result of that effort here.

I did use a template, dopefolio, which was good to get me started as I got a handle of the basics and was able to modify it a bit to make it more mine. Other things I added was Google Analytics which helped me see stats like who viewed my page and where they came from. It was just for fun, but it helped me understand Google Analytics implementation and usage which could be a useful skill for the future.
I shared this website and I was proud of it. It wasn't much, but it was something. However, I still felt like I wanted more than just this. I wanted to add a blog and I wanted to actually have stuff in my projects folder. I knew such frameworks for web dev existed like Ruby on Rails, React, Angular, and such. Each of them had their own capabilities and drawbacks, but that just made it harder for me to decide. I ultimately decide to settle on one that caught my eye, NextJS, which the website you are currently on uses!
I know it's been quite a read, so I'll talk about my learning process with NextJS on my next post.