Last updated on January 1st, 2019. Posted in HTML & CSS.
Is CSS easy to learn? On a fundamental level, yes, CSS is easy to learn. But because CSS is so detailed and nuanced, many people find learning CSS confusing and difficult. Here, you'll get a CSS roadmap -- a much clearer idea of what CSS is, how it works, and whether it's worth it for you to learn or not. Let's take a look!
CSS is easy to learn and get started with. However, CSS is unique in that the more you learn and the deeper you go, the more difficult and challenging it becomes. It won't take you long to learn the basics, but if you want to go further and really master CSS, that can take quite a bit of time.
In fact, if you want to get rolling with CSS right now, I have a free hands-on tutorial that'll help get you started. Check out HTML Tutorial – Learn HTML And CSS Tutorial EASY!
Or if you really want to dive deep into CSS and learn it's ins-and-outs fast, my full-length online course, HTML5 & CSS3 Site Design might be just what you're looking for. Here, we take a casual, easy going approach to learning HTML and CSS. But this is really only if you want to learn CSS and HTML quickly.
In the meantime, you might want to find out a little more about CSS. For instance, you might be wondering...
This is a common question that comes up all the time -- are HTML and CSS programming languages? And the answer is, no, HTML and CSS are not programming languages.
A programming language (maybe like C++ or Python) sets a series of behaviours or algorithms to be run. They're pretty advanced and sophisticated. HTML and CSS can't do this stuff. They aren't that complex.
In HTML's case, it's what's called a markup language. In fact, it's right in the name -- HTML stands for Hypertext Markup Language. All HTML markup does is specifies different page elements as different things. It simply sets things like paragraphs, headings, images, sidebars, footers, and so on. That's all it does.
If you've ever learned a new language (say, maybe Spanish or French), then you know all about identifying different objects. How do you say car, book, or coffee? When you learn a new language, the first thing you learn is to identify -- to mark -- common objects. In the world of web design, HTML's doing the same thing.
As for CSS, it isn't a programming language either. It's awesome, but it's not that smart. All CSS does is provide formatting instructions for structural HTML -- that's a red car, a long book, or a fresh coffee. You could say that CSS is used to further describe HTML elements. Does that make sense?
So with CSS controlling and formatting HTML, you could say, be an indented paragraph, be a bold heading, be a right-hand sidebar, and so on.
On a basic level, that's how HTML and CSS work. And I'm intentionally keeping these examples simple because at this early point, it's important that you understand these basic concepts. So, HTML creates structure, and CSS formats, or further defines, that structure.
And what's so cool about CSS is just how powerful it is. Controlling basic things like fonts and colours is just the tip of the iceberg. As you dig deeper into CSS, you'll discover that it can do all kinds of wild, powerful things.
But at this stage, you might be wondering if you even need to learn CSS at all. Let's discuss...
So do you need to learn CSS? To help answer this for you, I think it's important for you to determine your objectives and figure out exactly what it is you want to do. And we'll talk about that more in a sec. But first, I want to make the point that I think it's incredibly valuable for almost everyone to learn even the basics of both CSS and HTML.
No matter what you want to do, getting a handle on the fundamentals of both HTML and CSS will go a long, long way. Even if you have no interest in becoming a freelancer or digging deep into the world of web design, a general understanding of HTML and CSS is a highly valuable and marketable set of skills.
After all, we're living in a tech-based economy in the 21st century -- I think we should all have, in addition to general computer skills, even a cursory understanding of web design and how the internet works. Take "HTML & CSS" and add it onto almost any job role, profession, or hobby, and that person instantly becomes more marketable and valuable...
Add "HTML & CSS" to the end of your job role, hobby, or area of interest. How would that change things?
And the good news is, you don't need to master HTML and CSS. Just the fundamentals will take you a long, long way. But maybe you want to go further and really master this stuff.
This is why it's important to figure out exactly what it is you want to do -- and I'm sure you already have a pretty good idea. Do you want to become a freelance web designer? A front-end developer? Or, do you simply want to be a more valuable employee?
Or maybe you want to do what I've done...I'm kind of a hybrid web designer / online business owner.
I'm not interested in freelancing and I'm kinda unemployable (that's another story!), so getting a job as a developer is out for me. But when I started out many, many years ago, I wanted to be as self-sufficient and autonomous as I could be. I wanted to be able to build websites, projects, and online businesses myself without needing to hire a freelancer every time I had an idea for a new venture. And besides, I didn't want to be beholden to someone else's schedule or hourly rate anyway. So back when, I determined what it was I wanted to do and went from there.
So, take some time and figure out your objectives. From there, take it one step at a time.
Another way of looking at this is by asking yourself how far you want to go with CSS, HTML, and web design. Do you want just the basics to work on your own web projects? Or do you want to have a valuable set of skills to add to your resume? Or again, maybe you want to dive deep into web design and get into freelancing or front-end web development.
I know some people who call themselves web designers, who only use drag 'n drop web builders or pre-built web templates. But to me, this is kinda disingenuous. Modern web tools make building websites fast and easy, but they can be limiting. What happens if something breaks? What happens if the client wants something customized? What happens if someone says, "Hey web designer, can you take a look at this code?"
It would be like someone serving frozen dinners and calling themselves a chef. People fall in love with the job title, but they don't want to put in the effort to learn the job itself.
Taking the time to learn HTML and CSS (again, even at a general level) gives you a solid foundation to build on. Whether you want to be a full-blown web designer or just keep things simple, you will be using more powerful web design tools (like WordPress and Elementor). But having a solid grasp of HTML and CSS gets you out of the confines that web design tools impose, allowing you to build, fix, and troubleshoot your work directly.
That's hugely advantageous.
So decide how deep you want to go with this stuff. Decide how autonomous and self-reliant you want to be. Do you want to learn and master everything there is to know about HTML, CSS, and web design? Or to a lesser degree, maybe you want to be able to handle common tasks, small fixes, and customizations on your own. Or are you okay with relying on other people -- maybe your employees, co-workers, or freelancers -- to do the work for you?
You'll have to decide all this for yourself.
To give you an idea, I've learned tons and tons about web design over the years, building lots of websites, projects, and online businesses. But I don't know it all -- web design is constantly growing and changing. And sometimes I run into a problem that I either can't solve, or don't have the time to solve (or simply don't want to deal with).
It's in those cases where I call in the cavalry and simply pay someone to fix it. So I think it's important to know where your limit is. In other words, where's the point of diminishing returns, where you're spending too much time on something when you could be doing something else that's a better use of your time?
So to summarize, no matter what your objectives and goals are with HTML, CSS, and web design, I think a fundamental understanding is definitely worth it. Combine these skills with other web design tools like WordPress, Photoshop, and maybe a few others, and you'll have a very useful, very valuable set of skills.
What order should you learn these web tools? We'll talk about that in just a little bit. But in the meantime...
The next question on your mind might be, How hard is it to learn CSS? In comparison to other web tools, CSS is a bit unique in how it unfolds. Learning the basics of CSS is very straightforward. It's easy to get started with CSS, and you'll get moving with it a lot faster than you might think.
If you're not comfortable with computers and using the internet, the basics of CSS could be challenging. But for most people with general computer, word processing, and internet skills, learning CSS won't be hard. CSS is simply a new tool set for you to get your head wrapped around.
But here's where things get odd...
After you've nailed down the fundamentals and are feeling comfortable with CSS, you'll naturally want to go further with it. This is because you start discovering some of the amazing things you can do with CSS. And the deeper you go with CSS, the more complex it can get.
This is why I stressed earlier on that it's important for you to decide what you want to accomplish early on. This determines how far down the CSS rabbit hole you'll want to go.
If you're interested, I discuss this (among other things) in another article, Is CSS Difficult? Here’s Why CSS Can Be Frustrating.
Maybe just the basics is all you’re interested in. Spend a few days, nail 'em down, and you'll be set. And the basics would be more than enough if you simply want to add a set of skills to your resume or be a more self-reliant business owner.
Or, if you decide to dig deeper into CSS, it can take time to really get good at it. And sometimes this can get confusing and frustrating, because again, the deeper you go the more complex CSS can get.
If you want to get into the nitty gritty for a moment, on a more advanced level, the two specific areas of CSS that can be most confusing and frustrating are web browser compatibility and debugging. Getting really good at these two things is both very challenging and also highly sought after.
But again, you'll have to decide if you even want to go this far with CSS. Decide ahead of time, so that you know what you're getting yourself into, and how many steps down the rabbit hole you'll want to go.
To help give you a better idea about CSS and how hard it can be to learn, I've broken things down into three sections, Beginner, Intermediate, and Advanced. Let's outline each...
You'll need to know about how CSS and HTML work together, and things like CSS specificity and how cascading works. And one of the most important aspects to learn about CSS as a beginner is something called the CSS box model. These are the fundamental components of CSS.
But the big thing you'll learn on an intermediate level with CSS is building page layouts. Layouts in CSS can be handled in a number of ways, including CSS FlexBox, CSS grids, or something called media queries. Building layouts using CSS can be challenging, because it's all about building responsive, mobile-friendly layouts. And with so many devices and screen sizes in use, this can get very frustrating.
However, if you're relatively new to web design and CSS, then learning how to build layouts will be a lot easier for you than it has been for those of us who've spent years using other methods to handle layouts and responsive design. In other words, you won't have to shift your thinking or unlearn a lot of what you've learned.
At this level, you can also begin exploring what are called CSS frameworks. A framework is essentially a library of pre-existing CSS building blocks that you can use to rapidly build modern layouts with. The two most popular CSS frameworks are Bootstrap and Foundation. I often use Bootstrap within a visual web builder called Pinegrow, and it's awesome! But, it is more advanced.
So I hope this CSS roadmap helps. This outlines and breaks down many of the aspects of CSS and hopefully gives you an idea of what's involved with learning it at, let's say, different depths of the CSS rabbit hole!
Once again, you'll have to decide for yourself how deep you'd like to go.
On a basic level, you can be up and running with CSS fairly quickly without a whole lot of hard work. Beyond that, as we've discussed, things can get much more complex and advanced. And beyond advanced levels of CSS, you could choose to keep going even further. You could get into CSS preprocessors like LESS and SASS and go even further with CSS.
But I think for most of us, that's well beyond what we need. For now, you might want to know more accurately just how long it's going to take to learn all this stuff...
So I'm sure a big question on your mind is, Just how long will it take to learn CSS? To answer that, you first need to know that before you can learn CSS, you'll need to learn HTML. This is because CSS sits on top of HTML, controlling it. Remember earlier when we discussed HTML as being structural and CSS controlling and formatting that structure.
So this means that you have two things to learn. But the good new is, it's definitely possible to learn both HTML and CSS together. And the other good news is that you can learn the basics of both very quickly.
How quickly can you learn HTML and CSS?
It's well within reason for you to learn the fundamentals of both HTML and CSS in a weekend.
Of the two, HTML is definitely simpler and easier. But as we've discussed, the basics of CSS are very straightforward too. Don't think that you'll have to master HTML entirely before moving on to CSS. Instead, like I say, it's best to learn them together -- ideally by building some kind of a hands-on web project.
So, getting those early, beginner-level skills down will be fairly quick. And what you get in return -- valuable, marketable skills -- is definitely worth it.
And of course, the more you keep at it, the better you'll get. But...
You've learned that nailing down the basics of CSS and HTML shouldn't take much time at all. However, because CSS gets progressively more challenging as you dig deeper into it, it can take quite a bit of time before you're feeling totally confident with it.
That's tough to answer because it's such a personal, individual thing. It also depends on how far you want to go with CSS, HTML, and web design overall. But for most people, it might take anywhere from three to six months to find your footing.
Certainly after twelve months you'll be confident using CSS and HTML regularly. As with everything else, the more you keep at it and the more hours you throw at it, the better you'll get.
And I think it's important to note here too that with HTML, CSS, and web design (and any other skill, really), the real learning doesn't happen early on when you're first learning the fundamentals. Instead, the real learning comes in the weeks, months, and years to come as you stick with it. That's where real progress is made.
And because CSS and web design are constantly evolving and growing, there really is no end to it. Even top industry professionals are still learning new things. But it's such a personal thing -- you might be up for the challenge of constantly learning new things, or you could be sitting there thinking, "I just want to build my own website."
This is why it's important to understand that the world of CSS and web design is as big as you want it to be.
I have a few tricks to help you out as you get started learning CSS, HTML, and web design. These tricks and tips evolved out of my own learning. I'm constantly learning new things all the time -- and not just in the areas of web design and online business. I have a lot of interests! And over the years, as I've learned new things and taken on new challenges, I started noticing patterns. Then, I started formulating some tricks to different skills as I'd be learning them.
This has really helped me as I've embarked on learning any new skill. Here they are...
And keep in mind that everyone starting something new feels the same discomfort. Give Michael Jordan a pair of skates and a hockey stick, put him up against Wayne Gretzky, and ask him how he's feeling!
So, be patient and kind to yourself. You will hit points of frustration. You will want to quit. Your lizard brain will do anything and everything to get you to quit and retreat to your comfort zone. But this thing you're trying to learn is not a sabre-toothed tiger. Understand that you're getting into something totally new, and that it's gonna take time to get good at it.
Otherwise, you're trying to learn this new thing in a vacuum, unrelated to anything in the real world. Interestingly, this is exactly how we're taught math in school. It's taught in a vacuum. And how many math lovers do you know? To me, math should be taught at a workbench or in a woodworking shop. Imagine having a tangible project to take home to mom and dad that you made while learning long division. That would've changed everything.
So, get a project going. Your project could be anything -- an online business you want to set up, something you're building for a friend, or maybe something personal. With a project, now you have emotional investment in what you're learning to keep you motivated!
What does life look like now that you've learned CSS and HTML? How would your life change? What things could you do that seem impossible now? Write these answers down if you have to. But most importantly, keep this mental image in mind as you continue learning. With a better tomorrow clear in your mind, you'll plough through challenges, problems, and frustrations with ease -- because you've seen the future and you know how good it looks. To get there, you simply need to keep going!
So those are my handful of tricks that I use whenever I'm taking on something new or trying to master a skill. I hope you'll put 'em to use when you start learning HTML and CSS. And that's a wonderful segue into another question I'll bet's on your mind...
So what's the best way for you to get started learning this stuff? At a minimum, all you need is a computer with a web browser and a half-decent code editor (code editors are simple and often free -- I wrote about 'em in another article). Beyond that, you'll need some kind of guide or course to learn from.
Now, there's no shortage of guides and resources for you to learn CSS with. There are countless books, videos, blogs, forums, classes, workshops, and more. As you might guess, I've used and perused many different learning methods and resources over the years. And I've discovered some of the best ways to learn not just CSS, HTML, and web design, but many other topics as well.
All these different methods and resources can be sorted into two broad categories: Free resources and paid options. Free resources include, as you might guess, anything from YouTube videos and blog posts to forums and long-format articles. Paid resources might include taking a class, attending a workshop, books, or enrolling in an online course.
Both paid and free resources are great ways to learn. But I've discovered that each has their place -- especially if you want to learn quickly and not needlessly waste your time.
One of the first places people turn to when learning something new is the internet. And don't get me wrong, forums, YouTube, and blogs are amazing resources for learning. But here's the trick with using these resources: You have to know exactly what to search for. Otherwise, a simple, broad search brings back mountains and mountains of disjointed information that will take you huge amounts of time to get through.
This isn't a very efficient use of your time.
See, the problem with trying to learn a big topic like web design with free resources like Google is that there's just so much information available. It can take a long, long time to sort through everything...assuming you even know where to start.
Scarce information isn't the problem. Organized information is the problem.
Forums, blogs, and other free resources aren't organized in any kind of logical, chronological structure. Everything's scattered, disorganized, and messy. And because there's no structure, this makes trying to learn something big like CSS very time consuming and frustrating. It might take you ten or twenty times as long to learn something as detailed as CSS and web design through free resources versus going with a paid resource like a book or taking a class.
Another problem with free resources is that anyone can post to these platforms, whether their information is accurate or completely wrong. This is a huge problem, because as a beginner it's easy to be misinformed. You may get sent down a path that's lacking detail or that's completely outdated.
There are hundreds of ways to build a website. Hundreds. But which one's right for you? Which of the seemingly endless options is best for your specific situation, goals, and needs? As someone who's brand new, you'll have no way of knowing if the recommendations and guidance you're being offered is best for you or not.
But what if you could get much more accurate, timely guidance?
You might be questioning why I'm saying that paid options are the least expensive. Well, I don't know about you, but my time has value. If you're like me, you don't have time to endlessly trawl through the web, searching for answers. The more quickly I can get up to speed on a new skill, the more valuable the resource that helped me is. And that's exactly what options like paid courses, workshops, and books will do for you.
By nature of their design, courses, books, and workshops have to be logically structured. They're organized into chapters, lessons, hands-on examples, and summaries to help reinforce information. All you need to do is simply follow along with the program, and you'll have the fundamentals down in no time. There's no better way to learn than that!
What's more, the person you're learning from -- the author, presenter, or instructor -- has to have some level of experience and expertise...otherwise, they aren't much of a teacher. These people come with years of experience and skill, and are able to provide accurate, up to date information and best practices to help you get up to speed quickly.
To me, there's no faster, more efficient way to learn a new skill like HTML and CSS than by taking a course from a qualified expert.
In all my years of teaching online and also being a student myself, here's what I've learned: Both paid and free options are great resources. But, it's important to know when to use one versus the other.
When I'm learning a big topic for the first time, I always go with a paid option first. This could be a book or an in-person workshop. But my ideal format is an online course. With an online course, I can learn at my own pace from home, anytime I want. And a paid course gives me the fundamentals that I need to know about that topic, all in a logical, progressive structure.
And if I'm highly motivated, I can rip through a course in just a day or two so that I get a sense of the landscape, and then go back and review things as I need.
And what happens is, as I'm going through a course, questions or issues naturally come up. So what I do is keep a running list of these questions as I go. Sometimes my questions get answered later on in the course as I go. But if they aren't, this is where free resources like Google and YouTube really shine. These free tools are going to give me loads of information about very specific topics. And now that I've been through a full course, I know exactly what to search for.
Should I use CSS floats or FlexBox?
When should I use a class selector versus an id selector?
How do I vertically center an object in CSS?
If I hadn't been through a full course yet, I don't know what I don't know. I wouldn't know what to search for or what I should be learning -- I wouldn't even know what selectors are, what a float is, and so on.
This is why going with a paid course is actually less expensive in the long run. You can learn the topic faster in less time, and then know what specifics to dig into using Google, YouTube, or forums.
The biggest piece of advice I have for you when learning CSS (or anything, really) is to find a big enough why. With a big enough why, you'll have the energy and motivation to not only get through the early stages of getting your head wrapped around the fundamentals, but you'll also be able to tackle problems and challenges that'll inevitably come up.
If you're just learning CSS and web design because you want to make more money, then getting defeated and quitting will happen early on, at those first few bumps in the road. But if you're learning this stuff because you want to build an online business, help your non-profit, or start a new career to better provide for your family, then you'll have a big enough why, which is what it takes to learn it well.
Hopefully, I've provided you with lots of guidance and info for you to go on in this article. And honestly, I'd love to continue with you. I've been teaching and helping people just like you learn web design for almost twenty years.
So if you'd like to continue, I have some resources for you.
First, if you'd like to get a broad understanding of HTML, CSS, and web design -- and how all these pieces fit together -- let's sit down together in my free HTML and CSS tutorial. If you're not sure if this stuff's right for you, or if you just want to get your feet wet, this is a great place to start.
Or if you're ready to jump right into CSS and HTML and learn these two web tools quickly (and have a few laughs along the way) then let's get to it in my full-length online course, HTML5 & CSS3 Site Design. This course gives you everything you need to know to get that solid foundation in the fundamentals.
I'd love to see you there!