Lessons and frustrations from the Frontend

June 8, 2021

 

This website is made with Flask , a python-based backend framework. I wanted to deploy python computations to my website, so I couldn’t use WordPress anymore.

 Of course, Flask only handles server side operations. An additional framework is needed for UI design (which is usually handled client side).

I used Bootstrap, the standard choice for low effort UI’s with Flask. Bootstrap is a large code base of CSS/HTML/Javascript that devs can build off of. It provides styles, layout interfaces, and lots of widgets to help accelerate development. And thank God. I couldn’t have done this from scratch.

 

To import or not to import?

Web development is the wild west compared to hardware or embedded programming. It seems there are a billion different snippets of code floating around for everything you could possibly want to do. From one liners in a forum post to huge projects with robust, well documented API’s, it’s often overwhelming just to google something. 

In this environment, you need to be specific, yet flexible, with your goals. For a noob like me, this is hard because I’m not sure what’s possible in the first place. Thus, I find myself running in circles because my needs are vague. It’s very easy to spend hours researching a problem, especially when google is actively trying to keep your attention. 

On the other hand, I’ve dumped hours into implementations only to find out if I searched a little longer there was a simple solution. It’s just as easy to stubbornly attack an issue with what knowledge you have. I have the amazing ability to think “But it’s almost working” for hours on end. The sunken cost fallacy is seductive.

For example, this is the beginning of my editor forms:

Apparently, I could have just done this:

Whatever. I got it done.

I’ve learned a lot about project management this week. In web development, the decisions are much higher frequency, meaning you get more practice making cost-benefit tradeoffs. You need to be mindful of what you're doing at all times because it’s easy to waste time with undirected problem solving. Of course, you feel productive no matter what you're doing, but spinning your wheels 30 minutes at a time can add up to a wasted day.

 

So when do you give up and try something else?

I don’t know, and nobody else does either. The reason why is obvious. You don’t know if there’s an easier way until you look for it, but then you have the same problem again. When do you stop looking?

In the end, patience is key. I’ve learned to roll the wasted time of unnecessary research/implementation as part of the process. The only thing you can do is stay mindful, and continuously think critically about what you need to do and why. 

Which is easier said than done, of course,  so I’ll just prepare to waste a ton of time screwing up. :)