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:
- 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.
- 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.
- 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.
- I hope that your curriculum teaches these things in order of importance:
- how to formulate programming problems into elements that can be
programmed independent of the language.
- that software is usually just an
element of an overall system, and that there is significant work in
addition to programming.
- Lots of math and logic type classes to help develop
problem analysis skills.
- 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.
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 / sbloch@adelphi.edu