How to Learn Programming – The Guide I Wish I Had When I Started Learning to

by Jacob Stopak


I’m really enjoying this article, still not finished.

I was wondering what people thought about the advice that we should learn how to use vim. Is it really still necessary across the board?

There was also this bit that I thought was ill informed:

Sure we could use a fancy text editor like Microsoft Word (or more likely specialized code editors like Sublime or Atom) to write and edit our code, but this is not required.

I mean, is there ever, in any universe, a situation where we should be writing code in Microsoft Word? :laughing:

Meh, I’m an emacs guy, but to be honest I pretty much use Visual Studio Code for everything now. But if I’m at a command prompt and just need to make a real quick fix to a file then I’ll fire up emacs. But do I think it is absolutely necessary to learn something like vim or emacs nowadays? Probably not. If you work on linux (or another unix-like OS) then knowing a few basic vim commands is probably a must, but for reasons other than coding.

So ya, I’d probably move step 5 to the very end and make it optional.


If you do any work in the terminal or on servers, then knowing VIM is very handy. At least the basics. But not all devs need it.

I think you misunderstood the point about Word. The idea is that any time we can use VIM we could use Word or an IDE, but it’s often not worth the effort.


Putting aside the common need to know the very basics, given at some point you’ll definitely have to interact with the application, w/r/t using it as a general editor:

So I switched to using Vim from VSCode about a month ago. I’ve been using Vim keybindings for the last couple of years in VSCode, & NVim recently got a load of language server stuff/syntax highlighting added to core, so decided to make the jump. And it’s been painful. But, gradually, as I get used to it and map commands that I repeatedly use to specific keystrokes, I get more and more and more efficient. Tradeoff is that I’m basically programming the keyboard to do a set of things that are very specific to my workflow, and it’s going to take many more months before I’m even halfway happy with that and it’s committed to muscle memory.

There are very good reasons why that (or Emacs depending what religion you subscribe to) are still very much alive decades after they were created. VSCode et al are much easier to use.

Vim/Emacs have extreme flexibility, which is great but means extreme amounts of tinkering are normally required to get them working in the same way that you think (this I would say is the key thing: they allow you to define the application in such a way that it closely matches how you think). Which is fine if that’s what you like doing. It’s not fine if you just want something that Just Works, has a nice UI out of the box and lets you add things pretty safe in the knowledge that you won’t have to spend ages fighting with the config because installing some feature/adjusting some setting has subtly broken a load of other things.


Thank you for a good article and useful information that I learned from it. Learning programming on your own is not easy and takes a lot of time to experiment.

vim has its proponents, but nano is a much more beginner-friendly alternative and does most of what the average person will need. I personally prefer using nano over vim, if I have to do anything in a terminal.

1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.