Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Programmer's Frustration

by kha0z (Scribe)
on Apr 16, 2001 at 00:47 UTC ( [id://72692]=perlmeditation: print w/replies, xml ) Need Help??

Why do I keep programming? I enjoy the excitement of finishing a well built program. I feel proud of what I have accomplished. I feel good when I can teach others a few things. I like to learn. It pays good in comparison to the Fast Food Industry.

The problem is that it is very frustrating to get stcuk in complicated statements where syntax is a pain to figure out. It is really painful to spend hours and hours on a program and find out that the end result is broken. I know that these are struggles that all programmers must face. But it is still very frustrating when you reach a hurdle in the process of completing a program.

Hurdles come in many shapes and sizes. There are language limitations, interoperability, portability, and many others. There are also programmer limitations such as lack of experience, understanding complex data structures, learning the APIs and technologies that are out there in order to maintain optimum code. There are always business pressures such as deadlines, budgets, and the annoying smelly co-worker.

Yet we put up with these things. After overcoming all these frustrations and hurldes we manage to stay sane, or at least sane enough to stay out a mental institution (at least most of the time).

I am just curious as to what other people do deal with these obstacles and frustrations? I like to take a deep breath, read a few insightful webpages or pages in books, and have another go at it after I remind myself how rewarding the final product is.

Good Hunting,
kha0z

Replies are listed 'Best First'.
The 'Code Block'
by Mission (Hermit) on Apr 16, 2001 at 03:38 UTC
    This is kind of a fun topic. Every 'coder' I know goes crazy when the 'coding block' hits. Deadlines loom, people get irate, and you've only written 2 lines of code that actually seem to work. Then you get the setbacks, and tempers flair... (Yes, I know it well.)
    Everyone handles it differently. The method that works for me is that I try to reason it out, especially with someone that doesn't know code. I find that when I have to 'dumb down' my explainations of what's happening, what it is and isn't doing, that I ususally start to debug my problem mentally as I'm explaining it. Usually through making the other person (who usually doesn't care what your doing or why) suffer through your explainations of the problem(s), I typically encounter an "AH-HA!" The end result is that I usually have a thought about how to overcome/re-write, or start anew. The down side is that people start to think you're crazy because you hold this long boring discussion about your problem and in the middle of the explaination, you get the "AH-HA!" and run off leaving them hang. (I know I owe my wife big time to lots of these discussion... anymore, she's learned to sort of listen and just let me work it out.)
    When I'm at the breaking point (AKA: Point of No Resolution) I unplug. I do anything that I can to avoid thinking about the problem (game, read, movies, draw...) That ususally allows my gray matter a chance to calm down a bit. When I do return to the problem with a fresh mind, I find that I usually can spot the obvious.
    Last item: My most recent 'block' was actually a spelling mistake in a variable name in one section of a sub. It took three days of debugging to find it, and when I did I was so angry at myself. It's frustrating, but I learned my lesson (I check spelling first... at least in my code!)
    Good luck coders!!!

    - Mission
    "Heck I don't know how to do it either, but do you think that's going to stop me?!!"
      For your spelling mistake:

      use strict;



      --
      My opinions may have changed,
      but not the fact that I am right

Re: Programmer's Frustration
by infoninja (Friar) on Apr 16, 2001 at 01:03 UTC
    Things that I use to deal with frustration:
    • Lift weights
    • Play MAME
    • Turn up loud, angry music
    • Reflect on past programming accomplishments (i.e., "If I accomplished x without going completely insane, surely I can accomplish y")
Re: Programmer's Frustration
by BigJoe (Curate) on Apr 16, 2001 at 01:28 UTC
    • One of my favorites is to load up a game of Quake 2 in the office against our DBA(which is usually on the same project).
    • Drink beer
    • Listen to some ACDC
    • Automotive work on older trucks. It keeps my mind in problem solving mode but I can release my frustration on rusty old bolts.
    • Last but not least sneak off to Hooters for an hour and a half lunch


    --BigJoe

    Learn patience, you must.
    Young PerlMonk, craves Not these things.
    Use the source Luke.
Re: Programmer's Frustration
by chumley (Sexton) on Apr 16, 2001 at 05:14 UTC

    I'll try to keep this short

    • Do something painful, like running or lifting weights
    • Drink beer
    • Sometimes I combine running and beer-drinking (Do a search for "Hash House Harriers" if you don't understand this one)
    • Spend an hour at a pistol range blowing holes in defenseless pargets (Definitely DO NOT combine this with alcohol)

    If all else fails, and the situation is really desperate, I'll do something completely mindless... like a Windows 2000 install. (See above where I mention doing something painful :D)

    Chumley

      I should have proofread that better.

      Chumley
Re: Programmer's Frustration
by mwp (Hermit) on Apr 16, 2001 at 14:04 UTC

    I'm learning to play the guitar.

    The only problem with this is that now I don't program anymore. I just sit and play guitar. I'm not even that good. But I can't stop. I'm addicted.

    Fortunately, for the side of my brain that is currently dying from disuse, I'll be re-entering the job market in May, which means coding 12-hours a day. (Ooh, a rhyme.) But I'll miss my guitar.

    Alakaboo

Re: Programmer's Frustration
by jepri (Parson) on Apr 16, 2001 at 06:08 UTC
    I like to share the misery around. As a general rule, I'll get up and find the most fragile person in the surrounding area. Then I'll play with their mind until they're ready to snap. Then I retreat around the corner and watch them explode when somebody asks for something reasonable.

    Hours of fun.

    ____________________
    Jeremy
    I didn't believe in evil until I dated it.

Re: Programmer's Frustration
by satchboost (Scribe) on Apr 17, 2001 at 00:39 UTC
    Personally, I simply refuse to work in the office beyond a certain point. I'll print out some code and take it to a local Denny's to smoke, drink a pot of coffee, and scribble on this stupid piece of paper.

    I'm also taking Thai Boxing. If you've never gone and beat the snot out of a helpless bag for an hour, I highly suggest you do so. Your day could've sucked for hours and hours, but it's all ok, nonetheless.

Re: Programmer's Frustration
by gregor42 (Parson) on Apr 16, 2001 at 19:13 UTC

    What is frustrating in this thankless profession? Let me count the ways...

    Actually if I didn't Love what I do I never would have made it this far. It is the creative & thought provoking aspect that has me hooked. There is nothing like the pride of creating a functioning somethingorother out of electrons & ideas.

    But I think probably the Most Frustrating experience, (aside from endlessly being forced to take shortcuts to make short term savings which are costly in the long run by managers whom don't understand exactly what it is That I Do...) would probably be my experience with Extreme Programming.

    Why? Simple. The concept of sitting two guys down at a single desk and computer to write code may be more productive, but it leads to burnout much faster.. And with regards to what you mentioned about smelly (i.e.BO) coworkers...ACK! And if you don't like them it gets worse. I don't need to smell what co-workers had for breakfast to be productive.

    So how do I cope?

    When I get truly bent I stop working & go on PerlMonks :-)

    At lunchtime I would NOT eat with my coworkers. I'd go for a walk, get some fresh air & restore my personal space.

    And then when I get home I sit down at my workstation & get some real work done.

    Thank Bhudda I don't have to deal with that anymore...



    Wait! This isn't a Parachute, this is a Backpack!
      I'm in a (mostly) pair programming environment, and I've found my (our?) productivity is much higher, and frustration level much lower, when we're pair programming. Of course, that's probably also heavily influenced by the fact that we were friends before we started working together...

      I'm not trying to smear Extreme Programming, because it can lead to tremendous learning increases by sharing coding styles & algorythms.

      But at the risk of perpetuating a stereotype, most programmers (@ least hard core) tend to be somewhat lacking in social skills. Myself Included.

      To that end I personally prefer a prelimminary brainstorming session & later a code review process to go over what's been done. I think this can have the same benefits overall, except perhaps that you need to actually BUY a computer for every programmer. 8-P

      Another frustration issue...Why do programmers always get lame gear? (And don't give me that crap that your code should run on EVERY machine...i.e. lowest common denominator)



      Wait! This isn't a Parachute, this is a Backpack!

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://72692]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2024-04-19 06:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found