DEV Community

Cover image for The Many Advantages of Being a Lazy, Impatient Programmer
Daniel Wallen
Daniel Wallen

Posted on

The Many Advantages of Being a Lazy, Impatient Programmer

The hardest thing about life is the challenge of balancing its competing demands.

How are you supposed to cope when you have to juggle a screaming child, impending deadline, and past due bills? There’s no easy answer.

I’m far from an expert as I’m an unmarried man with no kids who can afford to pursue an education without a job (read: am self-aware enough to know I benefit from privilege that should be openly disclosed).

That said, I nevertheless know a ton about a topic that might help you accomplish more stuff in less time. What is it? Don’t fret, I won’t make you guess... time and energy management.

From a Big Picture perspective, you only have two inputs with which you must produce every output you desire from life. Of course, they are your time and energy.

If you want to make the most of those precious resources, read ahead for actionable advice (plus several sad attempts at humor).

First, I’m going to share some key principles. Next, I’ll elaborate on the meaning behind them. And lastly, I’ll share a personal anecdote to demonstrate how I implement the idea in real life.

1. Fail Fast

Some programmers have the patience to stare at the same code for hours on end. I’m not one of them. If a block of code is behaving in an erratic and illogical way, I tend to scrap it instantly. Then I try again with a different approach and repeat the process until it respects my authority.

For example: last week I made a Pomodoro Clock for an app I’m creating with a team in Lambda School. The app is called Refresh. It’s meant to help students prevent burn-out and develop healthy habits (which I wrote about last week: here’s the article in case you’re curious).

Guess I should also explain the Pomodoro Technique for the unaware. Basically, there’s a theory that people operate more efficiently when they work in short bursts — of 25 minutes in this case — and take frequent breaks. Thus, I needed to create a timer component that fit those criteria.

Unfortunately, I’m crappy at designing functions related to tracking time. Same applies to math. Me and numbers don’t get along. I’d never accept a friend request from a math equation. Never! So this is how I ended up in a continuous state of timer-related-anxiety for almost an entire day.

I read and followed a tutorial. The author got lazy at the end and failed to explain exactly what two functions were supposed to do. Then I deleted every line of code. I found another tutorial. This one led to a working timer but it only counted seconds. Minutes didn’t register whatsoever.

Next, I consumed myself in documentation about all things related to time tracking in Javascript. The minutes began to tick, but not correctly. Seconds increased by 5-8 numbers at a time. At this point, I wanted to scream, because the only potential solutions seemed too convoluted.

Finally, I failed forward into the best fix. There’s a library on NPM, a resource I don’t utilize nearly enough (which I’m addressing as we speak), that removes all the guesswork. Despise clocks and timers as much as me? Check out react-timer-hook. Simply touch-up the code to match your desired behavior. Ta-da, you’re done!

People say: “Patience is a virtue.” While this is true most of the time, it’s not always the case. A lack of patience is my best time-saving device. If I was patient enough to stare at the same code forever, it would’ve taken me a week to complete this component. But I’m too impatient for that. Thus, I forced myself to find a faster solution and finish in a day. Try to do the same and see what happens.

2. Have Boundaries

Not “boundaries” in the sense of what you share with others. I’m speaking of “boundaries” in terms of how you invest your time and energy. They are NOT infinite resources.

Follow politics? Watch the news? Even worse, are you outraged by what you see? Imagine the amount of mental energy that gets expended in reactions to events beyond your control.

My psychic powers informed me that some of you might be upset because I just suggested that it’s okay to not care. Or you may think I can only feel this way because I’m a straight white man.

(The latter is a fair point — it’s easier to not be reactive to certain stuff when you’re privileged.)

However, the first point doesn’t fly. I do care. But only about areas over which I have influence. For example, I’m a sucker for shelter dogs. I’ve walked nearly 100 of them in the last 16 months. Here’s a cartoon of the first 50. Cute, right?

Cartoon of fifty shelter dogs Daniel Wallen has walked. There are dogs of every shape, size, color, and breed. Everything from pitbulls to chihuahuas!

I also have a background in social media marketing (read: I’m good at convincing folks to click the “share” button). As a result, I get homeless dogs in front of thousands of people every week. On countless occasions, this directly results in an adoption.

Daniel Wallen posing with nine different dogs he's walked over the last year. There's a pitbull, chihuahua, rottweiler, dachshund, terrier, and Australian Shepherd

The point: I combined a talent (online marketing) with a passion (helping dogs find homes). In other words, I channeled my energy to a cause where I could make a true, tangible impact. The planet is nice, but I can’t stop global warming. I can’t even slow it down to any significant extent. So I choose to spend my time elsewhere and not worry about that issue.

What does this have to do with programming, or work in general? In the long term, having firm boundaries helps you conserve an astronomical amount of energy.

Why is this fact important? The more energy at your disposal, the more efficiently you will operate on a daily basis.

How much more productive will you be? Crap… my psychic powers are failing me.

You’ll just have to trust me, give this philosophy an honest chance, and discover that personal truth for yourself.

3. Ask Questions

Nobody has every answer. Especially not me. No joke. Sure, I can string sentences together in an entertaining and informative fashion — before labeling me “arrogant,” consider the reality that we’re 1,000 words deep and you’re still reading — but I’m not immune to mistakes.

Heck, I wouldn’t have written this article if I didn’t say something super stupid on a channel in Lambda School’s Slack network. That epic fail caused me to ask myself, “How can I express that opinion more effectively?” And turns out I needed more than a paragraph (my bad, fam!).

The average person is afraid to ask for help. Me? I’ll beg for it: shamelessly and relentlessly. This tendency saves an absurd amount of time. It fits right in with principle #1. Instead of staring at a block of code until I miraculously wrap my mind around it, I consult an endless array of qualified experts and authority figures.

Where? Everywhere! I follow brilliant developers such as Wes Bos on Twitter. I consult tutorials at W3Schools. I browse Google and keep opening new tabs until I land on an article expressing the concept in a way that clicks. I share the issue with fellow students and see what they think. I ask for help in support channels. Often, I do ALL of these things simultaneously due to my impatience and thirst for the fastest outcome.

Is it “good” to be lazy? Not really.

Should everyone aspire to be impatient? No way.

Nonetheless, you can leverage your laziness and lack of patience in a smart direction.

Leaning into those personality flaws — versus pretending they don’t exist — allows you to turn them into a net positive.

Agree? Share this post with your friends.

Disagree? Tell me why in the comments below.

Top comments (2)

chrismjohnston profile image
Christopher Johnston

I'm also a Lambda student and the thing about boundaries is so true. I've learned to care about much less because it reduces my stress level.

webwallen profile image
Daniel Wallen

You're a smart man! Also, caring less about issues where you have no power or influence allows you to care more about the issues over which you have control.