Hey, my name’s Leo, and I’m currently one of the mods and contributors to The Odin Project (TOP).
In October of last year, I landed my first web-development role. Prior to this, I had graduated with a Masters degree in Counseling Psychology from an Ivy League institution (lol my student loans), working mainly in social services and advocacy. Now, I’m with a reputable, international company located right outside of Washington, D.C, where people love running, ride e-scooters in traffic like they aren’t going to die, and still think Chipotle is good food.
Don’t you put that evil on me.
I wanted to take a minute to share some thoughts I have about being self-taught. I can’t promise the insights will be unique, but I hope it’ll help in providing context to the ins-and-outs of that process. Let’s dive in.
Step back from the race
When I slowly realized that I might be able to take coding from a hobby to a possible career change, and I spent some time looking for inspiration and seeing what the experience of other peope might have been like. The results weren’t actually that inspiring:
- From Zero to Hero: How I Became A Professional In A Year. Wow
- How I Became A Software Developer In 10 Months. Wooow
- How I Became A Developer in Six Months And Counting. Whoa now, that’s fast
- How I Became a Self-Taught Developer in 3 Months: Chris Sean’s Story. Ok what the actual f@ck
I guess I missed the moment when becoming a self-taught web-developer became part flex, part race, but I’ll tell you this right now: you’re doing yourself more long-term harm than good by telling yourself you’ve gotta go fast.
The only thing these articles can definitively tell you is that getting a job as a self-taught web-developer is 100% possible. The rest is relative, subjective, and arbitrary.
Setting a time goal is helpful. It can frame and influence your learning. It can serve as check-in points that allow you to evaluate what you’ve learned and re-evaluate your goals as needed. And that last bit is important, because it will be needed. You’ll find yourself going into rabbit-holes as your learning illuminates areas of particular interests that temporarily take you off-course (more on that later).
Don’t bite your knuckles if you can’t land a job after 3 months like Chris Sean (is that even your real name?), or even a year. If your area is looking for developers, it will happen. The deadline is less important than the learning. I’m no athlete, but I know that when I’m on an elliptical machine (I have bad knees, ok?), I suffer the most when I look at the time I have left on my god-forsaken workout.
To begin with, the entire idea of becoming a developer in X amount of time is flawed. You become a web-developer the moment you start and commit to life-long learning. There is no finish line with technology, least of all web-development. Yes, without a doubt, finishing a personal project (lolwut) or landing a job are both significant achievements. But you’ll end up tumbling if you think you can coast after getting that job. The amount of new stuff I’ve learned during the last six months at my job is mind-blowing.
It doesn’t end, which is why I think that it’s more helpful to feed your curiosity for code.
When I accepted my current position, my team leader told me that they had done so partly because, as a self-taught developer, I had exhibited the ability to independently pursue and learn things that interested me.
What does that even mean?
First, it means that you don’t know everything, and you recognize that you don’t need to know everything, but that nevertheless you do something about it.
As you go through your exercises, take note of things that are presented simply, but appear to be more complicated. Maybe you’re reading about a secondary topic that is “beyond the scope” of the primary topic. Maybe something appears too magical to be true. Keep a notebook of topics you want to dive deeper into. You aren’t responsible for the things you don’t know that you don’t know, but you are responsible for the things you know you don’t know know.
Now the hard part: cull that list. If you dive into every little rabbit-hole, you’ll never get anywhere. Knowledge gaps are okay. Even Dan Abramov admits to them, and that’s a powerful wake-up call. If you feel anxious about having to learn everything, take a humongous breath and breath out. Focus your energy and curiosity for those moments you come across a topic that truly sparks joy and curiosity.
Remember, this was never a race to begin with. If nothing strikes you at the moment, write it down. SQL, algorithms and time complexity: you’ve got the basics (or not), it’s not immediately relevant, so maybe take a deeper look later? That’s totally fine. You’re not doing this because you have to. You’re doing this because you love challenges, you love art and creation, you love computers and the internet, and you want to Instagram a picture of your IDE and tell everyone you’re a coder.
Passion and talent require consistency, especially when you are self-taught. Plenty of people have the great privilege to attend coding bootcamps like Thinkful, where structure, guidance and mentorship come hand-in-hand with learning.
That wasn’t an option for me. I had too many financial obligations, no savings to speak of, and worked in social services. Even if I loved the work, my paychecks were a joke.
Here’s the deal: if you want to be successful as a self-taught developer, in whatever way that means, you must be consistent. There is a huge, long-term difference between I think I’ll do some coding today and I’m setting aside 2 hours to code today. You want to be in the latter group.
TOP already provides much of the structure, but the curriculum is self-paced. You have to set the pace, and a good pace is any pace that is consistent and even. You aren’t binging one day, and skimming the next day. Balance your work and breaks. Use the Pomodoro technique. Counter-intuitively, I believe that being consistent also allows one to be more flexible. The habit of consistency means that you can get right back onto the horse if life happens and you need to step away for a bit.
Honor your curiosities. You owe it to yourself to consistently pursue your interests.
One look at StackOverflow is all one needs to be convinced that gatekeeping in coding is a real thing.
Too many people thinking highly of themselves, only because they understand some topics better than others. I’d like to suggest a different route: be ridiculously helpful.
Being helpful provides a tremendous learning opportunity. It allows you to exercise and solidify your understanding of a topic. It sometimes opens you up to corrections from others, too, and that’s valuable and okay. Remember, learning is continuous and life-long, so you’ll never get it right 100% of the time. Being helpful is an opportunity to actively engage in education, in a way that benefits other people. It’s truly a win-win situation.
Here’s the real-kicker: self-taught is more or less a lie, at least here at The Odin Project. TOP runs because of volunteer contributors and ridiculously helpful folks that make sure the students have a positive learning environment and experience. Aside from our free and open-source curriculum, I would argue that half of TOP’s value comes from the community. I myself never felt that progressing through the curriculum was a solo effort, and I wouldn’t want you to feel that way either.
The more you come to understand, learn, and practice, I hope you’ll take a minute to help the ones that are in the position you were in, however long ago, struggling to link a CSS stylesheet in your HTML. I think that’s a great measure of success.
Be curious. Be consistent. Be helpful. You’ll get to where you want to be.