How do you call yourself? Software developer? Programmer? Coder? Or, like me, software engineer?
Why am I asking? Why is it so important?
Well, let’s look at those above for a sec:
- Coder – Turns a spec into code as written, like someone digging a ditch (If you want to be a coder, be a clean one )
- Programmer – Coder that understand algorithms.
- Developer – Programmer that develops new systems, uses different languages and get different platforms to communicate.
- Engineer — see more below 😉
In the 60s, the Conference of Engineering Societies of Western Europe and the United States of America adopted the definition of “professional engineer” as follows (if you find it daunting see excerpt below):
A professional engineer is competent by virtue of his/her fundamental education and training to apply the scientific method and outlook to the analysis and solution of engineering problems. He/she is able to assume personal responsibility for the development and application of engineering science and knowledge, notably in research, design, construction, manufacturing, superintending, managing and in the education of the engineer. His/her work is predominantly intellectual and varied and not of a routine mental or physical character. It requires the exercise of original thought and judgement and the ability to supervise the technical and administrative work of others. His/her education will have been such as to make him/her capable of closely and continuously following progress in his/her branch of engineering science by consulting newly published works on a worldwide basis, assimilating such information and applying it independently. He/she is thus placed in a position to make contributions to the development of engineering science or its applications. His/her education and training will have been such that he/she will have acquired a broad and general appreciation of the engineering sciences as well as thorough insight into the special features of his/her own branch. In due time he/she will be able to give authoritative technical advice and to assume responsibility for the direction of important tasks in his/her branch.
Uhh, that was long definition… Found @ Engineering Identities, Epistemologies and Values. Congrats on reading through. Here’s the excerpt:
An engineer solves problems. Takes responsibility for his tasks. Learns constantly. Follows progress in his/her branch of engineering and applies new knowledge. Has insight into the special features of his/her own branch. In due time he/she will be able to give authoritative technical advice and to assume responsibility for the direction of important tasks in his/her branch.
As an engineer, when you gain some experience, you assume responsibility for the direction of important tasks. When you take responsibility you have commitments to the business (customers/stakeholders), employers, and you really ought to know the business. Otherwise, how are you to know what are you doing?