it's difficulty is dependent on your ideas
For the most part, programming is never really a difficult task. And that's mainly because you will usually find yourself working on something that's at your experience level. And this keeps things exciting..for a while. If you're new to programming, then you probably won't be in charge of scaling up a website with 100 million visitors. And that's because it's a somewhat boring task and it's difficult. Your for loop won't do in this case I'm afraid. And if you're a more advanced programmer, you probably won't be updating CSS on a WordPress website. So if we can think of programming as a series of successive steps that lead up to more powerful, scalable and complex applications, then it's not difficult at all. Assuming you're willing to dedicate 5-10 years in climbing that stairway.
the better you get, the worse you realize you are
Make it a point to look at your old code every few months. Take everything that you picked up in that time, and compare it to where you were. Then update that code. Do this, forever pretty much. I still do it, and yes, every line of code written in the past, is the worst line of code written.
Stop getting so excited about the code
Your first login page will be amazing. Your 30th login page will be the worst thing invented. That's a big part of programming. It's not the "code" that matters, it's what it does. So code and code often to get that out of your system. If you're an author, you're never excited about the words themselves. You're excited about what they imply and what they get across. You're excited when people start to read your words and they start to give life to it. The exact same is true for programming.
for(var i = 0; i < 10; i++)
That's a function up there. It's not very exciting, and it doesn't do too much. But the first time I figured it out, it was amazing. One can't believe that traversing a block 'n' times is a possibility. Now that I know it is, it's still amazing, but my perception of it changes. It's now a tool, that one can use to build, and not the end result itself.
"Learning" to code
You can't really "learn" to program, at least not in a traditional sense. You can finish a few books and take a few online courses and learn some syntax rules, which is good. But a huge part of programming, is the opposite side of the syntax. It's the logic, the flow and the ability to see a solution before you're done hearing the problem. And that's not an ability that can be learned. It is one that can be strengthened however through years of bugs and crappy code. You need to be a terrible programmer for many years, before you become a decent programmer. And there's no way around that. And that's the hard part. Many folk getting into programming miss that entire part and try to jump ahead to app development and hackathons and such.
Any good chef, didn't start off in a 4 star Michellin Star restaurant. He started in some mom and pop hole in the wall place that made a decent sandwich. He learned the ins and outs. He learned about bad customers and bad food. He made slight tweaks to the menu and picked up on subtle nuances. Then one day he burned down half the kitchen. I bet he didn't do that again. But that story is what leads to something amazing.
Ideas are easy, execution is hard
Every idea is a simple process for the most part. This is the fun part. You can picture it in your mind, you draw it on paper, you get hyped. Until you start. Then everything changes. Then you get lost and your schema collapses. Then you have no idea how machine learning works and your project collapses before your eyes. Implementing API's becomes hours and hours of error messages and Googling. So if you want to learn to program fast, go implement an API. You'll either figure it out and learn a ton, or you'll quit and realize you don't like programming as much as you thought you did.
The good news
The good news is that you will either take the challenge of learning to program and the many years that it requires as a fun journey and stick with it, or you'll quickly realize that you hate it and so you'll go out into the world and do something that you do in fact enjoy. Both good things. Strive to be the best, with the belief that you're the worst. That's the best way to approach it. The moment you think you're amazing at programming, is the moment you stop learning.
Walter Guevara is a software engineer, startup founder and currently teaches programming for a coding bootcamp. He is currently building things that don't yet exist.
New articles published each week. Sign up for my newsletter and stay up to date.