News for hackers. Stuff that matters.
Re:Learn Regex The Hard Way by delwin on Wednesday November 30, 2011 @09:17PM (#3297976)
What do you guys think of Zed Shaw's teaching style? As I'm not a beginner programmer, I can't really evaluate correctly — to me it seems like a odd approach to programming pedagogy, but perhaps it works. Any non-programmers want to shed light on why his style works?
Re:Learn Regex The Hard Way by AgentConundrum on Wednesday November 30, 2011 @11:07PM (#3298263)
I'm about 75% through his Python book, and I have to say I like it. He assumes you're an absolute beginner, and I'm not, so I can't really give it a fair appraisal from the perspective of its target audience.

That said, the book definitely makes learning fun. For the first half of the book, you have a really quick learn-reward cycle. The exercises are short and to the point, and he makes you type in the lesson and run it. This means that you type a few lines, then immediately get to see what it did, on your computer. It very much reminds me of when I was in grade 10 and we were doing simple stuff in QBasic. It would definitely grab and keep the interest of an absolute beginner dipping his or her toes into the programming pool for the first time.

From the perspective of an experienced programmer - a term I apply to myself with some trepidation - things move a bit slow, but the experienced programmer is definitely not Zed's target with the book. Even being on the slow side, the exercises are quick enough that you can knock out a bunch of lessons quickly if you're so inclined, and I've definitely skipped over a bunch of the "Extra Credit" stuff because of that.

I actually did spend the "recommended" week doing Exercise 37, which is sort of a "learn at your own pace" exercise. You're given a list of operators, string formats, keywords, etc. and asked to spend some time looking into them, defining them for yourself, and playing with them. I spent a good amount of time reading into the way Python's floor/integer division and modulo operations work / differ from other languages and why (if you're interested, Python floors towards negative infinity, not zero, and performing a modulo on negative numbers takes the sign of the divisor, not the dividend, in contrast to some other languages), and spent time toying around with decorators and lambdas.. I kept a spreadsheet of everything I was supposed to learn and my description of it. My interpretation of that lesson is probably a lot different from a beginners, but I think it's a nice example of "you get out of it what you put in."

Zed also likes to shove you into the deep end and let you learn to swim. The extra credit assignments don't have answers, they're all about making you play around and learn on your own terms. The lesson above is a good example of "here's a bunch of terms, now go play on your own for a while", which was an interesting change of pace. Also, he gives a solid emphasis on reading other peoples code. There have been at least two lessons so far dealing with that, and I've read over a bunch of reddits code and learned a good amount from that - this was during the first "go find some code" exercise, where you only know the bare minimum of conditionals and looping, so there were a lot more scary "i don't know what that code is doing, but I'm going to find out!" moments, which I found helpful.

Re:Learn Regex The Hard Way by zedshaw on Wednesday November 30, 2011 @11:47PM (#3298396)
> It very much reminds me of when I was in grade 10 and we were doing simple stuff in QBasic.

That's pretty much the feel I was going for when I wrote it.

Re:Learn Regex The Hard Way by AgentConundrum on Wednesday November 30, 2011 @11:56PM (#3298421)
It really shows. A friend of mine asked me about it, and my abbreviated review was just "it makes programming fun again."

I hesitated to use that in my earlier comment because some might use it to paint a bad picture of me, contrasting it with the idea that all good programmers love their craft and are always writing code because it's always fun for them. I just think that as you get into meatier works and start architecting larger applications, there's always going to be some hair pulling and you're going to fight wars with your compiler/interpreter/whatever. LPTHW isn't like that. You just sort of cut through the bullshit and get on with the fun stuff, and it makes the learning process easier.

So thanks. I look forward to reading your other works as they finish.

Re:Learn Regex The Hard Way by plytheman on Wednesday November 30, 2011 @11:38PM (#3298361)
Speaking as someone who isn't a programmer at all and needed (still needs, actually) to learn a language for dealing with a massive amount of data for a school project, I decided to have a stab at Python and have been working my way through his book. Overall I'd say it's pretty great. The good is that, as you mentioned, the early chapters (really the whole first half) are quick, repetitive exercises which I feel gave me a good understanding of the dirt basics of how Python works. Now I'm getting into the more tricky chapters and still really enjoying them.

I sometimes feel a bit more explanation from him on how or why certain things work would be nice, or maybe a few hints for where to start looking for answers in the extra credit would be good, but for the most part I think he's effectively covered enough of the basics needed to land me on the ground running. Between the exercises I've done so far and the basic script someone at reddit was kind enough to throw together for me I've managed to modify and make my own scripts to start processing the data for this project. Also it feels pretty awesome to write a script for an hour then actually see it work in less than a second and do what would have taken me days otherwise to do.

Re:Learn Regex The Hard Way by AgentConundrum on Thursday December 01, 2011 @12:08AM (#3298464)
> I sometimes feel a bit more explanation from him on how or why certain things work would be nice, or maybe a few hints for where to start looking for answers in the extra credit would be good, but for the most part I think he's effectively covered enough of the basics needed to land me on the ground running.

There's the Python documentation[1], but coming from working mostly with PHP, I've had a hard time adjusting to them. PHPs documentation seems a lot more straightforward, so I've had to lean on StackOverflow[2] a lot more when I run into roadblocks (again, almost entirely as part of the "long list of things to research" exercise).

[1] http://docs.python.org

[2] http://stackoverflow.com

Re:Learn Regex The Hard Way by joelhooks on Wednesday November 30, 2011 @11:19PM (#3298294)
My 13 year old son is working through Learn Python the Hard way. He likes it a lot and is building things that interest him. He will spend the whole day fiddling with Python working on a text based choose your own adventure game that one of the chapters had him build.

He's approached programming a couple of times before, but LPTHW is the first time he's really stuck with it.

In that regard, I think Zed is doing an awesome job. I'm looking forward to the REGEX book and want to work through the C book as well.

Re:Learn Regex The Hard Way by zedshaw on Wednesday November 30, 2011 @11:49PM (#3298402)
That's awesome. It's funny because I didn't even try to write the book for kids, but happy it seems to work well for them.
Re:Learn Regex The Hard Way by mkopinsky on Thursday December 01, 2011 @11:29PM (#3302694)
Kids tend to be, in general, kinda like adults in a lot of ways. Whodathunk? :-)
Re:Learn Regex The Hard Way by capkutay on Thursday December 01, 2011 @12:37AM (#3298533)
I went through LPTHW without losing motivation, wanting to quit, or being too confused to go on. I'd say this is what really sets it apart from other programming books. Also, very functional. You know what you're doing every step of the way and he tries to speak to you like a person while helping you graspt the material. There were only a few instances doing the extra credit where I really felt stuck. His books force you to write a lot of code. After 1/2 way, I'd genuinely be excited to go to the next chapter. In terms of simulating your own personal CS tutor, LPTHW was awesome.
Re:Learn Regex The Hard Way by chrisguitarguy on Wednesday November 30, 2011 @11:57PM (#3298425)
It's just like teaching anything: nothing is really fun until you can do something.

I teach guitar, so let me use that as an example: it's my job as a teacher to get students to love the guitar so they (1) continue with it, and (2) come to the next lesson. the only way I can make sure students get excited is if they can do some thing. So I could bog them down with a bunch of theory and stuff, or explain the mechanics of hand movements in very technical detail.

But those things really don't matter. What does matter is reducing the essence of a few things into a simple exercise that the student can do and that sounds good. If you took a guitar lesson from me, you'd probably leave the first lesson able to strum a few chords in time. Of course, you just learned a ton of stuff: how to use your fingers on the fretboard, how to keep the beat, how to strum, posture, hand positions -- the list goes on.

All you care about, as the student, is that you can do something. You feel successful. You have something to practice. As you progress, you become more interested in the finer details (or you quit) and we go deeper -- explaining music theory, patterns, technique and mechanics, etc.

Zed teaches programming the same way. Give the student something to do where they can see immediate results. The ones that stick with it are going to be naturally curious about how things work and will keep going further.

I used "Learn Python the Hard Way" as my introduction to programming. It was awesome.

Re:Learn Regex The Hard Way by TWAndrews on Thursday December 01, 2011 @09:19AM (#3299792)
Learn Guitar the Hard Way would be an awesome addition to the mix.
Re:Learn Regex The Hard Way by nikcub on Wednesday November 30, 2011 @10:12PM (#3298126)
as a Python dev I scanned the python book and I thought it dwelled too much on string formatting, focused on teaching syntax and not programming, and the language was a bit terse.

but then a friend of mine told me that he and a few other people he knew learnt python from that book, so either later revisions got better or my opinion is shit.

Re:Learn Regex The Hard Way by zedshaw on Wednesday November 30, 2011 @11:56PM (#3298422)
I don't think your opinion is shit, I just think your perspective has changed because you actually can code. The hardest thing for a beginner is just the syntax. If you've never written code before then the symbols in programming are alien as hell. By focusing on seemingly repetitive syntax drills I get them skilled progressively until syntax isn't a problem.

Another thing you might be missing is under each exercise is a real piece of programming they're learning. For example, with string formatting I'm actually teaching the concept of named variables. Later on I use the fact they've actually been using named variables to then teach the concept explicitly and then they get it quicker.

Re:Learn Regex The Hard Way by YuriNiyazov on Thursday December 01, 2011 @03:43AM (#3298881)
I agree that syntax is the hardest thing. Based on my experience tutoring, I would add the following (which was surprising to discover at first): the second hardest thing is the order of evaluation. I've seen students write down

    a = do_something1(do_something2())
and be unable to explain that do_something2() actually happens before do_something1(), and to see that the code is loosely equivalent to

    b = do_something2() 
    a = do_something1(b)
Re:Learn Regex The Hard Way by Locke1689 on Thursday December 01, 2011 @04:47AM (#3299003)
The worst is when you're teaching C and you have to explain that

    void * a = do_something1(do_something2(), do_something3());
is not equivalent to

    int b = do_something2();
    int c = do_something3();
    void * a = do_something1(b, c);
Re:Learn Regex The Hard Way by YuriNiyazov on Thursday December 01, 2011 @05:07AM (#3299055)
Because the order of evaluation of arguments is not defined?
Re:Learn Regex The Hard Way by drmohundro on Thursday December 01, 2011 @08:36AM (#3299650)
I'm a CS grad, but I had zero knowledge of programming when I entered college - I knew some basics about HTML and I could fix some basic computer issues but that is it. I remember trying to open an executable in Notepad and thinking to myself, "uh oh, this is going to be really hard."

I was still struggling with syntax issues into my second year of school. It's not a good feeling to be debugging null pointer issues and data structures when you're not confident with the syntax.

Re:Learn Regex The Hard Way by VonLipwig on Thursday December 01, 2011 @04:06AM (#3298930)
I like Zed Shaw's style. I feel it really helps things stick with the way it is taught. I also feel the 'go find out yourself' methodology sets you up well going forward as you learn to depend on yourself to solve problems instead of the author of the book.
Re:Learn Regex The Hard Way by KevinEldon on Wednesday November 30, 2011 @10:03PM (#3298109)
My brother is working through Learn Ruby The Hard Way, which is not written by Zed, but is based on his Python book. He has no programming experience and seems to be enjoying the work and learning Ruby pretty quickly.
Re:Learn Regex The Hard Way by ramkalari on Thursday December 01, 2011 @03:32AM (#3298861)
I started doing Ruby yesterday (have done about 8 exercises) and it's been fun so far. The approach is new and it seems very well thought out.
Re:Learn Regex The Hard Way by mattwilsoninc on Thursday December 01, 2011 @09:51AM (#3299898)
I'm on the first legs of the Learn Python the hard way. I like the examples and explanation. Doing it is really the best way to learn. The great aspect about the book/course is that Zed provides examples of pitfalls that come with experience, so you learn the language at a faster rate.