Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Some people have the view of programming that it is just repetitive typing on a keyboard. None of this is true. First of all, there is so much more you have to do than actually typing down the code, such as design architecture and so on. Secondly, it could be a greatly varying, non-repetitive task, with new challenges coming all the time.

How should you explain that programming is not a repetitive task to non-programmers?

share|improve this question

closed as primarily opinion-based by MichaelT, Bart van Ingen Schenau, GlenH7, Dynamic, amon May 8 at 14:07

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

5  
Ask, is their job a repetitive task? If it is, then, well, sucks for them, they probably do not know the joys of a creative and varied profession. If it isn't, say it's exactly the same. –  Mark Canlas Apr 27 '11 at 13:44
4  
@Mark Canlas: Good point. What jobs do these people (with the view of programming as repetitive typing) have? Chances are, you could point out some superficial repetitiveness in their daily tasks and reduce their jobs to "repetitive something-or-other", and then ask them to explain how it isn't. –  FrustratedWithFormsDesigner Apr 27 '11 at 14:01
13  
If it's repetive, you're doing it wrong. –  delnan Apr 27 '11 at 14:06
1  
That statement was meant in general. Many tasks are done wrong when you're doing the same thing over and over again. Just sticking car parts together? Design a robot to do it (assuming you can, of course - if not, sorry you're going to lose your job). Just sticking robot parts together? Build a robot to build the robots ;) That's basically programming. Add more layers for infinite non-repetitiveness. –  delnan Apr 27 '11 at 14:09
2  
Say football is a repetitive sport (Everybody keeps doing the same thing, kicking the ball). –  apoorv020 Apr 27 '11 at 16:34

11 Answers 11

up vote 29 down vote accepted

Give them examples they can relate to.

Tennis is repetitive. You just keep hitting the ball all the time over to the other side of the net.

Soccer is repetitive. You just keep kicking the ball every time until you find a goal post.

Playing the piano is repetitive. You keep on moving your fingers on the board.

Damn, all so boring!!!

share|improve this answer
1  
Tennis, soccer and piano playing are boring, in a way that programming is not. In all of those pursuits, one is repeatedly faced with the same situation, and must do the same thing. In programming, however, as other answers have pointed out, if you get in the same situation twice, you're doing it wrong. –  Avi Apr 27 '11 at 20:05

Well, it is in a way. You repetitively type the same letters (A-Z,a-z,0-9) over and over again. Just in different combinations.

I usually try to avoid such discussions with such people.

share|improve this answer
4  
+1 for "try to avoid." –  Michael K Apr 27 '11 at 13:49
1  
@Rook - Good advice. –  John Shaft Apr 27 '11 at 13:50
4  
+1. Makes me think of a nice comparison between books and the alphabet. (Loosely translates to: The alphabet is a collection of letters, which surpasses books in both structure and content. While in books the letters are all mixed up, those in the alphabet are successively written in ascending order.) –  back2dos Apr 27 '11 at 14:09
3  
@Rook: Having someone asking questions about the programming world is a blessing. Don't avoid them. Talk with them. As much as you can. –  user2567 Apr 27 '11 at 14:37
4  
I try to mix things up by using punctuation. A-Z is not interesting enough for me. –  MJB Apr 27 '11 at 16:19

You can always say that programming is repetitive typing to exactly the same extent as writing prose is repetitive typing. Will one write a great (or even mediocre) novel by sitting and carefully putting letters together?

share|improve this answer

Programming is pretty much like music composition. Which is far from being a repetitive process.

  • You start think about the overall view of what you need to achieve
  • You think about a small chunk of your composition and you write it
  • Once it's done, you play it (F5 in Visual Studio)
  • You repeat the process, as needed
  • Sometimes you borrow ideas or get inspired by other compositors
  • Sometimes you refactor your song by moving or reworking parts

Sometimes, you don't know what you want, and you play around. Probably the best way to get most interesting compositions...

share|improve this answer
1  
Haha... +1 for playing it (F5 in Visual Studio). Now if I could only add an F5 key to my guitar... –  JasCav Apr 27 '11 at 15:11
2  
-1 for Visual Studio ;) –  Jordan Apr 27 '11 at 15:24
    
Pierre, while not disagreeing with your overall response to the OP, I disagree that music composition is similar to programming. Composition is harder - I think I put it reasonably well in this post: linkedin.com/… –  azheglov Apr 27 '11 at 16:09
    
@azheglov: harder based on what? Anyone can compose. Now very few will be on MTV like very few of us will be interviewed by CNN –  user2567 Apr 27 '11 at 17:23
    
Even if, say, composing music is "harder", the problems in CS scale to compensate: each line of code may be easier to write than a single note, so we have projects with literally millions (if not more) lines of code. So even if each atomic action is simpler, the best programmers are simply expected to solve more difficult problems. –  Tikhon Jelvis Apr 27 '11 at 22:06

If it really were, we'd just use copy and paste :D

One of the key challenges in programming is to fashion building blocks of high quality, such that you

  • can use them to build up your edifice (i.e. the software you are building) of solid components, thus increasing stability
  • can reuse them multiple times in the same edifice or even in different edifices (to reduce repetition) and thus increasing your productivity
  • will be able to change a block without causing your whole building to collapse, thus increasing local flexibility
  • will be able to change all instances of a block at once, thus increasing global flexibility

By its very nature, this challenge demands you not to repeat yourself.

As a corollary: If you repeat yourself as a programmer, you waste time on building software, that is neither stable, nor flexible.

share|improve this answer

I usually explain that programming is creative problem solving. You have a problem - you want a feature in a product (and I usually pick a well known product, Amazon.com, MS Word, etc), and it's not there. It's never been done before, and you are the first, so this is like any art project - you have a vision, but you need to figure out a path.

I also focus on the fact that there's more than one way to solve the problem, a bunch of really bad ways, and probably more than one good way. In the long run there might be a best way, but that best way won't be obvious for a long time (extensibility, re-usability, etc), so at the time of development, there's a lot of important judgment calls.

Finally, the end product may be loved or hated by the recipient. Just like some people love Picasso and some can't make heads or tails of modern art - some people may love a feature, and some may hate it. You do the best you can for the most people, and figure you can't please everyone.

Focusing on:

  • unknown territory
  • no one answer
  • subject to interpretation

Shows that this work is a lot more like art, and a lot less like repetitive boring work.

I talk this over with artists quite frequently (and they seem to have an instinctive belief that computer work is uncreative. Usually I also can manage to relate it to the artist's favorite form of art. At some level, most artists are also technicians - painting, dancing, making music and probably any other art - all involve a series of repetitive activities that bring you to the point of execution of something new, different and creative. Put this way, the artists generally have problems denying that seemingly repetitive activities can lead to works of inspiration and beauty.

At that point, they are usually willing to admit that just because my "art" involves a set of bizarre looking syntax statements and bland-looking UML diagrams, it doesn't mean that it isn't creative in that those lines of code and models of the system eventually make something quite different than the sum of its parts.

share|improve this answer
2  
Being an artist myself, I like this comparison. It will make sense to most artists, of all types, and those who can relate to art activities. (I'm not sure about non-artists.) –  DarenW Apr 27 '11 at 21:41

Programming is about abstractions. The more you write the more similarities you can see. But then its time to abstract. By refactoring a framework evolves which eliminates duplication. This reduces complexity in the problem domain code.

Repetitive programming is possible. But it is inefficient.

share|improve this answer
    
+1 when coding gets very repetitive, it's a sign that maybe "you're doing it wrong!" –  FrustratedWithFormsDesigner Apr 27 '11 at 13:54

Aside from the other answers that point out how the repetitiveness or typing/clicking is superficial, you could also point out that programming is usually much more about problem solving than it is about typing (and I think it was Djikstra who said computer science is as much about computers as astronomy is about telescopes - or something similar).

Typing is just one way to implement the solution (and currently the most popular), though there are other ways, such as:

  • pseudocode on a white board (which illustrates the solution, but doesn't actually run or do anything, unfortunately)
  • punch cards (now considered obsolete)
  • Maybe programmable logic arrays or if you want your solution to be implemented directly in hardware (though mostly likely there will be some typing to get the solution from your brain to the PLA, I don't know how common it is to "code" these things directly - I don't really work with them , just know of them from others who do).
  • people (I heard about a group recently that implemented sorting algorithms as a dance)
  • rocks in a desert. ;)
share|improve this answer

If you want to be good at programming it is repetitive but the same can be said for anything. Repetition is at the heart of mastering any skill.

share|improve this answer

Much of the act of programming is typing. Painting involves stroking with a brush but calling repetitive is pretty superficial.

Would they apply that logic to: - Sales people talk on the phone a lot. - Managers go to a lot of meetings. - Singers just sing. - Actors repeat scripts.

If so, that's why they're not a programmer.

share|improve this answer

Well programming can really be a pretty repetetive task. Especially when the infrastructure has been built, the boring process of building the same dialog/business software (only slightly different) over and over again starts. You're lucky if you don't have to participate to meet deadlines or if you have enough juniors to do that kind of work.

share|improve this answer
1  
Depends on what kind of work you do, I guess –  Anto Apr 27 '11 at 15:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.