How to Never Hate Your Life as a Web Developer
As a working web developer, you go through alternating periods of difficulty and grind, peaks of high intensity challenge and valleys where you’re just doing stuff you’ve done before, hopefully a little better.
It feels good to get into a groove where you’re less concerned about the mechanics of the code you’re writing and focused instead on using it to craft the design, the user interface, the interactions, the product or experience.
After your first couple years in the profession, you’ve been through a lot and it’s tempting to stay on the plateau of happy productivity you’ve reached. The problem is getting into a lull where you forget to keep chipping away at the seething pit of complexity that is software.
Because those peaks are waiting in the distance. They will come again. And it will be hard.
For all the hype around technology and programming, the reason people will pay developers a lot of money is the same reason it’s expensive to get your teeth drilled. Most people would rather do anything than stare into a perfect stranger’s mouth, probe it with sharp objects and hose blood out of it for hours. And they feel exactly the same way about dealing with computer code. They shudder in fear and say “make it go away now please. I do not know how it works and I do not care.”
On a bad day, a developer knows in their bones that those naive, frightened people are not wrong. Oh, god how right they are in a way. How the fuck you thought it was ever a good idea to be one of the people in this world who is responsible for making software work seems, in moments like these, to be one of those amusing childhood fantasies like “someday I want to go be an explorer, and go to the North Pole, and the bottom of the ocean!”
After a few days of sixteen-hour sessions of programming, staring down an impossible deadline and throwing your brain into one mind-numbing problem after another, you bottom out into a joyless chasm where it seems code is your enemy and computers themselves are torture devices created by evil gods. Anything, absolutely anything would be easier. The programmer fantasizes about the happy, carefree lives of assembly line fish gutters in Alaska and sewer cleaners in Mumbai.
My belief is that everyone who stays in the game a while without getting burned out has learned to implement what I will call the Slow Drip Method. Remember how hard it was to learn your ABC’s? How about third-grade math? Of course, there was some pain involved, and more recent agonies of cramming for a Spanish final that you may recall. The point is, you learned those difficult things a little drip at a time, over years. The problem is keeping similar study habits going when no one is telling you to – no structure, aside from that someday-deadline, to keep you on the ball.
The Slow Drip Method holds that a tiny drip eventually fills up a container even if it seems like it’s a process so painfully slow it’s not doing much. If you’ve made drip coffee at home or seen one of the cold-brew contraptions tended to by bearded hipsters at a café, you understand the impatience.
Applied to the life of a programmer, Slow Drip simply means keeping a slow trickle of new information – particularly the kind that is dense, dry and hard to ingest – consistently on drip. People call this “keeping your skills up to date” but it’s more than that. It’s a matter of survival.
It also constantly keeps you checking in with your career strategy – what kinds of projects you should take on, which will lead to the next ones and, assuming you pull those off, the next. Like a long-haul truck driver, you’re looking as far ahead as you can for ahead for bends in the road that might tip you over, and preparing accordingly.
There are some things it’s just impossible to rush, to pick up overnight, and yet people constantly try, and I’ve seen it happening and been “forced” into it myself – jumping on a new project where you’ve got a new language, a new framework, a new aspect of electronic media or mobile devices or whatever – some new kind of problem to work on than you ever have before, and not nearly enough time.
Think how insane this would be applied to another domain of knowledge. We all know that no matter how hard you try, you can’t learn Russian in a week. Sorry, it’s impossible. You just can’t do it. Is it because Russian is impossible to learn? What if you already know two other languages? Including a Slavic language. And have a degree in linguistics. And taught ESL for ten years. AND study all night, and don’t sleep, and drink lots of coffee. Uh, yeah – sorry – you still can’t learn Russian in a week. You might make some quick progress, and if you’re lucky, cobble together something that is functional but strange. Something like this:
In web development, the pressure to have command of a vast array of toolsets under your belt is enormous. But no matter how experienced you are, it still takes time to learn new stuff. It can’t really be rushed. So keep it on a slow drip. You’ll thank yourself later.