This guy has not discovered what it means to be a programmer, he is simply in a phase of his programming life. Chasing down bugs all the time? Why? I don't do this, and when I run across a bug it is usually a quick fix and not a big deal. The goal is not to write it perfectly without bugs. The goal is to release it perfectly without bugs, and to do this all you have to do is test your code often as you make changes t…
> This guy has not discovered what it means to be a programmer, he is simply in a phase of his programming life. Very well put. I see so many posts here that I roll my eyes over. This is not to put them down, may be it has to do with the fact that we as programmers don't talk about our "feelings" :)
Be nice to programmers
101–110 of 178 posts
Re: Be nice to programmers
#102The really bad part of this post is the implication that this mentality (whether one takes the author's negative point of view, or my slightly more positive interpretation) is endemic to software development. It's not. Asking the question, "How can I make this better," ought to be a fundamental part of one's daily routine. Had the author adopted this mentality in general, he might have noticed a flaw in his workflow:
1. Write some code
2. Run the code
3. Get an error message
4. Find the error and back to step 1
There are some critical steps missing. A more appropriate approach would be:
0. Think about what I'm building
1. Write some code
2. Run (Test) the code
3. Get an error (of some sort)
3.5 Think about what might have gone wrong and verify it
4. Go to step zero.
That's right, when you find an error there are two distinct thought processes involved. First you think about what might have gone wrong. This would be the forming a hypothesis step of the scientific method (I've lumped testing into step 3.5 so as not to stray too far from the author's initial workflow, but suffice it to say that testing should be a recursive call to this entire process). Once you've discovered the source of the error, it's time to consider how best to fix it. Yes, more thinking. Only then should one go back to writing production code.
Sadly, I don't think the author's method is that rare. I had a professor who referred to the write/run/test/fix method as the original genetic programming. I think that's a fair statement. The problem with this method is that one ends up with a system that may work, but with no deep understanding of why it works. Absent that understanding, it will be more difficult to improve (fix) the system.
God help the next poor soul (aka the author in six months) to work on the system. Therein lies the negative feedback loop.
Re: Be nice to programmers
#103Re: Be nice to programmers
#104I think after being a programmer I have changed my outlook for the better because I realize what's possible instead of being trapped by other people's ideas/mistakes. I see how things are connected and if I changed this or that how it changes our limitations. Anyone can say "What if" very few can "Here's how." And that is really empowering and liberating.
I suppose when I was younger I was negative I wanted everything to be perfect like it couldn't be, but as I matured I see bugs, missing features, bad design as just opportunities and not the end of the world. Being late, bugs, complaining users, whatever it just doesn't bother me.
I'm not tuning them out just choosing to listen to what's really important and cutting through the bull because I expect all of it to happen. We're late ok I'll work a little more realizing I can really only make it about 10% faster, there bugs give me a reproducible test case and I'll fix it, users bitching reach out to them personally and find out what's the real problem.
And just like anything else in life, whether it's programming, football, music, or ditch digging, your attitude is your choice. The difference came when I chose to be positive...and laugh a lot more at all of the irony, bad choices we make, and gotchas that always creep up. Laughing really helps.
Re: Be nice to programmers
#105I get what he's saying, but I think he answered it himself, when he questioned if he was being overly dramatic. He is being really over-dramatic. I would love to hear about any occupation where the negatives aren't run into in a similar way that he describes programming. That being said, the one thing that I dislike about programmers in general is that I think we believe we sound smarter if we figure out ways how an…
I'm not sure that specifying how things won't work is done to appear superior rather than giving feedback. There probably isn't enough time in a day to try everything and if you can save some time by pointing out why something won't work off the bat it's probably a good thing. As with everything though, it kind of comes down to how you communicate that something won't work.
Re: Be nice to programmers
#106Earlier quoted context omitted.
That reminds me of an old story about how different people can look at the same job in different ways: A man came across three masons who were working at chipping chunks of granite from large blocks. The first seemed unhappy at his job, chipping away and frequently looking at his watch. When the man asked what it was that he was doing, the first mason responded, rather curtly, "I’m hammering this stupid rock, and I c…
But this isn't what the piece describes. The author is talking about the _feedback_ one receives while doing work. Take the 3rd mason and start giving him a list of what's wrong with the work he's doing every day until the cathedral is built, and see what happens. This stonemason example, while touching and certainly applicable to some situations, is just too far removed from the reality of what many programmers expe…
This is analogous to the mason's iterative workflow: noticing that his stone doesn't yet fit quite right and chipping a bit more off the side until it fits perfectly.
During development, most of our daily feedback comes from the code itself, not from people yelling at us about how broken it is (although that does happen sometimes).
Re: Be nice to programmers
#107Earlier quoted context omitted.
Well, sure, but everything in life is a "phase." A whole career might be a phase. But that's not the point. This post clarifies a vague problem. It's great that you've avoided that. Good for you! Seriously. But to say that he hasn't "discovered what it means to be a programmer" isn't helpful: Someone doesn't feel amazing about being a programmer. Programming is amazing. Therefore that person is not (yet) a programmer…
I think I may have misrepresented myself. I have not avoided the buggy hell described above. I have lived through it. My point is, his problems are temporary and expected for anyone that cares to better themselves. So it is perfectly natural for him to be upset about it, and his emotions are valid. What is dangerous is he is currently leaning towards the idea that to be a good programmer you must be pessimistic, alwa…
You say "no need to be a pessimist" but I don't think that's what's going on at all. If you encountered a bug in a program, you wouldn't say "oh, program, don't be so pessimistic, just keep running and you'll be fine!" He's diagnosing the problem, not declaring that it's insurmountable on a case-by-case basis. I don't think that's dangerous, I think it's appropriate. When you see the feedback loop more clearly, you can deal with it. Ok, that might mean pushing through to a better place (if one believes that will work for everyone, as it has worked for you) or it might mean finding a different career.
I just don't think your description of waking up one day and feeling that things have gotten easier squares with what a lot of us experience. Things do not always get much easier just because you keep going, or because you try one thing after another. Sometimes the work gets much more rewarding, for some people, but you can also burn out before you reach 10,000 hours, and it's not reasonable to say that people should simply figure out how not to burn out. To pin that all on a pessimistic attitude is trivializing a non-trivial problem.
Re: Be nice to programmers
#108That's not to say that some people aren't going to be happier in certain fields than others, or that some subsets of the field fit some mindsets better than others, but software is pretty good work. The article acknowledges this right up front, and then ignores that to dwell on the negatives. It blew my mind a little to see such a negative perspective. If I fix a simple bug in my code, it doesn't bother me much, because I know I sometimes make mistakes. If I find and fix a really interesting subtle thing, then it means I learned something new, and that the product is now in better shape than it was yesterday. If there's a usability issue, it's an opportunity to figure out a new way to do it. And all the while I have the constant positive feedback of knowing that this thing that I built is doing something, I can directly watch it do that thing, and that it's being used by people to get stuff done.
Unless you build everything exactly right the first time, and never have to deal with external changes that mean the software needs to change, you're never going to be free of negative feedback. So you should start looking at why you're letting the negative parts drive your attitude.
EDIT: My own personal idiosyncrasy is that I get very suspicious, maybe even paranoid, about a complex task if everything seems to work right the first time and I don't have a few cycles of negative feedback. I know it's complex, and so I don't expect perfection out of the gate, so a few runs through the "fix one thing, find another issue" washer are oddly reassuring to me. Even though rationally I know that fixing things I knew to test for doesn't mean it's any less likely that there are errors in the things I haven't thought to test.
Re: Be nice to programmers
#109Re: Be nice to programmers
#110Earlier quoted context omitted.
Salespeople make the sale sometimes. A doctor sees someone walk back in for their checkup who couldn't walk a week ago. A technical support person often says goodbye to a cheerful happy customer. Musicians may have to deal with criticism in the papers, but if they delist their phone number it's because of the fans , generally, not the critics. Actually that goes for almost all the creative industries. Developers have…
You think this: "Developers have very little positive to go off of, and few professions have customers as discerning and grumpy as compilers." Yet you mentioned this example: "A doctor sees someone walk back in for their checkup who couldn't walk a week ago." Is not seeing a product in action, one that possibly effects millions of lives (to be more realistic lets say 1000s, hell even a few dozen should be satisfying)…