The Developer Dip
Seth Godin articulates an important concept of “the dip” in his book The Dip. If you haven’t read it, think “learning curve” or “barrier of entry”. But it’s more than that. It’s the thing that separates the novices from the pros. It’s the thing standing between you and becoming “the best in the world” at whatever it is you’re aspiring to.
There’s a lot of value to unpack in Godin’s concept for those entering or already in the world of web development.
Getting Started is Easy
Getting started as a “web dev” doesn’t take much.
Initially, proficiency in the front-end bread-and-butter skills (html, css, and js) is crucial and not too hard to obtain. Certainly, it takes work. But there are lots of tutorials and courses for these intro skills. Most seem to go something like this:
- download sublime or another easy but incredibly powerful editor
- download html5 boiler plate
- add-in bootstrap
- wire up styles and scripts
- start changing stuff, experiment, break, build
Learning to do the above really well isn’t easy. And of course there’s more to learn (like Git and solid JS skills). But learning the above doesn’t take years of toiling.
Learning the above isn’t “the dip” that Godin speaks of.
Getting Through “The Dip” is HARD
Why? Because staying at this point doesn’t take one very far. Remember, “the dip” is the thing to get through that will make you “the best in the world.” It’s the thing that’ll separate your career from that of the rookie weekend coders.
What is the “Developer Dip?”
What is “the dip” that those seeking to be really good developers need to get through? Doesn’t it vary with the particular realm of development that one is interested in?
To my younger self, and anyone else who might benefit, here’s my take on “the developer dip,” roughly in some type of helpful order (of course the learning process for these things isn’t really sequential, and it’s certainly always dynamic):
- intimate familiarity with at least one text editor
- the terminal (at least a minimal working knowledge)
- system configuration/know-how
- giving your system an ssh identity
- being able to connect to things via ssh
- knowing how to add things to “the path”
- having a shell that works the way you’d like it to
- understanding of user permissions and roles (this arguably doesn’t apply to some folks, but I still think it’s an important thing to understand)
- a build tool, and likely several (GUIs like Codekit, Prepos and the others are great, but I think it’s important to also know how to harness something like Grunt, Gulp, NPM, make, or any of the others for being able to perform build tasks)
- continuous integration
- dns setup/management
- ability to follow naming conventions (since these can vary between projects and teams, it’s fine and even good to have your own, but it’s also important to be able to learn and follow those of others)
- ability to work without any frameworks. Don’t get me wrong, frameworks can be great, but they add abstraction. Skills built on abstraction without fundamental understanding are brittle – brittle things break. So use Bootstrap if that’s your thing, but know how to create awesome styles and user experiences without it.
- ability to execute (here’s an incredible book on the topic)
- ability to customize and thrive in at least one CMS
- having a collection of starting points (from vendors, forked, or home-grown) that enable rapid but thorough project initiation.
- algorithmic programming abilities (at least the basics)
These are Just the “Hard Skills”
Hard in the sense of tangible. There are entire other posts and books (though a good one’s already been written) on the topic of “soft skills” for developers. Things like communication, branding, follow-up, etc.
The soft skills are also part of “the dip.” Perhaps they’re even bigger than the “hard” skills above.
Getting Through “The Dip”
The saying “nothing good happens overnight” reminds us that the path to most anything worthwhile takes time, energy, and hard work. Most of us don’t want to hear this. Most of us (including myself) tend to prefer the paths of least resistance. Not surprisingly, paths of least resistance do not lead us through the dips. These aren’t the paths that lead to our ultimate potential, which we’d all do wise to work towards.
May we all continue in the good work of journeying along the seldom-trodden paths that lead us through the dips and onwards to our ultimate success.