Challenges of Learning
Teaching yourself to program is difficult for a number of reasons, but I’ve found for myself the biggest problem is distraction. I’ve always been distractible and I’ve found focusing on one thing for an extended period difficult. Learning online exposes a person you insane number of great resources and it’s tough to filter through all of the various tutorials and stick to one thing. In order to limit distractions, filters can be handy. One filter that I’ve often applied is a financial one: I don’t like to pay to learn to code when there are so many incredible free resources. I’ve broken this rule several times, in part because I see the value in learning with others and because a financial commitment is pretty good motivation. Plus, paid resources can often be a lot better than the free ones. If you’re a beginner, there are plenty of free resources and once you’ve reached an intermediate level, it’s much easier to teach yourself or refer to documentation and Stack Exchange.
Since I began, I hopped around quite a lot, not really knowing what I wanted to learn or why. I just knew that it was interesting to me and that anyone could potentially learn to code. I started my journey into programming many years ago with Codecademy’s Year of Code. I also spent a bit of time with Free Code Camp, but have yet to earn a certificate. My plan to return and get my front-end and data visualization certificates. This year I decided that it was reasonable to pay money for Hack Reactor’s boot camp prep program called the Structured Study Program, and the program was great! I experienced pair programming and some of the most challenging and time-intensive programming problems. This program helped me get admitted to Hack Reactor’s Part-time Remote Program, but there’s no way I can afford the $18,000 tuition. Despite deciding not to attend, getting admitted to what I felt is a challenging coding boot camp was a big confidence boost.
My plan is to continue with mostly free resources, but I am paying for two very good and inexpensive programs that I hope will get me on my feet as a programmer. One is Udacity’s Intro to Programming nanodegree, which I’m honestly not sure is worth much in the developer community. The other is Codecademy’s beta Front-End Web App program, which will teach me enough Javascript and React to build two of my own apps. If nothing else, both of these programs are inexpensive and both will contribute to my portfolio, which is pretty sad-looking right now. I’m excited to start!
The biggest challenges (I’ve found) on the path to learning to program:
Too Many Resources
This has certainly been a big problem for me — I have a diversity of interests, including Ruby, Javascript, Python… there are just endless opportunities to learn and work on new things. The web is a wonderful source of learning opportunities, but there are just too many tutorials and instructional platforms. My suggestion would be to stick with a single language at a time (even if you’re planning on going into web development) and commit to sticking with a particular program or tutorial through completion. Use a checklist if necessary — use it to check of small items on your way to finishing bigger ones.
Lack of Time or Direction
Yes, I do realize that we all have the same amount of time, more or less. But there are commitments, especially when you get older and have a family. If you’re short on time, make the most of what you do have. Use a pomodoro timer and work in 25-minute sprints, taking five minute breaks in between. Or figure out your own system, like hour or 45 minute sprints? Make sure you know what you’re working on before you begin and stick with that single task. Single-tasking is an powerful weapon for combating distraction and monkey mind.
Difficulty finding mentors
Programmers are not the most social group and consequently tech mentors and peers are hard to come by in some places. It’s often the students who form Meetup groups, but in larger cities there are great opportunities to work with others to learn. Probably the best way to learn is to get an entry-level role and rely on more advanced programmers for mentorship, but this isn’t always possible.
High Cost and Time Requirements
Learning to program is difficult and takes a lot of time. Coding bootcamps know this, and they know they can charge a lot for a decent education. Many boot camps are great and create job-ready graduates, but it seems to me that the best thing about boot camps is the fact that they require you to focus on learning for an extended period. Often, you’re a part of a small cohort working on the same things and because of this there’s both group support and group pressure to work hard. Everyone in a boot camp has a similar goal, to work as a programmer. Boot camps also require you to carve out the time to program, either in person or online, which goes a long way towards eliminating procrastination and excuses. Keep in mind that becoming a decent programmer does take a lot of time for most people and that there are no shortcuts. Apply your own financial filters if you need to, and find others to work with if at all possible.
Originally published at danstrong.tech.