I’ve actually done so many HTML and CSS projects on the side throughout the years, and the biggest lesson I’ve learned through doing so many of these haphazard html/css projects is that there are so many different ways to do one thing. In my years of trying to build terrible single HTML pages and very silly toy Javascript, I’ve really only stuck to my own methods of doing things, meaning that once I’ve found “the way”, I never look back on other methods. With this naiive mindset I’ve held all the way to this year, I’ve been living in utter bliss about my shiny frontend skills. I had absolutely no clue what was headed my way.
Failing one of my frontend coding exams (fine, it was a practice one) was truly a humbling experience. This was because my software engineering class actually asked me to step out of the blissful world of using flexboxes to solve every css problem and actually start using UI frameworks like Bootstrap 5.
I do find plently of value in learning bootstrap, and I actually enjoy how easy it is to build very functional and even responsive web applications really quickly. To add on to the quickness aspect, I definitely appreciate how nice the default styles look, meaning that I don’t need to spend precious time messing around with how to make my button text centered/the right color/the right font/the right size. Something that I found really cool was the ability to make navbars relatively simple, as navbars in my experience have usually been the most frustrating thing to design in any website. The grid system for bootstrap is something to definitely get used to, but it is something that makes complete sense, and I would predict that once I really get the hang of it, I’ll be able to develop websites like there’s no tomorrow.
An interesting thing I see in my own perspective of bootstrap is the very distinctive look of bootstrap, meaning that it seems very possible to make a very “bootstrappy” looking website. This may be a really bad thing for people who want to build nice, visually striking websites that really keep people engaged. For example, I could definitely imagine myself making a website that looks like this:
However, this may actually be a good thing, since even the “bootstrappy” looking website is still quite aesthetically pleasing, and in the case where you just need to spin up a quick UI to show off a cool backend-type project, this UI is more than enough. I think that for the purposes of developing something that at least functions, bootstrap does a great job as a framework that helps you build something so quick and simply. Bootstrap can easily make a developer’s life simple, since developers won’t need to spend two hours trying to center the text within a button component.
Still, you can make some really unique and super cool websites using bootstrap. For example, this website looks nothing like that “bootstrappy” look:
Bootstrap, just like any framework, can take you as far as you want it to. But just like in many other software design considerations, if there’s a framework or pre-built code already written for the exact purpose you’re trying to implement, why not just use them? Bootstrap will offers great out of the box styling with conventions that are accepted throughout the software community. There’s also the aspect of building web apps that can work on mobile devices, which is infamously really difficult to make work 100%, that bootstrap can help software developers out with.
I have not fully grasped the full power of Bootstrap, since I’m still very much stuck in my old ways of working in css directly, enjoying the absolute simplicity of flexbox. I still really want to continue developing my skills in UI design, which naturally includes getting better at Bootstrap and HTML. I think that designing UIs can be just as deep as the other parts of software development. I often overlook the design aspect of building software, focusing more on the functionality and “more important” things, whatever that means.
Failing the practice exam for the UI design portion of the class has made me realize that front-end work is also a skill that well rounded software engineers really need to have as well. While students may imagine their programming lives to be working on cutting edge algorithms and all kinds of cool features, there also the aspect of having to work on centering a button in a website from time to time, or at least working with the people who have the task of centering divs.