Ask Slashdot: Preparing For the 'App Bubble' To Pop?
Niris writes "I am currently a senior in computer science, and am expecting to graduate in December. I have an internship lined up in Android development with medium sized company that builds apps for much larger corporations, and I have recently begun a foray into iOS development. So far my experience with Android ranges from a small mobile game (basically Asteroids), a Japanese language study aid, and a fairly large mobile app for a local non-profit that uses RSS feeds, Google Cloud Messaging and various APIs. I have also recently started working with some machine learning algorithms and sensors/the ADK to start putting together a prototype for a mobile business application for mobile inspectors. My question: is my background diverse enough that I don't have to worry about finding a job if all the predictions that the 'app bubble' will pop soon come true? Is there another, similar area of programming that I should look into in order to have some contingencies in place if things go south? My general interests and experience have so far been in mobile app development with Java and C++ (using the NDK), and some web development on both the client and server side. Thank you!"
Mobile app bubble
Professional stubble
For who will browse jack
Amid the economic rubble?
Burma Shave
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
I'm not sure it is. Maybe I'm biased because I am employed as an Android developer, but both Android and iOS developers are both incredibly in demand right now. Every brand wants or has an app, and every webapp needs a native mobile counterpart to be taken seriously. Weren't the app bubble predictions back in 2010? I don't think they hold any water any more. Mobile is the future and isn't going anywhere.
Programmers should be able to take on a wide variety of tasks. Fortunately, smart phones are not alien space technology with nothing in common with computers. From the point you're at now, you should be able to branch out to things like desktop graphics-based apps and perhaps GPU computing without too much trouble. You should prepare yourself for this *now* so that you don't find yourself scrambling if the smartphone app business doesn't go where you want it to. Remember, what your prof teaches you in college is maybe 10% of what you need to know. (Not kidding, that really is the deal, you should be doing A LOT of coding on your own time in order to learn how to operate without that safety net & get enough patterns stored in your head that you can tackle harder problems in the future.) Good luck!
The App bubble has already popped. The only people that make money writing apps are contractors building them for companies that insist they need an app (even though they probably don't...), employees at companies like that drawing a salary, and the 1 in a million that comes up with the ugly meter. Eventually the marketing departments will realize that "Billy Bob's horse feed insurance" doesn't need a mobile app and all of that will dry up pretty quickly.
If you want to have a long career in development, learn databases. You don't necessarily want to be a DBA since they tend to get tied to a platform and their fortunes rise and fall with it (Foxpro anyone?). But, learn how to manipulate information. There will always be someone willing to pay you to manage their data. Maybe through an application, maybe through an app, maybe through a web interface.
At the end of the day, most of the decent paying technology gigs come from managing information for someone.
I got into this business in the early 90's and was told that by a friend of my father's who had been programming since the 60's. It's the best business advice anyone has ever given me.
I agree that this is good advice to start out. But if you really want to be a retargetable developer who can pick up a new area quickly, you need to know at least five to a minimum level of competence.
Four of the languages that you need to know reasonably well are: an object-oriented language (C++, Java, and C# are all close enough to being object-oriented languages that one of them will do), a scripting language (Perl, Python, and Ruby are all fine choices; even modern JavaScript isn't too bad), a functional language (Haskell or Scheme are the obvious choices), and a logic/relational language (a dialect of Prolog which supports CLP is probably the theoretically "best" option, but for most developers SQL seems to do the job).
One of these four will probably be your "primary" language. There's one more language that you need to know reasonably well, and that's a "pure" form of your primary language. So, for example, if you spend most of your time in Java, learn Smalltalk to see what object oriented programming is supposed to be in its purest form.
You need to know enough about these other languages that it prevents you from thinking in a language. You need to think in the abstract, and then realise that abstract idea into a language. Knowing more than one programming language makes your code better, even if you never use them most of the time.
sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
Apps may or may not stick around, but one trend will continue: the increase in service oriented computing.
I.e. computing functionality is being broken down into modular services (usually web services) that are simple enough and independent enough to be easily scaled horizontally but that can be composed in order to provide richer more complex functionality.
If you understand this architecture, it will help your marketability immensely whether you are writing end user interfaces (such as apps) or building the aforementioned services.
http://yetanotherpoliticalrant.blogspot.com
The only thing limiting apps right now is small memory and slowish, low core-count processors.
More RAM and a faster CPU than my last PC had in the early 2000s. Didn't seem to limit it too much.
When your pad or phone has 16 cores running at 3 ghz, a decent ultracap power supply, 64 gb of ram... you'll look at that "app bubble" statement the same way we look at what the head of the patent department in the early 1900's was saying when he declared something along the lines of "everything important has already been invented", or the famous "no one needs more than 64k (or was it 640? Can't be bothered, both are equally ridiculous.) The little AI in your pad will laugh with you.
My server has 32 cores, 32GB of RAM and runs at around 3GHz. I haven't noticed it laughing at me yet.
As others have said, there are millions of apps in the app stores, and maybe a few dozen that are actually useful outside of a small niche market (or instead of the web site they're replacing). Most of the rest are just crap to bring in ad views.
follow the Hype Cycle. http://en.wikipedia.org/wiki/Hype_cycle
Phone apps will be no different. Just be sure to have a job during the trough of dissolutionment, or a day job you can pursue in the meantime. The real money is to be made after the hype curve when the technology matures.
Science advances one funeral at a time- Max Planck