Things every web developer should know

March 25, 2013 at 8:44 am in Tech, Work

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.

JavaScript

It’s everywhere and you can’t avoid it. You also can’t afford to continue the copy-and-paste approaches of the last 15 years. JavaScript is a major component of modern web applications, and no matter how good your C# or Ruby code is you need to know this language well. And it’s an… interesting language. Don’t let its syntax fool you; some things simply do not work as you’d expect. Learn it well, including proper patterns for creating objects, encapsulating code, and handling large numbers.

PHP

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

JavaScript runs on the server-side now, thanks to Node.JS, and a lot of developer tools are showing up. For example, testing tools, concatenation and minification tools for CSS and JavaScript, and even tools that reload your browser when you make changes are all written in Node.JS. Tools like Grunt make it easy to create a sophisticated build and test environment for your projects, and if you install Node.JS you can also take advantage of CoffeeScript.

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.

1 comment

One Response to “Things every web developer should know”

  1. Good writeup, thanks. I’m working on learning more JS and even after years of copypasting, I’m amazed at how useful it is. My Vim skills are just good enough to use it like I would use Notepad. I sometimes use mcedit or nano instead, but wish there were more options in this area.

Leave a Reply