192 Responses to “Lucky to be a Programmer”

  1. AntonioCS on July 14th, 2008 3:22 am

    Great post! I am now on a job that is really testing my passion for programming (since I have the title of programmer but do little or no programming), but instead of just sulking and felling I am use that time when I am not doing anything to just relearn stuff I have forgotten and languages such as c++ or just hardware stuff.

    PS: What has the name “Cangaço”?? Is it your cms? lol Nice name

  2. jack on July 14th, 2008 11:28 am

    A wonderful post! It beautifully captures the concepts behind the software industry, the industry of ideas. It is no longer a separate entity, but is increasingly a fundamental tool for all areas of research and business.

  3. bruno on July 14th, 2008 6:28 pm

    Surprisingly inspiring.

  4. Gustavo Duarte on July 15th, 2008 12:35 am

    @Antonio: yea, I’m afraid the odds are pretty bad out there when it comes to finding interesting gigs. I think it’s really important to be purposeful about finding something interesting though, maybe while you have a job anyway so there’s less pressure to accept offers. Or maybe start your own company :) . It’s cool that you get to use some time to learn though.

    Cangaço is the WordPress theme :) hahah. I love Portuguese – we have some funny words huh? Impossible to translate to English. Like I told you by email, I’m working on a complete theme to use on the site. The current one is just minor adaptations.

    @Jack: thanks :) Yea, it’s already to the point where people in other fields who don’t program are at a serious disadvantage. When I hung out in the Chemistry/Bio departments, I was appalled at how much time people would lose because they lacked basic programming skills. In business it’s even worse – I’m afraid to think how much money we lose in productivity because people can’t script Excel.

    I think programming became a fundamental skill for most professions, but the educational system is lagging a bit.

    As you say, software is increasingly fundamental, and I expect a lot of interesting work ahead.

    @bruno: you see, I’m not the dark center of the universe like you thought :)

  5. todeloo on July 15th, 2008 10:02 am

    This is, I believe, the first time I respond to a blog post I don’t know the author of. This was truly a great post. Probably the finest piece of blogging I have read lately.

  6. tv on July 15th, 2008 10:52 am

    Wow! Thanks for this great post. I am currently in one of those jobs that is “squeezing the fun out of everything” that I enjoy about programming. I’ve been wondering if it’s possible to have a programming job that allows me to enjoy the programming I do. You’ve given me more than a little hope for my future.

  7. Joshua Moore on July 15th, 2008 12:54 pm

    Great post! The only thing I worry about is your comment about the third world children. While I definitely agree with the sentiment, I was recently reminded that not everyone (even here) has meaningful access to a computer. So when we sing praise to the benefits of the personal computer to society, we should also take a moment and think about who is still left out.

  8. miran on July 15th, 2008 1:04 pm

    Very well written article, really sums up the whole deal really nicely! That’s pretty much exactly how I feel when I’m programming, it’s just so great when something you built works or when something that you’ve been trying to figure out just clicks. Or when you take a look at some really beautiful code you’ve written.

  9. brad dunbar on July 15th, 2008 2:57 pm

    To echo the sentiments above, this is a fantastic, inspirational post.

    When I finish a beautiful piece of code or module I feel that I have in some way transferred a unique piece of logic from my brain into byte code where it can be more freely shared.

    Posts like this make me question my assumptions and remember the reasons I love doing this. Thank you.

  10. Monkeyget on July 15th, 2008 3:39 pm

    Bravo. Great post.

  11. Nelson Castillo on July 15th, 2008 3:39 pm

    Very nice article :-) Sometimes It’s very hard to explain people (mom also!) that we don’t work towards a paycheck.

  12. Jim on July 15th, 2008 3:54 pm


  13. Terry on July 15th, 2008 4:11 pm

    I completely agree with you! Too often I catch myself whinging about some new problem that I have to fix, but if I think about it, solving problems is my bread and butter. I LOVE it! I’ve often just took a moment from what I’m doing to think “wow, I can’t believe how much I love this job” I actually have the privilege of coming in to work and thinking, which is more than I can say for a lot of other people.

    As for changes in biology, I would love to get into that area. I took a course on bioinformatics and it was really interesting. Great post!

  14. Lucky to be a Programmer on July 15th, 2008 4:14 pm

    […] just read Gustavo Duarte’s essay, “Lucky to be a Programmer” and had to re-post some of it here. Rarely to I call a blog post an essay, but this one is […]

  15. Ien Cheng on July 15th, 2008 4:18 pm

    An eloquent and inspiring essay, reminding us of how deeply enjoyable programming, software engineering, and computer science can be. Thank you.

  16. Chris on July 15th, 2008 5:48 pm

    Im glad to be a programmer as well, but programming is not art. Of course you could use programming as a medium to create art, but we are talking about software development. A craft for sure, but art is about either expression. Software development is about functionality.

    Calling it art gives people who don’t understand how it is creative amo to attack it and perpetuate the belief that it is ‘just math and typing’.

  17. Niilo on July 15th, 2008 6:16 pm

    You’ve put down in your post the sentiments I’ve been trying to get across to people for years. I’ve always considered programming as much an art form as any other creative outlet. I love being given a challenge and the feeling of pride that comes with the solution. Only another programmer can truly understand what it means to shave a few cycles off a loop or come up with a new algorithm that’s one line less than the last version. I get an immense sense of satisfaction from my chosen career, and as you, I feel lucky to be able to do what I do.

    I recently left my job because it was killing the love I have for my work and I couldn’t stand it. The “business” and stress of a job has a way of destroying the creative spirit and I’m taking a couple of months off to recharge and get that spark back. My career as a programmer grew out of a hobby – I bought my own computer in 1981 and taught myself how to program and never looked back – so finding myself hating what I was doing was horrible and soul destroying.

    A lot of people see us as nerds and geeks without lives and without emotions, but the emotion is there, the love is there, and the creativity is there. We just use ones and zeros instead of paint and canvas.

  18. Dave Travis on July 15th, 2008 6:18 pm

    Reading your post, I was just amazed at how much I agreed with you. I am fortunate enough to have left Graduate School (I was working on a Ph.D. in Pharmacology) to start a career in Programming. I have mostly worked for myself, but have had crappy (and not so crappy) corporate Jobs as well.

    I have had the same experience myself, both in Science and as a Programmer. Never have a read something that hit so close to the way I feel on a topic. Thank-you, and I hope you will find more of the same in your new career, no, I am sure you will, so enjoy it.

  19. Lucky to be a Programmer « llbbl on July 15th, 2008 6:31 pm

    […] 16, 2008 Lucky to be a Programmer : Gustavo Duarte For the past few weeks I’ve been working with a fellow developer on a project that required an […]

  20. Knowtu » links for 2008-07-16 on July 15th, 2008 7:32 pm

    […] Lucky to be a Programmer : Gustavo Duarte “Few things are better than spending time in a creative haze, consumed by ideas, watching your work come to life, going to bed eager to wake up quickly and go try things out.” right on! (tags: development) […]

  21. Technicalities on July 15th, 2008 8:11 pm

    […] maybe this post will explain how I feel. I mean, it’s amazing to be in that creative mood, just solving […]

  22. Jamie Penney on July 15th, 2008 8:36 pm

    I also found this post quite inspiring. Thanks very much for posting this, you’ve just made my day a little bit better.

  23. Matt Sisk on July 15th, 2008 9:28 pm

    To Chris –

    The interesting bit is that software development is both things, both instruction set and creative act. Here are a several analogies to consider:

    ​1) scores — nobody doubts the artistry of writing down instructions for producing beautiful results in music; composers are considered artists as well as those that perform, interpret, and modify the results. The same is true of lyricists/songwriters — they are poets, but the results are wonderful mulch for performers.

    ​2) recipes — see above, chefs and brilliant cooks, presentation, etc — but the recipe itself can have inherent beauty, particularly if it is embellished with non-obtrusive anecdote, which invokes prose, and also takes us to …

    ​3) poetry — avoid these; poets that recite their verse in public may have other nasty habits (paraphrase of Lazarus Long from Heinlein)

    ​4) satire — of course I’m kidding with my last point, though I doubt the character of Lazarus Long was

    ​5) engineering — just as bridges, watches, and architecture can have aesthetic beauty, so can code — it’s helpful if the beauty is more accessible, such as with great architecture, a visual punch in the pleasure ganglia, but beauty can exist in design, forever unseen by untrained eyes. And thus:

    ​6) nature — the elegance (and disarray, sometimes) of natural responses to environmental stimuli have an endless array of innate beauty, at least as perceived by natural-born critics.


  24. Chris on July 15th, 2008 9:29 pm

    Art is about self expression. Programming is about functionality!!!

    Why must everyone think that they are an artist??? I am a programmer and a musician. Yes, programming is creative. No it is not an art. Programmers are no more artistic than machinists, carpenters, or mechanical engineers. Programming is great, I love it too. Just be happy with what it is, stop trying to make it more.

  25. Chris on July 15th, 2008 9:43 pm

    To Matt:

    Thanks for your response. My last post wasn’t to you, it was a general reaction to other posts.

    I don’t consider Chefs or Engineers artists and I certainly don’t consider nature art.

    To me art is about self expression. There is definitely aesthetic beauty in software (that only other programmers could ever appreciate), but this still does not make it art. Painters, sculptors, and composers were considered craftsmen just like carpenters and blacksmiths up until the renaissances. The concept of an artists didn’t exists until the work became focussed on expression rather than aesthetics.

    An artists creates something that expresses an emotion and evokes an emotional response from those who experience it. I have never seen a piece of software that could meet my definition of art. Of course if a talented and artistic programmer set out to accomplish this they could, but those of us working in the industry are not artists.

  26. jdzzle on July 15th, 2008 10:04 pm

    yeah, i can kind of tell that you’re probably either fresh out of college or still in college. i’m at the point where i kind of feel like the garbage man of software engineering… “where do you want this sh*t” “what kinda sh*t you want in your program.” , “you want a what with what?”
    i still enjoy the sh*t, always have , always will

  27. Wayne on July 16th, 2008 1:02 am

    Great post! I’m a software engineer now, used to be a pure programmer in previous jobs, but I think the way that you feel can be extended to any job. It’s all about finding the quiet joy and pride in whatever you do and to do it your way. That’s the only way to find happiness in your job.

  28. Welcome to Paradise on July 16th, 2008 1:08 am

    Quite an inspiring article for programmers like myself. Thanks for this great post.

  29. james on July 16th, 2008 1:20 am

    stupid people can’t program. obviously, you are intelligent. but stupid people are not capable of programming.

  30. Gustavo Duarte on July 16th, 2008 1:22 am

    Thank you all for reading and for the comments :) Reading them made my day.

    @Joshua: Totally agree. I’m from Brazil, so I’ve seen some pretty ugly realities up close. It’s easy to get carried away with the possibilities of Wikipedia or OLPC or whatever, yet there are plenty of people who haven’t touched a computer (or phone) in their lives. I actually spend a ton of time thinking about that, probably as a result of growing up in such a screwed up economy. However, I think the Internet also impacts those people in a positive way. I’ve been meaning to write about this, though it’s probably not postable here. If you’re interested, drop me an email at and I’ll email you when I get around to writing some stuff down.

    @Chris: this is an old debate. Knuth wrote an interesting article on it, called ‘Programming as an Art’, which is available at Paul Graham’s site:

    A while back I wrote about Richard Feynman and software engineering. In that post I talk about the similarities between software and other engineering disciplines.

    In a way this is a silly debate. Art is complex and hard to define, so is engineering, and programming is a rich and multi-faceted discipline. Some reasonable definitions of art match good chunks of programming. Some reasonable definitions of engineering match good chunks of programming.

    So, which is it? I don’t think there’s a black and white answer. You could certainly define each word to get a desired value for the truth, but given the loose nature of language I think ‘a little bit of both’ is a fair statement.

  31. Derek on July 16th, 2008 1:58 am

    Wonderful post:

    I’m a little unsure about the “Take Biology.” paragraph. I suspect the perceived lack of progress stems from the complexity of the systems being studied, rather than inadequacy in the study. That said, the point you make that software can help here is well made.

  32. Gustavo Duarte on July 16th, 2008 2:10 am

    @Derek: absolutely. I don’t mean to say that biologists are buffoons that need the programmers to come and help. It’s the complexity of the system as you pointed out. But this need for computers in science, in areas where our brains flat out don’t cut it, that makes the future of software in science so interesting.

    In fact, some of the challenges in ‘biology’ _are_ physics / chemistry problems. For example, protein folding. Given the amino-acids in a protein, it’d be dandy to know what three dimensional shape it will take once built in a cell. This is an atomic / molecular issue, so it’s fair to say it’s less biology and more the exact stuff which I say has ‘progressed’. Yet, it’s very complex and so far unhandled despite computers.

  33. Jake on July 16th, 2008 2:13 am

    Wow you’ve taken the thoughts right out of my head and put them down in a beautiful simplicity that mirrors your code no doubt. I think you’d like this:

    Are you a mossaic?

  34. Rodrigo Araujo on July 16th, 2008 5:01 am

    Definitely amazing.
    Congratulations on this post, very inspiring.

  35. jks on July 16th, 2008 6:11 am

    Interesting post.

  36. An Alternate Take On Scrum : An Experiment in Scotch on July 16th, 2008 7:50 am

    […] Daily Palliative: Lucky To Be A Programmer Jul 16th, […]

  37. Steven on July 16th, 2008 1:18 pm

    Interesting read I must say, I wanted to ask what you might recommend if one were interested in the bio-informatics field, just wondering what courses you may have took in order to get a better understanding on biology and bio tech.

  38. JY on July 16th, 2008 2:39 pm

    Matt reminds me that programming is creative, like other creative work: music composing, painting, I truly agree programming is art.

    Hard working, intelligence is a part of programming, that’s why people could see the beauty of code.

  39. stephen on July 16th, 2008 7:06 pm

    a really great and inspiring post!

  40. Matt Sisk on July 16th, 2008 11:03 pm

    Chris –

    I agree that the crux of this debate might hinge more on semantics. I definitely indulged in blurring ‘perceived meaning’ when I invoked ‘beauty’ (and awe-inspiring) vs ‘art’.

    Having said that, I’m left curious. From your point of view, focusing on the musician aspect, how do you classify the composition of scores, or lyrics, vs the actual performance of said music/poem? Are both acts art? Or is their a classical gradient here (subjective *or* objective … both are possible)?


  41. Programmer??? - Page 2 - on July 17th, 2008 2:19 am

    […] programming…our software houses make coders, not programmers…. have a look at this article… Lucky to be a Programmer : Gustavo Duarte a great post… __________________ my donkey has a 7950GX and likes Iman […]

  42. Gustavo Duarte on July 17th, 2008 2:42 am

    Again, thanks everyone for the feedback!

    @Steven: My personal path was a bit twisted because my undergrad was math (focusing on computer science stuff) and premed. So I did ‘classic’ stuff like organic/inorganic chemistry, biology, etc., plus the computer/math stuff like algorithms, statistics, etc. But this is an inefficient way to go about it – you really don’t need too much formal coursework in chemistry/bio. Then I did a tiny bit of grad work, still in Math, where I took a Bioinformatics course.

    The field is pretty broad, so what exactly you need varies a bit.
    There’s an open access journal at which gives you an idea of what sort of stuff gets studied.

    On the bio side, understanding of genetics and cell biology is extremely useful, and something you’d have to learn from courses or from reading on your own (very doable).

    On the math/CS, there are lots of statistics (including Markov chains, Bayesian, Monte Carlo, lots of stats), machine learning, neural nets, algorithms, dynamic programming. I mean, there are so many areas in bioinformatics that it touches a bit of everything. Some examples:

    ​1. To work on sequencing, you want lots of statistics. You’re trying to match one sequence of nucleotides with another, computing how far apart they are, relative distances, etc. You might compute ‘genetic distance’ between species, or a single gene, that kind of thing. So lots of statistics, plenty of algorithms to deal with the problem.

    ​2. To work on protein folding is a bit different, there’s a lot of work in doing computer simulation of atoms and molecules to try to figure out how a protein might behave. Different bits of math and CS here, this is more like numerical analysis and more classic scientific computing.

    ​3. There’s a lot of machine learning to deal with the explosion in literature and information. You might use something like a parts-of-speech tagger to try to digest journal articles and automatically mine information from them.

    It goes on and on. I’m not an expert in the field by any stretch, but I hope this helps a bit. Best of luck.

  43. Dorai Thodla on July 17th, 2008 3:57 am

    Great post. Truly inspiring. I am giving it to all my students to read and many colleagues too.

    I have been in the industry since 1972 and I can never get bored. Life and work merge into one and every day brings a little bit of happiness. Some days are heady and you are in the zone. But it is always, always engrossing. In fact, I would recommend programming for fun as a way to boredom in the old age.

    I am like the Ancyent Programmer described in this and I can attest that I had more fun than I ever imagined in my life.

  44. Piotr Zalewa on July 17th, 2008 6:04 am

    Great post! Thanks for that – I was looking for analogy to present the art of programming to a painter. Math equations will do the job (hopefully)

  45. spanky on July 17th, 2008 8:56 pm

    The joy of coding is why I do open-source work out of hours.

    I no longer look for technical challenges at work, I can find them wherever I like (with the side-benefit that what I do benefits society).

  46. links for 2008-07-18 – Chip’s Quips on July 18th, 2008 2:33 am

    […] Lucky to be a Programmer : Gustavo Duarte “Under the right conditions, writing software is so intensely pleasurable it should be illegal.” Don’t tell my wife, OK? (tags: programming inspiration computerscience elegance algorithms) Tags: algorithms, computerscience, elegance, inspiration, programming […]

  47. Eric on July 18th, 2008 10:17 am

    Another great entry Gustavo! I found it very inspiring. For anyone interested in another essay about the ‘art of programming’ this one ( ) is a great read.

  48. gaston on July 19th, 2008 1:07 pm

    Hello, Gustavo. Nice article as well as those 3 regarding the booting process.

    Regarding university education, I’m one of those that started studying Computer Science because of the challenge and joy of programming. After two year, there was almost no more programming. Yes, it seems institutions have a problem with that. Hopefully, that will change.

    Good luck!

    PS: from Argentina, studying now at grad school in Canada.

  49. Roger Rohrbach on July 19th, 2008 1:10 pm

    Well said!

    This essay echoes the sentiment of Andrei Ershov, expressed over 35 years ago in an article entitled Aesthetic and the Human Factor in Programming: “To be a good programmer today is as much a privilege as it was to be a literate man in the sixteenth century.”

  50. Weekly Link Post 51 « Rhonda Tipton’s WebLog on July 20th, 2008 4:14 pm

    […] Gustav Duarte has posted a great article titled Lucky to be a Programmer. […]

  51. objective-d » Blog Archive » Lucky to be a programmer on July 21st, 2008 8:53 pm

    […] A good read. […]

  52. Kludge Everywhere « Gifted Slacker on July 22nd, 2008 5:06 am

    […] from an excellent essay by Gustavo Duarte. Posted by Grant Filed in Funny, […]

  53. Rodrigo B. de Oliveira on July 22nd, 2008 12:32 pm

    Inspiring! Thank you!

  54. Martin Pilkington on July 22nd, 2008 6:53 pm

    I’m not usually one to link to my blog in comments, I usually just write something out again, but I made a post several months ago that really touches on the latter part of your post, about how programmers, or the technology sector in general is really affecting and changing the world we live in for the good, even if people don’t appreciate that. Anyway, here’s the link, but if you want to skip to the meat of it just click the link in the middle of the post:

  55. /dev/klog · Lucky me on July 22nd, 2008 10:54 pm

    […] Duarte wrote a neat entry on the simple joys of writing software. As a software engineering bachelor, I couldn’t agree more with his sentiments. There is […]

  56. NAOI - Not Another Online Idiot » Lucky to be a Programmer on July 23rd, 2008 12:38 pm

    […] post on the merits of being a programmer. digg_url=’′; digg_skin = […]

  57. Gustavo Duarte on July 23rd, 2008 12:50 pm

    Thanks for the feedback everyone.

    @spanky: I’ve done that in the past as well. However, it gets tough when you have a family and any other interests. I really enjoy reading and doing some non-computer stuff, time is at a huge premium for me right now, so if I can get some joy at work, that’s helpful.

    @Eric: that was an excellent read, thanks for posting it!

    @gaston: that’s a great point. Joel Spolsky had a good post on this:

    I was myself a Math major, so I personally love the theoretical side of things, proofs, that kind of stuff. But it’s definitely not programming and I agree with the point both you and Joel make.

    @Roger: thanks for posting the article. I really liked it and I get a huge kick out of reading older computer science stuff.

    @Rodrigo: muito obrigado :) E parabens pelo excelente trabalho com a Boo.

    @Martin: I make that same point with people all the time! There’s a strong tendency for people to think highly of what’s “old and good” versus the scary new stuff.

    Think about society. People are always saying how “things are degenerated now, whereas back in the day things were great.” I mean, WTF? Do they mean ~65 years ago when blacks were lynched, Jews were killed in ovens, women had separate job sections in the paper, and being gay was illegal?

    Come on. Things improve so much and so fast, it’s incredible. Ditto for the Internet. It’s the most positive thing ever to happen in the world. It’s an amazing wealth-distribution, economy-optimizing, information-sharing engine that will bring us untold benefits everywhere.

    And of course the medical & science stuff, a talking device for Stephen Hawkins, I mean, seriously. Everywhere you look. I’m a pretty skeptical person overall, I doubt things by nature, especially the conclusions I have reached. But on this front the evidence is overwhelming.

  58. Fernando on July 23rd, 2008 1:52 pm

    Brilliant. I love it.

    I personally like WordPress’s motto: Code is Poetry. It is, however, incomplete.

    Too bad they can’t put an essay like this in a company motto!

  59. Love Work | TightWind - Kyle Baxter on July 23rd, 2008 3:15 pm

    […] is little better than someone wholoves their work: For the past few weeks I’ve been working with a fellow developer on a project that required an […]

  60. James Inman - Lucky to be a Programmer on July 23rd, 2008 4:10 pm

    […] Gustavo Duarte […]

  61. Að iðja er að biðja on July 23rd, 2008 4:48 pm

    […] á ágæta hugvekju um vinnu, vísindi og veröld. Ætli þeir séu ekki fleiri, sem þekkja fullnægju góðs […]

  62. Farid on July 24th, 2008 4:14 am

    I rarely read a blog post that makes me excited about being a programmer, thanks for being an inspiration!

  63. Icelander on July 24th, 2008 6:05 am

    Quite an inspiring post. I often liken my work to being a watchmaker. It’s highly-skilled, uses specialized tools that other people never see, is analytical and follows concrete rules but also allows room for creativity, and produces something so ubiquitous and elegant that people don’t understand why they’re paying you so much.

  64. Curious Chap » Blog Archive » The Beauty of Programming on July 24th, 2008 12:39 pm

    […] Duarte writes in his excellent piece, “Lucky to be a Programmer”: For the past few weeks I’ve been working with a fellow developer on a project that required […]

  65. brad harper : fighting pennies and smiles… » Blog Archive » Excellence In Blogging #001 on July 25th, 2008 7:34 am

    […] Poor Programmers… Share This: These icons link to social bookmarking sites where readers can share and discover […]

  66. Quake on July 25th, 2008 8:27 am

    Very well said. My employer very often makes me tired to technology; but nights & weekends, I code for fun. At work, everything MUST be over-engineered, simple solutions that work are frowned on if not outright banned. I often look at things we build and think – ‘I could have done that for 20% of what we spent.’ But they think because their business is big and complicated they’re technology has to be too. But the golden handcuffs make it hard to leave. The compromise? Open Source – by working on some open source projects, I find a release for that creative drive.

  67. Joe Ludwig’s blog » This is why I’m a programmer on July 25th, 2008 11:53 am

    […] Duarte sums it up. Permalink […]

  68. Pascal on July 26th, 2008 12:45 am

    I understand what your saying, but I don’t think it’s the corporations fault. Its the nature of software engineering. Engineers theses days must spend much time investigating, debugging and even testing. We spend more time analyzing, reading and investigating then coming up with solutions: this is the inherent falicy that everyone seems to misunderstand about the reality of the software engineering field.

  69. Cody Burleson on July 26th, 2008 2:21 am

    Thanks for the inspiration. I’m printing this one out.

  70. Vik on July 26th, 2008 11:02 am

    I have been going up and down each day thinking if I can afford to leave a medicine career (I am a MD) and start from scratch as a programmer. Ofcourse, its not out of the blue and I am thinking of it because I have been learning and doing some programming in javascript and php as hobby.

    After reading this post and some of the comment one think I have understood well and that is that not everyone, even with years in to this profession, see it a way of getting a paycheck. There is more to what a programmer do and enjoy it for more that a means of getting a paycheck.

    I think I am not doing anything wrong. I am right in thinking that I should do what I enjoy more and not because I have already given year to medicine and that fact that most who are into programming started at very early age.

    I would be glad to hear from the author (and any reader) for their suggestion on my future plans. I am quite strongly thinking of programming as my new profession but still their are weak moments especially when people bring the fact that I can make much much more money in medicine and even at the acme of my career in IT I would make less than an avg medicine guy. I agree with this stark truth but cant get over the fun of writing code, the thrill of designing the webpage with an sprite image of 5-10kb placed smartly with css.

    I would appreciate if the author could provide me his email so that I can ask him for some more concrete advise.

    thanks all for such nice discussion.

  71. Gustavo Duarte on July 26th, 2008 1:32 pm

    Wow, this post really struck a nerve. Thank you all so much for the feedback.

    @Pascal: that is a very good point. I remember reading one Paul Graham essay where he talked about how one of his YC alumni went on to a big company, but a ‘good one’, and yet he still noticed how much his LOC / week decreased at the big co vs. the startup.

    It’s natural to just ‘blame the bureaucracy’ but you’re quite right, once software reaches a certain size and complexity changes become harder, not because of the institutional failings, but because the inherent challenges truly do shoot up.

    It’s one thing to blaze ahead when you have a 20k line codebase in a product that has never been in production. It’s another when you have 1M lines deployed in multiple versions, localized, having to maintain binary and interface compatibility, etc etc.

    However, I did factor that in when I thought about this piece. For example, look at the Microsoft of 10, 15 years ago. They worked on very complex products, but by all accounts it sounds like people were happy there and got a kick out of work. The Microsoft of today, not so much. The change was mostly institutional, or so it looks from the outside.

    I think software can be fun even in complex environments, in fact there are interesting challenges that _only_ arise there. But it’s up to the institution to get it right. Is it gonna be Peopleware or Pointy Haired Boss?

    @Vik: You can reach me at

    I’ll write some thoughts here though so that it’s out in the open rather than locked in our mailboxes.

    Where do you currently practice medicine? Is it in the US? I spent a lot of time around American doctors, so I saw a lot of the burn out and challenges they faced.

    But I have to be honest with you, the “grass is always greener on the other side” effect is very strong. There was a lot of that going on for me when I was about to switch (into medicine away from computers). I was burned out, and medicine seemed like a good exit plan. When I thought more about it though, I realized that burn out would happen in any profession, and that in a way I was going about the problem the wrong way.

    I’ve been programming computers from a very young age, about 6, and since 12 I’ve been programming pretty seriously (in C and doing large programs). So I’ve loved the stuff from early on, and STILL I thought about abandoning it, and still I was burned out. Which tells me that, at least for me, no matter how much I like something burn out can happen.

    That’s partially why I wrote this post, for people who are now in the situation I was then.

    In my case I took some time off – a lot of time off, and when I got back I was 100% into it again. Even running a SQL query and watching the database give me back the rows was fun. I was then lucky to find a great group of people to work with. The idea of going through med school and residency seemed insane at that point.

    The joy you get out of programming as a hobby might or might not be there if you were to actually work on it. There are a lot of terrible, soul-crushing programming gigs out there. There are some good ones too. But then the same can be said for medicine. You might be in a group practice with a poor environment and squeezed by insurance companies, or you might have a nice position somewhere.

    That was a lot of writing and a lot of rambling. The point is this: we humans tend to overestimate the impact of radical changes in our happiness, thinking that if we take some plunge things will end up far better. I would caution you against leaving behind your medicine career. I would encourage you instead to seek changes within your career: take a sabbatical, look for a different job, maybe some lateral move within medicine, or even – who knows – a place where you might be able to use a bit of your programming skills within medicine.

    Then, if that doesn’t work, maybe the plunge is the right thing to do. The task would then be finding a good place to program at, or maybe start your own company, maybe using software to solve some pain point you know doctors have and selling it.

    I hope this helps.

  72. Gustavo Duarte on July 26th, 2008 1:41 pm

    @Vik: another option would be to practice part-time and do independent programming work on the side. That might be a good compromise.

    Regarding the early age thing, I don’t think it’s necessarily an issue. I am not sure where your programming skills are currently, but it might be worthwhile to read some prominent open source code to get a feel for what decent-quality (or at least production-quality) code looks like.

    In my case I assure you I’m no programming superstar. I have decent talent with it, nothing great, but I love it and I try hard.

  73. Sunkist on July 27th, 2008 10:02 pm

    I remember the days when staying up late and working hard, focusing on one task or problem or project was a lot of fun. Unfortunately over the years my employer has sucked that joy completely out of me. I’m looking forward to getting it back when I quit and start my own business with some others.

    Good post!

  74. Benjamin on July 27th, 2008 11:59 pm

    I am an amature programmer who is currently just programming for myself and I cant agree more with what you have said, people around me cant understand why I would want to spend long periods of time programming as they see anything similar as work and therefore not worth doing on time off but its enjoyable to solve the problems and create something that works well and is nice a simple.

    Nice article!

  75. Yaniv on July 28th, 2008 12:38 am

    Very nice and Inspiring article…
    I really enjoyed reading it. Very nice written,

    I’m asking you, if I can please, translate this article into Hebrew, I think the people here, in Israel, should read it.

    Thank you very much for a great article…

  76. Gustavo Duarte on July 28th, 2008 12:51 am

    @Yaniv: absolutely, go for it.

  77. anon on July 28th, 2008 1:58 am


  78. Clara Cohen-Yossifov on July 28th, 2008 2:29 am

    Exelent. I have worked from 1971 till now in different tecnique areas as a programmer. This means I remember dinosaurs like PDP8,IBM360, etc. All the time the feeling about what is to be a programmer is just the same. You have explained the thing in a very pleasant manner. Now I am nearly at the finish of my career and want to say you “Thank you”. You gave me once more the feeling to be young and part of an enthusiastic programmer group.

  79. Sergey Kishchenko on July 28th, 2008 3:46 am

    Very nice article! Can we translate this article to Russian, for russian developers to read?

  80. Bunny got Blog on July 28th, 2008 5:22 am

    Great article and it definitely supports the long tedious hours one works when focused and enjoying every minute of it :)

  81. paresh on July 28th, 2008 7:39 am

    nice article, thanks for sharing.

  82. Leonardo on July 28th, 2008 12:25 pm

    Very nice article. I came across this post from another blog and I see the reason why it was recommended in the first place.

    I’m also interested in translating this, in my case into Spanish, and maybe share it with fellow students at college (I’m a student of what would be equivalent to computer science). Is it okay with you? The original source would of course be cited :) .


  83. Gustavo Duarte on July 29th, 2008 1:49 am

    Thank you all very much for the comments! :)

    @Clara: that is very cool. I started out in the IBM PC, so I only know these classic computers second hand, from books like Mythical Man Month.

    Concerning translations, by all means, feel free to translate the post, but please provide a link back to the original. I can send you guys a properly formatted HTML file too with the post, before WordPress mangles the HTML, if you wish. You can reach me at

    There is one minor alteration I am going to make when I have a couple of minutes in the “Biology” part to make it clear that the issue is the systems complexity in biology, while cutting down a few words. Brevity is the soul of wit, heh, witless as I may be. Damn it’s late.

  84. Lucky to be a Programmer « The German Component on July 29th, 2008 3:10 am

    […] Continue reading Lucky to be a Programmer. […]

  85. John on July 29th, 2008 3:22 pm

    Lucky to be a programmer.

    Question: How lucky will you be when you reach an age past 45 and jobs will be refused to be given to you due to your age?

    Better find a second alternative by the time you get to your 45′s + years old.

    The current technology won’t help you much 25 years down the road.

    I’ve been in system programming for 30+ years and I know what I’m talking about, kids.

  86. Gustavo Duarte on July 29th, 2008 3:47 pm

    @John: my mother in law started programming in Java at ~50 years old, transitioning from a totally non-IT-related career. Female, 50, and she’s been pretty happily employed since (was about 6 years ago). Anecdotal, to be sure, but I know several people over 40 programming.

    I think there are plenty of other careers that are even riskier to get old in.

    But the bottom line is: plan for your future, don’t trust your paycheck to last for ever. Live below your means, invest, sell a startup, do what you need to. There are a lot of other reasons you don’t want to depend on a paycheck anyway.

  87. בלוג פשוט » Blog Archive » כיתת אוּמן: איך כותבים סקריפט לגריזמונקי on July 29th, 2008 4:40 pm

    […] התכל’ס על סדרת הפוסטים: ”כיתת אוּמן“. לא מזמן קראתי פוסט שכתב Gustavo Duarte. המשפט הזה גרם לי לחשוב על המונח ”כיתת […]

  88. Programmer Blogs You Should Read « The Byte Codex on July 29th, 2008 5:26 pm

    […] Gustavo Duartes: Software, computers, and business – particularly Lucky to be a Programmer […]

  89. Newton on July 30th, 2008 5:01 am

    great post :)

    Thanks :)

  90. Paul Goscicki » Blog Archive » Lucky to be a Programmer on July 30th, 2008 7:05 am

    […] the great article on our fluorishing craft, Lucky to be a Programmer by Gustavo Duarte: For the past few weeks I’ve been working with a fellow developer on a project […]

  91. Jef on July 30th, 2008 6:10 pm

    Your post was a breath of fresh air. I give new programmers that come onto my team a similar speech on their first day. I take them out to lunch, one and one, and ask them to describe their choice to program professionally. I have not tired of “turning the switch” inside of people who begin by shrugging at it as a means to an end, but end by saying “Wow, I never thought of it that way.

    Somewhere near the beginning of my “speech”, I ask them to define art. Most people provide examples of definition (painting, sculpture, etc.). What makes them art?, I ask. Eventually, the conversation boils down to realizations such as:

    • Art is more than the sum of its parts\
    • Art is the intangible taking form\
    • Art is something created from nothing\
    • Art is anything that changes the way you feel or think about something

    Programming, indeed all of Computing Sciences — heck, the entire field of study of Mathematics — has a reputation of being cold, unimaginative, and monotonous. However, I challenge anybody to differentiate it from the most magical and colourful of arts!

    We create things from *literally* nothingness. We do not even use raw materials such as paint, a canvas, our bodies, or the pages of a book. Our art is closer to music, in that we require instruments to create our work on a “canvas of silence” (as my old high school conductor used to say).

    We take nothingness: barely detectable voltage differences in a microscopic transistor, and give it form. Our works appear to have shape & form, and our audience feels entranced enough to reach out and interact with it; to touch it and say “it’s here, it’s ‘this’ wide, and that’s ‘below’ it” etc. It’s given tangible appearance, but still and always, it is nothingness. It never reaches the tangible form of a sculpture or painting. Like music, it ceases to exist except in our memories and imaginations once the instruments are packed up.

    We are artists of ideas. We take an idea and care for it and grow it the way a composer does a musical theme. We compose overtures of it, variations of it, and finales. We fret particularly about instrumentation! Where a composer worries about whether the low brass have enough weight to carry the foundation of the theme through the next phrase, we worry about the roles of so many peices of architecture and how they interact and hand off messages seamlessly and eloquently to one another.

    Our audiences experience our smoke-and-mirror show as realness. We have created a world out of nothing but our ideas, and we take them by the hand. If we’re lucky, we change the way they think or feel about something along the way.

    Jef Bray
    Software Engineer
    Halifax Regional School Board

  92. Patrick on July 31st, 2008 5:25 am

    It seems that you picked a good field for yourself. As a fellow programmer of nearly 30-years, I have the same passion as I did creating my first BASIC program at my first job. I hope you keep the passion and fun.

  93. Ed on July 31st, 2008 8:47 pm

    There is such beauty and reward in logic – great post, you expressed many of my same sentiments…

  94. ahmed on August 1st, 2008 11:43 pm

    yo man , you will NEVER have sex , no women will ever find you attractive !

    Every time you will walk down the street and see a good looking woman , you will feel pain in you stamach an bluch in your cheeks. You are a low value guy for her , and you know that.

    Your mindset is your prison ! Try living in the real world. Stop coming to this forum where another 10000 programmers give you validation. You are waisting your life.

    Watch “A beautiful mid” see how the genius tries to save himself from being a dorkish looser and leaves the academic world. Do not be a pathetic looser yourself , use you own head man !

    Every hour you work in front of the computer , the guy who pays you (owns you – for you are a slave) is making more money while youa re getting older.

    And remember this: all dorks you seek to impress with this brain washing article of yours – they DO NOT CARE ABOUT YOU.

  95. Geoffrey A on August 3rd, 2008 11:18 am

    Thank you for writing this uplifting article. The love of the programming art and science is what started me on this career when I was a young teenager. Words like yours help to reignite the passion. Passion is key.

    The book Hackers by Steven Levy had a big influence on me too. It covers the time period when I began programming as a kid with my friends and shows what was possible back then.

    Guess what: Even more is possible today.

  96. Gustavo Duarte on August 4th, 2008 12:28 am

    Thanks again for the feedback.

    @Jef: your comment would have made a great post as well ;) It’s funny you mention magic… when I was a kid I remember distinctly my disappointment when I realized magic wasn’t real. Then, later on, I came to find out that math and the sciences are just as magic as any fantasy world I had ever read about.

    @Ed: The beauty of math and logic are overwhelming. How can one look at something like Cantor’s proofs and not be overcome by awe?

    It makes me happy that some of you guys got inspired or motivated by this. That means a lot.

  97. Clara Cohen-Yossifov on August 5th, 2008 6:49 am

    ahmed, why you entered in this forum? I want to apply on you your sentence:
    “Your mindset is your prison”.

  98. Sonny on August 5th, 2008 11:33 am


    Great post. Captures the essence of how many programmers feel about their profession.

    Thank you very much for such an inspirational article.


  99. Rigard Kruger on August 13th, 2008 12:52 pm

    This is a really amazing piece Gustavo. I got into programming very informally; totally self-taught, and I think one of the things that this process gave me was to have a particularly self-reflexive and analytical look at the actual process of coding. For some reason it just completely grabbed me, and I think that this is definitely because it is such an incredibly creative form of expression. I am always trying to explain just how riveting the process is – how stimulating it can be to come up with a way to do something, to solve those problems, to roll-out an idea. People take it completely for granted that there is such a vast amount of thinking that goes into the design and development of any kind of programmed thing, and yet your coding IDE is a tabula rasa for some of the most exhilarating and creative moments you can have. From architecting to development to testing, and let’s be honest, debugging even has it’s moments, programming is a total rush. Thanks for this post, it puts into words so clearly the thoughts I myself have about coding. (and yes, to one of the posters above, I also love the WordPress line “Code is poetry” – it’s great!)

  100. Horacio on August 15th, 2008 12:41 am

Dead on inspiring
  1. George on August 29th, 2008 5:59 am
Great post. but i am concerned about the remark on the the third
world kid. Shows some level of misunderstanding and aloofness. You
had better said an ordinary kid without stigmatizing or seeming to
look down upon kids from developing countries(not ‘third world’).
  1. Gustavo Duarte on August 29th, 2008 6:05 am
@George: I’m myself from Brazil, so I had a very specific idea in
mind when I wrote that bit. I’d say I’m pretty well informed when it
comes to the reality I was thinking of. I do not look down upon the
kids there at all.
  1. /var/log/tumbles » Blog Archive » Lucky to be a Programmer : Gustavo Duarte on August 29th, 2008 7:36 am
[...] Lucky to be a Programmer : Gustavo Duarte “… writing software
is so intensely pleasurable it should be illegal …” 16 July 2008 in
Uncategorized | tags: programming [...]
  1. » links for 2008-09-12 on September 12th, 2008 3:19 pm
[...] Lucky to be a Programmer : Gustavo Duarte "I think it’s
because institutions are so good at squeezing the fun out of
everything. It’s appalling for example how schools can take the most
vibrant topics and mangle them into formulaic, mediocre slog. And so
it is for programming. Many corporations turn an inherently
rewarding experience into something people just barely stomach in
exchange for a paycheck." Amen brother. (tags: programming
motivation inspiration blog coding career) [...]
  1. » I should be so lucky :) on September 22nd, 2008 1:30 am
[...] Gustavo Duarte – Lucky to be a Programmer: “I think it’s
because institutions are so good at squeezing the fun out of
everything. [...]
  1. Silviu on November 30th, 2008 5:47 am
I, also am a passionate programmer, and it was so hard to explain to
some non-programmer friends what programming is about… now all I
need to do is give them the link and hopefully they’ll understand.
Great post!
  1. Steve on December 1st, 2008 9:17 pm
Thank you for the great post. I can related to this. I love being a
  1. Tommi on January 3rd, 2009 9:46 am
Oh yes. I enjoyed those long and intense programming cycles too.
Almost impossible dedline, you code all day and night, hight stress,
high productivity. First round was fun, second was too. Years passed
and I wanted more! Then once I taked this too far. 6 months projects
keeps falling to my hands, the once fun high stress event become
static way of life. You get used to stress, you start to need it to
do anything. You are no longer able to anything if it is not some
high stress job. You are so tired, every day. Did you know that
seeking stresfull work perioids is sign of work stress? (“I can be
more productive if I go to high stress mode”)\
 Just wanted to warn you guys. This hapens to when you turn 30.
  1. Programming and the Recession : Gustavo Duarte on January 14th, 2009 10:48 am
[...] skills, which further hurts supply. I think the economics is
in our favor and we’re still lucky to be programmers, though we must
be careful during the recession. What do you say? How does it look
out [...]
  1. Abhijith on January 28th, 2009 6:21 am
Truly inspiring. Thanks for the sharing your love for programming
  1. Хорошо быть программистом on February 2nd, 2009 3:29 am
[...] пытаюсь достичь совершенства. Gustavo Duarte , “Lucky to be a
Programmer”, публичный перевод [...]
  1. tom harada on February 11th, 2009 2:18 pm
simply awesome.
  1. HenryMalthus » 19th Century Advertising, An Electric Car, Conway’s Law, and Why Gustavo Duartes Love Programming on February 16th, 2009 3:52 am
[...] Duartes expresses why he’s Lucky to be a Programmer: Few
things are better than spending time in a creative haze, consumed by
ideas, watching your work [...]
  1. An Alternate Take On Scrum « Mental Pandiculation on June 5th, 2009 4:50 am
[...] The Daily Palliative: Lucky To Be A Programmer [...]
  1. asr on June 5th, 2009 10:05 am
Just feeling the same and reached your post
  1. What Is Software? | Straylight Run on June 13th, 2009 1:37 pm
[...] none of this really matters.  We still go about our jobs every
day doing what we do and enjoying it.  But we forget sometimes that
software as a profession is only decades old!  Compared to [...]
  1. Raze on July 28th, 2009 6:59 pm
Nice post man. My life and job would be boring (and I don’t think I
would be making as much money) if I hadn’t double majored in CS
  1. NoInfluence on August 2nd, 2009 3:16 am
I completely agree, there is no greater high than a successful day
of programming; I would do it for free those days, but other days
(when everything goes wrong) I am glad I don’t xD.
  1. Sara on August 18th, 2009 8:01 pm
  1. Anders Juul on September 3rd, 2009 12:40 am
hear, hear!
  1. Windholz on October 9th, 2009 8:46 pm
Showing some love to this topic “new to this wordpress”. I defiantly
agree with it also. If you really think about it than it all makes
alot of sense
  1. [Traduction] Chanceux d’être un développeur « Opensource et médias sociaux on October 12th, 2009 3:25 am
[...] Sarah Haïm-Lubczanski L’article qui suit est une traduction
d’un article intitulé : “Lucky to be a Programmer” publié par
Gustavo Duartes sur son blog, le 14 juillet 2008. Les liens sont
ceux d’origine et proposent donc un contenu en [...]
  1. Gnask on November 30th, 2009 2:29 pm
This is what I call PASSION. Thank you for these words
  1. 幸为程序员 : Fleurer.Lee on January 7th, 2010 8:20 am
[...] 作者:Gustavo Duarte 翻译:ssword
原文:[]( "Linkification:")
  1. Kevin on January 7th, 2010 10:40 am
It is true that in many organizations, programming is reduced from a
fun task to something that must be done with metrics like lines of
code which the management can gawk at and feel proud about.

The true essence of programming is in building innovative creations
by mapping ideas formulated in a mind to a real world solution.
  1. Do I still love programming? The answer is YES | Complete Coding on January 7th, 2010 11:52 am
[...] if you find it so, it’s time to think about your priorities
and move ahead (You should read Lucky to be a programmer). Related
Posts:What skills should a good developer possess?How to become a
better programmer [...]
  1. blancagar on January 27th, 2010 10:28 am
I refuse. [cilais dosage online New
Sorry, for off top, i wanna tell one joke) Did you hear about the
guy who ran through the screen door? He strained himself.
  1. Wayne John on February 8th, 2010 12:58 pm
For me, programming is exactly how you describe it. Fun. I taught
myself to write BASIC when I was 13 on a Commodore 64, and I knew,
after I finally wrote my first application that I wanted to be a

I really wanted to write video games (this was about when TRON was
out), but found the complexities of dealing with graphics a bit too
much for my wee little brain to handle. I found that my creative
juices freeze up when dealing with graphics, so I have to farm all
that creative stuff out, and leave myself to deal with the logical
side of making everything work and do “stuff”.

Loved this article Gustavo, hit the mark for me. Thanks!
  1. mühendis on February 19th, 2010 7:58 am
Great post! The only thing I worry about is your comment about the
third world children. Thanks a lot. that’s good and helpful for me.
  1. mühendis on February 25th, 2010 5:25 pm
could not exactly turn some sentences. but in general was a useful
article. I have read with admiration. good work.
  1. 幸为程序员 « Fleurer.Lee on March 13th, 2010 6:50 am
[...] 作者:Gustavo Duarte 翻译:ssword
原文:[]( "Linkification:")
  1. TheCjw on March 13th, 2010 7:12 am
  1. Meat on August 22nd, 2010 12:33 pm
I read the first 3 paragraphs an i felt that you know me . What a
great post …
  1. Rambling Comments on December 14th, 2010 8:07 am
**Good technical blog…**

I stumbled on Gustavo Duarte’s blog this week via this post about
how lucky we are to be programmers. The post that led me to his blog
is good stuff and has had lots of linkage this week. The rest……
  1. Franklin I. on January 27th, 2011 12:33 am

Great website! I think there are many valuable information and
advices here. Along the same line, I came across the following
website which I found interesting. Traditionally, personality tests
such as MBTI have been used as career aptitude test. However, these
tests have a very limited scope as they ignore many important
factors such as person’s skills, values, and interests.

There have been many advancements in the area of career aptitude
testing. Usage of artificial intelligence to evaluate suitability of
a job for a person is one of the these techniques. You can take a
complete version of the MBTI personality test plus many others such
as memory, IQ, problem solving, and patience tests in OptYourLife.
This website’s expert system tries to find the most suitable career
path for you using neural network. Moreover, salary of different
careers will be considered in the final analysis to provide a more
insightful advice for you:

[http://www.optyourlife](http://www.optyourlife) [dot] com/

  1. Jade on February 13th, 2011 11:49 am
Hey Gustavo -

I really wanted to comment and say that I identify so much with what
you’ve written in this post. I’ve spent most of my undergrad career
in neuroscience, which I found interesting but ultimately
unsatisfying. Lab work is so tedious and takes months to produce a
result. The summer before senior year, as I was preparing for my
GREs, I realized that I’d be just as unhappy in grad school if I
didn’t change things. I dropped my biochem courses, planned out a
computer science minor (as I’d loved programming when I was younger
and was eager to go back to it) and now I couldn’t be happier. I
felt so at home in my classes, being around people who loved solving
puzzles as much as I do, and the level of creativity and excitement
is so much greater than in all of the courses I’ve taken in the
natural sciences. I’ve also found that my abnormal background is
actually a strength, and have had interesting bioinformatics
opportunities since then. I honestly love being a programmer
  1. Sunday Selection 2011-03-20 « The ByteBaker on March 20th, 2011 7:32 am
[...] Lucky to be a Programmer I’ve been going through a
motivational low when it comes to coding and programming and making
actual stuff. Articles like this remind me why I took up this gig in
the first place: programming is challenging and fun with lots of
chances for getting into flow states (more on that later). You get
to build something that a lot of people will find useful and have a
great time doing it. [...]
  1. Edward Williams on March 23rd, 2011 10:10 am
I don’t know if I’ve written code that could be called beautiful but
I know I’ve seen such code. And any time I read such code I love
it…I love it because I see art!

An awesome post. Thank you! and if your code is anything like your
words in this post (which, I suspect it is), you’re a superstar!

And, I must echo Jef’s comment — we \*do\* really create things from
  1. Pranjal R Nigam on April 7th, 2011 11:31 am
A very nice post.

You are a superstar. Itis’int that easy to describe the fascinating
world of programming.
  1. Pranjal R Nigam on April 7th, 2011 11:40 am
  1. Do I still love programming? The answer is YES | Complete Coding on July 9th, 2011 12:36 am
[...] if you find it so, it’s time to think about your priorities
and move ahead (You should read Lucky to be a programmer).Related
Posts:Today's Read: Four Ways To A Practical Code ReviewDon't Be A
Hotshot [...]
  1. Hernandi on September 14th, 2011 11:50 am
Nice post.\
 Reflect far away through the years!\
 Until 2011 people still comment.\
 I share almost the same fellings.
  1. RIchP on January 20th, 2012 3:45 pm
Great Post Gustavo – as someone looking into a career in programming
it really inspired me.

Quick question – what other ways are there to contribute and make a
difference via programming? How does one get into programming
projects that really help people – what sort of institutions are
these things done at? Are they university projects, open source,
private sector social-enterprise-type companies?

I love the idea of developing the craft of programming, but also
using it to do some real good.
  1. Richie on March 25th, 2012 11:46 am
Another question if you have the time to indulge me…

What do you make of the current state of the industry/artform? I’ve
heard it said that programming is becoming less about
problem-solving and writing eloquent code, as it is about memorising
wads of the latest libraries and frameworks and being good at
mashing together various chunks of pre-written code.

Do you think this library-explosion and abundance of pre-written
code is changing the art form (or at least, the job description for
most programming jobs?)

I’m someone who gets real fulfilment from the problem solving and
analytical sides. But if it’s really moving away from that, I’m not
sure it’s really the right direction for me to pursue.
  1. Aravind on April 2nd, 2012 7:25 am
great post. “A non-math sort of beauty also exists in code,
analogous to eloquence in discourse.” point well made. Super liked
your article.

Agree that programming, like you’ve said, involves craftsmanship,
but I would like to make a finer point by comparing a programmer to
a painter. Sometimes one is needed to paint a fine painting like a
portrait and sometimes need to paint a uniform, spotless wall, both
jobs involve a similar kind of effort from the two painters point of
view and that both jobs have their own satisfactions, yet they are
distinguishable based on the painters nature. Employ the wrong
painter for the wrong piece of work and we don’t get what we expect.
  1. Vedangi on April 12th, 2012 10:01 pm
Great post …

You have put prograaming process in words in a very creative way
  1. merve on April 13th, 2012 4:45 am
nice article
  1. GreenvaleJohn on April 13th, 2012 5:27 am
Being out in the Australian bush with distance limited networking I
use to wonder what I was doing but not now. As my granddaughter says
“I’m onto it.”

Thanks mate.
  1. Fernando on April 13th, 2012 5:32 am
“when a third-world kid…” ????? All the rest, its a great article!
  1. Lucky to be a Programmer | Onion River Notes on April 13th, 2012 6:53 am
[...] Gustavo Duarte has a great piece on the joys of being a
programmer. [...]
  1. Fat Mark on April 13th, 2012 7:08 am
What a load of absolute tosh.

Doing Software development for a living is like being plonked into a
bucket of Diarrhoea on a daily basis. Each morning you kick your
legs to stop from drowning, the best you can hope for is by the
evening you’ve churned it into sh\*t (slightly easier to stand on
but just as unpleasant to be around).

Try writing web front ends to databases every day for 3 years, then
see how much you think it’s creative beautiful art. Every day
another repeat, and it’s not even a good repeat, it’s like a repeat
of Nick Berry’s Heartbeat.

Modern Software development is not engineering, nor is it science
it’s being at the wrong end of the human centipede that is the
modern development process. User eats the requirements, poos out to
B.a., B.a. eats digests poo then poo’s out to Software engineer,
Software engineer eats poo then produces final product.

If you crashed in a plane on a desert island, software engineers are
the second in the pot (the first being human resource people). Not
that we are any more useful than HR people, they just tend to have
more muscle tone due to not sitting in front of a computer in their
spare time to keep up to date with the emperors new clothes that is
modern frameworks.

Glad you’re enjoying software development, but you are definitely
wrong, programming == hell.
  1. محمد on April 13th, 2012 7:11 am
پست جالبی بود !!!
  1. Lord0 on April 13th, 2012 7:34 am
Have to agree with Fat Mark (151).

Having been in “software development” now for almost 20 years I can
state without hesitation that it is a depressing, soul crushing
experience, where the same tasks (and mistakes) are repeated project
after project, year after year.

Most of your colleagues will be socially retarded, point scoring
cretins, blessed with little or no redeeming features.

You talk of elegance and concise code but in the real world one is
usually dealing with a spaghetti of example born code cut and pasted
from Stackoverflow. “If it compiles it works” seems to be the motto.

Oh aye, all the chicks (if you’re lucky enough to have any in your
team) are munters!

Ask yourself this: “would you fly in a plane who’s software had been
written by your team?” No? Me neither!
  1. Richard on April 13th, 2012 7:34 am
Loved the post!

This was a awesome expression of a feeling that I’ve had for ever,
had have never been able to communicate to those around me. App
Development is not geekiness… it is an art form… sculpting with math
instead of chisels, on data rather than marble.

People I work with, and live with, don’t understand sometimes that
the creative fugue (‘haze’?) is a precious moment… and it is what
people like us seek after and crave.

Another point… watching users use… is like a playwright watching
opening night. I remember, 20 years ago, watching a room full of
operators using a interface package I constructed… and it was such a
thrill it left me dancing in the aisle. I still love to watch the
traffic monitor on an ecommerce site I created several years ago.

Great article… thanks so much. I will be sharing, with co-workers
and family members.
  1. Richard on April 13th, 2012 7:48 am
Hey Fat Mark!! You’re either Michaelangelo, or a house painter. It’s
up to you, and your skill, imagination, and confidence level are the
only limiting factors.

If you are unable build a better mousetrap, then be happy with what
you have. If you are not allowed to build a better mousetrap, then
move on!

  1. SvenOle on April 13th, 2012 7:54 am
Great post, beeing a developer myself for about 24 years now I came
across a lot of tasks. Right now working on a pretty complex
invoicing automation system.\
 I do it together with an external developer who is highly creative,
inspiring and gives me a lot of fun. This article exactly describes
my current situation and legitimates what and WHY I’m doing this
stuff. Probbably I’ll do such stuff for the rest of my live.

Just because it is fascinating and FUN FUN FUN
  1. Lord0 on April 13th, 2012 7:55 am

“Another point… watching users use… is like a playwright watching
opening night. I remember, 20 years ago, watching a room full of
operators using a interface package I constructed… and it was such a
thrill it left me dancing in the aisle”

That’s a whoosh, right?
  1. Alphonso Turner on April 13th, 2012 7:55 am
Very nice article, this would define the essence of what being a
programmer is.

  1. Rob on April 13th, 2012 8:11 am
Well said, nice post. As a project manager, I work with some
brilliant software engineers and this seemed to hit home with all of
them. We’ve discussed why they enjoy writing code and creating
solutions and they echo your comments here. I can see their
frustrations when it becomes a purely mechanical exercise devoid of
anything other than production. My personal passion is in writing,
mostly fiction but love all types- I love grammar, sentence
structures, well-crafted story-telling, sophisticated but plausible
plot architectures, solidly built character studies, etc.- and
everything you wrote here strikes home with me.
  1. Dan Sutton on April 13th, 2012 9:05 am
That’s right. That’s it exactly.

Programming’ an interesting art form: it has an extremely limited,
yet fanatical audience, and 99% of the people encountering the
specific piece of art will fail completely to realise what it is.
Write a program with 1000 features, one of which fails, and that’s
the one you’ll get to hear about: the 999 which work perfectly will
be ignored.

In a sense, programming is a fundamentally thankless task; I think
any programmer who engages a project solely with the aim of
producing something the users appreciate is going to spend most of
his career feeling somewhat disillusioned and let down.

The true art is in the code; in the beauty of the algorithms and in
the thought structures which underlie them: Dijkstra knew this and
published books about it, all of which are worth reading at some
point, when you feel like finding out what the founding fathers, as
it were, used to think about.

Being a programmer is not a career choice or a skill: it’s more than
that: it’s a life choice: it informs everything you do and
everything you are. I wouldn’t change it for the world.
  1. Oscar on April 13th, 2012 9:25 am
Holly cow! look at all of these posts, they are all agreed with the\
 feeling of all of us, the fellow programmers. well done tavo, the
only other thing I can say is what Jim \#12 post here posted:\
  1. Fat Mark on April 13th, 2012 9:33 am
Software development is not art.

It’s a flow chart in text form.

To claim otherwise is pretentious waffle.
  1. KT on April 13th, 2012 9:56 am
Creating software rocks. Those that don’t agree, don’t know or
appreciate how to code…in any language.
  1. AO on April 13th, 2012 12:07 pm
Dan Sutton Wrote…

\>\> In a sense, programming is a fundamentally thankless task; I
think any programmer who engages a project solely with the aim of
producing something the users appreciate is going to spend most of
his career feeling somewhat disillusioned and let down. \<\<

In some aspects I agree with Dan. The programs we create never seem
to be finished and there is always a user, who wants one more thing
added and/or one more thing changed and redone due to business logic
changes or personal preferences. But, to get a program running
successfully in production and have that program save time and/or
money is the best feeling in the world.

This does not only apply to programming but to the data as well. To
have a database that is correctly normalized, with the correct
constraints, and clean is a great feeling. To work on queries and
reports where all of the numbers and data line up is just as
fulfilling as a great algorithm.

Of course, the slip side is just as stomach churning and nerve
racking. I still get the willies when pushing a large program change
into production and running a large update/delete query. I guess
when that feeling goes away is the time to hang it up and find
another profession.


A still happy programmer after 25 years in the business..
  1. Jasmine on April 13th, 2012 12:35 pm
@Ahmed – I’m always amused by comments such as yours which basically
boil down to “programmers are not sexy” because it indicates that
you don’t know any actual women. Women list intelligence as the
number one thing they are looking for in a mate, and this has been
established by a good number of surveys and studies to the point
that it’s no longer a theory, it is a biological fact about women.

SO, I just have to point out, Gustavo’s eloquent, passionate writing
is way more sexy than your brainless drivel. You didn’t even bother
to use correct spelling, or capitalize \_your own name\_! Not sexy,
not at all. And… Gustavo Duarte is a wicked sexy name just by

Programmers typically don’t have the raw physical sexuality that
jocks have, but jocks typically don’t have the brain to keep you
interested for a long term relationship.
  1. Scott on April 13th, 2012 4:06 pm
@Jasmine, thanks for reading back so diligently and uncovering that
post. In high school I had plenty of jocks who were crazy jealous of
my brain. It was odd, I thought, because I didn’t know yet what you
pointed out; girls dig braniacs
  1. R.C. on April 13th, 2012 4:33 pm
It seems you’re having some of the fun but not ready to accept it
due to some social pressure to accept your middle class status …
“when people hear about the crazy hours they often say they’re
sorry. They really shouldn’t be. I would never do this often, or for
long periods, or without proper \*\*compensation\*\*”?!!

I’m doing this at least once every week for the last 25 years, and
the most unpleasant thing is once in a while to receive the \$30
payment some people think will “compensate” for my “56 hours without
sleep work” …. My best \*\*compensation\*\* is to refund those guys
their payment and never answer their messages …

But I think there are a lot of folks out there that didn’t inherit
their means of subsistence and would really need the \$30 some
idiotic employer thinks a part of their soul is worth…. They are the
true heroes of our world if they decide to follow the enjoyable path
of our work and do their job professionally, regardless the
\*\*compensation\*\* ….
  1. dude on April 13th, 2012 4:51 pm
nailed it
  1. Ben on April 13th, 2012 7:48 pm
Programming is intensely pleasurable, in fact it’s the intellectual
equivalent of cocaine, which is why I gave it up (mostly).
  1. Mehboob Ali Yousafzai on April 13th, 2012 10:46 pm
Yup vry nice.
  1. strider on April 14th, 2012 12:19 am
Good essay is something classical..\
 look at the date and time when this article was post..\
 At the first sight i thought it was post recenly,hahahah..
  1. Ytrail on April 14th, 2012 10:48 am
I like it!
  1. Jaime Baum on April 15th, 2012 9:10 am
Great post! This evokes in me good ol’ Donald Knuth in his preface
of “The Art of Programming”, where he states:\
 “The process of preparing programs for a digital computer is
especially attractive because it not only can be economically and
scientifically rewarding, it can also be an aesthetic experience
much like composing poetry or music.”
  1. Anonymous Coward on April 16th, 2012 4:16 am
Meh, in a couple of generations programming will be as much part of
your basic culture as writing became a hundred years ago, and as
basic math is nowadays – if you won’t be able to do at least
\_some\_ programming, you’ll be considered plain stupid.

So hurry up, get the fun out of it while programming is still
something special. It won’t last forever.
  1. ec on April 16th, 2012 5:38 am
u roc !!!!
  1. dusko on April 16th, 2012 6:20 am
Please don’t joke like that, there are few guis in MS who really
 some ide just like that…

Ups, I think they are buy the corner with that idea, Jeah U really
neil it\
 this time..

It is in cloud,
  1. Manoj on April 16th, 2012 6:55 am
Programming is no less an art.
  1. Gustavo Duarte on April 16th, 2012 10:55 am
Thank you all for the feedback. I read each and every comment,
though I have not had the time to reply as I would like.

@Fat Mark: sorry you’re so bitter, mate. You should take up
Brazilian Jiu Jitsu. Also snowboarding if you live near a resort. I
think they might make you a happier person. BJJ surely would. After
you’re happier, then you need to take a look at the profession and
see if it might be time to change. Btw, your reference to “human
centipede” was very funny, that’s got to be one of the most
disturbed and funny movies I’ve ever seen. Especially the second

@Jasmine: thanks for the rebuttal

@RC: you missed the most important part: “without proper
compensation IF DONE FOR AN EMPLOYER.”

@AC: So you’re saying writing isn’t special?
  1. Dagga0wnzu on April 17th, 2012 6:51 am
I’ve got to say, I started reading this simply cuz a friend of mine
had it in their status. Then — the violins started playing in the
background and boom — I started falling in love with programming all
over again. You’re right about employers sucking the joy out of it.
After reading your blog, I’m going to do some soul searching to try
to remember why I loved this thing in the first place.

  1. A on April 17th, 2012 1:23 pm
Great post. Reminded me about the good old times
  1. Ahitagni on April 17th, 2012 11:05 pm
Great post. Thanx for sharing. I love programming too the post made
me love it even more.
  1. Steve1977to2012 on April 18th, 2012 3:47 pm
Been programming for a long time now (since 1972 in College on
PDP11s, IBM360, and Burroughs 5500. It’s in my DNA and I Love it!!!
It keeps me sharp and alive. When I have a problems to solve or a
bug in my code I never, never give up. It is always a learning
experiance for the next problem.
  1. Don Robins on April 25th, 2012 7:36 am
Fascinating…5 years later only proves that truths are timeless. But
it does come down to who you work for (yourself or someone else,)
how you view your situation and whether you can move on if
dissatisfied. I have found after almost 30 years, that it’s the
willingness to constantly relearn that makes it all what it is; if
you don’t welcome that inevitable fact, you’re in the wrong place…
  1. Lucky to be a Programmer : Gustavo Duarte « Avventure sul Web on May 1st, 2012 12:42 pm
[...] on Like this:LikeBe the first to like this [...]
  1. Dickson on March 13th, 2013 1:02 am
Very nice Article.\
 “Don’t stay put while your enthusiasm is slowly drained. It’s hard
to find motivated people to hire so you’ve got a major asset

Its so true to live our dreams and to be who we are. But peoples
like us in third world countries are still left out . Need a change,
we need an all round empowerment . though we Start early,use all the
resources available but mere environmental pressures like finance
over kills us. Think about a situation without internet, computer
untill one gets a job on his 24 or 25 hmm horrible.\
 and disrespect and labelled as nerds too\
 High end Curiosity, which is a rare trait. Lucky to be a programmer
  1. Gustavo Duarte on March 14th, 2013 8:37 am
Dickson: that is a good point. I grew up in Brazil and can relate to
what you speak of, though I was fortunate not to experience it. I
guess it boils down to doing the best we can in the circumstances we
have, and trying to keep positive to the best of our ability.
  1. Yes, Lucky To Be a Programmer | Author404 on March 24th, 2013 4:07 am
[...] Lucky to be a Programmer is a post from Gustavo Duarte, who
pointed out some reasons why we should feel luky.In addition,
articles/posts/papers are accessible more easily than other aera.
I’ll collect some great posts here: [...]
  1. ProgrammingGene on April 19th, 2013 2:41 am
Haww True!!On times, I identify and fix bugs in my own code, and
feel proud, more confident and like a true warrior
Amazing experience being programmer. You will be empowered to change
whole existence!
  1. Matt on April 24th, 2013 2:58 am
Wow, what a fabulous blog post. Really inspiring. Thanks for that.
  1. Douglas on July 3rd, 2013 1:44 am
Wow…guess i am lucky to be a programmer! Now it all makes sense!
Thanks a lot pal…
  1. Lucky to be a Programmer | neetpiq on September 15th, 2013 1:35 pm
[...] source: Gustavo Duarte: Lucky to be a programmer [...]
  1. Nuahiti on October 21st, 2013 12:25 am
Thanks for sharing this interesting article… ♥