One thought would be that rather than having it be a binary certification, rather it’s a grade. There’s only one test, and everyone takes it, but the level of certification granted is dependent on what grade you got.
I’ve been programming professionally for 15 years and there’s a lot on that list that I’ve never needed to do. For example, I’ve never needed to know anything about cryptography; it’s just not a part of any of the programs I ever work on. If I need to work on a program that involves cryptography I’ll learn it then.
Some companies might be impressed by a piece of paper, but others will want you to have the specific skills they need to solve their specific problems.
(Frankly, I don’t have a CS degree at all – all my degrees are in physics.)
My Ph.D in Computer Science is nearly 30 years old, and I couldn’t pass the test either. And it is flawed. Most people who design computers don’t use logic gates any more - they use Verilog. There is nothing about computer architecture, which is a lot more important. The field moves, and we subset ourselves into areas, so those with experience aren’t going to know a lot of the areas in the exam. When I was in school there was a lot less to learn. I happened to work on object oriented programming, long before C++, but didn’t work on databases.
Tsk, tsk. The crappiness of Windows doesn’t have a lot to do with the incompetence of programmers, but rather the top level management decision to take an OS meant for a standalone PC and kludge it into one working on a network, while maintaining backwards compatibility. UNIXes are far superior because they had some level of security built in from the start, thanks to their ancestry in Multics which had a lot of excellent security features. Windows started from a very different place, and they can’t be blamed for not looking into the future. They can be blamed for not giving a crap until they had terrible publicity, but that is the fault of management, not of any programmers.
BTW, anyone who had the pleasure of writing documents in runoff or troff/nroff knows excactly what HTML is - and it isn’t a programming language.
It wouldn’t matter if every programmer in the world was tested & certified and a gen-u-wine Grade A Super Duper Software Slinger. There’d still be marketing people coming along telling us that the project that will take 6 months to do correctly needs to go to market in 2 months and it doesn’t matter if the code is a piece of crap and untested and full of bugs, they need to START SELLING IT NOW NOW NOW!
You want good software? Teach the marketing guys to believe what the tech people tell them and stop thinking we’re delaying because we say that we’d like to, you know, design and test the software as well as just code the stuff.
Some of the pyramids of Egypt contain a splendid lesson about this. On a documentary, the camera studies various internal doorways and passageways that have an early architectural form that is nearly an arch, and clearly uses material to better advantage. However, nearly at the bottom of each arch is inserted a huge, heavy, beamlike long block of stone. The announcer intones, “It almost looks like the workmen had some early understanding or notion of arches, but obviously they didn’t.” I think the only thing obvious about it is that the workmen had supervision.
The hell it was. When the situation calls for it – and you had better believe that the control software for a power plant qualifies – they actually do real engineering.
With your proposal, there would be no Linux, no Firefox, no GNU project. Nobody would have ever heard of Richard Stallman because he would have failed miserably in the 80s to attract volunteer coding talent.
If the only thing you know how to do is program, there’s a certain point above which the marginal value of talent starts to drop off really quickly. We don’t need proof that so-and-so is a rockstar programmer because the situations that really require rockstar programmers are extremely rare. What we do need is proof that a given individual understands how to put together a large, maintainable, extensible and well-documented system in a reasonable time frame, and that they can lead a team of developers in executing such a plan. That’s where software engineering certifications come in, and you had better believe that risk and cost management are vital skills for any engineer.
Regarding unreasonable schedules and demands, there’s not necessarily much that can be done for a lot of projects. But if a given piece of software requires a PE’s approval to go forth, and that PE has strict ethical requirements to not sign off on unreasonable demands, then you will see those customers become much more reasonable quickly.
Furthermore, that real engineering requires familiarity with real-time systems and discrete-time control theory. What on the test in the OP is relevant to that?
Thanks to DoD requirements - no doubt foisted on them by the Certification Industrial Complex - I have earned my Security+ and CISSP certifications. This has cost me and my company hundreds of dollars in test fees, a similar amount in test prep books and materials, and many hours of time I could have been billable. I’ll need OS-specific certifications as well, some of which are hideously expensive, and require weeks at courses. Yup, weeks away from work - who in the heck can afford that?
Then to maintain my certifications I’ll need to take more time away from work and attend conferences, take courses, etc., all at tremendous expense to my company, or perhaps to me.
And the former president of one of the certification bodies owns a hacienda/museum in Mexico! El Cite
This is what my test fees go for?? :rolleyes: :mad: :mad: :mad:
All of this ejamacation have not changed my work practice at all. Even if it did, my government client does not have the budget for any such changes.
But after all that test prep, I do know that the answer to any question is either “Mandatory Access Control” or “Make a plan”. If your hair is on fire, you don’t pat the fire out, you don’t drop and roll, you don’t call the fire department, you MAKE A PLAN. You don’t have a plan, you don’t have a list of plans you need to make in advance, you make a plan - on the fly and while the crisis is happening. Because that’s how the test questions and answers are worded. :rolleyes:
The CISSP test is described by its sponsoring organization as “a mile wide and an inch deep.” Great, just what we need, a bunch of people with a piece of paper saying they know something when they have no depth whatsoever. If computer security is as serious a topic as the certification industrial complex would have us believe, then we don’t need tests that are a mile wide and an inch deep, we need tests that cover the entire cubic mile. Otherwise we are just jerking, um, engaging in a non-productive activity.
I have had a low opinion of computing certifications since I first started running into MCSEs. It seems as if all of them got the exam courses with an extra side order of arrogance. These boneheads insisted that since M$ sold them a course and a piece of paper they knew everything there was to know about computing. Most of them didn’t know what an IP address was, even after I told them. These were the kind of guys who you had to explain that the joint in their arm between their shoulder and wrist was their ELBOW, and they orifice they pooped out of was NOT THEIR ELBOW.
I know that certifications, licenses, ethics boards, liability, and liability insurance have their place in the medical and legal professions, the trades, and certain forms of engineering, but I don’t think computing hs developed to the point that we can just have a test and say “this guy is a programmer” and “that guy is not”. My experience with computing certifications makes me wonder how much good the other certifications actually do - but that’s a whole other thread.
Let me close with an anecdote from the introduction to a certification exam study guide I’m going through (when I’m not SDMB’ing). The author was interviewing people for a computing tech position at his company. He wanted someone who could assemble PCs from hardware components, install software, set up networking on the machines, and perform the initial tests to make sure the new machines worked. One candidate said he was an expert computer tech, but in the interview he said it was because he knew how to use MS Office products. He never installed them, just used them, nor had he built a PC. The author recommended that this person not be hired, but was over-ruled by management, and the hire was a disaster. “If only,” opined the author, “there had been some kind of certification test to show what this person really knew, we could have avoided this bad situation.”
No.
The problem was not a lack of certification. The problem was your boss was an idiot who did not listen to you, and did not back you up on the job requirements. All the certifications in the world would not have helped. Your boss just would have told you to hire the person who does well on multiple-choice tests and passed the certification exam, but who in real life does not know PC from Poop out of Chickens.
I was inside a pyramid last month, and all I can say is that I know it wasn’t built by Microsoft, since it didn’t crash on me.
The Berger Aptitude Testis an excellent test of computer programming potential. Not exactly the “Bar Exam” of programming since it measures aptitude instead of actual knowledge; but it’s very good.