This is a common question among aspiring developers. How much do I need to learn before I’m ready to go get a job? Bundled up in this seemingly simple question are some fears and an assumption about starting a career in web development. Let’s unpack them and address each individually.
Fear: I don’t want to get caught in a web of continually learning for Learning’s Sake.
Now, you’re reasonably well-equipped for front-end, but what about back-end development? You’ll need to learn Node.js and Express. You’ll want to know Docker so you can develop on the same environment you run in production. On the other hand, maybe you just skip all that and learn to build serverless back-ends…
This rabbit hole doesn’t end. The number of technologies you could learn today is almost limitless, and new ones are being developed all the time. If you allow yourself, you can be a perpetual student of web development.
That’s not why you’re here, though. You didn’t set out to learn web development just for the sake of doing it; you have a goal you want to accomplish. Take a lean approach and learn as little as you can to accomplish it. Once you’re there, let your new goals drive what you learn going forward.
It’s easier said than done. You still need to know where to draw the line. Never fear. Read on to find out exactly what you need to learn to get started.
Fear: I don’t want to waste time looking for a job when I don’t have the right skills.
This is another totally valid concern. If you throw yourself into a search for a permanent position before you have sufficient skills, you’re going to run into a wall of frustration as you contend with rejection after rejection. Here are my recommendations about what skills you should have before you start looking for a permanent position.
- HTML– This one should go without saying, and it’s the easiest to obtain. You should have a firm grasp of HTML. You don’t have to have every element memorized, but you should be able to build most pages without much referencing of outside materials. No big deal if you still need to look up attributes or form controls.
- CSS– You should know the basic selectors (type, class, ID, universal, and attribute) and how to use them. You’ll want to at least be aware of the combinators (descendent, child, general sibling, and adjacent sibling) — enough to know when you need one and to be able to search to see how to use it. Know about pseudo-classes and pseudo-elements and when to use them. Be able to use most comment properties without referencing. Know the various units of measurement available for setting sizes and which you can use with with properties. Know which properties have shorthand properties. Understand browser prefixes and when you need to use them.
These recommendations come with several caveats.
- You can find jobs that don’t require all of these skills. In general, the more skills you have, the more money you can earn.
- Jobs that require fewer skills pay less and are harder to get because the pool of potential candidates is larger. The more skills you have, the fewer people you’ll compete with.
- If you specialize in one area, you may not need to have as much knowledge in the other areas.
- If you look for contract work instead of permanent positions, the whole equation changes. This brings me to my next point…
Assumption: Getting a full-time job is the easiest/best/only way to start a career in web development.
Most people asking this question want to know how to go to work in a full-time permanent position. For most people, this is the only mode of working they know. Freelancing is scary for a multitude of reasons like health insurance (if you’re in the US), having to sell all the time, and dealing with droughts.
Despite all that, it’s a great way to get started in your web development career. Since contract jobs generally have tighter scopes than permanent positions, you immediately lower the bar for yourself and allow yourself to start working for pay sooner. You can also get paid while you learn to work with a team and while you build out your skills. Instead of trying to guess what to learn next, you can take contracts that stretch you just a little and let this push you forward to learn. By doing this, you know you’re learning skills that are worth money because you’re already being paid for them.
Those are some of the benefits, but you still have to overcome the fears and uncertainty around freelancing. For those concerned about health insurance, the solution is to charge more. People expect to pay a higher rate for contractors because they aren’t paying benefits and employment taxes on them. Make sure you’re charging enough to cover whatever health benefits you want to buy yourself and to pay your self-employment taxes.
Having to constantly sell yourself can be difficult and it can feel like starting over after each job. When you first start working this way, it feels like free-falling: you don’t know what’s going to happen next. After a while, though, you get used to it and you learn ways to cope. It’s definitely better than applying for permanent position after permanent position and not having any success.
Droughts are similarly scary. When you freelance, you’ll find yourself in times when you can’t finish all the work you have while other times, you may not have a single job for several weeks. Again, this is difficult only until you get used to it. You’ll learn to start looking for work even when you’re flush with it and to keep a buffer in your bank account to make it through any droughts you encounter.
A permanent position isn’t the only way to get started in web development. Consider freelancing as a great way to continue learning, get real-world experience, and get paid while you do it. You may find you like the freelance lifestyle and want to stay with it. You may see it as a jumping-off point for a future full-time position. In either case, you’re better off getting started than waiting for that perfect job opening.
Getting started in freelancing is scary.
If you've never done freelancing before, it's hard to start because it brings with it so much uncertainty. Share your name and email, and I'll share tips to make your transition less scary.
As you’re looking through contract jobs, note those that are interesting but that you don’t have the skills for. You’ll start to see trends that will tell you which technologies you should learn next to take on the work you want. This is much more effective and valuable than blindly learning the framework-of-the-week.