Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #53795 > unrolled thread

Confessions of a terrible programmer

Started bySteven D'Aprano <steve+comp.lang.python@pearwood.info>
First post2013-09-06 16:56 +0000
Last post2013-09-16 07:56 -0700
Articles 8 — 7 participants

Back to article view | Back to comp.lang.python


Contents

  Confessions of a terrible programmer Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-06 16:56 +0000
    Re: Confessions of a terrible programmer Joel Goldstick <joel.goldstick@gmail.com> - 2013-09-06 13:17 -0400
      Re: Confessions of a terrible programmer Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-09-07 00:13 +0000
    Re: Confessions of a terrible programmer Chris Angelico <rosuav@gmail.com> - 2013-09-07 03:43 +1000
    Re: Confessions of a terrible programmer Walter Hurry <walterhurry@lavabit.com> - 2013-09-06 18:31 +0000
    Re: Confessions of a terrible programmer Terry Reedy <tjreedy@udel.edu> - 2013-09-06 14:52 -0400
    Re: Confessions of a terrible programmer Skip Montanaro <skip@pobox.com> - 2013-09-06 12:48 -0500
    Re: Confessions of a terrible programmer rusi <rustompmody@gmail.com> - 2013-09-16 07:56 -0700

#53795 — Confessions of a terrible programmer

FromSteven D'Aprano <steve+comp.lang.python@pearwood.info>
Date2013-09-06 16:56 +0000
SubjectConfessions of a terrible programmer
Message-ID<522a0927$0$29988$c3e8da3$5496439d@news.astraweb.com>
Not specifically about Python, but still relevant:

http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-programmer.html





-- 
Steven

[toc] | [next] | [standalone]


#53799

FromJoel Goldstick <joel.goldstick@gmail.com>
Date2013-09-06 13:17 -0400
Message-ID<mailman.130.1378487843.5461.python-list@python.org>
In reply to#53795
On Fri, Sep 6, 2013 at 12:56 PM, Steven D'Aprano
<steve+comp.lang.python@pearwood.info> wrote:
> Not specifically about Python, but still relevant:
>
> http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-programmer.html
>
>
>
>
>
> --
> Steven
> --
> https://mail.python.org/mailman/listinfo/python-list

Pardon me, but I completely don't get this article.  Let me in on what
is supposed to be the joke please!


-- 
Joel Goldstick
http://joelgoldstick.com

[toc] | [prev] | [next] | [standalone]


#53814

FromSteven D'Aprano <steve+comp.lang.python@pearwood.info>
Date2013-09-07 00:13 +0000
Message-ID<522a6f9e$0$29988$c3e8da3$5496439d@news.astraweb.com>
In reply to#53799
On Fri, 06 Sep 2013 13:17:20 -0400, Joel Goldstick wrote:

> On Fri, Sep 6, 2013 at 12:56 PM, Steven D'Aprano
> <steve+comp.lang.python@pearwood.info> wrote:
>> Not specifically about Python, but still relevant:
>>
>> http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-
programmer.html

> Pardon me, but I completely don't get this article.  Let me in on what
> is supposed to be the joke please!


It isn't intended as a joke. The article is serious, but it wraps its 
serious message in a bit of mild humour: here is a guy who calls himself 
a terrible programmer, but his projects are always completed on time and 
on budget, while "good" programmers' projects are late, over-budget and 
buggy.

The irony is that those who think of themselves as "good programmers" end 
up writing worse code than those who think of themselves as "terrible 
programmers", because the self-aware terrible programmers use all the 
tools in the programmer toolbox to improve their code and the others 
don't.

The author of that blog piece is too polite to say so, but I suspect that 
there's a certain amount of Dunning-Kruger Effect going on...

http://en.wikipedia.org/wiki/Dunning–Kruger_effect

but I digress.


-- 
Steven

[toc] | [prev] | [next] | [standalone]


#53800

FromChris Angelico <rosuav@gmail.com>
Date2013-09-07 03:43 +1000
Message-ID<mailman.131.1378489415.5461.python-list@python.org>
In reply to#53795
On Sat, Sep 7, 2013 at 3:17 AM, Joel Goldstick <joel.goldstick@gmail.com> wrote:
> On Fri, Sep 6, 2013 at 12:56 PM, Steven D'Aprano
> <steve+comp.lang.python@pearwood.info> wrote:
>> Not specifically about Python, but still relevant:
>>
>> http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-programmer.html
>>
>>
>>
>>
>>
>> --
>> Steven
>> --
>> https://mail.python.org/mailman/listinfo/python-list
>
> Pardon me, but I completely don't get this article.  Let me in on what
> is supposed to be the joke please!

It's a "ha-ha only serious" article. The point is: You can't write
good code by being a good programmer. You MUST [1] acknowledge that
you write buggy code, and then code accordingly.

Sometimes you'll write bugs that result in egg on the face. I fixed
one this week that had been lying around for ages; if the user
provided a particular (and unusual, though not malformed) set of
input, and the program was running in the first hour after midnight
UTC on a Thursday, it would go into an infinite loop, because I'd
missed decrementing something. More often - especially if you do
things like the author there does - you'll have a program that bombs
really fast on startup, or at least bombs noisily when something goes
wrong. Those bugs are easy to find and, often, easy to fix. Those bugs
we can deal with.

The other point to note is that it takes a competent debugger to
figure out problems, and that's in many ways a more important skill
than writing code. Taking another example from this week at work: My
boss was tinkering with our AJAX system, using his Linux development
box and one of our Linux test servers. He clicks a button in either
Google Chrome or Iceweasel (Debian's old build of Firefox), the server
does stuff, and stuff happens promptly. He crosses over to his Windows
XP laptop to try the same button in IE8 (the oldest and stupidest
browser we support), and there's a 20-second lag before the server
does its stuff. But adding logging showed that the AJAX call was
taking less than a second, so it couldn't be that. Turned out the
request was given a job time based on the client's clock, which was 20
seconds ahead of the server, so the job got delayed by those 20
seconds. Would you, when debugging an AJAX+PHP system, think to check
if clocks are synchronized? Only if you know how to debug. Good
programmers can, and can pinpoint problems without looking at a single
line of code.

Claiming you'll write perfect code is arrogance beyond measure.
Acknowledging that there'll be bugs and building systems to cope with
(and remove) them is the critical humility for programmers.

[1] http://www.ietf.org/rfc/rfc2119.txt

ChrisA

[toc] | [prev] | [next] | [standalone]


#53802

FromWalter Hurry <walterhurry@lavabit.com>
Date2013-09-06 18:31 +0000
Message-ID<l0d71c$h7m$1@news.albasani.net>
In reply to#53795
On Fri, 06 Sep 2013 13:17:20 -0400, Joel Goldstick wrote:

> On Fri, Sep 6, 2013 at 12:56 PM, Steven D'Aprano
> <steve+comp.lang.python@pearwood.info> wrote:
>> Not specifically about Python, but still relevant:
>>
>> http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-
programmer.html
> 
> Pardon me, but I completely don't get this article.  Let me in on what
> is supposed to be the joke please!

No joke. Defensive programming is the only way to go if one is writing a 
serious system, whatever the language.

[toc] | [prev] | [next] | [standalone]


#53805

FromTerry Reedy <tjreedy@udel.edu>
Date2013-09-06 14:52 -0400
Message-ID<mailman.134.1378493705.5461.python-list@python.org>
In reply to#53795
On 9/6/2013 12:56 PM, Steven D'Aprano wrote:
> Not specifically about Python, but still relevant:

to what?

> http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-programmer.html

I think link posts should have at least a sentence summarizing the 
content of the linked page so I would have some idea of whether it is 
worth me clicking it.

-- 
Terry Jan Reedy

[toc] | [prev] | [next] | [standalone]


#53806

FromSkip Montanaro <skip@pobox.com>
Date2013-09-06 12:48 -0500
Message-ID<mailman.135.1378493831.5461.python-list@python.org>
In reply to#53795
> Pardon me, but I completely don't get this article.  Let me in on what
> is supposed to be the joke please!

I don't really think there's a joke. I think the author is saying in a
somewhat sly way is that often, the difference between a terrible
programmer and a great programmer is the discipline applied to the
task, and intelligent use of the tools at hand. Catch as many errors
as you can as early as possible (before other people see your original
stabs at a solution) and when your code is set loose in the wild you
will seem like a great programmer. Little do your colleagues know that
your tools protect them from your terrible programming.

Skip

[toc] | [prev] | [next] | [standalone]


#54230

Fromrusi <rustompmody@gmail.com>
Date2013-09-16 07:56 -0700
Message-ID<9bed8537-9e50-4a10-94ef-a4d92db853f8@googlegroups.com>
In reply to#53795
On Friday, September 6, 2013 10:26:07 PM UTC+5:30, Steven D'Aprano wrote:
> Not specifically about Python, but still relevant:
> 
> http://blog.kickin-the-darkness.com/2007/09/confessions-of-terrible-programmer.html

Nice post -- thanks!

Prompted this from me
http://blog.languager.org/2013/09/poorest-computer-users-are-programmers.html

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web