Some time ago, my father and I had a discussion about being a registered professional engineer and what it means. He’s been a registered professional engineer (civil engineer) his entire career. He’s always told me that being registered means that you certify that your work is going to hold up and it is a matter of safety. Some states (I believe Texas), have attempted to register software engineers. I think that this is a complete and utter mistake. As a software engineer, there is no way that I can certify that my work will function properly on any machine at any time other than on my machine at the time I ship it. There are some many interactions between the hardware, the operating system, other applications, and hacks that I simply can’t say that it will work. While I’d love to have the moniker “registered professional engineer”, there is no way in good conscience that I could even apply for it if it became available.
However, I think the title “engineer” should be reserved for those that have successfully completed a 4 year engineering education. Engineer is thrown around by Microsoft, Cisco, and other companies when people complete a short course. I think that this is unacceptable. Microsoft lost a case in Canada and was told to stop using engineer for their MSCE certification. Like that will really happen. Furthermore, many programmers are not engineers; they simply code without designing and understanding the implications. This is where I see that engineers differ from programmers.
BTW, I am considered an “Engineer-In-Training” and will be my entire career as I passed the grueling California Engineer-In-Training exam while I was in college.