I think the generic bit of this advice is to excel as an engineer is to focus on the business, not the tech.
I think the generic bit of this advice is to excel as an engineer is to focus on the business, not the tech.
As a consequence if one changes jobs say every 2-3 years (different domains) then they become generalist engineers.
In my experience one has to spend 10-12 months at a company to pick up a domain by being deliberate at it. It may look like a big investment but the payoff will be significant once they have sufficient context in their head.
For example, if you are developing software at Uber, there is no "domain" to speak of. Ditto for a search engine at Google. The company pioneered information retrieval in the internet age, so what's the relevant "domain" there?
Of course, if you are writing MCAS software for Boeing, having a good understanding of Control Systems, or Aeronautics (which you can gain by attending nontraditional programs in colleges or universities) will be very helpful. Same thing for something like trading firms (where it's practically formalized and there are programs that turn out quants), accounting firms (e.g., Intuit) etc.
The general advice that would still apply to both would be: understand who your client is and what they need in the context in which they evolve, be they consumers in a country you're not familiar with or mechanical engineers you barely know the job of.
- "Hey, I saw a statistic that females are anxious about taking taxis at night in France. Why don't we add a feature to let people share their locations with others?"
- "In London taxi drivers have to pass The Knowledge, a test on roads! Have we considered adding a similar pre-requisite test for drivers in that city?"
- "I noticed a lot of drivers on Reddit have been complaining that the tips aren't viewable on the app, but we have the data. Why don't we add that to the drivers UI?"
Etc... The sources of this information would be user channels like Reddit, taxi-related news sources in countries you operate in, and keeping up to date on legislation. Sure you might not have the ability to make any of these changes yet but if you stay ahead on these factors it's definitely the way to move into a position where you can have that level of impact.
I believe it was this one with a slightly different name
I must admit that this kind of attitude triggers me. I have worked in the energy sector, in engineering (but not IT) heavy companies, and many have this attitude. "its easy to learn programming", "we just need to teach the engineers python" etc etc, and I have seen MOUNTAINS OF SHIT so tall you would faint. It's easy to get tricked, because being both the user and developer at the same time can be such a boost. But the moment there are more users things get hard. The moment the code base gets so large that you can't keep it all in your head, it gets hard.
Software development is easy until its not, and it surprisingly quickly gets to the "it's not" stage. And then you get excel sheets in python.
Some "subject matter experts" make good programmers, but in my experience its not because their background, but because they are smart and have talent for it.