Create an Account
username: password:
 
  MemeStreams Logo

Metaphor Crash: The difference between a developer and a programmer.

search

dmv
dmv's Pics
My Blog
My Profile
My Audience
My Sources
Send Me a Message

sponsored links

dmv's topics
Arts
Business
Games
Health and Wellness
Home and Garden
Miscellaneous
Current Events
Recreation
Local Information
Science
Society
Sports
Technology

support us

Get MemeStreams Stuff!


 
Metaphor Crash: The difference between a developer and a programmer.
Topic: Miscellaneous 11:45 am EDT, Jul  3, 2008

I had just spent most of my waking hours for an entire year learning about a single subject: Satellite Communications. I was absolutely certain I was ready to jump into the job and perform it perfectly from day one. Imagine my shock upon arriving at my first duty station (Fort Belvoir, Virginia Earth Terminal Complex) when the NCO in charge told me "Forget everything they taught you at that school. We don't really do things that way." The amazing part was that he was telling the truth.

In many ways, that is the way of software development. In college you learn the theory, the science, the techniques, and then you land your first programming job as a Software Engineer. You walk in expecting to be producing world-class applications in a few days, but if you are lucky enough to be assigned to work with a senior developer, you quickly learn that most of what you learned is good information, but not the way things are really done. The real learning starts when the classes end.

This was an interesting insight, because it speaks to an education difference between real science and computer science (or computer engineering, or whatever the better term for it is). In my undergraduate chemistry program, every class started with

"remember when you learned about $SUBJECT in $COURSELEVEL-1? that's not quite right"

and the next couple of weeks would be devoted to diving into the subject matter in greater detail with more complicated equations. At the end, we would take our new subject knowledge to re-derive the earlier coursework's equations, to show where the easier approximations came from and why they're not really wrong. This pattern continues all the way through graduate school, where eventually you get to the point where you are now at the limits of the known and the burden rests with you to demonstrate that what is know is not quite right but why the approximation has generally been good enough.

Contrast that with programming, where you learn that with a good enough specification you can implement almost anything on a compressed deadline... without learning about having to live with your code for the next two years, or about producing that specification, or about specs as targets that move faster and easier than deadlines.

Metaphor Crash: The difference between a developer and a programmer.



 
 
Powered By Industrial Memetics
RSS2.0