This is something a little different. Hopefully a conversation starter. In 1994, after about 18 years in the computer industry working with mini-computers, I found myself looking for work. As I surveyed the environment in computing it was pretty clear that the age of the mini-computer was if not already dead pretty close to it. The future was clearly in personal computers. I bought as much PC as could afford, picked up a used copy of Visual Basic and started to retrain myself as a PC person. This fall I again find myself looking for work but the environment is not as clear now as it was then.
There is a lot of talk about a post-PC era where PC refers not just to the WinTel set of personal computers but the whole idea of the desktop computer that doesn’t travel. The cloud is a big deal. Computing devices are in some sense being relegated to thin-client status. Not quite the dumb terminal of timesharing or the minor local “smarts” of programmable block mode terminals of course. But not the place where most of the processing gets done either.
And the devices! Smartphones, tables of various sizes, laptops of power, and there are still desktop systems for a lot of tasks. Plus of course special purpose appliances like ereaders (I love my Kindle) and music/media players. These are personal devices and they have some of the attributes of computers but they are more focused in purpose.
Software? Windows, MacOS, lots of flavors of Linux, iOS, Android, Windows Phone, special purpose versions of various things for ebooks, music players and hybrid devices like the Kindle Fire. In some respects I love the diversity of operating systems as I believe it suggests a lot of innovation is and will be taking place for a while. It doesn’t make it easy for someone who wants to develop for the most number of people though.
With all this diversity where does one put their focus? What is the future that gives one the most options and hope for a long career? Now a lot depends on where you are in your career.
For a high school students I would argue that it doesn’t matter. Things will be much more clear in 4 to 8 years when you get out of college. For now focus on the basics and the concepts that will build a good foundation for the future. Any of these platforms will give you a chance to learn to code, learn to use APIs and even develop some code that will make you some money. Phone apps? You can learn the same basic concepts on all three major platforms. Tablet apps? Windows, iOS or Android are all open to you. You don’t have to bet your career on one or another because things will definitely look different for you later. Take advantage of the freedom to learn to get some breath of experience.
For university students it starts to get more serious. Moving out into industry is getting closer. I do believe that a solid background in theory and concepts will be worth getting not matter which way the wind blows. While you may want to pick one area to concentrate on don’t get too attached to it. Be ready to switch platforms if you need to do so.
For someone currently looking for work it gets scary quickly. Do you bet on Windows 8 being a success and start writing Windows Store apps? Or do you assume the tablet version of Windows will go as far as earlier tablet offerings from Microsoft went and look to do your tablet development for iOS or Android? Will the fragmentation of the Android platform doom it to an early bust? Will the fact that there are so many iOS apps mean yours gets lost in the noise? Who knows!
The same is true of phones. iPhone is still the cool device that gets a lot of attention but there are more android phones in actual use. Will Microsoft marketing might eventually move Windows Phone into contention? Can you develop for multiple platforms in a way that is cost effective enough to make it worth while?
What about purpose built appliances? Should you be looking at the potential for creating new appliances that mix hardware and software to solve new problems? Is the Internet of Things that integrates many tiny data gathering devices to create massive data sets that allow artificial intelligences to do things we haven’t yet considered? if so how do you get into that early enough to make a mark?
The more I think the more questions I come up with. What issues are you thinking about? Where do you see the industry going? Will Microsoft be gone in ten years? Will someone take out Google in search engine ability? Will Apple be able to keep up its record of innovation without Steve Jobs? Will we see a return to an OS monopoly in the future or is fragmentation the way things will stay?