Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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

This is a misleading simplification. I'm sure I'm preaching to the choir here, but I'm going to elaborate anyway.

Learning to program isn't fundamentally about learning what text to type in to a box somewhere. It's about learning to think computationally. "Think computationally" is vague and doesn't mean very much to the beginner. That's because it's something you need to learn with practice.

Think about writing in normal human languages. You could say there are two things going on when you are writing an essay, for example. At one level, you are thinking about the concepts. What are your arguments? How are you going to support them? At another level, you are thinking about how to write them down -- how to encode them in a way that readers will understand.

The same distinction exists in programming. At one level, you need to think computationally. What are the inputs I have access to? How can I use them to produce the right outputs? What data structures should I use? How should I handle this edge case? At another level, you are thinking about how to write all of this down so that the computer will actually be able to do it.

Copying and pasting will help you with the second part -- figuring out how to write down the structures you come up with -- and real, experienced programmers do that all the time, but it won't help you with the first part -- figuring out what structures to write down.



"Learning to program isn't fundamentally about learning what text to type in to a box somewhere. It's about learning to think computationally."

But learning how to start programming isn't about that at all, even a little bit.

Writing your first program is learning what a text editor is (no, it's not quite the same as a word processor), maybe learning about the command line interface on your computer for the first time, learning about the various dependencies between the tools and libraries you need to install to get started. There is Googling and discovering tutorials that are out of date or have mistakes in them, and figuring out what to do then.


On the other hand, there is a lot to be said about knowing what question to ask and how to ask it. In the age of Stack Overflow, using the wrong terminology or being too specific with your question can lead to never finding that chosen, community-wiki'd answer with 500 upvotes that holds the solution to your problem (or shows you that you have been following the wrong line of inquiry, built upon the wrong set of assumptions).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: