How I started
In August of 2023, I started coding on Neocities, a website development platform where you can host your own site for free. I tried watching a few YouTube tutorials, but I didn’t find them very exciting, so instead I spent hours looking at other people’s code on the web console (hit f12 or ctrl + c) to get a grasp of basic HTML structure. One of my main inspirations was a Hatsune Miku fan page which had roughly the same layout as my blog right now. I kept learning and building throughout August, and had my first “portfolio” website created in about two weeks.
I was so motivated to try this new thing because I already possessed prior knowledge of some basic programming concepts (thank you dad), so I figured web dev wasn’t too far off from those. Plus, designing something that is truly yours in every aspect is just so amazing, I could go on for hours. I feel like an artist sometimes, but with style sheets instead of paint palettes.
Late 2023 - front-end development
I unfortunately could not code very consistently due to some personal issues early in my junior year, however; I came back strong around early November because I knew I had to keep going. It didn’t feel right, leaving this skill after only a month of learning. I didn’t want to abandon it like I had with other things I’ve tried before.
So, I wrestled with learning JavaScript for the next couple of months. For that, I did need to watch many, many YouTube explanations. There was one weekend where I spent eight hours watching videos on different JS concepts (never again).
Some of the projects I built during this time include: a weather app that handles data from a weather API, a music player, a currency converter through a conversion rate API, a notes app dubbed MiiNote, and a random quote generator with another API. I kind of like parsing data from API responses and making it look nice, but it gets old after a while.
An aside on tutorial hell
I think now is the perfect time to talk about something many new programmers experience: getting stuck in “tutorial hell”. This is when you get stuck following tutorials on building projects, using them as a crutch for your ability, so you feel uncomfortable or incapable of creating a project without following along.
I avoided this from the beginning without even knowing it. I always had an idea in mind, like a website to display my favorite characters from a show, for example. I then started making this project with my base knowledge, and if I got stuck on a specific functionality, I would go and search for a solution just for that specific issue. I learned a lot more that way, and avoided following any tutorial for making an entire website.
There is a time and a place to follow these kinds of tutorials, but I’ll make a separate post about that in the future.
Early 2024 - back-end development
My first back-end language was PHP in February of 2024. I followed a three-hour introductory course over about a week to learn the basics, and then I made a physics calculator with it :)
I moved on to Node.js + Express.js because PHP is not super mainstream to use right now. Not saying there’s no value to knowing it, but I felt like it wasn’t going to bring the most value to me at the time. However, it was a good thing I started with it, because I learned some fundamentals about handling back-end processes like routing and authentication.
My first Node/Express project was MiiLit, which I’ll post a page on in the future. Surprisingly, I have very little recollection of specific learning curves I had with Express.js, but I do remember I borderline worshiped a specific YouTuber: WebDevSimplified. He’s so easy to follow and just an amazing channel for all things web, but specifically React.js (I’ll cover this next).
I feel like I’m making this process of learning and implementing sound super easy, but trust me it sucks to get on user authentication for three days and cry at your desk with your head in your hands because it makes you feel stupid. But the key is perseverance!
Summer 2024 - Camps and React
At the end of my junior year, I’m not going to lie, I was in a bit of a block with coding. I hadn’t coded in about a month, maybe more, by the end of June. But, I had coding camps scheduled back to back for pretty much all of July, and I got back into making stuff pretty quickly. I began experimenting with React.js, a front-end library, because I learned a bit about it at SummerTech from my counselor.
Funny story, we couldn’t get my simple to-do app to work because of very persistent CORS errors (Cross Origin Resource Sharing), so the project I set out to make for my week of camp never got entirely finished. Nevertheless, I really wanted to see this project come to life after camp, so I continued learning React and eventually created that to-do app which I dubbed MiiHabit.
Apart from that, I also worked on a Whatsapp clone throughout July using React and the WebSocket API (allows for the exchange of data in real time), but never finished it because I realized it was far more complex than I thought at first. I would’ve needed to exert a lot of energy to learn Firebase, the most suitable database for storing thousands of user messages, and that wasn’t the path I wanted to go down just yet.
Making a portfolio website had always been at the back of my mind, so I brought it to the forefront on vacation during the last week of August. I’d wake up at about 7 or 6AM to code for three or more hours before doing anything else, and these were probably the most productive hours I’ve ever had in my life. My portfolio went through quite a handful of design iterations, but I eventually settled on the design that is up right now (link on top-left aside), which could’ve possibly been inspired by the beach…
What’s funny is that the main reason I made my portfolio in React was because I couldn’t figure out how to download TailwindCSS to work with plain HTML files. So screw it, why not refine my React skills?
Servers and Senior Year
I published my portfolio at the end of September 2024 as my first official website, and I am still very proud of it. As I’m writing this on January 1st, 2025, it's hitting me how much I’ve done since 2023. I just think it's kind of crazy how I’ve been doing this for over a year. A part of me feels like I should be putting in more effort into learning new things, but at the same time I’m handling a lot right now, with IB exam prep and regular schoolwork, plus IAs and everything. Even though I’d love nothing more than to spend hours making the things I really want, it is simply not possible right now.
About servers: I use Nginx on a Linux Google Cloud server to handle my hosting. It is super cool, because every time I open the console, I become a little more familiar with Linux. Another thing on my long list of things I want to spend time learning: Arch Linux. It is just incredibly cool how you can customize an OS completely like that. Sure, it is more of a hassle, but only if you’re not willing to learn about it.
Now
I’m super preoccupied with my IB CS IA, which is going to be an eCommerce website made with React and Node. A reference to what I said in the last paragraph, I am actually still learning web dev stuff because this IA has caused me way too many headaches to be comfortable, but I feel myself getting better each time. After this IA is over, I’m really looking forward to finishing my Django app which got put on hold because I needed to move it to a Linux OS.
If you’re not very web savvy, the words in this blog probably mean absolutely nothing to you, and that’s totally fine. But, I’m always open to helping anybody who’s just starting out and needs tips on where to begin (email in readme). I hope this post gave a bit of background on how I started and got to where I am :)
Thank you for reading! -Maria (•◡•) /