I have come across this question a lot of times, and it is a good one. I am sure you have heard of the popular saying: “A good programmer is a lazy programmer.” That is true, if you understand "programmer and lazy" in relation to programming.
Bootstrap and other CSS frameworks, despite the fact that they limit your creative ability. Unless you go to a great length, make all websites look the same, help make you a good programmer. They help you to avoid doing the same things over and over again and help you quickly get the job done. On top of all that they help avoid browser compatibility issues. These frameworks also come with the need of many style override which becomes a lot of problem to beginner developers that have little understanding of CSS inheritance.
Are you a programmer?
The important word in the saying "a good programmer is a lazy programmer" should be programmer. Wikipedia defines a programmer as “ a specialist in one area of computers, or to a generalist who writes code for many kinds of software”
A programmer refers more to an individual who has achieved mastery in a specific field of computer programming. On the contrary, someone who has little experience or is just beginning to learn about a language like HTML or CSS is not a programmer. He is a beginner in programming.
Most of the time, people I often get these questions from, are usually those that are beginners in the field of HTML and CSS and have not achieved mastery yet.
I know developers who upon their first entry into Microverse wanted to write all of their HTML and CSS projects with bootstrap. I remember one of them was confused and wasn’t so sure why he was unable to reproduce the same page he built with Bootstrap with only CSS. On the other hand, a colleague of mine who had no prior understanding of Boostrap could not understand why he needed the Framework for his projects since he could achieve the same result with CSS anyway. You see, skipping gun training as a soldier and running in from of a real battle line makes you a danger to yourself and those around you.
My point is if you are using a CSS framework and any other framework while you are yet to master the language itself, you are not a lazy programmer, you are a lazy con. Over the years many writers have concluded that programming is a kind of sports and regardless of how well you know the rules you will have to play to become great at it. In programming as in many other sports practice actually makes perfect. Taking the time to understand why the code works, is as important as making the code working.
According to Larry Arnold Wall, the author of the Perl programming language.
A great programmer has 3 great virtues: Laziness, Impatience and Hubris.
http://threevirtues.com/ explains these three great virtues event better. It explains Laziness as "The quality that pushes you to go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don't have to answer so many questions about it." I think I see a lot of impatience in a lot of beginner programmers.
They all want to hack the NASA 3 days after writing their first programming language. While that is entirely possible, programming is a doctrine that is similar to any other engineering field of knowledge. It takes time and practice to nail a nail right.
HTML and CSS have seen significant improvement since Boostrap was created, as a matter of fact, I believe Boostrap directly or indirectly contributed to the major specification from the W3C that appeared in CSS 3, and since the introduction of grid in CSS, I have had little need of a CSS framework to do my projects. That is not to say that they are of little help. No, They are perfect for the right person and the right person being someone who has a high-level understanding of CSS.
The question now is How do I know I am ready for Bootsrap or any other CSS framework.
1. Have a good understanding of Cascade and inheritance.
CSS cascade and inheritance are very important in understanding how to override some bootstrap classes and have the effect that you desire, since Bootstrap uses the Important keyword. You can follow this link to learn more about CSS inheritance.
2. Get a good grasp of flex and grid.
Boostrap uses flex for its grid system. So in other to make the most of Boostrap I would suggest you get a very good understanding of flex. Read more on Flex here.
3. Have several tested and fully responsive CSS only websites.
"Practice makes perfect." To ensure that you understand CSS to the core before you begin using it’s frameworks make sure you have some number of CSS only projects.
You pay nothing until you get a job that pays at least a $1000. If you want a quick ride to a successful career in coding don’t hesitate to join Microverse today.
Boostrap and other frameworks are great and good to help get a website up in no time. In the words of Kent Beck
“I'm not a great programmer; I'm just a good programmer with great habits.”
Before you actually begin using Boostrap or any other CSS framework. I would suggest you get a firm understanding of the language itself.