Print

The Trouble with Gerrold: Lessons from programming languages



David Gerrold
Email
June 30, 2012 —  (Page 1 of 4)
At the beginning of the personal computing revolution, several pundits suggested that “in the future, schools will teach programming skills the same way they teach reading, writing and arithmetic.” Well, yes and no.

Yes. Many schools are teaching programming skills the same way they teach reading, writing and arithmetic. Badly. (Ask anyone who has taught college level courses for more than two decades about the deteriorating levels of skills we’re seeing from high-school graduates. Of all the dangerous trends in this country, that one has to be the most terrifying.)

And no. Nobody is teaching programming skills as an equivalent to reading, writing and arithmetic, which was what the original assertion predicted. For the average person, programming remains an arcane craft.

Because I’ve had some experience in code wrangling, I regard programming as one of the most profound of all skills a human being can learn, because it’s thinking about thinking. It looks like it’s about code, but on a much deeper level, it’s about the way we think about problems.

Code isn’t just a list of specific steps to take to get from hither to yon, it is the hands-on application of an algorithm. An algorithm is a specific methodology. It is not necessarily the only applicable methodology, and sometimes it isn’t even the best or most appropriate methodology; that depends on the programmer. But if it gets you from hither to yon in a reasonable amount of time (instantaneously), that’s an acceptable result to the user.

In the hands of a skilled visionary, an algorithm becomes a place where philosophy, invention, discovery and sometimes even sheer artistry get mashed together in ways that produce wondrous results, things that not only were not possible just a couple decades ago, but weren’t even conceivable.

The essential building block of an algorithm, the single most important part of any algorithm, is this: If...then....

All programming depends on this single statement. An algorithm is a decision tree, and the if...then... statement is how it makes decisions. Add the ability to do loops, and you have the two essentials necessary for a programming language. (Everything else is procedural mechanics.) While...do... and do...until... lets you drill down to specific cases of if...then.... This was the essence of BASIC.



Related Search Term(s): C, education, Excel, Visio

Pages 1 2 3 4 


Share this link: http://sdt.bz/36774
 


Comments


07/02/2012 09:44:41 PM EST

For a look at a beautiful example of a visual programming language, take a look at the game SpaceChem. And I am suddenly reminded of programming a Mass Spectrometer interface using LabView many years ago.

United StatesJohn Bushnell


close
NEXT ARTICLE
C11/C++11: Building blocks for the future
C gets a standardized memory model, while C++ is now “easier to teach and learn” Read More...
 
 
 




News on Monday  more>>
Android Developer News  more>>
SharePoint Tech Report  more>>
Big Data TechReport  more>>

   
 
 

 


Download Current Issue
APRIL 2014 PDF ISSUE

Need Back Issues?
DOWNLOAD HERE

Want to subscribe?