Live data from Hacker News

Early vs. Beginning Coders

zedshaw.com

141–150 of 178 posts

Re: Early vs. Beginning Coders

#141

Earlier quoted context omitted.

> I would also recommend that beginners/early programmers learn 1 programming language really well That's a dangerous approach. The first language is very hard to learn, because, well, it's your first. And when you stick to one language, you easily conflate the syntax and the semantics. So when you learn a second language, you have to unlearn the syntax of the first, in addition to learn the genuinely different conce…

I just don't see it. No one would ever recommend learning Spanish and Mandarin at the same time, for any reason. All of the things you said are true, and yet the beginner has only so much time, so much patience, so much learning to do in one day. Given this, I see larger advantages to spending all of that time and energy in one ecosystem. There are many perspectives on, say, Java coding styles, patterns, and idioms.…

Early programmer chiming in.

I found that switching between languages made the beginner stages of learning much faster. If I got stuck on a concept in one language, jumping to another language often clarified what that feature means. I still use this strategy today.

I learned variables and addition while in javascript, loops and classes in Java, iterators and hash tables (dictionaries) in Python, functions in Clojure, pointers in Go, etc.

Trying to learn all of those things in one language only would have been much more difficult, boring, and I believe I would know a lot less than I currently do.

Re: Early vs. Beginning Coders

#142

Earlier quoted context omitted.

A good analogy I've heard to explain this is how you'd request a glass of water from the kitchen from a friend versus a computer. You can simply tell your friend "get me a glass of water" and they'll understand what you're asking. With a computer though, you must be completely explicit with your instructions, for example: walk to the kitchen, open the top left cabinet, take out a glass, put it underneath the faucet,…

Day one CS 101 class. Bring in a few loaves of bread, jars of peanut butter, and jars of jelly, with a few utensils. Also, lots of paper napkins. Have the students spend 10-15 minutes writing a 'how to make PB&J sandwiches'. Select volunteers to read their instructions while you follow them as a computer would. Explain that this is how computers work. Get some bread: grabs entire loaf of bread, uses the entire loaf f…

I do this. I just don't give them props. And it is a great effective approach that also gets them thinking about basic algorithms by breaking down problems.

Re: Early vs. Beginning Coders

#143

Earlier quoted context omitted.

Charles Petzold's book 'Code' has a lot of this very basic, low-level information. It basically builds up from basic information theory to computers. It's not going to have everything you're looking for but I was surprised how much of it I "knew" without recalling where I learned it or how it connected to other things.

I had a similar experience with Code Complete (I know most of what's in it but I have no idea when I learned it). I don't know if it's as basic as @schoen wanted but it might be close.

    I don't know if it's as basic as @schoen wanted
    but it might be close.
I remember Code Complete as being a guide for advanced developers on how to take their craft to the next level.

Does my memory deceive me?

Re: Early vs. Beginning Coders

#144
post #130
post #38

Earlier quoted context omitted.

> People told you to just use the string - wasn't that a good enough answer? "Don't do that" isn't a sufficient answer without explaining exactly why, though. And if you aren't asking the right question, then the explanation might even seem obtuse.

"Don't do that" is the right answer when you're asking the wrong question. It's an invitation to take a step back and ask how to do what you actually want to do, at a higher level.

There is nothing inviting about someone saying "don't do that" to you. If you actually want to understand a beginner's intentions, you're a lot better off asking them what their goal is.

In my experience mentoring new developers, it's much more helpful to ask "what is your goal?" instead of "don't do that."

Re: Early vs. Beginning Coders

#145
post #85
post #31

Earlier quoted context omitted.

That's only "basics" if you've got the wrong idea. There are millions of possible mistakes, no beginners' guide can explicitly address every one. People told you to just use the string - wasn't that a good enough answer?

>People told you to just use the string - wasn't that a good enough answer? http://4.bp.blogspot.com/-KzOtz-8coJU/Uga2fN7SNmI/AAAAAAAAKI... > > I was trying to retrieve the bytes that a certain string represented.

The above link is to a Hyperbole and a Half cartoon image of a person and the words "No, see, that solution is for a different problem than the one I have."

Blind links aren't polite. :)

Re: Early vs. Beginning Coders

#146

Earlier quoted context omitted.

A good analogy I've heard to explain this is how you'd request a glass of water from the kitchen from a friend versus a computer. You can simply tell your friend "get me a glass of water" and they'll understand what you're asking. With a computer though, you must be completely explicit with your instructions, for example: walk to the kitchen, open the top left cabinet, take out a glass, put it underneath the faucet,…

Day one CS 101 class. Bring in a few loaves of bread, jars of peanut butter, and jars of jelly, with a few utensils. Also, lots of paper napkins. Have the students spend 10-15 minutes writing a 'how to make PB&J sandwiches'. Select volunteers to read their instructions while you follow them as a computer would. Explain that this is how computers work. Get some bread: grabs entire loaf of bread, uses the entire loaf f…

It would be great to add to this to break each 'module' down to a separate student, and then try and use them in sequence to complete the task, with a master sheet telling you when to use each module.

Re: Early vs. Beginning Coders

#147

I actually worked on teaching my 71 year old father Python using this book. One point of difficulty that struck me during that exercise was that I as a programmer had completely internalized the idea that an open paren and a close paren right after a function is a natural way to invoke a function with zero arguments (e.g.: exit() exits Python's prompt. exit doesn't.). The whiplash I felt from finding the questioning…

Why do you put "ing" at the end of "finding" when it is obvious what you mean from just "find"? English is so silly.

Re: Early vs. Beginning Coders

#148

I actually worked on teaching my 71 year old father Python using this book. One point of difficulty that struck me during that exercise was that I as a programmer had completely internalized the idea that an open paren and a close paren right after a function is a natural way to invoke a function with zero arguments (e.g.: exit() exits Python's prompt. exit doesn't.). The whiplash I felt from finding the questioning…

Why do you put "ing" at the end of "finding" when it is obvious what you mean from just "find"? English is so silly.

Re: Early vs. Beginning Coders

#149
Great article.

I am a instructor for Software Carpentry[1] , the goal of these workshops from my experience is to try and help mostly scientists get started on the journey to becoming early programmers.

In biological sciences with more and more data becoming available, the Expert blindness Zed speaks of is a major problem. We need to invent better systems and actually take heed of research based teaching methods as SW does if we wish to improve this situation.

https://software-carpentry.org/

Re: Early vs. Beginning Coders

#150
post #86

Earlier quoted context omitted.

I just don't see it. No one would ever recommend learning Spanish and Mandarin at the same time, for any reason. All of the things you said are true, and yet the beginner has only so much time, so much patience, so much learning to do in one day. Given this, I see larger advantages to spending all of that time and energy in one ecosystem. There are many perspectives on, say, Java coding styles, patterns, and idioms.…

> No one would ever recommend learning Spanish and Mandarin at the same time American? :-) Huge portions of the world (Europe and Asia especially) raise children bilingually.

Which by the way has practical advantages. While the child takes a bit longer to learn those languages, it configures her brain in a particular way that makes it possible to think effortlessly in both languages, from the start.

I suspect, (but don't know) this even facilitates the learning of other languages, later on.

Post reply on HN