Live data from Hacker News

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

techcrunch.com

161–170 of 186 posts

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

#161

"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 gettin…

Agreed, but doesn't that mean the main premise is almost correct? It indeed seems like the skill of 'programming' depends on the development of a knack for Googling for the right terms.

I think it is actually the other way around: once you develop the skill of 'programming', you will know what to search for when you have a problem and you will understand enough of the puzzle to construct the last piece from the various results to your search query. If you don't know how to search for an answer to your problem, you do not sufficiently understand your problem.

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

#162

"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 gettin…

Copy/Paste is OK as long as you understand the code. If the code is elegant and you know what's happening there's no need to change it.

I would argue that the problem is not the copy/pasting but where to paste the code. As an iOS developer I download a lot of code samples from the Apple Development Website. In many cases on these samples the developers put a lot of code in Controllers to show how things are done.

Beginner developers will usually copy/paste the code as is in the controller and believe what it does by faith.

An experience developer should understand that the code was put in the controller for educational purposes and place the code where it belongs. A Model, Singleton, or leave it in the controller if it makes sense.

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

#163
This is a topic I have been thinking about a lot lately, so this article is quite timely.

I was a bad programmer for a long time. For a few years, I was an engineer and basically wrote quick and dirty matlab or python scripts to do physics based modeling and simulations. But, it was never elegant or efficient or anything that I guess you learn about in upper level CS courses.

It didn't have to be. A customer would never see the code, it would never have to perform under critical conditions, it could almost never be reused because each project data set was completely different. The code was just supposed to crunch input and produce meaningful output that could be analyzed.

I got to thinking that I was a pretty good programmer because I could write those scripts.

Then I quit that job and moved to a different country. The only job here that I managed to get was as a software engineer. Here, I learned how very wrong I was. Writing quick and dirty scripts that crunch data is easy. Programming is hard. Really really hard.

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

#164
post #36

This is misleading. Learning to "code" or do the work horrifically called "software engineering" is definitely a huge pain in the ass. It's all about half-working fragile dependencies and outdated documentation. Don't do web programming. Don't do iOS. You can try it after you have used good tools first. Instead, start by learning about computational processes. Use Racket — it's a stable, excellent environment. Read S…

Oh, do iOS. You will know how elegant APIs look like.

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

#165

I have been programming a long time, and even now I often feel getting the environment set up to start something than just writing the actual code to solve the problem. Compiler versions, dependency injection configuration files (why yes, I am a Java developer, how did you guess?), build systems, source control, dependency management, library incompatibilities, setting up a test environment, setting up and configurin…

Thanks for this comment. I've found it to be spot on. It is absolutely demoralizing to spend weeks on trying to figure out env and deployment settings vs. actually making things with code. I hate dev environments so much. They destroy your will to learn.

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

#166
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…

The OP has it right. I've been programming almost 40 years, and I think it's safe to say I've achieved a certain level of mastery. But when I'm working on something hard, I still feel lost and stupid. I wouldn't have it any other way! If I don't feel challenged, I get bored really really fast.

Do you feel a difference in the way you handle the solution space exploration ? tricks or just decades-built patience ?

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

#167

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.

It's so common, large companies have entire teams dedicated to running Black Duck scans of their software to hunt down the paste-ins lest their software become open source or their patents cross-licensed by accident.

That scenario might not be entirely possible given the terms of GPL and Apache, but that's how they talk about it.

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

#168

"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 gettin…

Absolutely disagree. I personally learned (as I think many people did) by copying code out of books. Whenever something went wrong, I had to figure out whether it was my typo or the book's typo or my conceptual error or the book's conceptual error. That process helped me to learn a lot, and quickly. If everything went perfect, I got to play some creative game which I loved and gave me a sense of acheivement that help…

I think there's a large difference between copy-paste and what you're describing (which I'll dub 'manual transcription'). I have no formal training in learning or cognition, but I do have quite a bit of personal, anecdotal evidence to suggest that manual transcription is far more useful, from a pedagogical standpoint, than straight copy-paste.

Rather than take a boring example from my programming career I'd rather draw from my brief mathematical studies in college. In undergrad I was taking a course on Real Analysis. The course redefined, much more rigorously, certain concepts that I had understood at a much higher level--think the limit, derivatives and the Riemann Integral. Suffice it to say that these new concepts challenged my understanding of introductory Calculus, and when I was tasked with writing proofs based on the underlying concepts (e.g. neighborhoods), I struggled.

In what can only be described as frustration I decided I was going to start copying the proofs over and over. I repeatedly transcribed half a doze proofs for a few days straight (I did each one a few times each night). A strange thing happened. I began to understand the proofs. By that I mean I started to understand the intuition required to make the transition between each step of the proofs. At that point I found the material much more accessible. Reading the book was easier, the lectures made more sense, I could do homework, and consequently I could complete the exams.

I like this example because there is no copy-paste alternative. I had to engage with the material, but I chose to engage at a very mechanical level. Still, there was something about the process of reading and writing that aided in understanding the material.

I don't believe you can get that with copy-paste unless you find some other way to engage with the code.

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

#169
post #9

I'll hijack here a bit (sorry). A good friend of mine in in a PhD program at UCLA. She's into solid-state physics and modeling. They use IgorPRO a lot in this field (oddly, also audiology). However, she can't use it a lick. She tries, she really does, but she just can't. Why? Dyslexia. She has dyslexia. All the variables on the screen just look the same. i++ and i--, or +i and 'hi', or for() and if(). Just the same s…

This is perhaps more fitting in one of those QA sites or as an ask hn but i did some googling for you: http://programmers.stackexchange.com/questions/9657/programm...

Thank you!

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

#170
post #97
post #9

I'll hijack here a bit (sorry). A good friend of mine in in a PhD program at UCLA. She's into solid-state physics and modeling. They use IgorPRO a lot in this field (oddly, also audiology). However, she can't use it a lick. She tries, she really does, but she just can't. Why? Dyslexia. She has dyslexia. All the variables on the screen just look the same. i++ and i--, or +i and 'hi', or for() and if(). Just the same s…

The first google result suggests that IDEs and code-coloring might help: http://programmers.stackexchange.com/questions/9657/programm... Out of curiosity, does she not have a problem reading (or writing) physics papers?

Yes, of course she does. But programming also takes it's own learning curve on top of it all.
Post reply on HN