Not sure in which category I fall... If I have to believe my successor my code is awful. Although I just stayed in an hour late to fix a bug he introduced when rewriting my software to 'make it more stable'... (and it was only a 10-15 lines function too!).
But everyone's code is awful according to their successors, such is the nature of programmers
Oh, I totally agree. My point was that there are people called "software engineers" that shouldn't be allowed to touch a computer program. The term "software engineer" is abused and misapplied, such that when you hire a so-called S.E., what you get is little better than a VB copy&paste monkey.
I would like to see the term S.E. apply only to those people that have demonstrated engineering skills, and definitely NOT by whether they hold a fancy CS degree.
Thank you for getting to the impracticality of it in an undergraduate degree.
My Degree is Computer Science, and I earned a BSE. The E came from the math and physics of it.
It is earned through the college of Engineering. This was 1992, Michigan State University.
We studied Computer Programming and Software Engineering Concepts. I stress the Concepts.
Software should work repeatably. We learned the Waterfall approach (literally at the time the only approach discussed outside of "ad hoc" which was shunned, but recognized as how we do programming for all of our classes, LOL).
Roughly stated, We had to cover:
- General Programming, algorithms, data structures, theory on problem solving, etc (Pascal)
- Write C/Assembler (Motorola).
- Write an Assembler, in C (literally the next course)
- Write a compiler, DB Engine and/or an AI program (in LISP no doubt)
We had to CARRY our code from trimester to trimester, to teach us a lesson that bad code begets big problems when you add more functionality to it! A valuable lesson in deed!
And then we graduated...
I have absolutely no idea where you would INJECT the 2-3 years it would take to make someone a Professional Software Engineer in that environment. And given the choice, I would rather be a CODER who can actually solve problems, use References (patterns, later, after I graduated) and the like.
Finally, we have an astounding shortage of programmers and programmer/analysts going into and coming out of the Universities. The graduating classes were shrinking as I was graduating. The kids don't have the math and problem solving skills coming out of High School. One of my friends flunked out because he could not get passed the Calculus Based Physics. He writes software without a degree and does a pretty decent job.
We have a MANAGEMENT problem whereby management does not understand that Designers should Design. Engineers should Engineer and Developers should code! Most small companies I see can barely afford ONE of these guys (and I see many who actually TRY TO HIRE the CHEAPEST ONES, LMAO!), much less hire the team.
The owners/managers think that because they can explain it, it can't be that hard. They don't need to pay to have an ENGINEERED solution. Sometimes they are right. Mostly not. Not in the long term. But I don't think 80% of the software written would have been started if the COSTS were known up front!
Everyone wants software that pays for itself immediately these days. Not even a 3 year payback. It reminds me of Hollywood where they build props. They LOOK REAL in the movie, but the metal is really just WOOD with paint. Management wants the cheapest solution they can get. I can't fault the programmers who are not in an environment that practices the proper approaches to software development and engineering...
This makes me wonder if we the solution providers are in fact part of this problem in that we have explained it too clearly in some cases. On top of that we have undermined ourselves because that seems more natural. In other words, we told them it was easy. While it may have been easy for us that is only because we have had the training and years of experience to make it easy. We need to stop doing that and gloat a little. We should not obfuscate the explanations, be we need them to understand that it was the skill that made it understandable.
My comment was actually before that step. My primary role is a consultant. I go where no IT teams (or small, overwhelmed ones) exist. It is not that the developers have said it is easy. The managers/owners think it can't be that hard, simply because they can explain it. (ie, they ONLY skill they lack is software writing/programming). Ergo, we will hire a programmer to do X.
But X is only what they WANTED, probably NOT what they NEEDED. Certainly not designed to answer any other questions, etc.
It is my fault when I fail to educate the client. My job is to listen. Then to understand. Then to question everything. Then I should show them what they probably need and can usually afford. I try to put this in the clients terms, and I STRIVE to be WRONG OUT LOUD! I want EVERY assumption I am making stated clearly in front of the client, and they have free reign to correct me.
Only after a few iterations can I possibly know what to build. Then it is my job to build it properly... Within their constraints... Or walk away. And I certainly walk away... Sometimes I even RUN! I don't want the client who says "Whatever... I already told you what to build, just go build it".
I know it is hard to say no to the $$$, but at this point in my life, I have enough $$$ to say no to crazy people... It isn't worth the scars!
If businesses treated their software like their other Intellectual Property, developers habits would adjust to reflect that reality...
But Collin I agree with where you are coming from, and almost all of what you said!
Why would I want to voice command everything?
Ignoring how annoying that would be in the average office with everybody talking at their computer, phone, tablet, filing cabinet, coffee machine, ... at the same time, how much fun is it going to be to voice control a car? "Left a bit, bit more, bitmore, bitmorereallyquickohgodimgoingtodie BRAKE!!!!"
And backseat drivers will have a feild day.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
That we will see.
And it will be a massive benefit, which will be forced upon us whether we like it or not. And most won't - but manual driving is inefficient, dangerous and far too affected by skill level, mental condition, etc.. We will have to relinquish control to the computer by law in the next couple of decades.
There will be many for which this is a step too far...
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
PITFOIP has been a requested feature for long before there was such a thing as social media. At a minimum, I'm certain the desire to deliver a punch in the face across the internet has been demanded about 30 seconds after the first spam was sent back in the 80s. I strongly suspect it was desired by users of pre-internet time sharing systems as well.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt