1. 38

  2. 14

    A little bit of me feels that Gary’s video’s skip over the hard part of programming, which is thinking about how you’re going to design your code in the first place. There’s a subtext in the way Gary’s videos are presented that code should just flow straight out of your fingers in a linear progression from idea to implementation - that “real” programmers just sit down & churn out code. I don’t think this subtext is deliberate, but it’s there nonetheless.

    If you want to learn the “mechanics” of programming in ruby (or whatever) then video’s like Gary’s can be handy, but sometimes you just have to sit and think. “Real” programmers don’t necessarily get given a problem and immediately sit down and churn out a solution.

    (A counter to this point is that sitting down and getting on with it is a good discipline to have! I just don’t want people to get the idea that being able to access this flow state is some automatic thing that defines whether you’re a ‘good programmer’ or not.)

    1. 11
      1. 4

        Hah! Oh well: I didn’t intend to get under his skin - it was a passing observation, not a critique of his entire output!

      2. 6

        I guess theres some other replies, but do you think this way about books too? Would you really want to read a book “oops, forgot a semicolon. Correct another typo, etc., etc.” the whole way through? Replace all the code samples with raw keystroke stream dumps?

        1. 5

          I know people who do screencasts prepare a lot and would edit the video. But seeing him write code in a flow without thinking makes me feel intimidated. I’m a programmer with 3 years experience, and i do feel there is a huge gap between him and me. I don’t even want to think how a entry level programmer would feel.

          1. 10

            I’m a programmer with 3 years experience, and i do feel there is a huge gap between him and me. I don’t even want to think how a entry level programmer would feel.

            I like woodworking. I’m not very good, as I do it only in my spare time. I watch videos of true masters of the craft and they’re amazing, far faster than me, seemingly one with the grain, never a chipped-out dovetail or errant cut line. It’s inspirational – look how good I could be with decades of practice and dedication!

            I don’t get it. What is it about our craft that you’d ever wish that experience, practice, and years of dedication to mastery didn’t matter? Surely it would be horribly depressing and demoralizing if you saw someone who had sunk decades into your craft was no more skilled and sure than you, with a mere 3 years? Surely you would quit, recognizing this all as a waste of your time, if a dedicated craftsman displayed no more skill than an entry-level apprentice?

            What a shallow and small skill this would be if you’d maxed out your ability to improve in a mere 3 years.

            1. 6

              He’s clearly written this code a bunch of times before, and has thought through some of the basic issues, and is working from a set of notes - perhaps not exact line by line notes, but certainly he knows how he’s going to do this before he starts the video; nothing to be intimidated by.

              1. 3

                3 years isn’t that much (and I say this as someone out of college for a year). In may other industries, you’re a scrub until you’re five years in - more for some jobs. I’d say don’t stress and do your best to push yourself.

                Oh, and Gary is open about spending countless hours redoing and editing videos so they look perfect. He’s not doing this in one shot.

                1. 4

                  Exactly. Also IIRC, he never seems to make mistakes, or rewrite code in the videos I’ve seen - there’s no “oops, that was a dead end, actually I need to do it this way”. Which makes sense to a certain extent in an educational context - you don’t want to show people bad habits! - but at the same time it gives a completely unrealistic view of how real programmers write code.

                  I don’t actually know, but suspect that he does a significant amount of prep for these videos. It’s the elision of that prep that makes the result misleading.

                  1. 6

                    In the DAS series, yes, he’s talked about running through them a dozen or more times to practice. If he didn’t, every talk would be about backspacing and tinkering instead of about testing, OO, the shell, or whatever the desired topic is.

                    1. 1

                      Gary is open about spending countless hours redoing and editing videos so they look perfect. He’s not doing this in one shot. It’s the main reason he charges for most of his content - it’s not easy to make.

                2. 5

                  OK. Anyone want to have a discussion about the actual content of the video? I didn’t intend to completely derail this post.

                  I’ll go first: it seems to me that (apart from the rather nice graphical class navigation) there’s not much stopping people from writing vim plugins / emacs code / whatever that will do most of this today. So what’s stopping them (in the aggregate) from trying out these kind of ideas? Conservatism? Lack of time / interest?

                  1. 3

                    I’m not sure I follow. Gary demonstrates building the core loop and ideas that roughly every major text editor reifies. The video is a nice little overview of these ideas which demonstrates they’re in practical reach of many devs who may not have previously thought about playing with them.

                    That said, the idea that you would play with them by writing vimscript or elisp seems … odd? They’re very configurable editors, but their core loops, line and undo representations are their most heavily baked-in parts. To the extent that you can change them at all from the tool scripting language you’d spend far more time ripping things out of your way than learning-by-building.

                    Far cleaner and easier from a learning perspective to build a simple greenfield toy editor to get a feel for the architectural concepts.

                    1. 1

                      I’ve got completely confused between the topic video and the one whjms put in his comment!

                      Clearly not my day…

                  2. 5

                    At first, I thought this was going to be the one where he talks about creating an editor along with a custom terminal and rendering engine for one. I loved that one, it’s hilarious.

                    1. 0

                      That actually confirms some of my complaint above! (or below, depending on votes :) )

                      He says at the beginning of that talk that it takes him 10 hours to do one screencast. If he’s compressing 10 hours of work into one 1/2 hour - hour screencast then it’s unsurprising that it gives a somewhat unrealistic view of the practice of programming.

                      1. 9

                        This is a really naive complaint, and it’s unfortunate that it continues to hijack the discussion of this otherwise-excellent talk.

                        Of course this video is compressed in time – the audience for a 10 hour video with long stretches of dead air for thinking is, to a first approximation, nil. Editing out all the dead space is the only thing that brings the information-conveyed-per-minute of this high enough to make watching it a valuable use of literally anyone’s time.

                        1. 0

                          It’s a meta-complaint. There’s a difference :)

                          1. 3

                            The primary difference to my mind is that it’s entirely off-topic

                        2. 2

                          Haha, maybe – but there’s a surprise in the talk I linked that kind of invalidates your complaint. I don’t want to spoil the surprise ;)

                          1. 0

                            Possibly it’s a mistruth :) Who knows?

                      2. 2

                        Antirez, the creator of redis, made a blog post a long time ago, about creating a minimal editor here

                        1. 2

                          SanOS edit[1] is a simple editor good for study. StyledText from SWT is another great example for an editor-from-just-a-canvas. Both use gap-buffers for text storage.

                          [1] - http://www.jbox.dk/sanos/editor.htm

                          [2] - https://goo.gl/okqQo5