Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

Learning to code is not so hard, but learning to code well is extremely hard - almost impossible. I have been doing software development years and years also in some well known companies and I am not sure if I have yet met a good developer.


sort by: page size:

Learning to code is actually easy. What's difficult is, to master it.

Learning to code is easy (everyone who wrote a BASIC program as a child, raise your hand.)

Learning to code well is difficult and requires years of experience, obsession, and a titanic amount of patience.


To be fair, learning to code well is HARD and takes a lot of time, and more importantly, practice. Stayin inside coding as a kid was the best decision of my life, career-wise.

I would almost say.. Learning how to code is easy, learning what to code is hard.

Learning to code is not hard. At all. Not relative to things that actually are hard. Having trained as an electronic engineer, programming is by far one of the easiest things I've ever done, by an order of magnitude. You can tell by the number of teenagers that can code, how many teenagers can design a nuclear submarine? That is much harder to learn.

Learning to Code is really really easy. Learning to create something useful by code is the hard one.

Learning to write code is “easy”. Learning how to communicate with people is hard.

I'd disagree, except that so much of this depends on how you define "learning to code".

Digging into someone else's code base to understand it well enough to fix bugs and add features without introducing unintended side-effects is, at least for me, quite a challenge. It takes a tremendous amount of persistence, the ability to build a mental blueprint containing substantial amounts of logic, and - most importantly - the ability to swap into the mindset of whoever wrote the app, rather than the way you would have written it.

You know, a lot of us have studied tough things - I was a pure math major and I was a PhD student for a while in a very math-ish engineering department at Berkeley where most of the day was spend on proofs about stochastic systems or convexity. This sort of background isn't unusual here on HN, yet many of us would say that while code itself contains a wide range of challenges and difficulties, the field absolutely has monumental challenges that will push very smart people as far as they can go, maybe farther.

I once (about 15 years ago) got rebuked (gently) by a researcher at Sun Labs once when I dismissed a potential project as "easy." A museum was looking for someone to help build a search engine for their art collection. I said "a db search across some metadata, that's not a huge challenge." The researcher replied, with a mild smirk, "oh, I didn't realize you'd already solved all the issues in image search."

So then I backpedalled a bit and talked about the specs the museum had mentioned, "oh, well, they're just looking for search on some metadata". He replied, "well, maybe that's the only way they understand the problem, but you don't need to accept those limits".


I think learning to code _is_ easy.

I've recently pointed a friend towards FreeCodeCamp, he's never tried development but was asking about it (previous non-tech related jobs) so I pointed him to the website.

Yesterday he must have spent 8 hours doing tutorials, occasionally asking questions and has started building his first website. He's beginning to pick up the basic building blocks of programming, not for loops and if blocks, but data structures, debugging (Chrome is amazing), etc.

I think the hardest part of learning to code is choosing a language and deciding what to build. The rest is Stack Overflow and online tutorials. Oh, and a whole lot of time.

Sure to become an "Expert" you'll need to learn about a vast range of things that are not code, but affect code - like security, best practices, readability and maintainability, different stacks, etc. But getting your foot in the door with the basics is pretty easy.


Learning to code isn't hard at all. Learning to solve problems computationally is a different matter. There are tomes of knowledge one must acquire that is usually application specific and in potentially narrow fields. For example, if you want to write a RTOS you need to study and learn OS theory. Want to work on GPS code? Well, there's some math you need to understand along with a pile of other stuff. Want to work on search? Better have a very good handle of a range of algorithms and know how to implement them efficiently. Automation? Hmmm, you can't set an output and expect the machine to respond when there's physics involved. Aircraft control systems? ....

The point is that coding is easy just like understanding the basics of running a milling machine is easy. Being a machinist is far more complex than knowing how to turn the wheels. And machining highly accurate objects in exotic metals is multiple levels above that. Learning "machining" is easy. Learning to be a machinist is hard. Same for coding. Learning to code: easy. Becoming a software engineer: Harder.


Learning to code is easy, learning to use that ability to solve interesting problems is hard.

Because it should be.

That's actually not the correct answer. For most developers, it's not hard. Not only is it not hard, it's a joy to learn a language, or two, or eight. If this is a struggle, perhaps this is a barometer that you're on the wrong path.

I'm not saying coding should be limited to the elite. If you want to learn code because there's something burning inside of you, that's awesome. However, I'm thinking of the MBA founder who decided the startup thing was the ticket. They discover they need a developer, and that's expensive.

"Hey, this can't be that hard! I'll just learn to code!" I see this movement, and it's scary. Not scary because it's a threat to me. Scary because I'm a decent developer (been doing it sine 1998), and there's a lot of mean scary people who are smarter than me who want to break into code I've written. I can't imagine how insecure code from someone who wrote their first line 6 months ago. Learning is cool, we were all there. The idea that production apps are being launched based on this experience level definitely isn't cool. I might be totally off base here, but I feel like this is a rising trend. Crackers are going to have a field day with all the superduper.ly's out there.

It takes 3-5 years to get a marketing or management degree. Anyone who thinks they are going to learn to code in 3 months and build the next Instagram is so delusioned they make the most southern Baptist church look like a center for logical discourse.


I don't think they were saying learning to code is easy, per se, just that it's not the only barrier to launching a successful product.

In my experience as a self taught coder and also as a teacher of many coders, learning to code is easy but learning how to code efficiently and effectively is hard and takes many years of practice.

Every now and then (just for fun) I look back at the code I wrote 10 years ago and just think 'Ugh ... did I really write this' ?

More to the point, building a robust product (think: bug free) requires a significant amount of coding skill - I seriously doubt that anyone would be able to achieve this from scratch (at least, not within a reasonable time period).


Coding is hard though. I remember helping a smart friend of mine with his homework in college for an intro CS course and even basic fizz-buzz type stuff was very hard for him. This is a guy who has had a highly successful career post-college and did well in his (non-technical) major. I'm skeptical that more than a small fraction of the population will ever learn to code at more than a superficial level.

Coding is hard exactly the way painting is hard or sculpting is hard or playing guitar is hard or writing is hard. It is but it's not. You need to put real effort in to learn, some less if you're naturally inclined to it, and many reach a point where they crest ahill and it really isn't that hard at all anymore.

If you're chasing after it as a career and coding feels persistently hard and unnatural, you might be aiming for a career not really suited to you. On the other hand, if you think making software is cool and you're just quite finding it easy all the time, keep grinding and you may get there. At least in this latter case, you'll be grinding on something you care about as you try to get there. If it's just about money (be honest with yourself), that can be found in a lot of places and some of them might come a lot more easily to you.


I am a salesman/marketer and know how to code. It isn't learning to do the other that is hard, learning to code wasn't hard. It is becoming highly skilled in one or the other that is what takes time and is difficult.

You seem to forget that most of the best coders have spent countless hours learning a ton of things. It's not something easy or without a tax on the mental.

Writing code, learning languages, figuring out new approaches, and struggling with foreign concepts until you finally get it... that stuff's awesome. I never noticed if it was hard or easy because I enjoyed doing it.

The part I dislike about software is reading bad code, dealing with inadequate documentation, and learning junk complexity that has no general-purpose value. Learning "to code" itself was a lot of fun.

next

Legal | privacy