I believe that web developer should have a command of a few simple things in order to tackle the random craziness that web development entails. This isn’t, by any means, a comprehensive list. It is opinionated, but also based on things I see other people I respect demonstrate in their daily work.
I don’t enjoy PHP, but you really should know it well enough to avoid creating chaos. It’s available on nearly every server out there, and it does fit a certain type of application space very well. I’m not going to write a forum or a blog by hand – I’ll use WordPress or phpBB, and at some point I’ll need to know how to customize the behavior or themes which will require PHP knowledge. Also, creating a simple microsite, API, or even a contact form is a pretty simple task that PHP handles quite well.
Basic knowledge of Vim (or emacs)
No, don’t ditch SublimeText or Visual Studio. I prefer Vim, but I’m not saying you’re terrible for using something else. Here’s the deal though; Vim is available on every platform, and its chief usefulness is editing text files from the Terminal. Whether you host your web pages on a VPS somewhere or on a shared host, knowing how to use Vim (or again, Emacs) to quickly view
and edit files on the server can get you out of a jam. It’s unwise to edit files in production in realtime without testing code or using version control, but sometimes bad things happen and you absolutely need a fix out there now. I’ve used SSH and Vim while on vacation to fix a corrupted web server configuration file that someone else broke, and I’ve used it to quickly change a very bad typo on a public-facing web page while at the mall. Seriously, look into learning one of thse tools.
Understand Basic SSH, SCP, and Public Key
In order to easily edit files on your server with a text editor like Vim, you’ve got to know how SSH works, and in order to do it securely, you need to understand public key authentication. That’s where you generate a public key and a private key on your computer and then give the public key to the servers in which you want to log in. This extra layer of security is crucial for modern sites.
If you’re using FTP to transfer files, look into SFTP, the secure FTP protocol often available if you’re using SSH. It can also use public key authentication. And if you’re interested in copying multiple files from your machine to your servers, look at SCP, or Secure Copy. It’s a great simple command-line method for moving files around.
$ scp -R public_html username@server:/var/www/html
Honorable Mention: Node.JS
So that’s my basic rundown. As for me, I personally can’t do web development without CoffeeScript or Sass, but those aren’t necessary for everyone to know. Share your thoughts.