Is Programming Hard to Learn

As someone who recently started my coding journey (January 2022), I know what it feels like to hit the invisible wall between tutorials and actual coding. If you are wondering if programming is hard to learn or even possible to learn, you have come to the right place.

Programming can be hard to learn, but this often depends on where you start your coding journey. If you start with a more advanced or complex language you could find programming hard to learn. That is why I feel that the best programming language to learn first is HTML.

This article will unpack some of the challenges I faced when I decided to learn a programming language, if I overcame them and what you can do today to increase your chances of having a more successful coding journey.

Is Programming Hard to Learn?

The ability to code is effectively the ability to instruct computers to complete countless tasks flawlessly. This power does not come cheaply; hours pay for this skill. Hours of learning, hours of practice, hours of problem-solving and, depending on how skilful you are, hours of trying to figure out where that damn missing colon is!

The reality is that the fundamental principles of coding are not hard to learn. From my experience, most coding is made up of loops and if statements. Think about it: all any computer program does is perform an action x amount of times (in a loop) IF certain criteria are met. IF a criterion is not met, the computer performs a different action based on what you instruct it to do.

The question then becomes, is learning how to write an If statement difficult? Sure different languages may have different syntax to know, but the principle is the same. It is an IF statement.  You can do it in Excel.

So if that is true and all programmes are mostly IF statements, no matter how complex they may be, why do so many people struggle to find programming hard to learn?

All the established developers I follow on Youtube make coding look so simple. So much so that I feel pretty incompetent when watching their videos. Maybe the question is, rather, why do beginners find programming hard to learn?

Why do beginners find programming hard to learn

Frankly, I could write a book about this topic because I am a beginner and struggling to learn how to code. But not for the reasons you may think; it’s not that I believe coding is difficult. If you can write an if statement in Excel, you can learn how to code.

The real reason beginners struggle to learn code is because of a lack of a clear path, conflicting resources, and at times flippant/over-technical responses to a question on Quora or Reddit.

Flippant responses to a question on Quora or Reddit

To an established developer, I get that how to get an image to reflect a background in a column in a flexbox is easy. I also get that the answer has probably been answered 1000 times on various platforms, but here is the problem. I am so new to coding and can’t make heads or tails of any of the answers I find, let alone implement them.  They just don’t come with enough detail to help me understand.

Newbies get reamed for being newbies

As mentioned, I understand that threads probably exist on what I am looking for help with, but at this time in my life, my brain feels like it is exploding with all of the new information I am taking in…and now I have to learn the ins and outs of stack overflow? 

I’m sorry I started that new thread, nothing I could find answered my question in a way that I could understand.

All this does is make you fearful of asking a question, which leads to you staying stuck, and when you are stuck in the same place long enough, you most likely quit.  For this reason, I believe if you asked most beginners, they would tell you that programming is hard to learn.

Conflicting resources

“Which language is best to learn first” is a seemingly simple question that can send you deep down a YouTube hole, and no matter what random corner of Youtube you find yourself in, you still don’t have a solid answer.  (Read my answer to this question here).

You then end up staying in a research phase looking for the best answer to a question, likely getting side-tracked rather than coding.

Then when you eventually start coding, you find that different people do things and write their code differently. Which way is right, which way is better and why?

How I overcame the difficulties of learning to code

If you read my previous post, “Why I am learning to code, ” you know that I have repeatedly started and failed at the 100 days of code challenge. So what was different this time?

Start with the fundamentals

I know how excited you are to build the next “big thing” to retire and travel the world living a life everyone dreams of, but take a step back. It doesn’t matter if you can build the most advanced algorithm if you don’t know how to register a domain name, build a basic website or add a security certificate.

The above things are pretty easy to do, specifically with WordPress and Elementor and hosting platforms like Siteground.

Understanding the basics of the internet and how computers process and store data will make you a better developer in the long run. The FREE CS50’s Understanding Technology Course presented by a Harvard lecturer, who is amazing, teaches you about all of the above.  It took me 5 hours to get through the course, including all assignments, except the final assignment, which I am still busy with.  I watch most video content at 1.5 – 2X speed, hence why it only took 5 hours.

Start with HTML

I have started my coding journey with different languages each time. I picked the language I would start with based on what I wanted to build. 

I have started with python and then fell off the coding bus. Then I started with C because I wanted to build a simple game and fell off the bus again. I even started once with an obscure programming language called MQL5 used to build trading bots. Every time I fell of the bus (and my trading bot was a loss-making machine, literally!)

This time I started with HTML, and not only am I still on the bus, but I have also become a bus driver!

HTML is a very easy programming language to learn. No matter where you are in your coding journey, I am confident you would be able to look at a basic HTML file and know what is going on.

Move on to CSS

Unless you are only interested in backend development, I recommend this step. Many of the resources I have found say that backend developers should understand frontend and vice versa. So even if you are learning to code to focus on the backend, this may be a good step.

Pure HTML does not make an appealing site. To make your website look beautiful, you need CSS.

Next is Javascript

According to the Mozilla dev docs “JavaScript is a scripting or programming language that allows you to implement complex features on web pages — every time a web page does more than just sit there and display static information for you to look at — displaying timely content updates, interactive maps, animated 2D/3D graphics, scrolling video jukeboxes, etc. — you can bet that JavaScript is probably involved.

The benefit of learning Javascript is two-fold. Not only will you be able to add functionality to your websites, but with the addition of Node.js, Javascript can now be used on the backend, which means if you want to go the route of a full-stack web developer, you can get there faster.

Breakthrough the tutorial wall

You are asked to complete an assignment at the end of the CS50 course that I mentioned earlier. I thought this assignment would be a piece of cake, I mean, I got great marks for the other theoretical assignments, and it’s Harvard. Surely that means I am a rockstar coder…Apparently not, and here is why.

All I knew about CSS at the point was that it existed. I didn’t know what a flexbox was or that there was a grid. I didn’t know how to optimise code for mobile. I got stuck for hours trying to get an image to be a background image on a column and remain contained in the column. Hours…I am not joking. It literally took me 4 hours to figure that out!

I suffered in silence until I asked a friend to help me, who solved the problem in a matter of minutes – which only left me feeling even more incompetent if that was possible.

I was lucky. I had someone to ask, but I often wonder how long it would have taken me to solve this problem had I not had that amazing resource available. And that is exactly the reason why I started WorldOfDev, to help people like you and me, to create a community of passionate wannabe coders who remember what it is like to feel lost, helpless and incompetent.

If you sign up for my newsletter, you will be sent a link to the World Of Dev Discord Server, where you can meet and connect with like-minded people and help each other on our coding journey

My first coding challenge didn’t go too well. I couldn’t even finish it without asking for help, but by the end of the challenge, I knew what flexbox and CSS grids were, which I didn’t know before. Even my failure had led to me growing as a developer!

There is nothing like the feeling of knowing you just built something completely by yourself from scratch, it made the hours of searching worth it, and I was honestly so proud of myself.

Stay positive and see learning opportunities rather than failures

As with most things, your mindset and attitude are key when learning how to code. If you are going to see every roadblock as a failure, you will find programming hard to learn.

If you are willing to see roadblocks for what they are, an opportunity to learn new skills, you will find learning to code exciting.

Conclusion

Programming is hard to learn as a beginner because of a lack of a clear path, conflicting resources, and flippant/over-technical responses on Quora or Reddit, But that’s the most difficult part. The concepts of coding are not difficult; implementing the concepts efficiently to yield the desired result is difficult, but all that takes is practice.

Your attitude to learning will ultimately determine how hard coding is to learn for you. If you embrace constant learning and problem solving, you will love it.

Can you relate to the problems I encountered? Share this post on social media with your answer, and let us start building a community of new coders.

Follow my coding journey, and let us start building a community of new coders. Click Here to signup for our Discord -we can’t wait to meet you!

Join the community
Trending
Categories
Join the community