First post! (A story of how I got started)

What this blog is going to be about.3 November 2024

Hello, World!

Hi everyone! I'm Edgar and for almost two years now, I've been on this journey to teach myself programming and become a software engineer. It hasn't (and still isn't) been the easiest journey, but I can say without a doubt that programming and building software is definitely something that I'm super passionate about. I've always been a computer guy, so coming to this realisation felt like the most natural thing. I enjoy every moment of coding and everything new I learn about computers & computer science just gets me super excited and super fascinated. I think I read on reddit somewhere before of the idea that computers are the closest thing that we can get to actual magic, and I definitely agree with that statement.

This whole journey started out with 2 distinct events. The first was somewhere back after junior college, when I was waiting to enlist for my national service. I spent a lot of my free time reading books and learning new things. At that time, I was also thinking about my future and what I wanted to do in it. One question popped up in my mind that sparked this massive sense of curiosity.

How do computers work?

That was it. How do computers work? How does thing, this magical box, turn my presses on a keyboard, touches on a screen or movements on a mouse, into a whole world on my screen, into whole systems and businesses? That question was something that I really really wanted to find out an answer to. I decided to pick up a book on it.

Code by Charles Petzold

I stumbled on the book pictured above, Code by Charles Petzold. (Bear with me, it has been a couple of years since I last read the book, so I'll try recollecting what I read as best as possible). The book first begins of explaining what "code" really is, which I never much thought about up until that point. I remember it used the example of how you and your neighbour across the street are communicating, and the only thing that you have to do it were flashlights, so you set up a system of communication where you blink your flashlight once to say yes, and twice to say no. I also remember an example of how in old times, to indicate something, one would leave a lightbulb on, and to indicate the opposite, they would leave it off.

But there are inherent shortcomings of a system like that, where only a limited amount of information could be relayed that way and possibility of misinterpretation is high. Communication theory and systems of communication began to grow. Systems such as morse code were invented. Eventually we got to binary, which is a system where, instead of counting like humans do, in decimal, which is base 10 (I remember it being so cool to think about it this way, that our whole system of numbers is the norm essentially because we have ten fingers and we just got used to counting like that), we instead count in base 2, so on every second number, your starting digit "resets" and you only have 2 digits. That's how we got to computers, since we have essentially millions of these little "on/off" switches that is the brains of our computer, so to relay information that way, we use binary. I won't get too much into it here, but that was really the starting point of everything.

The other event that then started me off on this journey, this one a little more officially, was when I got into the hobby of mechanical keyboards back in 2021. After I read "Code", I didn't exactly continue delving deeper into the field. I was dealing with my national service and still figuring out what I wanted to commit myself to as a career, and I didn't exact settle on computer science/software engineering yet. I knew that I always wanted to specialise and be an expert in something for my career, but I just didn't know what yet. For some reason or another, I ended up actually looking at accounting as a specialisation. I'll be honest, I have no idea why I settled on accounting, maybe at the time I also believed that my grades were not good enough to get into computer science courses at local universities, so I just gave that up.

Fast forward to my second year in university studying accounting. Things were looking quite bleak for me. It wasn't that I didn't like the subject, it was more of both struggling with it in school, and also realising that even if I did do well for it in school, the career outlook just looked very bleak. At that same time, I was getting into the hobby of custom mechanical keyboards.

My first keyboard My second keyboard

I loved typing. Yes, that's right, typing. I was thinking of every and any way possible for me to be able to type more. I found yet another reason to be unhappy with accounting, because it was more handwriting than anything, and enter numbers into spreadsheets wasn't typing either. I already was in the habit of journalling and writing, so I typed out a lot of prose and thoughts, but I wanted more. So then I thought, what else could I do?

That's when I decided to start programming, and the rest is history. I fell back in love with the topic of computers, and at the same time, I also discovered how lucrative the tech industry and being a software engineer was (yes, yes, I know, I can't deny that this part also exists). It felt like an absolute no-brainer to make the switch into a career in programming, despite the risks, despite the difficult journey ahead, so I did exactly that. I fell in love with coding too. The idea that with my little keyboard, I could type in a bunch of stuff, and create entire worlds, entire businesses, entire enterprises, felt amazing. The possiblities were endless, what I could create, with just my keyboard, I just had to learn how. I have no other way to describe the feeling other than it really just felt like my calling. To build things, with my keyboard, felt like a dream.

And that's pretty much it, how I got my start in this world. I'll probably write another post detailing certain things I've learnt along the way and certain learning resources that I really learned from and love (I'm looking at you, The Odin Project 👀).


My journey building this website

Another thing that I wanted to share as part of my first post is this whole process of building this entire website. It has been a pretty cool and fun journey building this site from the ground up. I went from using Vite and being a purely client-side rendered application to learning about server-side rendering and eventually switching to Next.js. I have to admit that learning about server-side rendering was a really cool thing and it just makes a lot of sense. Concepts of static site generation and hydration and how it is optimised for SEO and enables the website even for people with JavaScript disabled, it all just makes so much sense.

I also went through a whole mental and emotional journey in terms of making it. I think overall, I didn't take too long to make the site, about two weeks, but I went through a whole journey in my head. Initially, finding a design was difficult and I really couldn't imagine how to make it overall, especially when there were so many possibilities that I could do. I guess a better way to have tackled this was to plan out the design first then implement, but I just dove headfirst into it and I will definitely learn from that (probably will buy a mini whiteboard to plan coding projects out next time).

I then went into the implementation stage, which I struggled with initially. It had been awhile since I touched React and I faced quite some self-doubt and had some coding sessions that lasted way too long. One thing I realised was that I definitely can get very lost in coding. I was initially crumbling at the sight of challenges and setbacks, but the cool thing was that I stuck through them and perservered and eventually got over those hills which felt great. It was an upswing once I gained momentum in solving one thing at a time. I think one of the nicest moments was wondering how I was going to code out all these animations that I wanted from scratch, feeling overwhelmed, then Googling and discovering the GSAP Animation Library. I then learnt how to use it and it was the best thing ever see all those little animations in my website exactly the way I imagined it to be.

Overall, this website has turned out to be one of the coolest things I've built and I'm really happy with it. I hope to see it grow in the coming years, whether it's more posts, more content (I hope to be able to add a personal section with my favourite movies, albums, books, etc.) or just more features (hoping to add more cool backend ones).


Just a last note

One last thing that I would like to write about is just how I've been lately. Although it does feel nice that I've gotten the blog part of my website up now, I must say that the reason why is not too great. It's been a rough couple of days because, ever since I finished the main part of this website, I've been applying for jobs and also focusing on school Everyone pretty much knows (take a peek at the date, hopefully sometime a ways anyone reading back on this will be able to laugh at the tech industry in this state) that the tech industry is dog***t right now. Especially for someone in my position, things just aren't looking bright. It's just been really anxiety inducing thinking about my future and looking at the state of my apps. It's been so much that I felt pretty overwhelmed about it, so I took a break from studying and school stuff to code again. It does feel nice coding again.

Applying has just been messing with my self-esteem lately, and I can't help but feel pretty down about myself. I feel that hopelessness and that powerlessness, it feels like things that are out of my control are controlling my life. I feel like I'm screwed because I'm not a genius, and it's making me feel sometimes like I'm just too stupid to be in this profession. I'm trying to remind myself that it isn't me and it's the nature of the economy right now and this industry, but it is hard. It doesn't help that in school, I have to study things that completely doesn't interest me, and that doesn't help with my self-esteem as well. It's just been a pretty rough week. Hopefully it will get better, and I still look forward to graduating so that I can focus on coding full-time, making projects that I'm genuinely excited about and learning new technologies and new things. (I will be relearning DSA for my interview prep and also making exciting projects like my journaling app).

Thanks for reading this much, I love writing and getting to share with people my learnings and thoughts, so I appreciate it a lot. Until next time!