One Year As A Pro: Lessons From a Self-Taught Developer

Today is the one-year anniversary of my first day as a professional developer. I’m self-taught, which doesn’t actually mean I’m self-taught. It means I didn’t go to school, or a bootcamp. I used free and paid online tutorials* to learn how to make websites and apps, and it changed my life.

I’ve learned a lot in the last year, and I thought it might be useful to share a few key things. These are things that I’d love to go back and tell myself before I started working, when I was ‘still learning’. (Pro-tip: That never, ever stops.) I hope someone else on this journey will find these lessons useful, or encouraging.

  1. You don’t need to know everything to start working. Build a foundation in some basics. You already know how to learn, research, and teach yourself new tools, skills, and concepts. You will be doing new things almost every single day anyway, so don’t sweat it. Learn what you need, when you need it.

  2. Related to #1: Get used to Not Knowing What’s The Right Choice. You’ll feel it a lot. Not Knowing is uncomfortable, sometimes painful. It often triggers insecurity and imposter syndrome in me. Most of the time, there isn’t a Right Choice. One of my professors used to say, “There’s no right and wrong, just choices and consequences.” (Thanks Sholem Dolgoy) There are as many ways of solving a problem as there are developers who could solve it. Try something, see what happens, and then improve on it as you learn from that. Cultivating Beginners Mind will do wonders here.

  3. You will make mistakes. You will write bad code. You will fuck up. You’ll often do this without knowing it at the time. Sometimes you’ll do it knowing it’s not great, but not knowing how to do it better. This is all fine. Commit to doing the best that you can with the skills, knowledge, and energy you have that day. You’ll always know that if you could have done better at the time, you would have, but you couldn’t, so you didn’t. Fix what you can when you can.

  4. Automated testing is amazing. Automated testing is also hard. We should teach it from day 1 in any programming course, but we usually don’t, so teach yourself. It’s worth it. Keep trying. You’ll wish you started sooner the first time a test keeps you from making an app-breaking mistake. When you do make an app-breaking mistake, ask yourself how you could have written a test to prevent it.

  5. Sleep, eat vegetables, take breaks. Know when to go home and walk away from something. Everyone has a story about that time they worked for hours on a problem, only to come in the next morning and fix it in 5 minutes. There’s a strong lesson there.

  6. If have a background in anything besides tech or programming, your perspective is valuable. Any industry, project, or activity suffers when it’s too insular. Breadth and diversity of experience and opinion makes anything stronger and better. I draw on things I learned in theatre school all the time.

  7. You can do it. It truly is possible to get a career in development without going to a bootcamp, or getting a degree. I’m still shocked sometimes that I did, but here I am. It was a lot of work, but my quality of life has improved, I’m more financially stable, and I get the privilege of making things every day.

*I am extremely grateful in particular to the awesome work of Wes Bos, Scott Tolinsky, and the folks at Treehouse, for the high quality educational content they pump out. I also want to call out Garret Levine, who out of the goodness of his heart mentored me and encouraged me when I was starting out. I really, honestly, truly couldn’t have done it without him.