Live data from Hacker News

Early vs. Beginning Coders

zedshaw.com

71–80 of 178 posts

Re: Early vs. Beginning Coders

#71
post #63

I feel like I'm perpetually stuck between what the author describes as "beginner" and "early". I understand what programming is, I can write a bash script that does what I want it to (granted, I have to read a ton of man pages to make sure I understand what it is I want to accomplish), I can write simple programs in Visual Basic or Python or Javascript that do simple tasks. I understand program flow, logic, and all t…

I'd put you at early. You're ready to learn more. Don't pick something interesting up from Github. Reading the source code from a complete project is tough as hell for an experienced programmer. The stuff you don't know all needs to be studied. People don't happen on functional programming or build trees a propos of nothing; they studied it, either in college or on their own. Find a good book and dig into it. If you…

Thanks. I really just pulled those concepts out at random, things that I'm interested in but I know I'm not ready to tackle yet.

I did study programming in college (well, tech school, so that's likely part of my problem), but it was SQL/400 on IBM AS/400 machines and was geared towards direct employment at one specific company. In other words, it bored me to death, and I switched to web design halfway through. I really didn't learn anything there that I hadn't already taught myself, and I was surprised to find that I was the only person in the class (including the instructor!) who knew what Linux was. We had an AIX server that had been donated by some company a few years before, and it was sitting there unused, like a monolith from another era, until the instructor allowed me to work on it in my spare time. I managed to get it up and running, and set it up as a local webserver so we could practice server-side scripting with more control over the environment, and learn a bit more about how web servers do what they do.

And that's the core of it I think; my passion is for tinkering and fixing things, and while there's a lot of that kind of thing in the programming world at large, I'm really more of a hands-on, direct kind of person rather than an abstract thinker. My sister is a website and graphic designer in her spare time, and she and I have often talked about starting our own hosting service geared towards creative professionals, with me handling the back end and her doing the front end and marketing. Maybe I should pursue that instead of wasting time trying to learn advanced programming concepts when I'm not actually seeking employment as a programmer.

Re: Early vs. Beginning Coders

#72

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…

Perl doesn't require "()" after the name of a function to call the function. In fact, parentheses aren't required for function calls at all.

The code:

    use strict;
    use warnings;
    
    sub foo { print "In foo\n"; print "args = " . join(",",@_) . "\n" if @_; }

    foo;

    foo "a", "b", "c";
yields the output:

    In foo
    In foo
    args = a,b,c

Re: Early vs. Beginning Coders

#73
post #60

Is there a book somewhere that tries to set out all of the things that experts know about computing that they don't remember learning? (In Zed Shaw's conception, this might correspond to "learn computing the hard way".) I see his examples and other examples here in this discussion, and it makes me wonder about the value (or existence) of a very thorough reference. I've also encountered this when working with lawyers…

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.

Re: Early vs. Beginning Coders

#74
post #60

Is there a book somewhere that tries to set out all of the things that experts know about computing that they don't remember learning? (In Zed Shaw's conception, this might correspond to "learn computing the hard way".) I see his examples and other examples here in this discussion, and it makes me wonder about the value (or existence) of a very thorough reference. I've also encountered this when working with lawyers…

I don't know of such a book that's targeted to experts, but you can get a good idea of those things by skimming the first 2 or 3 chapters of Zed's [Learn Python the Hard Way](http://learnpythonthehardway.org/book/ex0.html), and Appendix A.

Re: Early vs. Beginning Coders

#75
post #66

Earlier quoted context omitted.

I've been hearing for years about how the javascript community is constantly rehashing things from the mainframe world or the desktop world. I haven't really been programming long enough to see it happen, though, (my first programming book was along the lines of "how to AJAX"). Could you be so kind as to mention some examples of javascript libraries or techniques that are recycling failed concepts from past decades?

"Failed" is too strong. Many of them are good ideas for certain use cases, but also have certain well-known problems, which is frankly true of everything. Event-based programming was not discovered by Node. It was the dominant paradigm for decades, plural, on the desktop, and still is how all GUIs work, on all platforms, current and past. I've got a big blog post on deck about this one, actually, so I'll save the wel…

Thanks. I agree that people sometimes present these things as more "shiny and new" then they are.

Re: Early vs. Beginning Coders

#76
post #60

Is there a book somewhere that tries to set out all of the things that experts know about computing that they don't remember learning? (In Zed Shaw's conception, this might correspond to "learn computing the hard way".) I see his examples and other examples here in this discussion, and it makes me wonder about the value (or existence) of a very thorough reference. I've also encountered this when working with lawyers…

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 have that book and was impressed by it. I'll take a look over it again and see how I think it does on this stuff.

Re: Early vs. Beginning Coders

#77
post #3

I have been thinking this for years.... though I would consider myself an "early coder" according to the article. This stuck out to me as being just the beginnings of the quintessential issue: A beginner’s hurdle is training their brain to grasp the concrete problem of using syntax to create computation and then understanding that the syntax is just a proxy for how computation works. The early coder is past this, but…

Please don't use code tags for quotations! It doesn't wrap lines and forces readers to scroll in order to read the whole quote.

Code tags are okay if you manually line-wrap, or you can precede quotes with a > and everyone should recognize it for a quote.

Re: Early vs. Beginning Coders

#78

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

Learning two programming languages at the same time is definitely not comparable to learning Spanish and Mandarin at the same time...those two languages are so different that you won't gain anything from it. Learning, say, Spanish and Italian at the same time might be a better analogy, since you'll start to see word roots and constructions that are shared among romance languages.

I think learning more than one programming language at the same time is a great way to help you tease out basic programming concepts from the vagaries in the syntax of an individual language. How to types work? Scopes? Functions? Loops? Arrays? Hash tables? Those are all things that, once you really grok as separate from, say, whitespace problems in Python or curly brace issues in C, allow you to much more easily read and eventually pick up other languages.

Re: Early vs. Beginning Coders

#79
post #60

Is there a book somewhere that tries to set out all of the things that experts know about computing that they don't remember learning? (In Zed Shaw's conception, this might correspond to "learn computing the hard way".) I see his examples and other examples here in this discussion, and it makes me wonder about the value (or existence) of a very thorough reference. I've also encountered this when working with lawyers…

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.

Re: Early vs. Beginning Coders

#80
post #60

Is there a book somewhere that tries to set out all of the things that experts know about computing that they don't remember learning? (In Zed Shaw's conception, this might correspond to "learn computing the hard way".) I see his examples and other examples here in this discussion, and it makes me wonder about the value (or existence) of a very thorough reference. I've also encountered this when working with lawyers…

Polite spelling correction: "tacit", not "tactic".
Post reply on HN