“I don’t enjoy programming. Will I once I am good at it?” This question was posted recently on Switchup.org, a resource site for people considering code school. Learning how to program is a difficult challenge, and it can be hard to understand the rewards when you are struggling with the foundations. I asked myself the same question when I was tackling the first steps, but I didn’t have to wait until I was good at programming (I am still waiting to be good at programming) before I began to enjoy it. Breaking through a difficult problem became the part that I enjoyed, but I needed a few breakthroughs before I got completely hooked. If you are mired in a problem that you don’t know how to solve, it’s natural to question your devotion. If you find that you are not enjoying the process, take a step back to gain some perspective.
Earlier this year I was working on a very difficult project, and I would often come up against problems that I had no idea how to solve. I felt in over my head and had strong feelings of imposter syndrome. I was struggling with some very challenging technical problems, and one of my amazing mentors shared her own mantra for putting a problem in perspective: “There is a finite amount of time that you will work at this and not understand it.”
Most programming challenges are not like Fermat’s Last Theorem (a math problem that wasn’t solved until 358 years after it was published). They can usually be broken down into manageable (and solvable) chunks. If you can’t break down the problem or you stay stuck for more than an hour – find help! StackOverflow, Google Groups, GitHub, and Meetups are communities of people who love a programming challenge. If you come away from a tough problem with a solution, or at least a few extra tools to use the next time you are stuck, then that is a resounding success.
Curiosity, determination, and creativity are the most important features of a good programmer. If you’re considering going to code school but you don’t love programming, consider all of the other options that code school can open up for you. If you’re still unsure, try a different programming language, framework, or medium. Try to make something useful, like a game, a blog site, or a to-do list. You don’t have to start out with a passion for programming, but you do need curiosity and a high tolerance for frustration.