Predicting the future (not!)

My first post to this blog was a commentary on Intel's Software Enabling Summit, and what I thought would be a great way for developers to contribute to their future employability by learning how to thread software.

I seem to have struck a cord someplace " there were several comments from people who have been disappointed that the work that they once found really fun to do during their salad days has become obsolete or outsourced.

As I said, my perspective comes from being in development in one role or another since 1984. I got my start after grad school in love with Operating Systems. I loved OS work! At that time, there was no better way to do this than with Unix. So I became a BSD 4.x kernel developer for a large technology company, mostly supporting the unique version of Berkeley Unix for Vax's that this company used internally for engineering. That company was on a downsizing trend the whole time I was there. Even though I didn't get laid off, it was clear what the direction was, so I left to go to a startup server manufacturer (later purchased by IBM). I did mostly kernel work there as well.

After 10 about years out of school, I started to see some trends in the industry - OS work was getting "narrowed" - instead of the wide variety of developers and companies creating their own versions of Unix, the world was converging on just a few sources of OS work. So unless you were working at Microsoft, you likely would not have a lot of opportunity to do interesting operating system development.

So I made the conscious shift in my career to do applications work instead of OS work.

Was I right?

Ironically, the Linux revolution turned my analysis on its head. There are vastly more people today developing OS code than there were back in the 80s, along with tons of innovation.

So my analysis of the trends wasn't entirely correct, but it did open me up to other opportunities. I worked for a few years for a company doing a home banking product, and got familiar with developing applications for consumers. Then I started work for Intel, where I have worked on developing software for consumer desktops, servers, performance analysis work, business analysis, working closely with engineers in India, China and Japan.

Admitedly, I am not a prophet when it comes to technology futures. But who is? David Pogue of the NY Times just wrote on his blog about how people were predicting Apple's imminent demise in 1996. Guess you would feel pretty foolish today with that opinion!

So am I doing work that I love? Absolutely. Am I doing the same work I did in 1984? Absolutely not. Part of this is learning what brings me joy in work. Part of this is trying to keep my skills relevant to the current wave of technology and business.

And as I look out in the coming years at all of the hardware roadmaps I can see, the ability to thread your code has to be one of the best ways to maintain relevancy as a developer.

But it's not an easy path. Just like learning for the first time how to do object-oriented design, use Design Patterns, write device drivers, Extreme Programming or using DCOM or SOA, it takes work and discipline. Fortunately, you have friends at Intel who are trying to help make the job easier through tools, classes and the like.

Happy threading.

Dave

The opinions in this piece are mine alone and do not reflect the official position of Intel on products or strategies.
如需更全面地了解编译器优化,请参阅优化注意事项