Some comments from a parent

The following comments came from the parent of a student in Louise Hilton's TeachScheme!-based computer science class at Bingham High School in South Jordan, Utah.

My background is in electrical engineering and applied mathematics. I took one programming class in high school (FORTRAN) and two programming classes in college - one in BASIC (it seems odd to have taken BASIC as a college course) and one in structured programming. This was all well before C++ (or even C) was developed.

In my career I ended up using computers a lot in my analysis and modeling of communications systems, and from there I ended up doing "real time" embedded software, and finally I ended up managing the software types on a large wireless telephone product development project. This project involves all type of software - embedded, analysis tools, user's manuals, product support, prototyping, Windows GUI, configuration management, etc.

I give this background just so that you know where I am coming from. I have not had formal training in software development or programming.

Answers to your questions:

  1. I have interviewed about 50 programmers over the last 18 months. The most important thing to me is that the candidate has the programming skills needed to fill the position, so experience matters a lot. Beyond that, especially for new grads, I look closely for what electives the candidate had in college, and for analysis and problem solving abilities. My best programmers are the ones who have a high level of training in other fields in addition to software.
  2. The strengths I think are most important are problem solving and analysis skills. Too many programmers simply want to write code. The most useful programmers are the ones that can understand the requirements, solve problems, design the software elements, document their work, test it, and integrate it into a system. Writing the software really is a small part of the process. I think the next most important skill would be communications skills.
  3. The greatest weakness I see in programmers is the unwillingness to properly design, document, and test their software. Too many programmers just want to sit at their desks and hack the keyboard. The next greatest weakness is an attitude that software is the end product so programmers will argue about how elegant they can make their code. Software is almost always just one of the components of a system, and yet many programmers disconnect themselves from the system.
  4. I hope that your curriculum teaches these things in order of importance:
    1. how to formulate programming problems into elements that can be programmed independent of the language.
    2. that software is usually just an element of an overall system, and that there is significant work in addition to programming.
    3. Lots of math and logic type classes to help develop problem analysis skills.
    4. One or two different languages.
    From my son's comments, I think you are doing the things pretty much as I think they should be done. I know he says that he must write tons of comments before he can write the code, and that writing the code is a waste of time since it is not C++. He does not get much sympathy from me.
  5. These are my observations of managing a software group for the last four years. Remember that I am not a trained software developer, so weight my opinions accordingly.

    Thanks for the opportunity to let me express my opinions.

    Last modified: Fri Oct 15 17:36:37 EDT 1999
    Stephen Bloch /