Live data from Hacker News

Don’t Believe Anyone Who Tells You Learning To Code Is Easy

techcrunch.com

51–60 of 186 posts

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#51

I've been programming for maybe too long now, but likely not nearly as long as the higher level advanced developers, but still the idea that people copy & paste code from Google/SO is horrifying. You are really just going to work on some real life project and just blindly copy some random crap you found online without even knowing what it does completely? Yikes.

Uhm, that's how I still learn new languages. Copy, paste, modify just to get something done.

The modify part leads to more concrete questions, more Googling, more detailed reading of docs, until at some point I'm engaged enough to go back to zero and actually start learning the language from the basics.

(This doesn't work for those languages who's paradigm you first need to understand before being able to do anything, but most languages allow for hacking straightforward procedural code at the basic level.)

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#52

>And they don’t let you in on a big secret: that there is no mastery, there is no final level. The anxiety of feeling lost and stupid is not something you learn to conquer, but something you learn to live with. One of the biggest surprises when I started to learn, LANGUAGES ARE STILL BEING UPDATED. ?_? Totally thought that was done and over with, then I come to find language/framework updates can break entire program…

Not all languages ignore backward compatibility. There's Fortran code written in the 1960s and C code written in the 1970s that will still compile correctly with today's compilers, even though these languages have evolved continually over the years.

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#53
post #45
post #7

> They don’t tell you that a lot of programming skill is about developing a knack for asking the right questions on Google and knowing which code is best to copy-paste. And they don’t let you in on a big secret: that there is no mastery, there is no final level. The anxiety of feeling lost and stupid is not something you learn to conquer, but something you learn to live with. Just because you haven't achieved mastery…

I disagree with the author -- I never feel lost and stupid. There is always a way of bringing an idea to life, even if there are compromises and tradeoffs. But nowadays, I am forced to rely on third-party libraries. These libraries often change constantly and have "in-development" nuances. So, the OP regrettably is correct that searching the Internet is a requirement for working on modern applications. I do reminisce…

My mom taking python on coursers constantly feels lost and stupid. She's doing it again even though she passed last time.

I remember feeling that way when I was eleven, teaching myself. But I think this feeling goes away with self confidence and experience.

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#54
post #16

You need multiple things to come together. Some are abstract and general, some are more specific. You need to know the tools you are using, the capabilities of your platforms. At some lowest level it is about solving problems and knowing how to drill down and understand requirements, split a large problem into sub-problems. In that respect it is not unlike an architect or an engineer or carpenter. Then it comes to ab…

I've found the hardest thing about teaching people to program has become that there is a huge learning curve between the "simple" stuff and making real progress. I've been working on a device which will level that out a bit with an easier intro level.

I've found that interpretive languages, Python, Perl, or even BASIC can be less difficult to start because you can start exploring them right away. Compiled languages are harder because of the intermediate step.

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#55
post #45
post #7

> They don’t tell you that a lot of programming skill is about developing a knack for asking the right questions on Google and knowing which code is best to copy-paste. And they don’t let you in on a big secret: that there is no mastery, there is no final level. The anxiety of feeling lost and stupid is not something you learn to conquer, but something you learn to live with. Just because you haven't achieved mastery…

I disagree with the author -- I never feel lost and stupid. There is always a way of bringing an idea to life, even if there are compromises and tradeoffs. But nowadays, I am forced to rely on third-party libraries. These libraries often change constantly and have "in-development" nuances. So, the OP regrettably is correct that searching the Internet is a requirement for working on modern applications. I do reminisce…

I bet the person who maintained your code felt lost and stupid though! The benefit of libraries is that the reference exists at all.

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#56

I've been programming for maybe too long now, but likely not nearly as long as the higher level advanced developers, but still the idea that people copy & paste code from Google/SO is horrifying. You are really just going to work on some real life project and just blindly copy some random crap you found online without even knowing what it does completely? Yikes.

Uhm, that's how I still learn new languages. Copy, paste, modify just to get something done. The modify part leads to more concrete questions, more Googling, more detailed reading of docs, until at some point I'm engaged enough to go back to zero and actually start learning the language from the basics. (This doesn't work for those languages who's paradigm you first need to understand before being able to do anything…

I mean this in the best way possible, but do you like actually take your mouse over to the webpage, highlight the code, copy it, and then paste it into your editor? I am genuinely curious.

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#57

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

Exactly. To expand on what you said: Learning to code is easy, just as learning to write English prose is easy - kids routinely do both of these things. However, learning to be a professional software developer or a commercially successful novelist or journalist is very different from learning to code or learning to write - for most people, it requires hard work, many years of experience and learning from lots of mis…

I would further refine this to, "Learning to code is like learning to write prose: Easy to learn, and easy to do, but not so easy to do well. Especially since 'well' is at least a little bit subjective." There are plenty of people who can write well, who are not commercially successful. And there are people who are commercially successful who do not write very well at all. Cough-DanBrown-Cough.

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#58
"They don’t tell you that a lot of programming skill is about developing a knack for asking the right questions on Google and knowing which code is best to copy-paste."

No, no, no! This always frustrates me. This is not 'coding' (maybe it is, and we should be doing less of it, and more programming). This is gluing together pre-coded snippets and trying to make it work. Continuing to do this is an impediment to getting better. Thinking that somehow this is what 'coding' is, is missing the point.

I will read a stack overflow page perhaps in a search for some direction, look at all the 'solutions' like surveying a landscape of others approaches to the problem. Then I'll throw them all away and code my own. Possibly it will share a lot with one of the answers, what I would consider a good approach. But a literal copy and paste just doesn't happen. I would consider a copy and paste a recipe for inviting trouble, because you haven't really reasoned through the problem yourself, and thus don't really understand the solution intimately.

Programming is a process of mental reasoning around your problem with an eye on the form of reasoning computers use, so you can express that reasoning to the computer in the language you're using. Because computers don't reason like humans 'reason' (ie. humans don't really 'reason'...), knowing how a computer reasons and behaves is alien and takes time to understand and learn and it takes time to become quicker at comprehending this. This is the path of becoming a better programmer. Gaining that experience so the process is less alien and you more easily can fathom how a computer will respond and behave with a certain approach of laying out of the logic you are trying to express.

Copy and paste doesn't help you at all with this. In some cases it may prevent you learning essential lessons and hinder your improvement.

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#59
post #16

You need multiple things to come together. Some are abstract and general, some are more specific. You need to know the tools you are using, the capabilities of your platforms. At some lowest level it is about solving problems and knowing how to drill down and understand requirements, split a large problem into sub-problems. In that respect it is not unlike an architect or an engineer or carpenter. Then it comes to ab…

What I think is cool about programming is that if you can understand a book, like the C Programming Language for example, then you can probably program. Although, being able to understand that book may take a little more work than just reading it (you might need some supplementary material). A lot of other pieces are soft skills for becoming a professional software engineer, such as time estimation, communication, version control, etc (soft skills in that they can likely be picked up on the job).

Re: Don’t Believe Anyone Who Tells You Learning To Code Is Easy

#60
post #16

You need multiple things to come together. Some are abstract and general, some are more specific. You need to know the tools you are using, the capabilities of your platforms. At some lowest level it is about solving problems and knowing how to drill down and understand requirements, split a large problem into sub-problems. In that respect it is not unlike an architect or an engineer or carpenter. Then it comes to ab…

"And I have made the that mistake. Friends and family member I have tried to show/teach programming." I'm just curious, knowing what you know now, how would you go about trying to show someone how to program? I may have that opportunity soon and I was going to suggest thinking about a simple yet everyday problem that arises, and try to make it better with an app (could be phone, web app, client app, etc).

I'm teaching a relatively mathematically-minded friend programming and I've found http://repl.it/languages/Scheme to be an excellent resource. The simple syntax and semantics of Scheme and its easy accessibility allows them to quickly develop an understanding of the fundamentals, and from there it's not much work for them to download DrRacket and start on more practical applications.

I think games are a great place to start; simple, humorous text-based adventures, for instance, are both really fun to write and teach a lot of the basics.

Post reply on HN