Some of these thoughts probably apply to all developers. Some don't.
- 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.
- 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.
- 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.
- 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
.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.