Hot: Single-page Web apps
Remember when URLs pointed to Web pages filled with static text and images? How simple and quaint to put all information in a network of separate Web pages called a website. New Web apps are front ends to large databases filled with content. When the Web app wants information, it pulls it from the database and pours it into the local mold. There's no need to mark up the data with all the Web extras needed to build a Web page. The data layer is completely separate from the presentation and formatting layer. Here, the rise of mobile computing is another factor: a single, responsive-designed Web page that work like an app -- all the better to avoid the turmoil of the app stores.
Hot: Mobile Web apps
Not: Native mobile apps
Let's say you have a great idea for some mobile content. You could rush off and write separate versions for iOS, Android, Windows 8, and maybe even BlackBerry OS or one of the others. Each requires a separate team speaking a different programming language. Then each platform's app store exerts its own pound of flesh before the app can be delivered to the users. Or you could just build one HTML app and put it on a website to run on all the platforms. If there's a change, you don't need to return to the app store, begging for a quick review of a bug fix. Now that the HTML layer is getting faster and running on faster chips, this approach can compete with native apps better on even more complicated and interactive apps.
Was it only a few years ago that lines snaked out of Apple's store? Times change. While the iPhone and iPad continue to have dedicated fans who love their rich, sophisticated UI, the raw sales numbers favor Android more and more. Some reports even say that more than 70 percent of phones sold were Androids.
The reason may be as simple as price. While iOS devices maintain a hefty price, the Android world is flooded with plenty of competition that's producing tablets for as low as one-fifth the price. Saving money is always a temptation.
But another factor may be the effect of open source. Anyone can compete in the marketplace -- and they do. There are big Android tablets and little ones. There are Android cameras and even Android refrigerators. No one has to say, "Mother, may I?" to Google to innovate. If they have an idea, they follow their mind.
When software was simple and the instructions were arranged in a nice line, the CPU was king of the computer because it did all of the heavy lifting. Now that video games are filled with extensive graphical routines that can run in parallel, the video card runs the show. It's easy to spend $500, $600, or more on a fancy video card, and some serious gamers use more than one. That's more than double the price of many basic desktops. Gamers aren't the only ones bragging about their GPU cards. Computer scientists are now converting many parallel applications to run hundreds of times faster on the GPU.
Sure, you could learn something by reading a puffed-up list of accomplishments that include vice president of the junior high chess club. But reading someone's actual code is so much richer and more instructive. Do they write good comments? Do they waste too much time breaking things into tiny classes that do little? Is there a real architecture with room for expansion? All these questions can be answered by a glimpse at some code.
This is why participating in open source projects is becoming more and more important for finding a job. Sharing the code from a proprietary project is hard, but open source code can go everywhere.