Enter the Tech World
The biggest bottleneck new entrants into the tech world are going to run into is a lack of years of experience.
The happy path is that you graduate high school and go straight to a good university. You major in something tech related, whether that be computer science or software engineering, and while you're in school you take internships, ideally at big FAANG type companies. This is why the University of Waterloo is the top tech university in Canada. The internships are the whole point.
By the time you graduate, you have a degree and around two years of professional tech work experience (from your internships), and that qualifies you in the job market for entry level jobs.
If you don't fit that pattern (like so many don't, myself included) getting into tech will be an uphill battle.
This article is about how to overcome that.
Years of experience
What employers are really looking for – what they really, really want – is a way to determine up front with as little work and as little risk as possible, whether you can actually do the job they want you to do. And they're really bad at determining that.
Even watching you attempt to do the job is insufficient at determining this simply because of our ability to learn. To employers: you will see outsized returns on selecting for candidates who can learn at high efficiency.
The heuristic most hiring managers settle on is to assume that the longer you've been working professionally, the more qualified you are. This is observably wrong, but all heuristics are wrong.
It follows, then, that anything you do to increase your perceived years of experience will be a high-return activity.
What counts as experience?
In the web development world, the jobs with the lowest barrier to entry are often local Wordpress agencies. Every city has them. Google "web design {my city}" to find a list of agencies and apply for a job . It's largely commodity work and pays like commodity work, but years of experience are fungible and collecting them will pay off long-term.
Freelancing is a valid option as well, but it doesn't weigh quite as highly as agency work. A prospective employer can call your agency and confirm your start and end dates. Time spent freelancing is often used to cover up periods of unemployment, and any experienced hiring manager is well aware of this ruse.
Personal side-projects are a fantastic way to learn and improve your craft and having them on a resumé is better than not having them. Unfortunately, in this capitalist environment, most employers will only count them as professional experience if they're generating revenue. Finding a way to capitalize on a project you've been working on for ages is a great way to turn those years into years of experience.
Where to learn?
If your goal is to learn organically, I recommend taking a project based approach to learning .
That means you start a course or a personal project and maybe at the beginning you're following instructions or copying something else but as ideas come you change things, and make new things, and when you get stuck you google or ask for help and you will eventually learn to code merely by just kind of doing whatever.
It's not even entirely important that you complete the project. That's a bonus for sure – you can put the project on a resumé, or make some money off it, or just show it off at parties – but if the goal is to learn, there are so many different ways to learn while building something that have nothing at all to do with finishing, and there are many ways to demonstrate that knowledge that are still advantageous to your career.
Joel Hooks of Egghead.io has a great career focused guide on building developer portfolios here which touches on how to choose what project to start.
As far as courses go, FreeCodeCamp is usually my top recommendation.
Showing what you know
Most career developers have average programming skills. Mathematically that sounds obvious, but it bears repeating. You do not need to know everything in order to have a successful career.
Someone who can demonstrate what they know is a safer hire than someone who knows twice as much but can't.
No one has a window into your brain to prove your competence, so you'll have to build that window yourself.
The most powerful way to show what you know is to write about it somewhere public . Long term you should have your own site so you can own your own content. Short term, do anything that gets you started writing. Dev.to is a great entry point and it comes with an audience.
Write a post every time you solve a bug. Include whatever error message you got in the post – that's good for SEO – mention your solution, and put down any references you looked up while debugging. One day you'll hit a similar bug again and you'll be glad to have this to look back on.
Write a post any time you make a technical decision. Picked MongoDB instead of Postgres? Write down why.
You can read more about learning in public in this article by Swyx.