I'll go one up on the article. We don't need more Computer Science
majors - we need more Software Engineering majors, and more schools that offer a
Software Engineering degree.Asking a CS major to write software is
like asking a physicist to design a bridge. You might end up with a bridge that
works, if you're lucky, but it will be ugly and expensive and may not be
useful as a bridge.I work as a software engineer and I have an
engineering degree. I spend most of every working day fixing byzantine software
disasters created by computer science graduates. Steering kids toward computer
science as a way to become programmers or software engineers gives me
nightmares. The world needs a few good computer scientists and a lot of good
@Casey SeeC++ is still highly relevant in scientific programming
applications, but yes the CS field does evolve. @MarkJAbsolutely correct--more volunteer by professionals is needed to bridge the
pay gap.@MarxistSuperbly ascertained--mathematical
abstraction is highly correlated with good programming practices.
A lot of people have pointed out the difficulties schools face when recruiting
CS teachers. One possible compromise could be for public schools to adopt
existing massive open online courses (MOOCs). Universities like Harvard and MIT
are making available high quality, semester-length introductory CS courses
complete with lectures, help forums, homework assignments (and software that
will automatically grade these), tests, etc. These courses are available free of
charge to anyone with a computer and an internet connection. I could imagine
high schools allowing students to enroll in these courses. Students could show
up to a computer lab just as they would show up to any other class; they would
work independently or in collaboration with fellow students enrolled in the same
course. A lab attendant, teacher, or counselor could touch base with them
periodically to ensure that they were adhering to the course schedule and help
with technical difficulties or other challenges that might arise. At the end of
the course, students would submit their grades from the MOOC to the school;
these would go onto their high school transcript. In this way, students could
get high quality instruction in computer science at minimal expense to the
I am pleasantly surprised that for once (maybe the 2nd time ever, I can't
remember) I actually agree with Hutterite. Way to go!
I know computer hardware from A to Z and I'm fairly fluent in the software
development process...But if you check out Python, Java, JS, C++,
C#, and others... you'll find that there are no instructions that make
sense to a normal human being. By normal, I mean someone who doesn't
already have a running knowledge in some aspect of programming they need to
know.If it made more sense, more people would do it. I've
slaved for hours and hours to find things about making a python script I needed
and found under-documentation and poor explanations where documentation existed.
Why? Because programmers aren't good at English. My experience with
everything in programming has been this way. I'm sure people will say that
it isn't for everyone to justify that... but the fact remains that the
learning resources that exist are highly inadequate. If I'm
wrong, "Code.org" would have never been made. They want to make it easy,
but the software world moves so fast, changes, and leaves a trail of
inconsistency so long that it never will be.
It's difficult to find someone capable of writing good software and
teaching others how to do it who will choose to work as a full time high school
teacher. The salary differences are just too great.I've worked
as a software engineer for 18 years. I'd love to teach a high school
computer science class, and would volunteer my time to do so and my employer
gives me schedule flexibility to do this. However, as I understand it, our
current laws or rules or whatever prevent this from happening in our public
schools. I'd love to teach full time, but there's no way I'm
taking a 5x pay cut to do so. Perhaps computers and engineering are areas where
it really makes sense to allow professionals to volunteer their time to teach at
our public high schools in order to find teachers who really have the skills in
these areas and can inspire kids to pursue a career in those fields.I'm convinced there are a lot of really smart kids who grow up in our
country with no role models to show and teach them how fun and profitable
computer programming is.
Entry level Software engineer with a BS in CS - $65KOffer to a twenty year
Software engineer with MS in CS - $37KDo the math...
The other issue is staying current. Even colleges don't stay current on CS
classes. Unlike Math, English, History, Spanish, or Chemistry or just about any
other class taught at the high school level, CS changes almost over night.
Fortran and Cobol are seldom used any where today.C++ or C# are
already being replaced. Fortunately many CS languages can be classified as 4GL
CS languages, meaning that they are written in pseudo code, but they continue to
evolve. Basic is now Visual Basic or VBA. I haven't programmed in three
or four years and I don't even know what is the hot languages today.Now ask a High School teacher to know two CS languages and then in 5
years know two completely new languages because the previous two are hardly
used, is quite alot to ask.then throw into the mix, all of the
hardware and networking skills that also change almost yearly. In order to
properly teach these classes, you need the actual hardware. If you
don't believe it, how many of you owned a tablet three years ago. That
tablet probably uses a language that didn't exist more than 5 years ago.
It is a simple math problem. Why would I leave my software job paying $110,000
with a complete benefits package for $32,000 ?
As a software engineer for over 30 years, I have a feeling some of the numbers
for future demand for these jobs may be a bit on the high side.However, based on the abysmal performance of so many software projects,
particularly those managed by government (the Obamacare web site being a perfect
topical example), I am **certain** there is a dire need for software engineering
people, especially project managers, who are capable of actually delivering the
promised software.If we were to concentrate on ensuring that
software projects were managed **only** by truly capable, experienced people
with a track record of successful project completions, the need for programmers
would be much less than is supposedly the case now or that which is anticipated
in the future.
No kidding. My kids hate the required computer literacy course, because
it's so boring. Not only that, but one of my kids opted to take it online
to avoid "wasting" a semester sitting in class. She had to follow step
by step directions to mimic formatting in an outdated version of Microsoft Word.
It was ridiculous and insulting.Another of mine took C# programming
and really enjoyed. I've never seen any encouragement for her to do that,
even though she's planning to major in engineering in college. It came in
handy that she was the only one of her group at an engineering camp who had
taken the course when one of the challenges involved C# programming.
I have an undergraduate degree BS - in computer science. I taught CS at
Highland High for two years early in the last decade. Of a class of 35 kids,
typically only 5 or so were able to cut their own code. So kids today are tech
savvy in the way of using devices, but their math backgrounds are so poor as to
keep them from being decent code cutters.
I had computer science in High School. It was an awesome class and I loved
learning how to program using C++. More resources need to be put into it. The
curve is being set so high that our students need to be able to function at
higher and higher levels earlier in their careers. I think that if we had more
programs like it in our schools then we can make computer scientists that are
more and more prepared when they get to the field and college and the workload
can be less rigorous.
Great article. I really think it comes down to the difficulty of getting good
instructors in place that understand the material, as pointed out in the
article. It's hard enough finding a computer science grad who wants to
teach high school kids, and even harder to convince one to do it at that pay
grade. I think kids would be plenty interested in the material, if solid
programs were available.
I don't know; do you think an entire society that openly disdains
knowledge, and calls the intelligent geeks, nerds, dorks and poindexters while
lionizing pro sports participants and celebrities has anything to do with it?
We're getting what we want, and it's causing direct harm to our nation
as a result.