This post is for anyone looking for inspiration or guidance in their journey to becoming a professional developer.
Before I get into this post, I want to make it clear that I am not sharing this information to say this is absolutely what you should be doing to become a developer.
My only goal here is to share what I personally did so you can consider if it is something you want to explore as well.
My path is different from the "traditional" path and I think it's important for people to share that there are multiple ways to achieve goals.
When something as universally accepted as getting a college degree turns out to be a massive disappointment for so many people, it's important to make sure people realize there are other, potentially better, and smarter ways of starting a career depending on you and your circumstances.
So read my story, consider it, and make your own decisions for your path forward. Only you can know what is best for your life.
Back in 2009, after I graduated high school, my plan was to go to vet school and become a vet for wild animals at an animal sanctuary or zoo or something.
High school was always easy for me, and I was not prepared for the independence and new challenge college brought.
I ended up failing Biology my freshman year and decided science wasn't for me. I switched my major to psychology with a minor in criminology.
My new plan was to work for the FBI, military, or something else catching bad guys.
Once again the Almighty had something else in mind for me. I ran out of money my junior year in college and dropped out.
I was a little over $20,000 in debt at this point and couldn't take out any more loans.
So the new plan was to work some random jobs while I saved up some money, then go back to school part-time and take a couple of years longer to graduate.
So I started working at restaurants, landscaping and driving a forklift at 4 AM.
During that time I started experimenting with computer programming.
I always had a knack for computers so I figured it would be fun, and I was right.
So I discovered the joy that is web development.
I began learning as much as I could. Although I'm a React dev now, I began with Laravel and started building stuff using that.
I started off using tutorials online and just following along with them.
At that point, I started wondering if this was something I could make a living out of.
I could see there were a lot of opportunities out there to become a developer and that software was "eating the world."
I really liked it and decided to make that my new career goal.
So my plan changed slightly. I would still try to save up and go back to school but I would switch to computer science.
I took a class at a community college in my town in C++.
Then I started looking at what tech stacks companies I admired were using, and what was growing in usage and noticed a big disconnect.
I looked a bit into what I would be learning if I were to major in computer science at university and it did not line up with where the jobs were and what I enjoyed doing.
So I had another idea.
Maybe college was overrated.
Maybe I could create my own career and be my own credential instead of having to rely on others to determine my worth in the economy.
This was a bit of a red pill moment for me as I realized there might be a significantly better way to prove to employers that I would be a valuable asset to their company.
So I decided to give it a go.
Instead of going back to college, I would focus on learning as much as I could and proving to potential employers that I possessed that knowledge.
That's what I started to do.
The first thing I started to do was make things on my own, without following a course or tutorial, that solved actual problems.
These weren't major problems, they were just little personal things in my life that I wanted to make easier.
I built a simple app called TinyThought that was a minimalist daily journaling app. It solved a specific problem in my life and showed that I could build things on my own that solved actual problems.
If you can't solve actual problems with your code, you have no value to a company. Companies hire developers to solve problems that other people have and will pay to solve.
Your goal with your coding projects should be to solve real problems.
The other major thing this accomplishes is teaching you how to research and solve problems on your own.
Following courses and prescribed project plans gives you a false sense of knowledge and makes you think you know more than you do.
You'll most likely be familiar with the feeling of completing a development course, thinking you are ready to go and feeling completely lost when you sit down to build something on your own.
That feeling of mental struggle is a good thing, it means you are learning.
Push through it and build complete projects that solve real problems.
Once I started building real projects, I set up a website and a GitHub profile to show them.
The main purpose of the GitHub profile was to show the code to potential employers.
The main purpose of the website was to talk through my coding process. Why I made certain decisions, the problems I ran into, and how I overcame them, stuff like that.
The goal is to give people an insight into your coding and thought process while providing a sort of home base where you can build your presence and grow your audience.
Next, I started reaching out to relevant people. This included other developers and potential employers.
At first, I was a bit haphazard in how I went about this. I would just randomly email people and introduce myself.
This actually did end up getting me my first job as a junior developer, but I've learned a lot since then and you can be a lot more strategic about who you reach out to and how.
I have a whole post planned on how to reach out to people, but doing something is better than nothing.
If you can email one new person a day simply introducing yourself and linking to your website, that will add up and go a long way.
Don't be spammy, weird, or dishonest. Just be upfront about why you are emailing them.
Too many people try to make themselves sound more important than they are, or try to "provide value" by sharing the person's post or something like that.
If you are just getting started, don't have any value to provide yet, and are just looking to introduce yourself to get on peoples' radar, then say that.
Here's a simple email as an example. This is very similar to what I sent that led to me getting my first job.
My name is Ken. I started learning web development a few months ago and have built a few projects since then:
[Links to GitHub and live project if possible]
I'm looking to meet people in the industry as I begin my career.
I know you're busy, no need to respond to this email, I just wanted to introduce myself and get on your radar.
The goal of this first email is literally just to have this person become aware of your existence. You can start getting in touch after that with specific asks or things you think they might find interesting.
I'll dive into the details of networking for developers in a later post in this series.
This process was the beginning of me gradually realizing something very important about the current world of work.
Companies hire people based on the value they bring to the business. If you can prove to the business that you can provide more value for them than it will take for them to hire you, the decision is easy, even if they are not actively hiring.
College degrees used to be a signifier to companies that someone possessed the skills necessary to provide that value.
But as degrees become commodities and the pace of tech adoption in the free market outgrows what schools are teaching, these signifiers become less and less valuable.
A similar phenomenon is happening with developer boot camps.
What this means is that you need to take your career into your own hands and be your own value signal.
You can do this by
- Learning valuable skills (development, design, marketing, writing, collaboration, etc.)
- Demonstrating those skills to the right people
I've learned a lot in the last 5 or so years as a developer. I am still learning every day, and I want to help other developers create their own careers as I did.
If you're interested in becoming a professional developer but unsure about how to actually make it happen, you may like my upcoming course and mentoring group: Launch Your Dev Career.