5 Things I Wish I’d Known When I Started Learning Programming

I first became interested in programming at my previous job, where I worked in a non-tech role at a tech startup. Initially, I started learning in order to work more effectively with our engineering and product teams. Soon I discovered I liked programming more than anything related to my job. I’ve since left that job and am in my first week of programming bootcamp at the Flatiron School. The path here was not by any means crystal clear, though.

In retrospect, I struggled more than I needed to, and wish I’d known about the following when I first started learning:

1. The Odin Project: Part of what’s great about learning programming — the insane amount of resources available — can also make it overwhelming at first. If you use one resource to teach yourself, I recommend The Odin Project. It’s a free fullstack web development course, created by someone who went to and wanted to replicate the coding bootcamp experience online for others. It aggregates resources like CodeAcademy, CodeSchool and Team Treehouse, along with videos, blogs and projects, and organizes them into a curriculum that encompasses basically everything you need to know to become a fullstack or front end developer (and/or prepare you for your bootcamp interviews and bootcamp itself).

2. Developer Workstation & Command Shortcuts: Instead of trying to download and configure the latest versions of languages, libraries, package managers, etc., I would have saved a lot of time and energy just downloading software that would do it all for me. I used Pivotal Sprout Wrap eventually, but Flatiron’s Learn.co tools app is great too. I also wish I’d known about Shortcutfoo, where you can learn and practice command shortcuts so you can navigate your command line and text editor without ever needing to use your touchpad.

3. Mentoring: I recruited my friend (and QA engineer) to become my mentor pretty early on, and I’m so glad I did. When you’re learning on your own, it’s incredibly helpful to have someone to talk to about what you’re doing and ask for the help you’re inevitably going to need. I wouldn’t have learned nearly as much in such short a time if it weren’t for my mentor’s encouragement and support.

4. Meet Ups & Coworking: Aside from being a great resource for workshops, meetups are awesome for meeting fellow learners. Being part of a community of people who are, or were, in your position helps underscore the attainability of your goals. These people can also offer up whatever tips and resources helped them. I found coworking meetups like Hacker Hours particularly helpful, because they helped me focus on my projects, while providing general support as well.

5. Not Being Hard on Yourself, Dummy: It’s easy to get frustrated when you don’t get things immediately. Way too easy. But I’ve learned that it’s just a part of programming (and that it gets easier) and that everyone is humbled all the time. There will always be things you don’t know and will struggle to understand, whether you’ve been a programmer for ten days or ten years. The key to being a great programmer is having the tenacity to push through the frustration.

If I could go back ten months, I’d tell myself “You’re eventually going to cry a lot at a Pixar movie called ‘Inside Out’”. But I’d also tell myself that in ten months, I’m going to be at a programming bootcamp and well on my way towards becoming a fullstack engineer. The time I’ve spent learning on my own helped me confirm that this is a discipline worth leaving my job for and prepared me for the challenges of bootcamp. Despite not having a clear path at the outset, everything I’ve learned so far has paved the way to help me get where I’m going.