DEV Community

Cover image for Is Programming Hard to Learn?
Bronwen Gien
Bronwen Gien

Posted on

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.

Table Of Contents

  1. Is Programming Hard to Learn?
  2. Why do beginners find programming hard to learn
  3. How I overcame the difficulties of learning to code
  4. Breakthrough the tutorial wall
  5. Stay positive and see learning opportunities rather than failures
  6. Conclusion

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

Find out why by reading the rest of this article here

Top comments (15)

Collapse
 
hacker4world profile image
hacker4world

Html will not help learning to program because it lacks a lot of programming concepts, if you are learning web development then html will be the first to learn but if you are learning to program in general then try python or javascript

Collapse
 
beginnergamedev profile image
Bronwen Gien

Thanks for dropping by, so the main reason I mention HTML as the first language s that it give you confidence very quickly. I know as a beginner that sometimes the world of coding can be super intimidating and you dont know where to start, specifcally if you are starting on you own. I agree HTML doesnt teach you programming concepts, but it gets you coding, working with tags and <> and /. All of ths helps build muscle memory and slowly steps you into coding...

Just my experience - when I tried to start with Python I got so overwhelmed that I quit. THen i started with HTML, got onto CSS and now I understand Python, and I'm probably more confidentwith less hours in python now than in the first attempt, simply becasue I got valuable experience in how to solve problems and learning how to google etc whie learning HTML and CSS

Collapse
 
hacker4world profile image
hacker4world

You have a good point, but i think it would be disappointing to have confidence in working with html then knowing that it is not even programming, also being overwhelmed is all part of the learning process after all and if you are not planning to become a web developer i think learning html and css would be a waste of time so i would pick an easy language like python and start from there solving problems, googling stuff etc atleast that's my opinion

Thread Thread
 
beginnergamedev profile image
Bronwen Gien

I hear you and appreciate the feedback. My logic here was from all the research I have done a lot of sites suggest that even if you are working on the backend it could be worthwhile understanding how websites are structured, which is why I included that. To be fair I can't speak to that on my own experience, only from what I picked up on my journey and doing research, but I do think you raise a valid point

Thread Thread
 
hacker4world profile image
hacker4world

I understand, as a backend developer you don't need to be an expert in html so you should focus more on logic, how backend works, database structure and security, then you can learn html in like a week

Collapse
 
nitzanhen profile image
Nitzan Hen

I think it's important to separate between two different meanings of "writing code" - writing code at the literal level, i.e. writing a series of commands that are valid according to a given language's syntax and features, and writing code as in logically solving a problem, using code. Both are used in and are important to any form of development, but there's a fundamental difference in them when it comes to difficulty:

Learning a language's syntax and mechanisms, as I see it, is mostly a matter of time and experience. Languages differ in the difficulty of using them, with higher languages tending to be easier to pick up, and lower languages tending to be harder (for example, Python prides itself in being easy to pick up, whereas Rust is considered quite difficult). Also, using a lower language means more of the computer's internal mechanisms are (intentionally) exposed to you, which poses a greater "intellectual" challenge, but the common basic building blocks typically take mostly hands-on practice.

In many introductory computer science or programming courses, the first exercises given are, indeed, very detailed instructions that you only need to "translate" to the programming language. In these types of exercises, you're not tasked with solving a problem, but rather using the building blocks correctly to form its solution. Of course, this does not mean it's easy, especially when starting out - but after practicing some, you'll get better at it.

The big spike in difficulty comes when you first encounter a problem that needs to be solved, and not only coded: after enough practicing, writing if statements and loops should come quite easily, but understand where and how to use them is quite harder, especially at first. And using control flow is only the start of it - eventually you'll need to also consider functions, common data structures, modules & code isolation, async programming, a bunch of coding principles & best practices, and the list goes on and on.

This is not said to scare you or anyone - all of the above are skills you can pick up with enough practice (some for the hands, some for the brain). Sure, talent helps a lot, but just about anyone can acquire proficiency in development with enough practice.
Also, I found learning each of these things an absolute joy to learn, and I hope you do too! Cheers!

Collapse
 
beginnergamedev profile image
Bronwen Gien

Thank you so much for the detailed and comprehensive comment, I really appreciate it!

Collapse
 
beginnergamedev profile image
Bronwen Gien

I know, but I guess that article is more targetted to beginners, who probably wouldnt know the difference as yet, and sometimes all you need as a beginner is a boost of confidence to keep going on your journey, even if it is a bit of a flase confidence boost :-)

Collapse
 
cmarker profile image
Christian 🇳🇴 • Edited

In my opinion.
Hard to learn, no.
Hard to master, yes

Collapse
 
beginnergamedev profile image
Bronwen Gien

Totally agree with this, the more you learn you realise the less you actually know, well that has been my experience at least :-)

Collapse
 
jack94507501 profile image
Jack

In my opinion, you need to have talent and predispositions to program.

Collapse
 
beginnergamedev profile image
Bronwen Gien

Thank you for dropping by and for taking the time to read my post! :-) I agree, in that i do think that a predisposition would make your journey easier, however to a certain extent I am biased becasue I believe anyone can learn a skill if they put in enough time and effort, it may just take longer and be perceived to that person to be more difficult.

On a side note, I'd love to hear your opinion...Do you think you need maths skills t olearn programming - your opinion for frontend or backend is welcome! :-)

Collapse
 
stuarthaas profile image
Stuart Haas

My maths skills are not strong but I’ve been programming since I was 15 and I’ve been a software engineer for 5 years now and I don’t have a degree. There’s a lot of practices in the professional world that they don’t teach in school. You have to be driven enough to ask the right questions and learn how to know what you don’t know. I started with building games with actionscript when that was still a thing. I eventually learned JavaScript and then dove into Java, php, and python, c#, go, and more. I’m far from mastering those languages but I’m comfortable with them. I’d suggest picking up a few books on say c# and python and learn the basics and at the same time get an understanding of the benefits of strongly typed languages vs weak. I’m happy to answer any questions.

Thread Thread
 
beginnergamedev profile image
Bronwen Gien

Thanks so much for your thoughts! Interestingly I am actually interested in coding for game dev, I love the concept of being able to create something that could entertain others. I know it is going to be a long journey and that I will have to dive into langauages like C in the future, but just feel like I am not ready to take that leap as yet. Also Im following a more "frontend" path at the moment so that I can hpefully start to supplement my coding journey with frontend skills.

I have learnt python and am pretty comfortable with that at the moment, although I have only used it to build bots, Im sure I will learn alot more about the lanaguage as I progress.

PHP is one that interests me, in that the back end at the moment terrifies me, how did you find learning backend skills?

Collapse
 
curiousdev profile image
CuriousDev

I agree on this and also there are components of a programming language mentioned, like conditions, which are not part of HTML. Actually these kinda can become part of it, if you include JavaScript.