Programming is hard.
What if it doesn’t come naturally to you?
There are a lot of aspiring developers here on Medium. There are a lot of expert software engineers, too.
If you’ve read some of the brilliant pieces about programming, you might have walked away feeling like you’re not cut out for this.
I want to set the record straight, because imposter syndrome is real:
- Programming is hard for everyone.
- It’s okay if it doesn’t come naturally to you.
- You can and will be successful if you figure out how you learn.
Programming is hard for everyone.
There is not a single developer on this platform — or outside of this platform — who closes their eyes, writes perfect code before lunchtime, pats themselves on the back for a job well done, and lays down watching the money flow in.
Companies would not need to keep engineers on staff if this were an easy job. If programming were easy, it would be a 1–2–3 thing and companies would contract it out on the rare occasion that the code needed to be revisited. Companies wouldn’t pay developers more than the average physician’s salary if it were an easy job.
But that doesn’t mean it’s an impossible job, nor that programming is an insurmountable task. It just means that every developer struggles at some point, and that struggling is not an indicator of your capabilities.
Even the best developers stare at their screens, perplexed, wondering if they should have someone else look over what they just did.
It’s okay if it doesn’t come naturally to you.
A lot of things don’t come naturally to us, but we still learn how to do them… and often, we learn to do them well.
Ask someone who learned another language later in life if it came naturally to them.
Ask an Olympic ice skater if triple axels came naturally to them.
Ask an amazing doctor if they have ever misdiagnosed someone.
Think about the things you do in your everyday life and ask yourself how many of those things were intuitive to learn. Were you born knowing how to cook? Did you figure out how to navigate your company’s awkward in-house software on day 1 of the job?
It’s not about intuition; it’s about recognizing that you are capable of learning new things, regardless of how old you are or how inexperienced you are.
You can and will be successful if you figure out how you learn.
I nearly failed trigonometry and Spanish in high school, but I ended up teaching bilingual trig a few years later. Don’t worry; I wasn’t unqualified. I just figured out how I learn.
Programming is one of the few fields where self study can get you just as far as— or futher than — formal study. You just have to figure out how you learn.
Some people use online courses or games to learn the syntax of a language. They are able to take what they’ve learned from these exercises and use it to create a full-scale application. Other people will reach the end of the same online course and then stare at a blank text editor, not making the connection between the syntax they memorized and the functional application of the code they are trying to write.
Some people thrive in coding bootcamps because they are working collaboratively and learning from others. Other people realize that they’re just regurgitating code that they’ve learned… or stashing the instructor’s examples for later use.
There are coding tutorials all over YouTube. I’ve done a few. Many of us have. Some people are able to do a tutorial and then immediately apply what they’ve learned to build something of their own. Others get through the whole tutorial and leave comments like, “How do I change the color of the box on the top?”
The bottom line is that only you know how you learn — but don’t ever sit there thinking that you’re incapable.
If you’re having trouble conceptualizing something, break it down. Ask someone to explain it. Don’t be one of those people who is afraid to ask questions. I promise you — the senior back-end developer that you admire asked at least one question today.
¹ Added quotation marks around “coding” because of the apparent debate about whether building entire websites in HTML/CSS alone counts as “coding”.