The Problem, Better Defined


Once you decide to write a program, you must then get calibrated. Ever since K&R, it has been almost a cliché to write your first program to do nothing more than print or display the message Hello, world. While this does teach you how to print out a string and use the compiler and linker/loader, it doesn't do much else. You don't get enough return on your investment to consider this even a first effort.

I believe that the first program shouldn't be so trivial. Nothing ventured, nothing gained. On the other hand, you don't want to make this into a huge effort. You want a project that is just hard enough to cause you to learn how to implement things in the idiom of the new language, yet you don't want to get confused by having to do new domain learning. What this means is that you need a standard problem, so to speak, so that each time you have to re-implement its solution in a new programming language under evaluation, you have a calibration. In other words, you don't want to have to invent new science or devise new algorithms. Theoretically, the exercise should get easier each time you do a new implementation in a new language, because the problem space is already familiar to you, and you can spend more of your time judging how well the new language articulates the solution. If the new language takes you four times as long as usual to solve the standard problem, then you might begin to ask questions about the new language and/or its learning curve characteristics.[2]

[2] There is, of course, the possibility that we are losing prowess with the passage of time. Only the true pessimists among us would admit this possibility.




The Software Development Edge(c) Essays on Managing Successful Projects
The Software Development Edge(c) Essays on Managing Successful Projects
ISBN: N/A
EAN: N/A
Year: 2006
Pages: 269

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net