My experience with frameworks
Just last week, there was an article written for Medium that struck a chord. Well, I’ll admit that I do not pay for Medium, and it was one of their paywall articles, so I guess I should say a headline written for Medium struck a chord. “I have never used a library, framework, or an API. I don’t know what to do.” From the little I could see, the article was apparently about our education system and computer science. Honestly, it doesn’t matter. The title says it all, and I have to say, if someone is getting a standard CS degree, I don’t doubt this.
I graduated from Austin Community College just this past May (2024, if you are reading this in the future), and I can absolutely see where someone could come out of school completely confused about actually working in web development. I completed an Associates of Applied Science: Web Programming Specialization and feel fortunate that the program took me three classes deep in web development. Web Design Tools taught HTML and CSS, Beginning Web Programming added JavaScript, and Intermediate Web Programming touched on a framework and APIs.
Notice I said “touched on” in that last sentence. We started the class with the professor telling us we would be programming in PHP and we needed to make sure we learned the language. Yep, no instruction at all, just that we needed to learn the language. It turned out that it was a lot of hand-holding but still a challenge. The same with the templating step, learning asynchronous JavaScript, and then learning to use CodeIgniter 3 as our framework. The professor told us that he was using CodeIgniter 3 because it was an easier framework and then expected us to grasp the routing system almost immediately. Why he couldn’t have chosen a more modern framework, I still wonder to this day. Another professor mentioned that he believed PHP is the backbone of the internet and that we needed to learn PHP. I get it. Why not Laravel or any other more modern browser?
However, I shouldn’t complain too much, as the experience of publishing a website with CodeIgniter 3 taught me valuable lessons that not everyone gets. And yes, I did have a basic API on that webpage. His method of “teaching” APIs was to tell us that we were required to include one in our final project, it would be worth ten points, and we needed to learn how to implement it before we turned in the project. Seeing the positive in the class, the professor was pushing us to learn on our own, something that has served as an example of how things happen in the real world. We have to learn on our own or get left behind.
Learning on my own is certainly something I’ve continued. I knew I wanted to get a portfolio finished, but I had an overwhelming personal need to put it on a different framework. I over-researched and let myself get stuck on deciding where I wanted to go. Django? Flask? Laravel? I knew I wanted it to be a back-end framework, but I had no clue which one. Finally, with the clock ticking, I dove in and just picked Flask so that I could work on the website over my last spring break before graduation. It took me almost two weeks, but I pushed forward and got it done before the last few weeks of the semester could drag me under a pile of work.
I loved working with Flask, but I quickly learned the drawbacks of using a Python-based framework. I couldn’t just go to any shared hosting plan and expect it to take a Flask web application. I ended up going with self-hosting and setting up an Ubuntu server with Caddy and Gunicorn. I ran for over a month before I found out that the default Ubuntu firewall didn’t cover everything that I needed and had to fight a DDoS attack. I got my page back up, but the extra “attention” meant that I had extra charges from my provider. The extra was only a couple of extra dollars, but it convinced me that I wasn’t ready for the full-time job of running a Linux server. I did it. I was successful. I learned so much, and I’m really confident that the lessons I learned about securing a server would allow me to run one, but I found some other hosting options that mean I don’t have to worry about the security of my website every minute of the day.
So that little tangent of hosting to say, I moved my Flask websites to PythonAnywhere and started thinking about being more flexible with my hosting options. Being able to host anywhere really appealed to me after all the issues I had with self-hosting, so I started looking at front-end frameworks. Taking one step back, I’ll say that I considered Laravel again, but with the prominence of React, I thought I’d look at a JavaScript framework. So I opened the official tutorial of Svelte and started going through it one step at a time.
Why Svelte? Mike Karans and Scott Tolinski. I listen to multiple podcasts. HTML All the Things was the first one that I found, and Syntax is one of my favorites. Mike Karans especially convinced me by talking about how Svelte was easier for beginners to learn and helped friends of his to understand the complexity of React by starting with Svelte and SvelteKit.
And that’s where I’m at. I want to finish working on a current website and get it up with SvelteKit, then I’m kind of itching to check out Vue. I’m at a point where I have time to touch on multiple projects, so might as well. Though, at the moment, I’m at Scrimba going through their JavaScript Deep Dive by Reed Barger. Good stuff, and I’m learning a lot, but I’m definitely ready to get back to frameworks. Unless I get a job…then I might have something different I need to concentrate on for a while. That would be a really good thing.
Posted on: 2024-08-02 21:42:09.269708