Some Recommendations for New (Web) Developers

Some of these thoughts probably apply to all developers. Some don't.

  1. Learn an editor. It doesn't matter which editor. Just learn one. Be good at it. I don't care if you use Visual Studio or Emacs or whatever. Be really good at the thing you pick, though.
  2. Learn enough vi to get by. You will need to know it, at some point. At the very least, learn how to enter text, move around, save, quit, and quit without saving.
  3. Install jq (build it from source if you want the newest hotness; otherwise install it with your package manager). Don't install the jq clones written in other languages (not C) — most of them are slow and/or only half-finished.
  4. Get comfortable with Bash. You don't have to be great with it, just know enough to get by. It doesn't matter what shell you actually use (Zsh, Ksh, Bash, Sh, Dash, Ash, PowerShell — I don't care, whatever). If you're writing stuff that's going to be run by other people, ever, write it in Bash. If you're writing stuff that may or may not be run on a server, write it in POSIX-compliant sh.
  5. Spend some time on Twitter. Facebook is for finding out how your middle-school best friend's back surgery went. LinkedIn is for collecting recruiter spam just in case. Twitter is for following people who say things that matter, so get on Twitter.
  6. No one cares if you can't afford a Mac. Macs aren't great computers, they're okay computers that are very expensive. If you can't afford a Mac, try Linux (I recommend Debian with the XFCE desktop environment, but try other things too if you want!). If you don't have time for that, Windows is also okay (just remember to tell your editor and Git to use UNIX-style line-endings).
  7. Don't work (for your employer) on the weekends. Work on side projects, if you want. Or do other things. Go out to brunch. Climb a mountain. Learn a Primus song on bass. Get drunk. Just don't work for the person who pays you to work during the week. If they seem to expect you to be working when you're not at work, start looking for another job.
  8. Learn other languages. HTML and CSS are not programming languages, so they don't count. JS is actually a really great language (so don't take shit from Java or C# developers who bitch about it!), but it's only one language. Learn another language that helps you think about what you do in a different way. Scheme (specifically, Racket) is a really nice one to start with. Haskell is interesting (or some other ML-type language, like OCaml or Purescript). C is also really useful to know, even if you only ever learn enough to write a basic shell or something.
  9. Figure out your own method for managing tasks. Chances are, you'll work for more than one company over the next few years. Your employer might be really into Jira, or Trello, or whatever, or they might change their mind four times a year, but either way, getting heavily invested in one tool is not a great idea. Use their thing, but also figure out what works for you. I keep track of tasks for work in plain Markdown files, and I use lilnote for personal tasks. Just find a thing you like and stick with it.
  10. Make time for personal development. Including on the clock. If your employer doesn't like that you spend a half hour every morning catching up on what new flags Chromium shipped, or competing on Codewars, or whatever other technical thing happens to really interest you but might also benefit your company, start looking for another job.