I've heard say that in Canada to call yourself a "Software Engineer" must be certified by the authorities just like a civil engineer. I'm curious what the process for this is? Is it about taking a test? Is there required, accredited coursework involved? What else? What resources are available to help someone with this process? Also, is there a process whereby a US citizen could get this certification?
I am from Canada and we have no such certification as far as I know.
In fact I remember this specific topic coming up during a software engineering class in university because software engineering is the only engineering discipline that doesn't require certification.
There's no certification for the specific title of "Software Engineer" except in Ontario, which has a local licensing process.
The closest thing to a nationally recognized certification process is the Canadian Information Processing Society's Information Systems Professional certification. I don't believe that either Ontario's license nor CIPS's certification are required to work anywhere in Canada. The certification, at least, is more for establishing your bona fides as an expert witness on the subject of IT.
I am not sure for all of the provinces of Canada, but in the province of Quebec you would need a bachelor in Software Engineering, and then subscribe to the "Ordre des ingénieurs du Québec"
Then you could call yourself an engineer, but there is no certificate specific to Software Engineering as far as I know.
We do have it, I know because I'm heading towards it right now. It's new though, and not available in all provinces. It is available in Ontario, BC, Alberta, Quebec and maybe others, it's gaining popularity
It's a bit of a pain. Normally, the person attempting to be an engineer would go to an acredited engineering school, then spend 4 years as an EIT (Engineer In Training) before getting their P. Eng status.
If you haven't come from an acredited engineering program, it gets more difficult. You apply stating your relavant academic and work experience, and they will asses your experience and academic standing. You'll probably have to take multiple 3 hour tests to prove you know the concepts in the courses you haven't taken, and if you can't prove you used engineering practices in your work experience, it won't count.
You can get the designation if you are a US citizen, check http://www.apeg.bc.ca/reg/nrleng.html for details. You can also contact them (or one of the professional organizations in the other provinces) and they'll gladly tell you what you need to know.
"Engineer" is a term that has legal meaning in Canada. However, there is no national governing body. Each province has an independent organization. In Alberta, the governing body for Engineers, Geologists and Geophysicists is APEGGA.
Engineers, like lawyers and doctors, must meet specific requirements in order to practice professionally as such. In order to call yourself an engineer, including software engineer, you must meet these requirements and pass an ethics exam. This is because the term engineer, under the law, is supposed to convey special meaning about your professional abilities and certifications.
You cannot build bridges without being a P.Eng, but you can write software. You just can't call yourself an Engineer unless you meet APEGGA's requirements.
Back during the SWEBOK effort, the ACM's position was that Software Engineering was too immature for licensing to make sense, and that it would do more harm than good. I don't think they've changed that:
http://www.cra.org/Activities/snowbird/00/notkin-crawk3-5.pdf
http://conway.isri.cmu.edu/~jdh/MethodsF06/res/readings/shaw_90.pdf