

Programmers Don't Like to Code - coglethorpe
http://rentzsch.com/notes/programmersDontLikeToCode

======
coglethorpe
"Programmers don’t like coding, they like problem solving."

While that's true for me to some extent, but what I also noticed is that I
really like doing is _building_ things. When I'm not coding, I woodwork, build
RC airplanes, or find something else to work on.

~~~
durin42
Right, but you don't plan on making your own glue before doing woodwork,
right? It's the same thing - I don't _want_ to write an XML parser, there are
tons of them. I want to build something exciting to me.

Fortunately, there exist many someones that do like writing things like XML
parsers, so I don't have to be one. I think that might be Wolf's point.

~~~
scott_s
I'm not sure what his point was, because he kept sticking to the provocative
"programmers don't like to code" line.

If he said "programmers don't like to write code that's not directly related
to the problem they're solving," I'd agree. But if that's what he meant, then
he should have said it.

I find the practice of starting out with a provocative statement, then
redefining the semantics of the discussion until the unqualified thesis
statement is true both annoying and disingenuous.

~~~
ellyagg
I'm always on the lookout for that sort of thing too, but I don't think you're
right here. I get annoyed when people say "ellyagg likes to program" because
it's dismissive, like I'm some strange creature who finds the task of putting
various glyphs in parallel lines soothing. I _don't_ enjoy programming for
programming's sake. I enjoy _creating_ and I enjoy my creations bringing value
to other people's lives.

~~~
scott_s
I guess I don't interpret "like to program" that literally.

I think it's accurate to say "I like to program" because it goes beyond
problem solving for me. I enjoy solving the problem, yes, but I also enjoy
_expressing_ the solution. I enjoy the process of figuring out what is the
most concise, elegant and natural expression of the solution, and I find the
result pleasing.

------
mahmud
"If programmers liked to code, they wouldn’t value a language by its
libraries."

Yeah, that's why I spend 16 hour days coding in Common Lisp and Mozart/Oz.

"If programmers liked to code, every last one of us would be overjoyed to
write our own HTTP client."

Because HTTP clients are a stupid display oriented and bug-tolerant little
things. HTTP _SERVERS_ on the other hand, those are more tractable, since you
can be responsible for following the specs yourself, and a treat to work with
for all the interesting engineering possibilities they offer, which is _why_
more people have written web servers than web clients.

“I just want to update this field in this file, why do I have to write an XML
parser?”

Oh, he is talking about _that_ programmer: the corporate data janitor. That
sentence is just laden with idiocy; first, if your data is in xml and you
don't have established tools to perform "CRUD" type operations on your XML
files, you're doing XML wrong (lack of established process). Second, if you
have to write an XML parser to edit an entity in a file, you're doing it wrong
(refusal to use established tools, NIH). Third, if someone has to enlighten
you on how to update one of your data files (inability to RTFM) .. Dear Neo,
the salve of Hackingkind, you're doing it wrong. No wonder you hate
programming then.

~~~
uninverted
I really don't think he meant that last one literally; just an example of a
situation where a throwaway, uninteresting program would be necessary.

------
sfphotoarts
I've always thought that coding kind of came with the job. I don't like
repetitious tasks in my coding life any more than any other, but I still enjoy
the man vs machine aspect of coding.

And since when did 'Programmers' become such prima-donnas? I like whatever it
takes to continue a career in developing software, sometimes that means
tedious stuff, and sometimes really interesting ah-ha moments of coding.

Its all part of the CS experience.

------
intregus
There are clearly different types of programmers. For me I think it would be
more that I like designing and seeing concepts become something. Some people
don't get that programming is actually a very creative process.

There is some problem solving, but if it was problem solving that I enjoyed I
would have enjoyed math (more).

------
arnorhs
I don't really agree with this article at all.

I think a large percent of programmers want to rewrite things because they
focus on what's lacking in some way, expect to do everything better than the
next person, it's easier/more fun/feels more productive to write than to
read/grasp other people's code etc....

He quoted Andrew Leonard quoting Larry Constantine but took a light-hearted
sentance and seems to deliberately misunderstanding or taking it too
literally.

But the rewrite/reuse issue needs to be addressed in a per-case basis... but
I've seen thing beeing rewritten way too many times that should have been
reused and usually ending up in much worse shape after that....

Although, I've also seen rewrites that improves stuff a lot.. but usually it's
very very obvious when that's the right action to take.

------
notaddicted
consider "Asians don't like to code"

... can we plz stop making big generalizations? Different people like
different things.

Programmers are not all alike.

~~~
ellyagg
Considering it's the basis behind science and pretty much all analytical
thought, can we please stop pretending making generalizations (yes, even _big_
ones) is a bad thing? This generalization was interesting and contains a large
degree of truth; if you'd like to disagree with that, or explain where the
generalization falls down, do so.

~~~
notaddicted
Scientific Method, via Wikipedia:

2\. Form a conjecture

3\. Deduce a prediction

4\. Test

The basis of analytical thought is testable predictions.

Counterexample to "Programmers don't like to code" :

I am a programmer, sometimes I like to code.

Sometimes I like to code in C. I like to implement some basic objects, like a
list, a stack, some math routines. It is a like a little zen garden. So it
isn't anything impressive, it's just like some rocks and sand, but I arrange
it in a certain way and I like it.

Maybe I should address the content rather than the title (although if the
title fails to represent the content it is a poor title.)

"Programmers like problem solving" is the kind of vague positive statement
that is pointless and devoid of content. Here is a problem I don't like to
solve: configuring Apache . . . yawn.

~~~
Herring
that's an anecdote, not a counterexample.

~~~
adamc
An anecdote can be a counterexample.

------
axod
>> "If programmers liked to code, every last one of us would be overjoyed to
write our own HTTP client."

Writing an HTTP client, and server is actually something I believe every one
of us should do. As well as providing you something useful, tailored to your
use case, it teaches you a massive amount about how everything works. It's
pretty much definitely good fun :/

(I wrote both of these, and a dns client, etc etc for Mibbit).

------
johnrob
I think programmers do like to code. This is why the most popular libraries
are ones that feel like languages.

For example,

print urllib.urlopen('<http://news.ycombinator.com/'>).read()

feels more like a language statement than a library call.

------
benreesman
I'd argue that there are a lot of different breeds of programmer who fall at
various points on this spectrum. Some programmers like to rewrite things
because they are perfectionists, other programmers find any working code (for
some value of working) to be "good enough" and move on. Many programmers don't
fall neatly under any single label.

In particular his distinction between a preference for "problem solving" or a
preference for coding obscures a much richer diversity of attitudes. An
understanding of the subtle gradations between these various different kinds
of programmer is probably one of the best tools available to the truly
thoughtful software manager.

Personally I am really only enjoying myself if I'm tackling a "hard (for me)
problem", if the ratio of typing to thinking is high then I'm "working".

------
uuilly
I'm utterly lost when it comes to all the categories of coder, engineer,
programmer etc. I tend to think of "people who write code" as all being in the
same bucket. How well you do that just makes you a better or worse "person who
writes code" rather than putting you into different categories.

~~~
TJensen
There are probably some reasonable categories in there, but I would say they
are more like "algorithmist" (more mathematically inclined), "systems
developer" (more hardware oriented), "application developer" (more user
experience oriented), etc.

------
10ren
_after ... building it, ... they’ll understand the whole._

While I agree that understanding is a motivation and that building it does
help, as your ideas become more complex, just being able to code it does not
mean that you understand it perfectly.

My coding thrills are for understanding, for automation, and for impact
(including the childlike-joy of just seeing something happen when I do
something).

For me, the PC is an experimental lab. I can quickly test my hypotheses; and
get fresh data, which inspire new hypotheses. The PC is a means, not an end.

------
tlrobinson
Indeed. I like writing code, but I dislike writing more code than absolutely
necessary to solve a problem.

Also, this might not be relevant in this case, but I feel like there's a
difference between "coding" and "programming". In my mind, coding is a dull
task of translating an existing design into code, whereas "programming" is
more problem solving, which includes coding. Being called a "coder" is almost
derogatory sounding to me.

------
edw519
Programmers DO Like to Sleep

 _That's_ probably the biggest reason we rewrite stuff. So we stop getting
those calls in the middle of the night.

~~~
arnorhs
This is something that's not familiar to me. Do you mean as a sys admin, or do
you get called during the nights because of program crashes?

~~~
mahmud
I wrapped my web app with an error handler that sends an email to
myphonenumber@bigtelco.com and I get a tidy tiny error report as a text
message, wherever the hell I am.

~~~
dschobel
good lord that's masochistic.

unless you really really like your webapp.

~~~
mahmud
When you handle certain kinds of data, you're required to take maximum
possible care to ensure secure and continuous operations of the system, and
the steps you have taken towards that end.

~~~
secos
boy am I glad I don't have to do that anymore. Used to be on call for
financial systems... ouch.

------
zaidf
Programmers can like to code _and_ solve problems.

If all I liked doing was to solve problems, I could be fixing that broken
toilet.

------
Dilpil
My favorite term in the article: 'code narcissism'.

This debilitating disorder affects 1000s of programmers worldwide.

------
access_denied
Is it easier to understand the problem when you rewrite the code instead of
reading it (twice)?

~~~
randallsquared
Often, yes. Reading code very rarely induces me to understand what I'm reading
(and I'm pretty undisciplined, so rather than being able to force myself to
think deeply about it, I often just reread until I "get" it). However,
figuring out how to build something like it myself promotes understanding much
faster, in my experience.

