Live data from Hacker News

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

techcrunch.com

141–150 of 186 posts

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

#141
>>> One of the most dangerous things I’ve seen happen to people who are just starting to code is being told that it’s easy.

I've encouraged my kids to learn programming. The one thing I haven't done is tell them it's easy. Anyway, they've seen me in bug hell, so they're under no illusions. But they're no strangers to learning hard things.

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

Yes! Bring it on! Bright kids spend their entire school day at the final level -- 99th percentile on every possible measure. Those kids would benefit from an extracurricular activity with no final level (traditionally, "classical" music) that they can pursue at their own pace.

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

In my view, that's a general skill in its own right, worthy of learning. I fixed my refrigerator and clothes dryer that way. I rarely tackle any technical task without first seeing if somebody has blogged a tutorial. And I grew up fixing things before the Internet age. But I'd start kids on coding without the Google Everything approach.

>>> [the anxiety / boredom graph]

I enjoyed that. It does seem to ring true.

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

#144
post #68

Coding is easy. The problem is too many "teachers" expect you to have a larger vocabulary than you need. I taught 3rd graders to code. I also taught 1st graders, but the 3rd graders it really clicked. They would come up with solutions to things I would not have thought were possible given the limited language we were working in. We started in "Project Europa" it is object oriented, module based, and the vocabulary is…

You might as well say "basketball is easy". Sure, dribbling a ball can be taught instantly, but your 3 pt percentage or rebounding skill can continually improve over the course of a career.

Just because you taught some 3rd graders a for loop doesn't make them coders and it certainly doesn't make them engineers.

The programming is easy myth is doubly bad: it sets a false expectation for the aspirants and belittles actual engineers' lifetimes of study.

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

#145
"The anxiety of feeling lost and stupid is not something you learn to conquer, but something you learn to live with."

I started practicing mindfulness meditation a few years ago. Mindfulness trains you to experience your emotions without judging them; in other words, it helps you to "live with" feelings like frustration and anxiety without getting overwhelmed by them. It's been an invaluable addition to my programming toolkit.

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

#146

Earlier quoted context omitted.

I completely agree with you and frankly I'm shocked to see most of the responses here purporting copy-pasting someone else's code to be a legitimate practice. I also imagine that most if not all of these people are into web developed where there's a long history of copy-pasting snippets of code and no one knows what he's really doing. I've seen many people write a jQuery script for their website and calling themselve…

Same. I'm actually a little shocked HNers think regularly coping and pasting code snippets off the web is ok. That's, kind of crazy. This is bad especially for young developers (such as myself). Not to mention jeopardizing the security and integrity of your software project. I hear 'don't reinvent the wheel' often written in blogs etc. That is not good. The lazy developer would read that and go, 'oh, I dont need to k…

The thing is you can copy and paste code snippets properly and responsibly and try and learn at the same time. Or you can just patch over something and hope it works (a lot of the time it will).

My first job was doing Perl, after studying Java. The Perl cookbook was a godsend, and basically encouraged copy pasting BUT had a discussion on the different methods presented and advantages of each one. I personally found that a very good way to learn.

This is one thing I find nice in the Perl community. I haven't used Perl for a few years now, but I always found PeelMonks a lot better then Stack Overflow, because it encourages the discussions that Stack Overflow discourages. Essentially it encourages the bad type of copy pasting I have described.

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

#148
Depends on what you want to do.

I see lots of bioinformaticians writing simple scripts usually just counting stuff up, and doing some stats. It needs to run once, on one machine and often only on one dataset.

That type of programming is easy.

I am working for a sequencing centre, doing the database to run the place. I inherited a self taught bioinformaticians code after she had left. Second worst code I have ever seen (the worst was also a self taught bioinformatician, who didn't even indent stuff). The code was so bad, I had to refactor it just to debug it. The team leader didn't see a problem. It had worked. He didn't see the fact that it would have taken me a day or two to write this from scratch, if I had had an original specification, rather than spending a week to refactor her code until it worked. To this day, I have no idea what parts of the code are doing (I can see it is reading byte 8 of a binary file and doing something. I have no idea what the contents of that file are). At least now I have made the code modular so I can see the output of reading the file into a huge nested dictionary.

Learning to code is easy. Learning to code well is not. Hell we can't even decide what coding "well" means. 100% test coverage? Shit that works? Something that is readable and maintainable? Something that runs faster than all the equivalent software? In the end I think experience will mean a developer can work out which of these is most important. Maybe just getting something that works is what is important, and the example I gave above is perfectly acceptable code.

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

#149
post #148

Depends on what you want to do. I see lots of bioinformaticians writing simple scripts usually just counting stuff up, and doing some stats. It needs to run once, on one machine and often only on one dataset. That type of programming is easy. I am working for a sequencing centre, doing the database to run the place. I inherited a self taught bioinformaticians code after she had left. Second worst code I have ever see…

There are so many, many categories of program that its futile to say what it means any more. Expertise in any category doesn't mean squat about anything else.

I've spent a lot of time doing embedded stuff. Totally different world. What matters here is irrelevant elsewhere.

So any time someone says "I can program" you have to ask "Where? With what tools? For what audience?" and so on. Because there are so many niches (and so many being invented every week) its impossible to guess.

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

#150
post #68

Coding is easy. The problem is too many "teachers" expect you to have a larger vocabulary than you need. I taught 3rd graders to code. I also taught 1st graders, but the 3rd graders it really clicked. They would come up with solutions to things I would not have thought were possible given the limited language we were working in. We started in "Project Europa" it is object oriented, module based, and the vocabulary is…

> But there are a lot of ass hats who care if you should have built a function rather than copy and pasting the same code with minor variations 20 times.

That larger vocabulary you sneer at is much of what allows developers to be multiplicatively productive, allows them to do much more work and do it in a faster and less error-prone way.

Or, put another way: are they having to maintain your code when you get tired of it and move on or are they having to deal with second-order effects from your code being more brittle, less flexible, and slower to work on? 'Cause if so, they're not the asshat.

Post reply on HN