I'm on the fence about the notion of a profession for software "engineers". One thing that worries me is the uncertainty around who would establish credentialing (For instance, I was a math major - would a degree in computer science be required to sit for the exam?)
I do see more than a few benefits to it as well, though. For starters, we'd be able to start treating each other as professionals. I've been on both sides of the interview, and I personally don't enjoy asking an experience programmer how to do programming exercises that clearly (there's no way to spin this) just amount to testing whether the person has minimum competence. I'm not questioning the value of knowing how to print a binary tree in order, but I actually think it becomes an almost degrading ritual after a while, and we all participate in it. Do physicians have to re-study organic chemistry every time the interview for a new job, the way programmers wonder if they are going to need to explain how the JVM works, or explain in detail how a random forest works, or how to find long term probabilities in a markov chain, or answer questions about operating systems? Personally, I would enjoy not having to re-load all that knowledge into "exam ready" memory in the weeks leading up to an interview (and having to be strategic about it, because I can't afford to drop everything at my job and study for nothing but an interview for several weeks).
A genuine professional exam might cover the core, and it would (if done well) actually cover the issues that we, as a profession, have decided are critical. Again, I'm not sure if this would work, or if it wouldn't do more harm than good, it's something that I find intriguing. Suppose there really were a good, rigorous, highly regarded, professional exam (perhaps including an in-person component, as with nursing and medicine). This might take the exam away from the whim of the employer and return it to the practitioners in the field. Employers are still free to ask what questions they like, but they'd acknowledge that they're re-examining a candidate on subject matter knowledge that was already validated by a group of professionals, or that they've decided to quiz heavily on subject matter that is outside that realm (in essence, acknowledging that they're looking for niche expertise, and that this isn't about verifying that someone isn't a fraud).
I think we should acknowledge in our field just how grueling these "exams" are every time we apply for a new job. People talk about how tough the bar exam is in California - it's 18 total hours of exam over 3 days. I've had periods of interviewing (at more than one company) that were about that long. It takes a while to prepare for the bar, of course, but here were some of the topics I was asked about over 3 8+ hour day of interviews (total interview time for two different math oriented programming jobs…)
build a binary tree
traverse a binary tree
add a node
remove a node (describe how, answer questions, write a bit of code)
how to keep it balanced (some code, probing questions, but not obliged to write full code for red-black)
how to find the dual of the primal in linear programming, and explain the relationship
code up a singleton
identify the lack the strategy and factory patterns in a long if-then bit of code, show how to do it with patterns
convert a database table to a bunch of indicators (T/F)… is this strange?
find long term state of markov chain
model a shipping system as a graph and suggest how to optimize it mathematically
detect a cycle in a linked list
convert a linear program into something that can be solved with dynamic programming (i.e., it didn't need to be an optimization, it could be solved with a greedy algorithm)
print all permutations of a string, using recursion
swap two integers without creating a third variable (asked over lunch)
There were also interviews with management, and so forth. I can't possibly tell you if this was worse than the bar, but it took years of preparation, and I failed to get an offer from either company. I'm not sure why, but I didn't rock the tech interview. I was busy at the time and also had a full time job to do (and a young child to take care of at home). I've taken exams on everything listed above at one point or another. People talk about the "low barriers to entry" for programming, as if legal licensing barriers are the only kind. Barriers to entering programming are pretty heavy, and they can be capricious.
I do see more than a few benefits to it as well, though. For starters, we'd be able to start treating each other as professionals. I've been on both sides of the interview, and I personally don't enjoy asking an experience programmer how to do programming exercises that clearly (there's no way to spin this) just amount to testing whether the person has minimum competence. I'm not questioning the value of knowing how to print a binary tree in order, but I actually think it becomes an almost degrading ritual after a while, and we all participate in it. Do physicians have to re-study organic chemistry every time the interview for a new job, the way programmers wonder if they are going to need to explain how the JVM works, or explain in detail how a random forest works, or how to find long term probabilities in a markov chain, or answer questions about operating systems? Personally, I would enjoy not having to re-load all that knowledge into "exam ready" memory in the weeks leading up to an interview (and having to be strategic about it, because I can't afford to drop everything at my job and study for nothing but an interview for several weeks).
A genuine professional exam might cover the core, and it would (if done well) actually cover the issues that we, as a profession, have decided are critical. Again, I'm not sure if this would work, or if it wouldn't do more harm than good, it's something that I find intriguing. Suppose there really were a good, rigorous, highly regarded, professional exam (perhaps including an in-person component, as with nursing and medicine). This might take the exam away from the whim of the employer and return it to the practitioners in the field. Employers are still free to ask what questions they like, but they'd acknowledge that they're re-examining a candidate on subject matter knowledge that was already validated by a group of professionals, or that they've decided to quiz heavily on subject matter that is outside that realm (in essence, acknowledging that they're looking for niche expertise, and that this isn't about verifying that someone isn't a fraud).
I think we should acknowledge in our field just how grueling these "exams" are every time we apply for a new job. People talk about how tough the bar exam is in California - it's 18 total hours of exam over 3 days. I've had periods of interviewing (at more than one company) that were about that long. It takes a while to prepare for the bar, of course, but here were some of the topics I was asked about over 3 8+ hour day of interviews (total interview time for two different math oriented programming jobs…)
build a binary tree
traverse a binary tree
add a node
remove a node (describe how, answer questions, write a bit of code)
how to keep it balanced (some code, probing questions, but not obliged to write full code for red-black)
how to find the dual of the primal in linear programming, and explain the relationship
code up a singleton
identify the lack the strategy and factory patterns in a long if-then bit of code, show how to do it with patterns convert a database table to a bunch of indicators (T/F)… is this strange?
find long term state of markov chain
model a shipping system as a graph and suggest how to optimize it mathematically
detect a cycle in a linked list
convert a linear program into something that can be solved with dynamic programming (i.e., it didn't need to be an optimization, it could be solved with a greedy algorithm)
print all permutations of a string, using recursion
swap two integers without creating a third variable (asked over lunch)
There were also interviews with management, and so forth. I can't possibly tell you if this was worse than the bar, but it took years of preparation, and I failed to get an offer from either company. I'm not sure why, but I didn't rock the tech interview. I was busy at the time and also had a full time job to do (and a young child to take care of at home). I've taken exams on everything listed above at one point or another. People talk about the "low barriers to entry" for programming, as if legal licensing barriers are the only kind. Barriers to entering programming are pretty heavy, and they can be capricious.