This article is a much-needed dose of truth and sound advice in an area (the professional side of being an engineering professional) that gets drastically ignored in most of our educations. The author’s observations match mine fairly well, and about the only thing I would add is a shorthand that I’ve myself had to learn in the past few years:

“When in doubt, remember that you are a professional craftsmen. Think, feel, act, and speak like one.”

For much more practical, particular advice about the realities of being a professional engineer, I strongly suggest reading the whole article. If you don’t, however, here’s one incredibly important point that I think more people need to hear:

You are not defined by your chosen software stack: I recently asked via Twitter what young engineers wanted to know about careers. Many asked how to know what programming language or stack to study. It doesn’t matter. There you go.

For years, I obsessed over whether I was learning the “right” languages and in doing so totally missed focusing on things that actually could have improved my professional prospects. (E.g. learning the rudiments of the businesses in which I worked, learning basic finance and economics, learning how to present myself and how to handle corporate environments and politics.) Time spent worrying about what languages you should know is just wasted cycles. Use the language that best suits the task, and, if you don’t know it, then learn it. But I think you’ll find that, for the vast majority of programming tasks, the best-suited language is “whichever one you already know.”