Hacker News new | ask | show | jobs
by onion2k 2966 days ago
I asked Web Developers across several communities what skills they thought were often neglected by new Web Developers

Knowing git would be great, knowing HTTP would help if you're going to be working with APIs, and knowing dev tools would be useful if you're more front-end. I'm not sure the rest (networking, UNIX, another language and commenting code) are really things that would tip the balance in your favour.

Particularly the additional language - I'm sure most web software companies would rather a candidate knew more about the main languages used to build web things (HTML, CSS, JS, [Node|Ruby|PHP], and SQL) than something 'extra' that they're unlikely to use if only one dev knows it.

4 comments

> I'm not sure the rest (networking, UNIX, another language and commenting code) are really things that would tip the balance in your favour.

As someone who sits more on the Ops side of DevOps in his current day job, developers who can say "df said the disk is full", "when I try to connect to it, it times out while connecting and we don't even get a syn/ack back, but it works fine from my phone", etc... I want to hug them. Additionally, I came across this comment the other day while debugging a firewall issue:

     // FIXME, we probably want to make this more robust since if it fails on startup it will never be good until we restart.
I was pretty upset to discover that the things I had been trying were all pointless, since I wasn't restarting the server every time, but that single line comment was the enlightenment I needed to solve the problem.

> Particularly the additional language - I'm sure most web software companies would rather a candidate knew more about the main languages used to build web things (HTML, CSS, JS, [Node|Ruby|PHP], and SQL) than something 'extra' that they're unlikely to use if only one dev knows it.

I think knowing things outside of just the web languages is the difference between someone who has pigeonholed themselves as a "web developer" vs. the more general "developer". Going for questionable analogies, I'd way rather have a "mechanic" than a "car mechanic" ("Oh? That's a 1/4 ton truck? Sorry, I only work on cars")

Ditto on the problem reporting being so much more useful coming from someone who knows how to do just a little bit of investigation and diagnostics.

A web developer who knows to try the issue from a different machine and a different network is so much more useful to those around them. Makes work much more smooth, and speeds up development too.

developers who can say "df said the disk is full", "when I try to connect to it, it times out while connecting and we don't even get a syn/ack back, but it works fine from my phone", etc

In a choice between two candidates for a web dev role it's going to come down to who's shows more interest in (say) CSS layout technologies or writing webpack plugins than any amount of UNIX knowledge. There's a minimum amount they'd need to know like navigating around a CLI and using NPM, but I certainly wouldn't expect a developer have any sort of sysadmin skillset.

I'm not suggesting it's bad to know them or that they're not nice things for a developer to have, just that I don't think they have any significant impact on the chances of getting hired.

Knowing Unix/Linux command line tools will broaden the foundation upon which your other knowledge is built.

Knowing those tools will also simplify local development if you're running code in dev/test VMs or even containers.

Plus web dev is dealing a lot in text. Unix command line tools deal a lot in text.

I am, of course, biased as all heck. I'm a Unix sysadmin who does devops stuff too, so I like to think everyone should know the same thing as me.

Networking is vital too. Being able to understand just basics of what should be happening in a local subnet is very useful. Knowing about TCP ports and their states can also help debug certain problems.

All those extras make you stand out as a hyper-producer or guru rather than a run of the mill never stand out from the pack developer. There's definitely room in the world for both types, but gurus get the attention and respect.

Simple networking knowledge is a go-to interview question for me. If you don't understand the basics of what happens from the time you enter a request in the browser to when the page fully renders you won't be very good at troubleshooting some basic issues. (Can't reach the server. Some content is missing. Is it timing out. How many requests are generated by a page.)
I would have thought a basic knowledge of SQL (basic selects and simple joins) and to be able to use the CLI to do these.