New programmers shouldn't learn vim or emacs.

I was mentoring someone last year and they asked me what books they should read. I rattled off many classics like Refactoring, Design Patterns, Pragmatic Programmer and more. It occurred to me, however, that this represents a great deal of reading. It's taken me 15 years to read all the stuff I've read. It's easy as long time programmers to forget the amount of time invested in things. This is no more apparent in mentors pushing text editor choice on their students.

New programmers have a ton to learn, but navigating complex editors don't have to be one of them. As mentors, we can make people more likely to be successful by meeting them where they are instead of pushing them to do things as we do.

There's no need for beginners to get stuck figuring out the arcane incantations of lisp to get syntax highlighting for ruby or getting stuck in a weird mode in vim in which you can't seem to edit text or exit. This is incidental complexity to the challenge of learning to program and I think it's inimical to the intended goal.

I think there's a time or place for learning tools that make you more productive. They act as a multiplier to your output. The key here is that you actually have to be able to output something! 100x multiplier isn't very helpful if your output is 0.

I offer this plea to those teaching new programmers: Steer them towards a basic, point and click text editor, even if it's not one you'd personally choose to use. Examples of these are TextMate for OS X, gEdit for Linux or notepad++ for Windows. There are also some for-pay options which serve just as well.

Let beginners start with the hard job of learning the mountain of knowledge necessary to be an able coder before you encourage them to take the productivity hit that learning a new tool comes with.

© 2012 - 2023 · Home — Theme Simpleness