Is coding for me?

Yes. Yes it is.

Now that the cat's out of the bag and I've already spoiled the ending of the story, allow me to introduce myself. I recently landed my first coding job, and I figured I would use this opportunity to share my experiences for people who are not sure if coding is for them. It is very common to think "I'm not good at math, I can't be a programmer!" or "I am bad at solving problems, maybe coding isn't for me and I should just quit.". If you have ever thought something like this, believe me, you are not alone.

And I firmly believe that coding IS for you.

The reason I know this is because you are reading this article. Whether you are just beginning your coding journey or if you've been programming for months or even years, the very fact that you found this article tells me that you DO have the right mindset for coding. A few key observations:

  1. You were searching reddit / Medium / following someone on twitter for coding related content
  2. You understand that coding is not easy
  3. You realize that you are not an amazing programmer (yet)

These three steps are essential for any programmer to realize, so the fact that you already have, puts you way ahead of tons and tons of people who never get here.

Even if I suck at math and struggle with problem solving?

Coding is a continuous journey, and the only way to get better at programming is through practice and repetition. Problemsolving is a skill that can be learned, as are new programming languages and JavaScript frameworks and buildtools and servers and everything else. The most important thing is having the mindset to realize and appreciate that there will always be things you don't know, and that there will always be things you can improve on.

I am not very good at (or particularly interested in) math. Sure, this rules out some programming fields. If you dislike math, maybe 3D rendering or game engine programming is not the field for you. That still leaves the other 1000 programming diciplines left to choose from, so I'm positive at least one of them will be interesting to you. And like I said, anything you put your mind to can be learned - if you have an interest in something, but not the skills, you're already on a solid path. Now all there's left to do is put in the hours of practice. There are no shortcuts around this (through this? A shortcut going around something is not really a shortcut, is it...). Practicing any skill for a certain amount of time every day builds habit, and it all adds up in the end. This includes, as much as anything, problem solving.

Which brings me to the next section:

Eat That Frog

I recently finished listening to the amazing book "Eat That Frog" by Brian Tracy (a tip I got from the web development podcast https://syntax.fm/ - thanks Scott). Highly recommend it, it's a quick and easy read or listen and is jampacked with actionable advice for improving time management. The core premise is simple:

  1. Every day, figure out the most important task that you need to get done today (your "frog")
  2. Once the task is identified, begin working on it
  3. Don't stop until you're done

Getting your biggest and most important task done as early as possible in the day leaves you energized and powerful. It makes all other tasks that need doing today seem tiny and easy in comparison. And by repeating this pattern, you'll begin to form a habit that will greatly boost productivity. Your most important task is of course relative to your situation, but anything related to coding is probably important for you if your goal is to be a professional programmer. So start right away - begin your day by programming. Make time for it in the morning before work, and focus on it entirely for the duration. If that is not possible, do as much as you can. It will be hard in the beginning, but building the habit is very important. If you're interested in concrete ways to learn this skill, check out the book.

Conclusion

I firmly believe that coding is not for everybody, but it is for you. You went the extra mile to find and read this article, and that alone shows a heck of a lot of commitment and enthusiasm toward programming. This is not to say you should quit your job tomorrow and live off pizza until you stumble upon an employer willing to hire you. You've got the interest and the motivation, not (necessarily) the skills (yet) - that comes through practice and hard work.