DEV Community

Cover image for Is Programming Hard to Learn?

Is Programming Hard to Learn?

Bronwen Gien on March 02, 2022

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 ...
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.