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.
You mean, companies that have no business plan except leech off investors until a profit model magically appears? Those are the kind of companies that fail when tech bubbles pop.
But there are tons of smartphones, and tons of people who want apps for their smartphones. As long as you work on something that has a real market and makes real money you don't have to worry about 'bubbles'.
How can I believe you when you tell me what I don't want to hear?
Sorry...need to repost...browser had logged me out...grrrr.
---
The fact is, development of mobile apps as an individual and getting rich has come and gone. The marketplace is filled with so many versions of apps that do the same thing.
That being said, enterprise mobile development is hot. Some think that most companies don't really need an app - maybe, they don't. But, most want to offer additional value to their customers or to develop enterprise apps for use within their company to manage the company's business processes.
When the .dotCom bubble burst...many found themselves out of work...briefly. So, the big website isn't really happening. But, most companies still wanted a presence. And, so those developers still make a decent living. The internet hasn't dried up. And, the promise of mobile is just beginning.
And, the skills one learns...assuming it isn't just HTML or HTML5 will be transferable. Grab a little JavaScript, learn Android or iOS programming. And, learn about hybrid solutions that leverage all of the above. Lots of jobs out there for those skill sets. No worries for those who are on top of their game and keep their skills fresh and take opportunities to learn.
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 more important question, from the economic view, is whether apps are overpriced. Given the number of free and 99 cent apps, and considering that we were used to $200 software titles before, that hardly seems realistic.
If anything, apps are evidence that the $400 productivity suite bubble has popped.
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
The only real bubble is that companies like Yahoo are willing to pay lots of money for one-app companies with very little tangible value. You should only really be concerned if your plan is to try to make money by creating your own app and selling it to a megacorp.
Where the money is for mobile developers is not making apps themselves, but making apps for businesses that want apps to further their non-app-related goals. It's similar to websites in the 90s - while a few outliers were people making money on websites they were building for themselves, most web developers were making money by building websites for companies to achieve their other business goals.
I've been doing mobile development for over four years now, and this whole time I've been expecting hordes of developers to descend on the market and give me a lot more competition. It doesn't seem to be happening - demand for mobile developers is still far outpacing supply. It will be a good field to be in for years to come. Eventually the mobile developer market will be saturated, but this took a decade for websites, and the people who were any good didn't care because they had the time to build up loads of experience and put themselves at the top of their field.
If you find that you do need to shift your career path, you can generalise quite easily - Java is still widely used in other areas such as server-side web development, and Objective-C will let you write native OS X applications. Generally speaking, if you can handle mobile development, you can handle desktop development with ease.
Bogtha Bogtha Bogtha