Newsvine
  • Welcome
  • Help
  • Report Bug
  • Conversation Tracker
  • Your Column
  • Replies
  • Friends
Type Comments Since You Last CheckedArticle Source Last Checked Stop Tracking All Clear Tracking All
Advertise | AdChoices
Log In | Register
Close the Login Panel
Existing users log in below. New users please register for a free account.

New Users:

Existing Users:

E-Mail:
Password:
Forgot Password?
Please enter the e-mail address or domain name you registered with:
E-Mail/Domain:
Back to Login
Log Out
  • Top News
  • Local News
  • World
  • U.S.
  • Sports
  • Politics
  • Tech
  • Entertainment
  • Science
  • Business
  • Health
  • Odd News
  • More
    • Arts
    • Education
    • Environment
    • Fashion
    • History
    • Home & Garden
    • Not News
    • Religion
    • Travel
Visit Chris from MN's column >>

CHRIS FROM MN

Home Page
One more voice in the internet wilderness
Articles Posted: 23  Links Seeded: 12
Member Since: 6/2008  Last Seen: 1/25/2010

What is Newsvine?

Updated continuously by citizens like you, Newsvine is an instant reflection of what the world is talking about at any given moment.

Get a Free Account
Help
Fun Stuff
  • Your Clippings
  • Leaderboard
  • E-Mail Alerts
  • Top of the Vine
  • Newsvine Live
  • Newsvine Archives
  • The Greenhouse
  • Recommended Articles
  • Wall of Vineness
Put a Seed Newsvine link on your own site

Computer Programming Is Hard!

Sun Aug 31, 2008 7:36 PM EDT
computers, software, fiction, computer-programming, software-engineers, sbutki-writing, programmerdude, computer-programmers
By Chris from MN

Computer Science is no more about Computers than Astronomy is about Telescopes.

Most computers are much smaller.

A few are much bigger!

Advertise | AdChoices

Computer Programming is hard! Most people think it's easy, because they know some nine-year-old who "programs." But there's a difference between fooling around with the computer and building software applications. Here's the deal.

When you write a full-blown computer program, you have to get both the syntax and the semantics absolutely, 100% correct. It's like writing a large novel in which there can be no spelling errors, no grammar errors and no typographical errors of any kind. And that's just the syntax part. The novel also has to make complete sense. There can't be any of those little "oops" moments that fans love to spot. (For instance, you can't refer to some distant character as a barber and later as a grocer.)

So a software application is like a large novel with zero mistakes. That's just the "getting it right" part. It also has to solve a problem or meet a need. It has to be designed for a specific purpose. In this sense, a software application is like a large building.

What this means is that good software writers are part novelist, part researcher and part architect. And obviously doing that well requires some degree of training and possibly some native skill. At the least, it requires an aptitude for detail and the ability to look stuff up (which computer programmers do constantly).

It also requires the ability to constantly learn new material. There's a piece of advice I give newbie programmers: Learn to learn; you'll be doing it from now on. Whether it's a new language, a new protocol, a new method or a new programming tool, there's always something new to learn. It's definitely not the career for the casual!

The problem is that right now, there's no licensing or oversight for programmers. Anyone can call themselves a programmer, and many "anyones" do. There's a huge fraction of working programmers who should be working elsewhere.

This all is why the term "software engineer" is so offensive to Real Engineers. Real Engineers have licenses and certifications and prescribed educations. Software Engineers

[*DING*]

D'oh! At least I got to the punchline! :-)

© 2008 Chris from MN

  • Enjoy this article? Help vote it up the 'Vine.

Back To Top | Front Page

Published to:

  • Chris from MN's Column
  • Groups: Newsvine Blue
  • Regions: none
  • Public Discussion (16)
Chris from MN

My entry for Scott's Computer Programming ten-minute topic.

(I "cheated" to the extent of running spell check and correcting two typos and glaring grammatical error.)

  • 2 votes
Reply#1 - Sun Aug 31, 2008 7:43 PM EDT
Chris from MN

The caption for the first photo reads:

Scientists from the RAND Corporation have created this model to illustrate how a “home computer” could look like [sic] in the year 2004. However the needed technology will not be economically feasible for the average home. Also the scientists readily admit that the computer will require not yet invented technology to actually work, but 50 years from now scientific progress is expected to solve these problems. With teletype interface and the Fortran language, the computer will be easy to use and only

The image scan I have cuts off there. The 50 years figure and 2004 date the photo circa 1954.

  • 2 votes
Reply#2 - Sun Aug 31, 2008 7:58 PM EDT
Chris from MN

What I want to know is, why does it need (not one, but) two steering wheels?

  • 3 votes
#2.1 - Sun Aug 31, 2008 8:01 PM EDT
removed1234Deleted
Chris from MN

Believe it or not, it was big news when IBM allowed their sales people to not wear neckties at a national convention. Or maybe it was remove their jackets. I forget; it was really long ago.

  • 2 votes
#2.3 - Sun Aug 31, 2008 9:04 PM EDT
Reply
removed1234Deleted
Scott (Scoop) Butki

Good piece. Solid writing.

Believe it or not, it was big news when IBM allowed their sales people to not wear neckties at a national convention. Or maybe it was remove their jackets. I forget; it was really long ago.

I have a church friend who worked for IBM during that period he's 70-something so if you have a specific question you want me to ask him I can do so. He was a go-beween between IBM and some government agencies.

My dad used punch cards for his job and I remember being so excited when he had it make my deck of cards. That was probably foreshadowing for my foray into programming.

  • 2 votes
Reply#4 - Mon Sep 1, 2008 10:33 AM EDT
Chris from MN

Thank you, sir!

Well, ask him the details on how IBM loosened their very strict dress code. I believe this was all post-PC, so sometime in the late 80s, maybe? (On the other hand, I was doing some work with IBM SDLC systems, so it's possible I was aware of IBM culture earlier than that, but I really do think post-84.)

I wish I did have some of my old card deques. JCL-wrapped PL/I or FORTRAN with the diagonal magic marker stripe down the side to help sort them after you've dropped them....

I do still have some of my very first student programs on 7-bit punched paper tape! :-)

  • 1 vote
#4.1 - Mon Sep 1, 2008 5:41 PM EDT
Reply
Andimia

Don't forget those times when the code should work according to all logic but for some reason it just doesn't. There's also the times when the code should not work according to all logic but for some reason it just does.

I've seen code riddled with comments like this: < !--WTF don't know why this works but it does-->

  • 3 votes
Reply#5 - Mon Sep 1, 2008 9:46 PM EDT
Chris from MN

Welcome by, this is good. I have working programmers in the Computers thread and working artists in the Art thread! :-)

Heh, yeah, sometimes it's like doing this jigsaw puzzle with many thousands of pieces and some of the pieces you can't see and have to kind of fit blindly.

Doncha just love it when the docs for an API don't bother mentioning lots of "unimportant" details, so you have to start throwing random values into the thing to see what happens.

  • 2 votes
#5.1 - Mon Sep 1, 2008 10:14 PM EDT
removed1234Deleted
Chris from MN

To some extent, it depends on the nature of the problem. Sometimes it's obvious where the problem has to be, other times it can be very mysterious.

In some cases, like troubleshooting a radio receiver, there's a progression, so you can jump in the middle and see if things work in the middle. If they do, the problem is "down stream;" if not, the problem is "up stream." Jumping in the middle of a progression cuts the possible trouble locations in half.

Sometimes programmers pepper the code with "print" statements that write to a file. This gives the programmer a log describing what's going on moment to moment. It's as if a piece of paper could keep a log of its course through your press. The log lists conditions along the way. Or sometimes the log just dies, so you know that's when the killer jumped out of the bushes.

Modern development systems provide programmers with a wonderful tool, called a debugger. A debugger lets you step through the code inch by inch. It's as if you could step a piece of paper through your press inch by inch but at the same time maintain all conditions of full speed. But at each step of the way, you can inspect all parameters before continuing.

But in the end, just as with debugging a press problem, it's really just detective work. It's based on you knowing how your press is supposed to work, so you need to find where and why it's not. And just like with presses, the more experienced you are, and the more you know about printing and printing presses, the more likely your response to a bug is, "Oh, that."

  • 3 votes
#5.3 - Tue Sep 2, 2008 12:00 PM EDT
removed1234Deleted
Reply
Leave a Comment:
You're in Easy Mode. If you prefer, you can use XHTML Mode instead.
You're in XHTML Mode. If you prefer, you can use Easy Mode instead.
(XHTML tags allowed - a,b,blockquote,br,code,dd,dl,dt,del,em,h2,h3,h4,i,ins,li,ol,p,pre,q,strong,ul)
Newsvine Privacy Statement
As a new user, you may notice a few temporary content restrictions. Click here for more info.
FUN STUFF:
  • Leaderboard |
  • E-Mail Alerts |
  • Top of the Vine |
  • Newsvine Live |
  • Newsvine Archives |
  • The Greenhouse |
COMPANY STUFF:
  • Code of Honor |
  • Company Info |
  • Contact Us |
  • Jobs |
  • User Agreement |
  • Privacy Policy |
  • About our ads
LEGAL STUFF:
  • © 2005-2012 Newsvine, Inc. |
  • Newsvine® is a registered trademark of Newsvine, Inc. |
  • Newsvine is a property of msnbc.com