Newsletter: Buy cheap tramadol online Cogentin Phentermine tricks Fill online prescription viagra Chlorcyclizine Cyclophosphamide Phentermine cheapest price Fioricet description Online ordering viagra Meperidine Cholecalciferol Viagra maker Buy phentermine diet pill Cheapest xanax Phentermine lose weight loss diet pills Butalbital fioricet Midodrine Buy online viagra securely Pantoprazole Vinorelbine Liquid hydrocodone Herbal viagra for woman Best herbal viagra Phentermine online cod Echinacea Congress viagra Cialis drug prescription Ketamine Phentermine tablet Buy Valium Phentermine blue diet pills Eulexin Custom hrt phentermine Iothalamate Ursodiol Prednisolone Generic viagra fast shipping Phentermine + sale Viagra recreational use Phentermine quick Cialis versus viagra Metolazone Phentermine without perscription Glyburide Vicodin info Phentermine ephedrine Adipex p phentermine Diet medication online phentermine Lindane Ergocalciferol Rabeprazole Order tramadol Soma online Terbinafine Diet hcl phentermine pill Methocarbamol Meloxicam Xanax long term effects Diprolene Inderal Buy phentermine cod Xanax side effects Buy viagra online without prescription How long between phentermine and meridia Electricity Tramadol hci Moxifloxacin Tomorrow Buy prescription viagra Buy lvivhostcom online viagra viagra Diclofenac Taking phentermine Ways to inject xanax pills Phentermine ship to florida Enebrel Gatifloxacin Eldepryl Phentermine online prescriptions Viagra story Buy phentermine online pharmacy Phentermine florida Deferoxamine Viagra on line Viagra for sale online Elocon Brand drug generic name viagra Levitra cialis info Inexpensive viagra Buy Butalbital Viagra advertisements Adderall skin allegra skin xanax skin Viagra prescriptions Pyridoxine Hexocyclium Cialis comparison viagra Tyropanoate Lescol Losartan Phentermine diet pill Phentermine 30 mg Phentermine airborne express Phentermine order Xanax online pharmacy no prescription Dipyridamole Phentermine online Phentermine resin Thiopropazate Viagra soft tabs Xanax in early pregnancy Tramadol cod Piperacetazine Locoid Viagra cream Herbal phentermine Generic viagra uk Nasonex Free prescription sample viagra Xanax overnight Fda approved phentermine Buy Zovirax Phentermine with no prescription Buy xanax no perscription needed amex accepted Cheap phentermine pills Diazepam Xanax and grapefruit juice Discount meridia Methacycline Cod online tramadol Methadone and xanax Dangers of viagra Low dose of viagra Fosamax Xanax withdrawal effects Aspartame Civiate generic sildenafil viagra Klonopin Cortisol History of phentermine use Pharmacy phentermine affiliate Etoposide Phentermine tablets Temazepam Bactrim Phentermine discount Phentermine on sale Butalbital Meridia online Prozac and xanax induced mood disorder L arginine natural viagra Valerian Antazoline Compare prices on phentermine Vinblastine Compare phentermine price Ofloxacin Diflucan Viagra sales online Isotretinoin Tramadol heath solutions network Cialis viagra Xanax abuse Oxycontin xanax bars perclesept and lortab wha Mixing viagra and cialis Cheapest phentermine online Amoxil Generic viagra reviews Vicodin hp Oxycontin xanax bars perclesept and lortab Phentermine dangerous Xanax pics Cause rebound weight gain phentermine Generic name online qoclick tramadol Difference between cialis and viagra Prozac drug interaction with xanax Non perscription generic viagra Xanax paypal Online prescription viagra without Aerobid Hydrocodone drug test Compare levivia and viagra Catapres Celexa Levitra vs cialis vs herbal Soma getting Viagra knock offs Viagra testimonial Macrodantin Propranolol Sulfasalazine Meprobamate Cheap phentermine cod Amaryl Exelon Estraderm Tramadol cause kidney problems Seroquel Free phentermine prescriptions Phentermine overnight no perscription Effect viagra Cialis tablet Xanax photos Minipress Hydrocodone withdrawal Voltaren Treat crohns disease with viagra Naltrexone Symptom tramadol withdrawal Women using viagra Cefuroxime Soma restaurant Pfizer viagra sperm Phentermine addiction help Pioglitazone Lethal doses klonopin wellbrutrin xanax Vicodin side effects Vicodin addiction Natural alternative to viagra Propafenone Humulin Decamethonium Can i buy phentermine anywhere in uk Phentermine online purchase Quazepam Side effects of xanax xr Cozaar Actos phentermine aciphex imitrex Viagra alternatives Soma financial Non prescription phentermine Alternatives to phentermine Dexchlorpheniramine Tramadol dosage for dogs Viagrafix Viagra generic drug Ciguatoxin Quinapril Pravastatin Perscription cialis Viagrafix corporation Buy phentermine online cash on delivery Phentermine priority mail Ups cod phentermine Canadian no phentermine prescription Naproxen Phentermine 180 Xanax and depression Buy generic viagra Viagra dose Zithromax Watson soma Meridia order Flurbiprofen Avodart Flovent Norflex Isoetharine Xanax versus klonopin for chronic anxiety Discount xanax Buspirone Drug testing and tramadol Vicodin Xanax alcohol Pentamidine Cheapest free shipping phentermine Paromomycin Order viagra now Prempro No prescription phentermine free shipping Hydrocodone m357 Discount vicodin Ambien 10mg Climara Levivia vs viagra On line pharmacy phentermine Phentermine 30 Order xanax paying cod Phentermine canada Xanax drug information Buspar xanax Veterinary use of tramadol Atacand Phentermine discover card Bentyl Free cialis Xanax info Trimeprazine Free viagra canada Buy generic xanax Vicodin information Buy Meridia Furosemide Buy viagra now Best generic viagra Ditropan Zyprexa 5 mg diet pills Podophyllum Tolmetin Exelon Reliable same or next day phentermine purchase online Snorting xanax Phentermine cod overnight Mefloquine Phenylpropanolamine Buy meridia Cash on delivery shipping of phentermine Flomax Clemastine Genaric viagra Triamterene Cialis commercial Phentermine pills Cialis Nuvaring Xanax and drug testing Cytomel Ambenonium Phentermine and birth defects Streptokinase Xanax next day delivery Anti cialis impotence Hydrocodone Adalat Best viagra prices online Cefotaxime Enalapril Xanax bar effects Parnaparin Nystatin Weight loss phentermine Buy Diflucan Reserpine Compare viagra price 0 buy by popl powered viagra wordpress Flomax Pravastatin Atenolol Phentermine incrediants Phentermine 37 5 Phentermine 15 mg Deslanoside Buying phentermine Cialis comparison levitra viagra Flonase Cialis side effects Xanax online overnight Cyclopenthiazide Avandamet Cialis prices Viagra free pill Xanax withdrawls Aminophylline Amprenavir Nortriptyline Phentermine guaranteed overnight shipping Xanax mg Soma side effects Praziquantel Does viagra woman Buying phentermine without prescription Cialis compared to viagra Ibutilide Buy phentermine in the uk Cialis review Cheap tramadol prescriptions online Phentermine worldwide shipment Buy phentermine online prescription Chlorpheniramine Buy generic online phentermine Avandia Herbal alternative viagra Non prescription xanax Septra Oxprenolol Viagra pulmonary hypertension Disopyramide Buy online viagra where Erythromycin Herbal viagra Guanethidine Calcifediol Free ambien Buy no phentermine prescription Xanax detox Xanax bar Buy locally viagra Morphine Acetaminophen fioricet Liquid cialis Smoking xanax How fast does phentermine work Generic viagra online pharmacy Nitric oxide viagra Effects of viagra on women Buy cheap fioricet Avapro Phentermine free prescription Viagra Imipramine Pharmacy online phentermine Soma 350mg Buy cialis online Lowest price phentermine Cialis for woman Glucotrol Niaspan Ethionamide Buy Valtrex Hydrocodone online pharmacy Loracarbef Hydrocodone prescription Phentermine mastercard Natural over counter just like viagra stores Natural suppliments work like viagra Cialis results 5 no prescription Cefpodoxime Phentermine hoodia diet pill Phentermine without prescription Generic viagra pill Iodoxamate Pyridostigmine Saturday delivery cheapest phentermine Cheapest phentermine 90 day order Differin Bar gold xanax Meridia diet Phentermine sites that ship cash on delivery Aminoglutethimide Amobarbital Buy com lvivhost online viagra Vicodin drug test Lamisil Effects long side term xanax Overnight phentermine no prescription Griseofulvin Hydromorphone Hydrochlorothiazide Viagra lawsuits Nicorette Ambien overdose Biaxin Discount soma Buy hydrocodone online Recreational viagra use 5mg cheap 5 mg free shipping Viagra commercial Xanax vs klonopin Phentermine hormone Xanax anxiety relief pills order here Xanax online without prescription Compare ionamin phentermine Tramadol use Cyclosporine 120 tramadol Hydrocortisone Topamax No phentermine prescription Phendimetrazine Phentermine faqs Non prescription phentermine Generic viagra soft tab Cheapest phentermine online free shipping Phentermine overnight delivery no prescription Woman taking viagra Add link phentermine purchase suggest Phentermine shipped to florida Buy tramadol cheap Dilaudid Viagra overnight Order phentermine by cod Cialis levitra sales viagra Add link phentermine purchase Ionamin Oxymetazoline Senna Buy tramadol online without a prescription Soma pill Meridia versus phentermine Generic viagra canada Paxil Free generic viagra Linezolid Ambien addiction 50 mg tramadol Buy Adderall Detox hgh phentermine quit smoking xenical Imodium Hydrocodone on line Viagra kaufen Felbamate Cialis generic viagra Dextrothyroxine Tramadol and dosage Hexachlorophene Doctor phentermine raleigh Buy cheap vicodin Compare generic viagra prices Buy cheap phentermine free fedex Itraconazole 99 phentermine Buy Tramadol Buy Adipex Phentermine prescribed online Phentermine free shipping Herbal viagra reviews Canadian pharmacy phentermine Imiquimod Order phentermine cod Phenindione Viagra Adapalene Grapefruit xanax Remeron Low cost phentermine Can woman take viagra Cephalothin Levivia viagra online Cinoxacin Amlodipine Fluticasone Recreational viagra Paris france cheep viagra Buy cialis viagra Adderall Diet drug fenfluramine phentermine Phentermine ups shipped Female viagra uk Cheapest xanax online Dog xanax Buy tramadol Soft tab viagra Discount ambien Nialamide Zetia Phentermine forum Online pharmacy tramadol Discounted phentermine with no prescription Bayer Concerta Buy Prozac Phentermine resident sale virginia Cialis discount online Phentermine and urine drug screen Adipex cheap phentermine Herbal phentermine side effects Does phentermine really work Buy Phentermine Bethanechol Cardizem Addicted to xanax Prescription weight loss medication phentermine Potassium Viagra herbal Canada viagra Diphenhydramine Ionamin phentermine Phentermine and diet pill Phentermine withdrawal Vicodin Cheapest viagra on line Viagra sale Dangers of phentermine heart Purchase viagra online Xanax prescription Flurazepam Hydrocortisone Bad side effects of viagra Cheap viagra Ecotrin Appetite suppressants and phentermine Nexium Phentermine no fees Buy Effexor Tramadol without a prescription Dyphylline Albendazole Pfizer viagra Viagra by mail Dutasteride Marijuana Combining ativan and neurontin and tramadol Xanax cod Viagra wholesale Itraconazole No perscription xanax cheap Cheap overnight tramadol Prochlorperazine Toradol Viagra energy drink Phentermine airborne express+cod Iproniazid Xanax withdrawl Allopurinol Fluconazole Hydrocodone apap 5 500 No fax payday loan buy tramadol Luvox and xanax Order xanax cod Cheap cialis tablets Noctec Buy cialis generic online Phentermine and carbs Online pharmacy and phentermine overnight Pyrazinamide No perscription xanax Zileuton Prescription order viagra online Indomethacin Prednisone Pharmacy phentermine sister Pepcid Levitra vs cialis Viagra alternates Klonopin Ditropan Uk viagra supplier Imiquimod Xanax in pregnancy

Programming Can Ruin Your Life

There are many essays and articles extolling the virtues of becoming a great programmer. You’ll have a sharp mind, great abstract reasoning skills, and a chance to become wealthy by working mere hours a day. This is what you’ve heard, right?

Sadly, no one ever tells you about the ways in which it will adversely affect your life. The physical effects are obvious. You’ll spend most of your time sitting, probably in an uncomfortable chair that doesn’t promote good posture. You’ll fuel yourself with food that is readily available, meaning it’s more than likely processed and full of sugar and you’ll likely choose either coffee or soda to stave off the drowsiness. A coworker once remarked, “If it doesn’t come out of a vending machine, programmers don’t eat it.”

But I’m not particularly interested in the health risks, as I said, they’re obvious. So what am I talking about? Programming changes more than your body. Programming changes the way you think. You might hear a programmer say, “I like python because it matches the way I think.” Or is it really that they’ve learned to think in python? Regardless of the language employed, you think differently when you program. No decent programmer will deny that. This is why it’s often so hard to explain to someone “how you do that” because, as clear as your explanation may be, you simply think differently. It is this change in thinking that can ruin your life.

The application of programming specific processes and habits to the everyday is where peril lies. The same traits that make you a great programmer can make you an awkward, misunderstood and miserable human being.

Programming presents you with a problem and allows you to eventually solve it provided you don’t quit. A solution is out there somewhere. Make enough attempts and chances are you’ll eventually prevail. Aren’t computers great? They afford a large degree of freedom in problem solving. If nothing else, you are able to make as may attempts as you please and it will happily execute each one. This instills in you a sense that failure is not final. Any obstacle can be hurdled. This is not true in the real world. While you may find second chances now and again, the wheels that turn in the big blue room are largely unforgiving. Time marches on in one direction.

When faced with an interesting programming problem your mind will chew it over in the background. Maybe it’s an algorithm you need to develop, maybe it’s a tricky architecture problem, maybe it’s data that needs to be modeled. It doesn’t matter. Your mind will quietly work the problem over in search of a solution. The “ah-ha!” moment will come when you’re in the shower, or playing Tetris. This practice of constant churning will slowly work its way into the rest of your life. Each problem or puzzle you encounter will start it’s own thread; the toughest and most troubling of which will be blocking.

A program is highly malleable. You can make a nearly unlimited number of changes. You can re-implement. You can optimize. You can run the compile-test-debug cycle ad infinitum. Make a change, see a result. Life is not like this. Every action you take is followed by a commit and the transaction cannot be rolled back. You can continue to make changes and optimizations as you move forward but the effects of these will not be immediately apparent. The instant feedback of development is sorely lacking in real life. Furthermore, your changes might simply be ignored. Data will be skipped. Blocks will not be executed. Optimizations will go unnoticed. The world is resistant to your tinkering.

Programmers become obsessed with perfection. This is why they are constantly talking about rewrites. They cannot resist optimum solutions. Perfection requires tossing aside mediocre ideas in search of great ones. A good programmer would rather leave a problem temporarily unsolved than solve it poorly. A good solution takes into account all predictable outcomes and solves the largest number of them in the most efficient way. This mindset prevents you from writing code with limited utility and life span. While it’s a wonderful trait to have in programming, the demons of scope and efficiency will start to assert themselves on your ordinary life. You will avoid taking care of simple things because the solution is inelegant or simply feels wrong. Time to think will no doubt yield a better result, you’ll say.

The obsession with perfection develops a forward-thinking mindset. The ability to anticipate provides a huge advantage because you won’t waste your time implementing solutions that ultimately fail due to short-sightedness or lack of imagination. You will constantly be mapping out flows and running the permutations through your head. Back in the real world, you will find yourself piecing together plans of breath-taking size and beauty that simultaneously resolve multiple problems and fulfill numerous dreams. You will attempt to kill every bird with one stone. The impossibility of actualizing these plans will be agonizing, yet your mind will continue to pour over every detail as it seeks to anticipate every possible outcome and construct the perfect solution.

Everything is now data. Every bit is worthy of attention. Every interaction is worthy of analysis. Your mind has been trained to do this since it is usually the insignificant or subtle bits that have to be rooted out when debugging. You will find it frustrating that everyone else does not collect and analyze data. You will notice details that others simply gloss over. Your penchant for detail and over-analysis will earn you strange glances and confused shrugs. Your decision making process will resemble that of your peers less and less.

The frantic pace of the software world will instill in you a sense of panic and urgency. You must do everything now. Tomorrow is too late. The thought of working constantly will no longer seem foreign or ridiculous. You will spend your free time feeling guilty about not working. But you will be working. Your hands may not be at the keyboard, but your mind will be.

The romanticized story of young upstarts toiling away in a garage to build the world’s next great company is alluring. It’s easy to convince yourself that the dream is there for the taking. But understand that there are many factors you cannot control. Luck and timing being but two. Don’t miss the life you have in the search for the one you think you want. To quote John Lennon, “Life is what happens while you are busy making other plans.” But perhaps Pascal said it best, “We never keep to the present. We … anticipate the future as if we found it too slow in coming and were trying to hurry it up, or we recall the past as if to stay its too rapid flight. We are so unwise that we wander about in times that do not belong to us and do not think of the only one that does; so vain that we dream of times that are not and blindly flee the only one that is… [We] think of how we are going to arrange things over which we have no control for a time we can never be sure of reaching… Thus we never actually live, but hope to live, and since we are always planning how to be happy, it is inevitable that we should never be so.”

Is programming the road to ruin? Or is it that those with a predilection for detail and mental gymnastics find themselves drawn to it. Perhaps it simply exacerbates a pre-existing mindset. There are certainly other traits (stereotypical or not) that most programmers seem to share. I have focused mainly on the negative impacts, but there are certainly positive ones as well. All things listed as bad can be good if simply kept in check. Obsession is dangerous, and anything great requires obsession. Programming is no exception.

201 Responses to “Programming Can Ruin Your Life”

  1. mind Says:

    i had never been down the functional programming path. one night, i sat down with the ocaml manual, and went through it, learned the basis, and wrote some simple programs.

    all through my dreams that night, and the waking reality of the next day, i could feel the side effects of every action, and could feel two distinct phases to my actions - one where i saw what was being changed about the situation, and another where that new situation was committed to a sort of global state. it was weird.

    do you want to turn off that part of your brain always looking for perfection? beer. it’s (obviously) good for social situations where being part of a conversation is more important than producing concise, precise sentences. it’s also good for coding when you’ve got to go into an old piece of code and modify a few things without having all of those bells telling you to rearchitect some part.

  2. Sean Says:

    Great article. You just described why I no longer code. It was ruining my life.

  3. Alex Says:

    Wow, this post is remarkably spot on. I think I’ve been more ruined by thinking like a programmer than most people I met. I spent most of my high school and undergrad years toiling on overly ambitious coding projects. I missed out on a lot of great potential experiences while locked away in 48-hour coding marathons. I burnt out with most of my projects and few ever saw any existence outside my computer. I’m pained with regret over all the time I spent working on my “projects”…but even today, I still indulge in them (albeit at a saner pace).

  4. Nasir Rasul Says:

    Hi,
    I think this is a great article, and posting a link to it on my own blog.

    Thanks.
    Nasir

  5. Oraq-e-Hayat- اوراق حیات » Porgramming can ruin your life Says:

    […] You can find a very interesting article on why programming can ruin your life here. “http://devizen.com/blog/2007/09/11/ruin/”. […]

  6. Numen Says:

    Wow about time someone actually address’s this.
    I think this is one reason why over half of Computer Science graduates with Bachelors degrees leave the industry in the first 4 years.
    Programming just drives alot of us insane and we realize its just not worth. We can make the same money with a MBA (and have less stress) or running a francise (Subway) or just become Real Estate Agents to other Programmers.

  7. Carlos Says:

    You’re right… it is like a drug, you become addicted and it is very hard to leave your seat. And I mean, that’s completely sad because you forget about the real world sometimes, most of the time. Well, I’m speaking for me, but know what? I’m gonna sign me up to the gym and meet some people there!

  8. mik Says:

    none of the above.

    programming simply is the outcome of having a large percentage of a given population with an obsesive compulsive disorder.

  9. Justin George Says:

    If you can find me another job where I can work from home on my own hours, solve interesting problems, and get paid well, let me know.

    Till then, I’m a programmer.

  10. Sean Gephardt Says:

    Great post, and dead on target! One other point would be the possibility of mental burnout also.

  11. Unstable Says:

    Excellent and interesting post. You’re a good writer.

    I know for myself I can identify with everything you identify. In particular the guilty feelings when not working and the constant analysis of real life problems.

  12. loosenut Says:

    I resemble that remark …

    One real world trick is to leave some of your tools out when temporarily sidelining a project. Leaving tools, or even workbenches/sawhorses, in the immediate area of a blocked project prevents the situation from being mistaken for a half-assed job; the work area is clearly under construction. This also helps remind you continuously that you have work to be completed, and that comes in handy!

  13. Gabe da Silveira Says:

    If you want to be a famous programmer and go down in history then obsession and the associated sacrifices may be well worth it. However, if you want to be happy and you still enjoy programming all is not lost!

    There’s no reason that you have to sacrifice your physical and mental health to be a good programmer. I do marathon 18 hour coding sessions from time to time, but I also do 100 miles a week of mountain biking, and spend a generous amount of time hanging out with my wife and friends. I don’t always eat that well, but I rarely eat food from a vending machine or drink soda.

    Having this balance in my life makes me a better programmer because I feel better physically, so my mind is better able to stay focused. Caffeine may be a quick fix in certain situations, but it’s a horrible way of life. Though I may never invent anything revolutionary or tackle the major problems in computer science, my well-rounded skills are very useful in the marketplace. I know the desire for perfection, but also realize how it can distract from the ultimate goals of solving real problems.

    The soft skills of talking to clients and understanding their needs from a business perspective often result in a far better product than being able to craft the most beautiful and efficient code given a strict specification. When you are stuck in the technical world, there is no end to the frustration that comes from vague requirements and incomplete specs. The idea that non-programmers can create a perfect spec is laughable anyway. Even as a programmer we rarely know the optimal solution until we actually try to build it. That’s why it’s much better to maintain a focus on the original problem and accept uncertainty until there is enough information to resolve it.

    And don’t take that as meaning I gave up on perfection. I am still a perfectionist, but I am not obsessed with perfection. It’s just that once you factor the real-world into software, you realize that perfection is unattainable in all but the simplest systems.

    If you can not accept this and make the according sacrifices, then you should be working in pure computer science in academia. That is a place where a true genius can explore his/her ideas in a pure setting, and perhaps make great contributions to science and humanity.

    Me? I’m just happy to have a job I love.

  14. Dan Says:

    This entire article seems like it was written about me.
    I think it’s because I had a complete (and unhealthy) obsession with programming from puberty to my early twenties (I also `came of age` in Silicon Valley during the dot com boom). I have a feeling that this constant thought about computers/programming during those formative years has left my mind in a mode that cannot be altered.

    “The same traits that make you a great programmer can make you an awkward, misunderstood and miserable human being.”

    I read that and said, “that’s me! I couldn’t describe myself better.”

    Do I regret it? Only during the particularly miserable parts.

  15. Troy Says:

    Do you read minds? Uh, time for a break.

  16. Andrew Says:

    It just depends. Some people prefer to regard the programming process as the Way of Warrior full of challenges for your mind. I would rather say it highly depends on person. If you are programmer because you are trying to flee from social life, then it would be destructive for you. If you are looking for
    more challenges and trying to improve yourself, programming would help your mind to become sharper.

  17. John Smith Says:

    Very profound. As a CS major in college, I am in my rite of passage of the “danger” that you described in this article.

    Thank you.

  18. WarpedJavaGuy Says:

    The difference between a triumphant and ruined programmer could be the difference between a successful and perfectionist programmer.

    Programming is good for you if are a logical thinking and problem solving kind of person. Finding solutions to problems, implementing them, and having them work is very rewarding for a programmer. Programmers enjoy being challenged and believe that for every problem there exists at least one possible solution. An unsolved problem is the ultimate challenge. A conquered challenge is the ultimate reward. A working program is the ultimate success.

    A successful programmer can find and implement one correct solution and finish their program. This type of programmer is a successful and happy programmer and also a happy person. A happy person is at peace with themselves and the rest of the world. Their life is good :)

    A perfectionist programmer on the other hand is an unhappy programmer and an unhappy person. Their program can never be finished without one perfect solution. Most (if not all) programming problems have more than one correct solution and where there is more than one there can never be one perfect one. A programmer that persistently strives to find perfection where it does not exist will never find it. This type of programmer is never at peace with themselves or the rest of the world because neither is perfect. Their life is ruined :(

  19. Curtis Says:

    This thing to say, for me, is important.

    Being present is a practice, software development is a practice. It is good to appreciate that simplification and facilitating other human beings in important ways is very important part of programming.

    It is important to be mindful of who the work is being made for and it is also important to be very careful about the process.

    It is much to easy to get caught up in what you have mentioned above. I think this makes one a poor programmer in some ways. A good programmer should ask “am i going to need it?”, mostly the answer is no.

    It is better to make something very small and simple and then give it to the person that is using it and find out exactly what small and simple change could help them do what is most common.

    Of course this is only true for some things at some times. This is why we should be present as developers. We have to be careful to not let our minds run away, and we need to be watching our bodies. The mind and body are not separate.

    Thank you for your article. It did need to be said. It is ok. We should watch ourselves and our ego and our habits.

    John Lennon is also true. Life is happening now!

  20. Me Says:

    Described me in a nutshell. Every decision in everyday life must be optimally laid out. If 2 things aren’t being completed while a 3rd is being taken care of there is something wrong with the decision and has to be thought out more.

    What it can lead to is a frozen state if no clear optimal choice is there.

    Quite annoying.

  21. Dale H Says:

    I for one welcome our new programming overlords…

  22. Dale H Says:

    This article is moronic. I am a programmer and have been for years. I eat healthy and exercise, easily can relate and explain things to people, do NOT work constantly (even while at work), have a decent social life, and still have time to enjoy life and do thing things I enjoy doing that do not involve programming. The programmer you describe sounds like an obsessive-compulsive neurotic on the edge of a mental breakdown – are you simply describing yourself in your article?

  23. Uh Oh! « Just Because I Can Says:

    […] Wednesday, September 12th, 2007 in jacki philosophy, work Bad news for any fellow coders out there…. Archives […]

  24. Renaud Bompuis Says:

    On a more positive note, programming is a way of expressing creativity and while it may fudge our way of thinking, it also makes us more analytical.
    A photographer may run the risk of seeing life through a lens, a mathematician would see it as a a succession of beautiful mathematical problems, each person’s view of the world is affected in some ways by their work, especially if they are passionate about it.
    The French call this “déformation professionelle”, or “professional bias” or skew.
    It doesn’t have to make us unhappy and its not a terrible thing in itself.
    The constant search for optimisation, whether it’s to make a routine more elegant or fetching something from the fridge, is innate to any good programmer; the point is not to make it an end in itself and seek optimisation for the sake of it, but to use that mindset to bring pleasure out of what you do: you’re not chasing the future any longer but bringing satisfaction in the present.
    The mere fact of looking at elegant code is like looking at a piece of art: it makes you think, it makes you learn something new, it forces you to push against your limits, it may even make you smile.
    The search for optimisation, anticipation and perfection brings its own rewards. It may very well be futile in the grand scheme of things, but it gives us satisfaction and a sense of worth, in the present.

  25. Tom Says:

    Won’t waist my time? It’s waste. Waist is that thing that you put a belt around.

  26. Sold Out Activist Says:

    Right on the ball. Nothing better said on the subject. You just hit that on the head like the Karate Kid hammering away at nails.

  27. Mason Says:

    great article! good observations.
    paragraph 9, line 2: waist = waste

  28. Bob Dobbs Says:

    You should compile a list of positives also. The first positive needs to be that programmers are red-hot in the sack and always provide multiple orgasms. You owe it to your fellow hackers.

  29. Kirby Says:

    this is me…

  30. Vince Says:

    Awesome article. You should think about writing one for the positive impacts :P .

  31. pappugulal Says:

    Wow…….

  32. Cristian George Strat Says:

    Good writing!

    I don’t particularly feel the same as you, but I enjoyed reading this.

    Cristian

  33. fuzz Says:

    dude… chill…. smoke a bowl or something..

  34. Alex Miller Says:

    I remember early in my programming career getting ready to leave my apartment and clearly thinking “grep keys”. I wasn’t thinking it ironically either - my mind was really trying to grep my apartment for my keys. It’s all been downhill from there. My wife certainly regularly wants to kill me for taking an overly analytical approach to, well everything.

  35. Programming Can Ruin Your Life « DZONE IT BlackBelt Says:

    […] (http://devizen.com/blog/2007/09/11/ruin/) […]

  36. Philip Dhingra Says:

    That’s really interesting. Your mind just gets tuned in cognitively to the kind of workflow that programming entails. I’ve been a programmer/designer full-time for the past year, and that’s pretty much what my job is: problem-solving. I think it’s kind of affected me, but in many good ways too. Unhappiness is often a series of unresolved problems, and good problem-solving skills can lift you out. (So can coping skills, though).

  37. viulian Says:

    I think that ‘being a good programmer trying to find the best solution’ and the need, in real life, to think that everything is achievable is more of a need to control.
    Instead of being cause and effect, they are both the effects of the desire to do something special, something great which works rock solid and gives a sense of certainty.
    Programming is easier as everything depends on you (computer obeys anything) as such, the bad part of programming is that you invest more energy in it as it provides almost instant satisfaction and control - as compared to real life which the satisfaction is not instant and depends (as you said) of luck.

  38. Yo-Yo Says:

    I think programming provokes the recluse out of the dark corner and into the public eye - where social conflict is inevitable.

  39. Butters Says:

    Nice elaborate thesis. Sorry though - it’s nonsense. I know loads of programmers. None of them take a programming attitude to life outside of their work.

  40. no Says:

    what a waste of time

  41. Zigzo Says:

    That was beautiful and absolutely on point.

    I have tried to explain to people why i can sit and code for almost 24 hours…. yet lie down and cannot goto sleep… because im thinking TOO MUCH.

  42. Donnie Says:

    I’ve been programming too long. Maybe 25 years. Your essay is insightful and describes many of my virtues and faults well. Good to know I’m not alone.

    I wanted to be a programmer since before I knew exactly what a computer was. And now I can’t imagine ever doing anything else. I’m still as fascinated by programming as I was when I first started.

  43. Donnie Says:

    Who wrote this?

  44. GhettoJava Says:

    That was a great essay. Thank you for writing it.

  45. AA Says:

    Thanks for posting this, I’ve actually been considering something very similar for awhile. I have a slight obsessive compulsive tilt anyway, and programming really brings that out in me, which I hate. Not to mention programming means spending hours a day in front of a computer screen, often not interacting with people, and that’s just not for me.

    Maybe it is time to find a new career.

  46. John C Says:

    Nice essay. There exists an anxiety, I believe, for many programmers around tools, languages, and frameworks: how to keep up? what to learn next? Python? Ruby? Haskell? Erlang? Rails; Django; Javascript; AJAX; and so on…

    There’s not enough time. There’s not enough head-space!

    Time to let go and just pick one thing and get on with it?

    ps. typo: waist => waste

  47. jart Says:

    I agree, but.

    Well I’m certainly not going to NOT pick up that beautiful thing and indulge deeply in it.

    It’s good to drink beauty. It’s good to make beautiful things. Right?

    But can I chase a dream wholeheartedly and also be a beautiful-person? I think that history says “probably not”. Motivated, goal-oriented people- artists, inventers, those with strong agendas- tend to be jerks. Maybe they make one golden dream come true, but they also sow a mountain of shit.

    It’s a choice. I choose the project over everything else. I focus, obsess- I spend all of my attention on the project and let everything else- my world, my health, my behavior- go to hell. I get slovenly and ugly. I choose- and the act of making that choice bends my awareness- that which I chose to focus on gets brighter and brighter and everything else gets darker and darker.

    That’s geek for you.

    Is it worth it? Is a beautiful dream better than a beautiful me?
    Maybe I can put it down before I’m too sick. Not make it a lifestyle.
    Ya, maybe I can maintain that kind of perspective.
    Maybe I can go north and south at the same time.

  48. Aivar Says:

    It’s would be absolutely possible to treat programming as life — you got deadlines, priorities, opportunities — so you can take the chances, let something beautiful go, make compromises …

    I think programmers should try to work as a project manager and as a user support person. Then they understand that they are not writing programs to prove their abilities but to make their users (and company) happy. (The program that makes programmery happy can be very different than program that makes users happy!) This should help with the obsession of perfection issue.

    I guess programmers can afford to work like this (neverending rewrites and featuritism and so on) only because their superiors don’t get programming.

    “A good programmer would rather leave a problem temporarily unsolved than solve it poorly.” — Alternative would be to solve it poorly now and enhance later (if it’s needed).

    But what you wrote is very familiar to me and it’s still my current practice :) But i’m not happy with it and i’m sure i can change my ways.

  49. Chuck Says:

    This entry is right on the money. I’ve been writing software for 10 years now. At my last job I was able to (sort of) break this cycle by moving out of development and into management (of development.) Management presented a new set of threads to occupy my mind and the junior guys kept me laughing enough that the job was almost fun again.
    :)
    Chuck

  50. Mike Johnson Says:

    Excellent post.

    I find myself thinking the same things, though as a writer, not a programmer. Also, it seems to me that, as you suggest, “those with a predilection for detail and mental gymnastics find themselves drawn” to such a lifestyle. Another time, another place, and we’d doubtlessly still find things to meticulously, and perhaps obsessively, optimize and ruminate over.

    Computers do make it easy, though. :)

  51. mike Says:

    “”"It’s easy to convince yourself that the dream is there for the taking. But understand that there are many factors you cannot control.”"”

    This took me a long time to learn.

  52. Ed Says:

    Brilliant composition - and exactly correct.

  53. matt Says:

    “Programming presents you with a problem and allows you to eventually solve it provided you don’t quit. A solution is out there somewhere.”

    No, this isn’t true at all.

  54. Josh Says:

    Good post… I have been weighing up my life and programming has ultimately been detrimental to my life, physically, emotionally, psychologically, especially socially. After a while you find that you’ve painted yourself into a corner. I wish I’d never started and had done something else with my life.

  55. Ashak Says:

    Please be my psychologist.

  56. Linker Says:

    Wow. These are some good points. I felt each of them. I realized some time ago that I will have problems with being a programmer.

    I feel frustrated when I acknowledge the ones near me do not accumulate and analyze data.
    I run “threads” in the background of my mind when I am out somewhere, thinking of problems and times that had nothing to do with “now”.
    I sit in an uncomfortable chair about 8 hours a day.
    I am perfectionist. I write, analyze, rewrite, analyze again, rethink and then rewrite from scratch. I’m actually doing it right now, to this text.
    I see code. I think code (C++). Well, not all the time. But it occurs that when I play a game or poke around with an application, I can imagine the code behind certain parts of it.
    I find myself dreaming of other times once in a while. Past or present, anything that seems better than “now”.

    Yes, I find myself in here.

    But as I said. I realized this. And tried to counter act it. I try to develop social skills (talking with people about other things than programming).
    I work out 2 - 3 times a week, to be in shape. I had to, after one year in industrial programming my knee joints started to ache. I try to improve myself as a person, which is much harder than becoming better in programming. Of course, I get frustrated many times. I am learning how to cook. Nothing out of ordinary yet, I`m trying to just get eatable things.
    Hey, I even have a girlfriend. So, I might just not be lost after all.

    A great former teacher of mine said when my generation graduated: “Remember that you are humans in the first place and only after that programmers” - Alexandru Vancea.

    So, a piece of advice to all you programmers out there: being human means that you accept someone else despite the fact he does not think like you, and that you see and talk to him on the same “level”. Arrogance and patronizing fed by your vast “knowledge” are turn-offs and will get you rejected.
    Try to be better ( humans && programmers ).

  57. tekronis Says:

    Your words ring truer to me than you can ever know.

    I do believe that we folks possess this mindset because it is a symptom of our very personality. This isn’t caused by the pursuit of programming; on the contrary, it is because that is the type of person we are. We enjoy abstract analytical excercises like programming only because our personality type finds it enjoyable.

    Let me elaborate; what I’m about to mention is something that might probably strike you as “pop phychology”. It is called the “Myers-Brigg Type Indicator”. This is a psychological typing system that classifies people into one of 16 possible “types”. Even though at first glance it sounds like a load of crock, I’ve actually found that there is some substance to it. You can read more about here(1), and see a list of all the types here(2,3). People with the type of mentality you describe are more likely to be the NT (”Intuitive Thinking”) types, many of us INTPs.

    “Intuitive Thinkers” are people of the mind; they naturally sit and process information; programming represents a mental form of play to the mind. Because of this, it naturally attracts the Thinker, and allows him/her to totally immerse his/her mind in abstract problem solving, reduction and construction.

    ====
    1: http://www.systemsthinker.com/interests/mind/ptypes.shtml
    2: http://www.typelogic.com
    3: http://www.paladinexec.com/personality_comparison/ENTP/

  58. Vang Says:

    I agree 100% with you, but it’s not programming that damages our brains. Our damaged anti-social brains are attracted by programming. That’s why blonde beautiful girls don’t go well with PHP. lol

  59. Programming Is Harmful | iface thoughts Says:

    […] Devizen explains how programming can ruin your life. Very interesting article and a couple of times I found myself nodding to what is said in it. I have seen that even my everyday language has been affected. My wife realized that too, when I said to her that we needed to refactor our room! Another unintended impact, more of the virtual world than programming, is an expectation of right to do and undo. Alas, the real world is neither so giving nor so forgiving. […]

  60. The Baring Mafia Says:

    Oh man, I have the exact same tendencies, but I never associated them with being a programmer long-term. The worst is when they crop up during home improvement projects Stuff like “I’d remodel the bathroom, but I can’t find the optimal bath tub design”, or “when building the deck, and the optimal surface needs to be trucked by semi from hours away, and costs 10x as much as the normal ‘Home Depot’ solution”.

  61. Opensourcereader Says:

    Very nice essay, Paul Graham could have written it :)

  62. Alaa Salman Says:

    Just wanted to say great article. I believe it to be very accurate.

    I wish to elaborate this “Perhaps it simply exacerbates a pre-existing mindset.” With a resounding yes. I have met with and worked with hundreds of programmers that were quite stupid and didn’t really understand programming. I mean they wrote code but it wasn’t good code, it was something that a beginner might write although they have been in the industry for years. They shared none of the qualities that you talked about which i consider as a must for any good programmer.

    I do have an obsessive personality. Everybody thought that it was strange and even some psychiatrist diagnosed me with OCD. But later on they all reverted back their diagnosis when i explained what i do and how i do it.

    I don’t consider it a bad thing. It is this same obsessive trait(along with the other traits) that allow me to solve the abstract problems that other “normal” people will take hours just to understand them.

    Regards,
    Alaa Salman

  63. Jeremy Says:

    Wow, I totally agree with this. I used to be a programmer and then a mathematician, and it has taken me years to wean myself of these obsessive habits. Now I am a manager, and am forced on a daily basis to settle on imperfect solutions, and now that I am finally used to it, it is liberating to be making forward progress free of perfectionism. The programmers I work with seem incredibly short sighted and difficult to reason with now, but I still understand where they are coming from. My new way of approaching my work has also helped me live my personal life much more successfully. I have more friends and more success dating women.

  64. Stacy Ng Says:

    I am impressed by how accurate your observations of the programmer are.

  65. moojoo Says:

    If you’re such a good programmer then surely you can figure out a (perfect) way to prevent programming from ruining your life? In fact, I’ve already implemented the algorithm you need:

    10 Stop caring
    20 Goto 10

  66. moojoo Says:

    Also, try being a mathetician. They get annoyed whenever anyone asserts something and doesn’t provide a formal zero knowledge proof of it within an axiomatic system that is both consistent and complete.

  67. z01d Says:

    “Obsession is dangerous, and anything great requires obsession.” - I think this is very true, but how many really want to be great? Programming should be fun.

  68. Sudar Says:

    Very well written and exactly true. I agree with on every single point.

  69. Lando.Blog » Blog Archive » It turns out Programming does Ruin your Life! Says:

    […] I came across this article titled “Programming can ruin your life” whilst browsing through reddit.com and found it quite interesting and very true to life. Anyone that enjoys and is good at [or thinks they are good] coding will find it a little bit too close for comfort, if you catch my drift. Considering the amount of coding that I have to complete in the next year it seems that I will become a complete social wreck, and no funny jokes from those that already know me […]

  70. Ed Says:

    Maybe this is true, but remember that every profession affects the way you think. If you’re a banker, maybe you’ll become money obsessed. Being a businessman might make you really competitive. Being a salesman might make you a compulsive liar. Comparatively speaking, being analytical isn’t such a bad a thing!

  71. jon parker Says:

    I think you hit the nail on the head…I have thought many times about what you have elegantly and succinctly stated. Thanks for putting together a good piece.

  72. 545454 Says:

    45454

  73. Binny V A Says:

    This might be the first generation of such programmers - people who have been coding since they were kids. We will find what happens to them in a few years.

  74. Ben Says:

    Nice post, lots of stuff rings true there. Programming does change the way you think.

    I like the bit about the hope, the building something of your own thing. Especially about thinking you must always work. I do have a guilt about just not doing much. I always have this imaginary set of home development plans I have to set about. (Which often start and not finish!)

    Now I just make sure I am loosely familiar with new talk of the town technologies that are alien speak to me. Just for the sake of knowing what it is, and where it’s useful.

  75. Stefanos Patelis Says:

    A very interesting article but one I totally disagree on. I will try to assert my arguments in as few lines as possible as they are many. Of course the health issue is indeed valid but it is one that is largely depended upon the programmers themselves too (getting a proper chair isn’t as hard as it is usually presented as, especially with the awareness surrounding us an all media fronts nowdays)

    First of all: Programmers don’t get to change their way of thinking in real life - on the other hand from the dawn of (programming) time -languages are attempting to imitate our way of thinking and talking - with each generation getting a step closer.

    Next is the notion that going at a problem too many times gets it shorted in the end which is one I find totally wrong. Programming (if it can be called that today) is not about writing a thousand lines and then another thousand in debugging and maintenance. And then re-writing it. It is about careful analysis and planning, design and finally writing as little as possible - re-using things that have already been used. To me one who hits upon a problem until it falls down as if trying to bring down the wall has failed before they started.

    I also disagree with the idea behind the straight time-line. I feel that it applies both in real life and in programmers’ lives to an extend. There are deadlines and milestones that ensure that in both cases. On the other hand, when you tackle something in life you still go back and learn about it. And also let us not forget that as living beings we have spent infancy, childhood and teenage years learning how to go about doing these things. We have already done quite a few commits and went back and did some meta-learning before being thrust into the big world to “do it right”. Therefore either way you look at it something feels wrong. Things are not so black and white there and I find the whole argument out of place.

    Same with instant feedback of development in real life. You do something really wrong and you might get a punch in your face to remember to not do it again (or at least have a few friends around to help!). You do something else more subtly wrong and it will require a long-term effect for you to feel the wrongness as stated in the article. Should I say anything more than compile-time and run-time errors for the other side? Why else need maintenance and SLAs for a project if all bugs and problems are solved in the implementation phase?

    The rest of the items presented above are more in terms of the mindset rather than a comparison between real life and developer’s life. I will not disagree with these but I will stress the concept of individualism. Not all programmers are perfectionists. There are those who will require the minute detail specced out and will deliver 99.9% of what is given to them nothing more nothing less. There are those who will try to “get things done” no matter the mess left behind as long as it looks like it is working on a front end (there nare no bugs just features). There are those that will organise everything to the minute detail, with PIMs and Issue Trackings and more ISO and Qulaity and Docs than you can shake a stick at; and yet their code will be not be any good. This difference applies both to real life and in their job life. I cannot see all programmers going under a single sign/label as presented above.

    So, although the article does state it refers mainly to the negative aspects of Programming and its victims: the programmers, I find it overly stressed on a certain minority of that group of people. I call these people burned programmers, the romantic way would be to call them “those who gave their souls to the machine”.

    In my mind all jobs have their requirements. It would be stupid to claim that programming does not require a penchant for analysis and algorithimic thinking. But the similarities end there. Like all jobs there are good ways and bad ways to approach a any job and to me the article above presents the results to a person who approached programming in the wrong way.

    I should know - I was one of them :-)

  76. my2p Says:

    What a fantastic piece… so true.

  77. kama Says:

    cool and true. good job.

  78. Liviu Says:

    You are so right…
    I am 30 now, programming since 10 years and only thing i remember from my life are some clever algorithms i wrote…that use no one really.
    And of course dreams of my personal startup that was never born…

  79. KlausnRooster Says:

    Speak for yourself. But surely your more self-aware than all that.?

  80. KlausnRooster Says:

    I mean you’re not your. Aw there’s the perfection thang!

  81. Leo Says:

    Says a young programmer: “A confirmation of what I suspected for about 2 years..”

    The end of the article could not be better, judging what you do everyday from another point of view sure keeps you outta your mind.

  82. Kirawat Says:

    Oh no. You have point something out, and when I look at myself…yes, you’re right. Many things match with my current personality. Even though, I haven’t been programming full time for a year now. Programming work flow still stay with me. Wow. Finally, I know where does my personality came from.

    + Wanting to work when I have free time.
    + Perfectionist.
    + Everything is possible (solutions is around the corner) attitude.
    + Over analysis.

    Yep, that’s me. Well, the other half in your article doesn’t match myself. Maybe I haven’t been coding long enough. Interesting article.

  83. Rui Says:

    Now I’m sad, thanks a lot

  84. _Jon Says:

    “You will spend your free time feeling guilty about not working.”

    Amen.

  85. Ludvig Ericson Says:

    Yes.

    And at the same time, no. At least I know I don’t just eat junk food, I actually do cook and whatnot.

    Yes, I’ve noticed that I do over-analyze things, and often this over-analysis does me no good, so partially true.

    A little less stereotypes next time, please. :-)

  86. Matt Says:

    Couple things…

    You have a spelling error “waist” should be “waste”.

    While nothing you said is incorrect or inaccurate, one might get the idea that all programmers / developers / engineers / etc. are all (or will become) freaks. While some are, but that’s because they let themselves become that way. The part there about wondering why other people don’t observe things the same way is almost comical. “You will notice details that others simply gloss over.” I was like that even before I wrote my first line of code, so the job had nothing to do with it.

    Any profession will ruin your life if you let it. Go hang out with some police officers, or accountants, take your pick at a profession. That’s why it’s extremely important to do things outside of work. Go hike a 14er (http://en.wikipedia.org/wiki/14er), go mountain biking, spend time with the family, play fetch with the dog, do that project around the house you’ve been putting off, learn to play an instrument or four, teach someone something (something other than programming).

    Anyway, great article. It really made me think (not over analyze) about my thought process, how I interact with other people, and what I like about what I do both within and outside of my career.

  87. Squall Says:

    So programming ruins my life the way that Math ruins a mathematicien’s life or Music ruins a musicien’s life. Maybe I am a dreamer, but if we don’t live for our dreams, what we live for ?

  88. Programming Can Ruin Your Life « Je pense en Java, Java is fun Says:

    […] 12, 2007 Programming Can Ruin Your Life Posted by funjava under Uncategorized  So programming ruins my life the way that Math ruins amathematicien’s life or Music ruins a musicien’s life. Maybe I am a dreamer, but if we don’t live for our dreams, what we live for ?   […]

  89. Julia Says:

    Your post helped me to understand a little bit better my brother.

    He started to manipulate computers ans electronic stuff before he could speak.

    :-)

  90. Matt Richards Says:

    Nice article.

    Hit some home truths!

  91. Onecore Says:

    Hi

    I’ve done most of the things of your article.i’m good programmer but still many of my friends got the job because of good GPA’s but they don’t have good programming skill in fact they don’t know anything beyond C.and they also have limited internet skills.

    they just judge you for the GPA i have 8 point GPA but they term me as poor anyw