Low Frustration Tolerance: Curse and Blessing
secretGeek .:dot Nuts about dot Net:.
home .: about .: sign up .: sitemap .: secretGeek RSS

Low Frustration Tolerance: Curse and Blessing

There's a psychicologicalous condition known as 'Low Frustration Tolerance', (LFT for short... abbreviations, btw, are helpful for those with LFT ;-))

Low. Frustration. Tolerance. I am writing slowly. Just to frustrate the Living Hell out of those who have LFT.

Every day you will see examples of people with Low Frustration Tolerance. You know these people.

You're in your car, stopped at the lights. Light turns green, and before you've put your foot on the accelerator, the guy behind you blares on his horn. Hard. He's got LFT. Bet on it.

To be a programmer REQUIRES a ^^high^^ level of frustration tolerance. Most people with LFT, on the other hand (OTOH ;->) end up as drunks, hobos, drop outs, early-deaths, burn-outs.

(But stick around -- there is a twist.)

So, the only way to be a decent programmer, able to produce good output every single day is to have a high-frustration-tolerance.

The amount of frustration we encounter in the computing world, every single day, is just astounding. Many days our job consists of leaping one hurdle after another.

Sometimes, just for fun, I keep a little log of the hurdles I encounter in a day. They are numerous.

I want to get from A to B. Step A: Something goes wrong. I investigate. Dead end. I google it. Dead end. I check logs. Dead end. I increase logging. More evidence. I google that. Dead end. I download a tool that will get more info. Tool fails to install. I google the installation failure. Dead end. I look for another tool, install that, run it: crashes. I investigate the crash. Dead end. I find a different tool, install that. Get more info. Investigate that. Dead end. Google it. Dead end. Stack overflow it: dead end. Drink coffee, consider taking up smoking. Dead end. Wait two weeks, increase bounty at stack overflow. Dead end. Reboot, check patch level, look for random hints from astrological tables, listen to reggae... dread end. Sometime later, randomly: breakthrough. And on step B.

Annnyway, I've established the first point: a good career in programming requires High Frustration Tolerance.

And yet... I am utterly convinced, that the only way to succeed as a programmer is to have really LOW frustration tolerance.

You have to get fired up by tiny little things. You have to care, dammit, and care deeply, about tiny little points.

You have to pour your heart and your soul into accepting nothing but perfection from that damn regular expression, that damn CSS selector, that damn SQL case statement, that bloody mother f***ing a*****e of a *** **** son of a ******* ugly ***** ***** **** of a **** installation package, so the lucky ******* **** of an end user gets all the joy of a working system.

It's a catch 22.

And sometimes we forget that *both* skills are needed. We fall into the trap of being one or the other.

So here's my latest plea:

Stopping being so easily frustrated. And please, stop settling for second best.

And then: tell me how it's done.





'Steven Nagy' on Fri, 27 Feb 2009 10:04:20 GMT, sez:

This blog has reached my frustration limit. I'm unsubscribing.



'lb' on Fri, 27 Feb 2009 10:08:20 GMT, sez:

wait a second -- that was you behind me at the lights, snagy?



'Mike Fitzsimon' on Fri, 27 Feb 2009 10:11:44 GMT, sez:

I'm thinking the correct combo should be a "High" frustration tolerance with just enough OCD (Obsessive Compulsive Disorder) to get the little stuff right, er, Perfect!



'Matthew Talbert' on Fri, 27 Feb 2009 10:21:15 GMT, sez:

I've never commented before, but I just had to for this. This article describes my life!! Thanks for the laugh; I just stayed up a whole day and night troubleshooting a problem, so I needed it.



'GlenG' on Fri, 27 Feb 2009 10:22:39 GMT, sez:

I'm frustrated with having to type meatbag to post a comment.

And I look a lot like the programmer pictured in the top right of this post.

Help me.



'Matt Casto' on Fri, 27 Feb 2009 10:41:56 GMT, sez:

Once again, a very insightful article.

My current project has my frustration level very high, but I have to switch into high tolerance mode in order to get things done by a hard deadline.

This makes me think that while a good programmer requires both HFT and LFT ... a _really_ good programmer needs to be able to switch between the two at will.



'lb' on Fri, 27 Feb 2009 10:43:50 GMT, sez:

@Matt et al
I think Mike hit the nail on the head (above):

>"High" frustration tolerance with just
>enough OCD to get the little stuff right



'Gulli' on Fri, 27 Feb 2009 10:57:09 GMT, sez:

Really amusing and spot on.

One resolution à la Postel's Law: high tolerance for the frustration one encounters (at the hands of oneself and others), low tolerance for the frustration one engenders (unto oneself and others).

Another resolution: high tolerance is good insofar as it causes you to keep going (and not going postal), low tolerance is good insofar as it causes you to make things better.

In either guise, HFT and LFT are eminently compatible.



'Helen' on Fri, 27 Feb 2009 11:18:52 GMT, sez:

It also helps if you can tell what matters. Some things aren't worth getting all perfectionist over, some are. :)



'John' on Fri, 27 Feb 2009 12:09:56 GMT, sez:

You neglected to mention the endless frustration of having to strongly rely on tools which crash or freeze or otherwise bug out on you multiple times a day. Like, say, Visual Studio 2008.



'Sam Moreira' on Fri, 27 Feb 2009 12:54:37 GMT, sez:

That explains a lot. Ah! Do me a favor and... when someone tells you how it's done, forward the solution to me... My FT is getting L :)



'Joel Bushart' on Fri, 27 Feb 2009 17:33:30 GMT, sez:

The ideal programmer has a LFT with a very low FRL (Frustration Reset Level) and a LER (Low Escalation Rate).

Basically you encounter a problem. You're instantly frustrated and look for a solution.
You find a hint at a solution (You reset your frustration level to Zero or your FRL has been hit). Then your hint reveals it's not a solution (Dead End). You get instantly frustrated again.

You hit a dead end trying for alternative with no further hints. You get more Frustrated. (Normal people start getting irritated then angry). Ideal programmers however barely increase their frustration level. Due to LER, road blocks and increasing difficulty stopping the frustration doesn't really get you more frustrated at a actively observable rate. (not that you don't get more frustrated and would definitely be seen to be so after a week or two of continuously increased frustrations.)



'OJ' on Sat, 28 Feb 2009 08:34:00 GMT, sez:

Another great post lb.

HFT and LFT go hand in hand every single day of my programming life.

Knowing when and where to apply each is where most plebians fail. The good coders have the ability to pick it, the bad ones dont.



'Dominic Cronin' on Sat, 28 Feb 2009 09:21:35 GMT, sez:

You need to have a LFT. Definitely. Surely, the geek thing is more about how you express that frustration. We get frustrated, and start pushing stack until we get to a root cause that doesn't frustrate us. Then we pop our way back all the way down to the original frustration point, and kick it's sorry ass all the way down the street.

Frustration? What frustration?



'yanky' on Sun, 01 Mar 2009 01:20:55 GMT, sez:

LFT is just what we need, not only for regular person, but especially for programmers. Thanks for making a burst of laugh:-)



'AC' on Sun, 01 Mar 2009 06:02:04 GMT, sez:

Maybe your frustrations have something to do with programming .not



'drhodes' on Tue, 14 Apr 2009 20:41:40 GMT, sez:

writing a log about the divide and conquer process. That's good, I'm stealing it.



'yankee' on Tue, 27 Oct 2009 18:50:33 GMT, sez:

consider those who must say "may i help you?" more than 999 times per 8 hour shift. that's what i do. talk about repetitive motion problems. this is no exaggeration on the amount of people i handle each shift. of course, i must also be a multi-tasker too. thank your great binary gods that you don't have the people problem too.

my monitor has what i perceive to be a short, chubby 'neck' i have often placed my two hands around the neck while talking sweetly to a customer.



'Harry' on Wed, 05 Oct 2011 17:10:23 GMT, sez:

This article made me chuckle and got me thinking, thanks for the read!




name


website (optional)


enter the word:
 

comment (HTML not allowed)


All viewpoints welcome. But the right to delete any post for any reason is reserved. Don't make me do it. Aim for constructiveness. Comments may be republished, emailed to your loved ones or printed and used as toilet paper. Also, I get particularly nasty on comment spam. It's not worth even trying to post comment spam here -- your html is escaped, and your links are given a rel='nofollow'. By attempting to post a comment, you understand that if the comment is considered spam, at my absolute discretion, your IP address may be used as the target of a prolonged distributed denial of service attack. Your electricity might suddenly stop working. Your car tyres will go mysteriously flat. You will suffer permanent hairloss. Your dreams will be filled with terrifying monsters. And in any case I reserve the right to record and publish your IP address.

 

TimeSnapper is a life analysis system that stores and plays-back your computer use. It makes timesheet recording a breeze, helps you recover lost work and shows you how to sharpen your act.

 

NimbleText - FREE text manipulation and data extraction

NimbleText is a Powerful FREE Tool

Use it for:

  • extracting data from text
  • manipulating text
  • generating code

It makes you look awesome. Use it right now! Go on! Hurry! Don't walk, run!

 

Articles

Mind-boggling Demo of New Gaming Genre, aka Folder-Based Hangman, aka Fun with Recursion Mind-boggling Demo of New Gaming Genre, aka Folder-Based Hangman, aka Fun with Recursion
Got CSV in your javascript? Use agnes. Got CSV in your javascript? Use agnes.
I went to write down a book name and founded an internet empire instead. I went to write down a book name and founded an internet empire instead.
NimbleText: Origins NimbleText: Origins
The Windows 8 Mullet The Windows 8 Mullet
Cosby: spontaneous striped background generator Cosby: spontaneous striped background generator
Slides from WDCNZ: Live Coding Asp.net MVC3 Slides from WDCNZ: Live Coding Asp.net MVC3
MVC 3, MVC 3, "Third Times a Charm" references
Custom Errors in ASP.Net MVC: It couldn't be simpler, right? Custom Errors in ASP.Net MVC: It couldn't be simpler, right?
Anatomy of a Domain Hijacking, part 2: The Website Who Came In From The Cold Anatomy of a Domain Hijacking, part 2: The Website Who Came In From The Cold
Anatomy of a Domain Hijacking, part 1 Anatomy of a Domain Hijacking, part 1
secretGeek.net domain has been stolen. The site may go down. secretGeek.net domain has been stolen. The site may go down.
Boring article: 'untrusted domain' issue with SQL Server. Boring article: 'untrusted domain' issue with SQL Server.
Coding While You Commute Coding While You Commute
Test Driven Dentistry Is A Good Thing Test Driven Dentistry Is A Good Thing
The 'less crashy' release of NimbleText The 'less crashy' release of NimbleText
Rethinking Toolbars in Visual Studio (or any IDE) Rethinking Toolbars in Visual Studio (or any IDE)
Where shall we have lunch? Where shall we have lunch?
Setting up email for your microIsv Setting up email for your microIsv
The NO Visual Studio movement: Compiling .net projects in Notepad++ The NO Visual Studio movement: Compiling .net projects in Notepad++
ZeroOne: the editor for programmers who think in binary ZeroOne: the editor for programmers who think in binary
Mercurial workflow for personal projects (with a .net bias) Mercurial workflow for personal projects (with a .net bias)
I see you're using vim. Let me fix that for you. I see you're using vim. Let me fix that for you.
The worst recruitment spam I've ever read The worst recruitment spam I've ever read
A thank you I forgot to say A thank you I forgot to say
My new product, NimbleText, is live My new product, NimbleText, is live
Grabbing the free songs of Jonathan Coulton (with Powershell) Grabbing the free songs of Jonathan Coulton (with Powershell)
Using NimbleSet to compare lists Using NimbleSet to compare lists
Wanted: Wiki Lists (dot org) Wanted: Wiki Lists (dot org)
DOS on Dope: The last MVC web framework you'll ever need DOS on Dope: The last MVC web framework you'll ever need
JSON Query Languages: 5 special purpose editors JSON Query Languages: 5 special purpose editors
What then, is b? What then, is b?
SQLike: A simple editor SQLike: A simple editor
Yet Another BizPlan Generator. Yet Another BizPlan Generator.
HOT GUIDS: A hot or not site for guids HOT GUIDS: A hot or not site for guids
How does life get better? One tiny hack at a time. How does life get better? One tiny hack at a time.
24 things to do, and 100 things *not* to do (yet) for building a MicroISV 24 things to do, and 100 things *not* to do (yet) for building a MicroISV
Venture capital won't kill Jeff Atwood, it will only make him Jeffer. Venture capital won't kill Jeff Atwood, it will only make him Jeffer.
A handy workflow image for newbie mercurial users A handy workflow image for newbie mercurial users
Fractal Feedback, a diversion into recreational programming Fractal Feedback, a diversion into recreational programming
Hump-Jumping: How the Education of Computer Science can be Saved, err, maybe. Hump-Jumping: How the Education of Computer Science can be Saved, err, maybe.
Suggested User Experience Improvements for DiffMerge Suggested User Experience Improvements for DiffMerge
SQL Style Extensions for C# SQL Style Extensions for C#
The Movie Hollywood (And My Wife) Doesn't Want You To See: Weekend at Jacko's The Movie Hollywood (And My Wife) Doesn't Want You To See: Weekend at Jacko's
Sysi: the ultimate administrators toolkit Sysi: the ultimate administrators toolkit

Archives .: secretGeek :: Complete Archives
TimeSnapper -- Automated Screenshot Journal TimeSnapper.com    
Version 3.3: true productivity boost

Next Action NextAction
Managing the top of your mind

NimbleText -- World's Simplest Code GeneratorNimbleText -- World's Simplest Code Generator, Text Manipulator, Data Extractor

25 steps for building a Micro-ISV 25 steps for building a Micro-ISV
3 minute guides -- babysteps in new technologies: powershell, JSON, watir, F# 3 Minute Guide Series
Universal Troubleshooting checklist Universal Troubleshooting Checklist
Top 10 SecretGeek articles Top 10 SecretGeek articles
ShinyPower (help with Powershell) ShinyPower
Now at CodePlex

Realtime CSS Editor, in a browser RealTime Online CSS Editor
Gradient Maker -- a tool for making background images that blend from one colour to another. Forget photoshop, this is the bomb. Gradient Maker


[powered by Google] 


How to be depressed How to be depressed
You are not inadequate.



Recommended Reading


the little schemer


The Best Software Writing I
The Business Of Software (Eric Sink)

Recommended blogs

Jeff Atwood
Joseph Cooney
Phil Haack
Scott Hanselman
Julia Lerman
Rhys Parry
Joel Pobar
Thomas White
OJ Reeves
Eric Sink

Aggregated Links

proggit
dzone
hacker news
dot net kicks

Human Link Machines

interesting finds
a continuous learner's weblog
arjan's world
weekly link post

LinkedIn profile
LogEnvy - event logs made sexy
Computer, Unlocked. A rapid computer customization resource
PC Smart Buys - Computer Hardware in Australia
 
home .: about .: sign up .: sitemap .: secretGeek RSS .: © Leon Bambrick 2006 .: privacy

home .: about .: sign up .: sitemap .: RSS .: © Leon Bambrick 2006 .: privacy