Beginnings are exciting and scary at the same time. A lot has changed since I started 15 years ago and the market today is much harder than it was at that time. That’s why it’s so important to always keep learning.

Una Kravets is absolutely right, you just can’t learn everything.

This is the list of things I would have liked to know if I had to start today:

1. Don’t underestimate how hard CSS is

CSS looks easy. After all it’s just a set of rules that selects an element and modifies it based on a set of properties and values.

It’s so much more than that.

A successful CSS project requires the most impeccable architecture. Poorly written CSS is brittle and quickly becomes difficult to maintain. It’s critical you learn how to organize your code in order to create maintainable structures with a long lifespan.

But even an excellent code base has to deal with the insane amount of devices, screen sizes, capabilities and user preferences. Not to mention accessibility, internationalization and browser support!

CSS is like a bear cub: cute and inoffensive, but when he grows he’ll eat you alive. Experience, hard work and study will teach you how to tame the beast.

2. Share and participate

Sharing is so important! How I wish someone had told me that when I started. I’ve spent the first 10 years of my career ignoring the importance of sharing, and when I finally learned, it completely changed how I viewed my work and working with others.

Learn git. Git is the language of open source and you definitely want to be part of the it.

Great developers are kind and generous. A healthy community is full of great developers and you want to be around them. The sooner the better.

Remember that you are as good as the people that surrounds you, so be kind and generous.

Share everything you learn. The path is as important as the end result, even the tiniest things can make a difference to others.

Write and read documentation. Remember that good development is documentation driven development.

3. Pick the right tools

Tools are very important, they allow you do your craft.

Learn your way around your code editor. It should be an extension of your mind.

It doesn’t matter if you use Atom, VSCode or old school Vim, the better you shape your tools to your thought process, the better developer you’ll become. You’ll not only gain speed but also have an uninterrupted thought line that result in a fluid ideas.

The terminal is your friend.

There is a lot more about been a CSS developer than writing CSS. Things like building your code, compiling, linting, formatting and browser live refresh are just a tiny part of what you’ll have to deal in a daily bases.

Pick up your way around the terminal and learn CLI as soon as possible.

Don’t forget that as a developer you are responsible to stay up to date with best practice. Follow resources like W3C and MDN to stay up to date.

4. Get to know the browser

The browser is not only your canvas, but also a powerful inspector to debug your code, test performance and learn from others. Become comfortable using the inspector.

Learn how the browser renders your code, what is its inner working and how to improve your work.

Every browser is different, embrace it. Love them for what they are. (Yes, even IE).

5. Learn to write maintainable CSS

It’ll probably take you years, but if there is just one single skill a CSS developer should have is to write maintainable structures.

This means knowing exactly how the cascade, the box model and specificity works. Master CSS architecture models, learn their pros and cons and how to implement them.

This is a hole you can dig for ever, the more you learn the less you’ll know. Keep up with the trends, have an opinion and only follow the things that makes sense to you.

Remember that a modular architecture leads to independent modules, good performance, accessible structures and responsive components (aka CSS happiness).

The future looks bright

Modern CSS is amazing and the future is even better. I love CSS and I enjoy every second I spend coding.

During the following weeks I’ll write more about how to create maintainable CSS at scale going in depth on the topics that were mentioned on this post.

What do you think about those advices? Don’t be a stranger, tell me on Twitter.