Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am interested in changing careers and becoming a mobile app developer. I've been trying to teach myself how to build mobile apps using HTML5, jQuery Mobile, and appmobi.

I really want to become a mobile application developer, but need some guidance as to what kind of degree and/or certificate I should get in order to get a good job. I already have an undergraduate degree - Bachelors of Science in Experimental Psychology.

share|improve this question
8  
You need published apps on the Apple AppStore and Android Market (or others), some fancy HTML5 pages to show-case your web skills, and github commit logs. That would do it. The market is so demanding for mobile developers that I don't think that many people will care about your degree. They'll care about what you've done, what you can do, and how fast you can do it. –  haylem Aug 24 '11 at 16:43
    
Wow! You are all amazing! Thank you so much for answering my question. The common theme here is that I need to actually build some apps and get them on the app stores...build my portfolio. A degree might help me get my foot in the door, but ultimately employers want to see what I can do. i've contacted a few local firms out here in scottsdale to see what they are looking for. haven't heard back. i have also found several free online courses from harvard, standford, and MIT regarding computer science, programming and mobile app development. i will be taking those to increase my knowledge! thx! –  Reggie Aug 24 '11 at 19:22
    
you might also want to target the companies you apply for. For web dev or mobile app dev roles, you can often have a look at some of the company's existing products (sites or apps), try them out, and directly hit them with some suggestions about what you like or dislike, what you think could be improved, and what business aspects of they are missing out on by comparing to competitors. Takes a bit of time, obviously, but if you have a few roles you are really interested in and they're not out of your league, that'll increase your chances if you go the extra mile. Good luck. –  haylem Aug 24 '11 at 22:20
2  
You either need 98.6 degrees, or 37, depending on where you live. –  kevin cline Oct 7 '11 at 16:25
    
Using apps like Phonegap to hit multiple platforms simultaneously is likely to be the popular way to handle things far into the foreseeable future. Don't kid yourself though, you need deep CSS and JavaScript/canvas skills to handle any problem and there's a lot more to both than learning the syntax. You can get entry level by hacking a few apps but the day you decide to stop learning more about the underlying tech is the day you've set a retirement date for your career. –  Erik Reppen Jul 5 '12 at 14:25
add comment

closed as off-topic by MichaelT, GlenH7, Bart van Ingen Schenau, psr, Thomas Owens Jan 23 at 16:17

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, GlenH7, Bart van Ingen Schenau, psr, Thomas Owens
If this question can be reworded to fit the rules in the help center, please edit the question.

12 Answers

I'm not sure if it's the best degree for the job, but whenever you're developing software, a degree in computer science will come in handy. You don't need it and I know many good self-taught programmers, but it does help a whole lot to know what you're doing and why some things go wrong even though the code looks totally normal.

share|improve this answer
1  
I find computer science about as useful as a degree in something completely unrelated. Most computer science students I've interviewed know nothing about programming, and most self taught know bucket loads more. So generally just a degree is fine. –  Steven Oct 7 '11 at 15:32
add comment

First off, if you're really looking to get a degree so that you can develop mobile apps, then look for Software Engineering programs (especially ones that offer concentrations in mobile or web applications). A Computer Science degree isn't a bad start, but you'll likely get a lot of math and computational theory that won't help you when writing applications in the real world (it won't hurt, but you'll have to learn a lot about programming and software development out in the real world after you're done - I say this as someone with a CS degree and a decade of experience writing software, some of it in the mobile space).

But honestly, the best two things you can do are:

  1. Start writing applications
  2. Read (and understand) source code for other mobile applications

It sounds like you're already doing number 1; add number 2 in there and you'll be well on your way.

Honestly, a software-specific degree may be largely unnecessary at this point. You already have a college degree, which gets you over the main hiring hurdle. Speaking as someone who has worked with (and interviewed/hired) a lot of software developers, a degree in CS/SE (undergrad or masters) is no indication of the ability to write software well, and a lot of people in the industry know this. Some of the best people I've worked with had no degree at all or something completely unrelated (e.g. geology). And I've worked with people who had advanced degrees in CS and could barely implement FizzBuzz.

If I were interviewing someone today, I'd be a lot more concerned with seeing code they wrote than what credentials they had. Good open source contributions will get you farther in an interview than a degree.

Also, a lot depends on what you consider a "good" job. Places that are working on cool stuff in cool environments are going to want to see code. Places that are doing boring software but paying a lot of money (e.g., a lot of financial firms) are going to want credentials. Again, if that's what you're aiming for an SE degree is the better choice.

share|improve this answer
    
Could not disagree more with this post. –  AngryBird Aug 24 '11 at 14:25
2  
How can knowing how to implement some of our greatest mathmatical advances by writting them in a programming language not be useful on a mobile platform where say the devices can have different screen sizes. Being able to shrink/expand your user interface and adjust the font is all mathmatical. Granted Apple, Google, ect make it a trivial task but only to the point. Having a CS degree is an indication that you at least passed courses that introduced these concepts, which makes you in theory able to understand how the mobile device is structured, and knowing that means you can code better. –  Ramhound Aug 24 '11 at 14:26
1  
@Ramhound - like I said, a CS degree won't hurt. But as you point out, a lot of the problems that you'd need CS-degree math to solve are already taken care of at a practical level. Reggie didn't say "I want a job writing matrix algebra libraries"; he said "I really want to become a mobile application developer". –  E.Z. Hart Aug 24 '11 at 15:34
1  
but you'll likely get a lot of math and computational theory that won't help you when writing applications in the real world I use this every day. My math background that I got from my CS degree lets me choose the correct algorithm for different situations because I know what the run times will be. My math background lets me implement Acoustic Echo Cancelers and other DSP related algorithms. Because of space constraints, I'll leave it to those two examples, but math is a huge part of programming. You're selling yourself short without it, even as a mobile app/game developer. –  AngryBird Aug 24 '11 at 16:26
2  
@AngryBird - My math background lets me implement Acoustic Echo Cancelers and other DSP related algorithms. I learned that stuff in school, too, and then proceeded to never use it. Other than orders of algorithms (which is taught in most of the SE curricula I know of), most of the math I had in school comes up rarely, if ever. What does come up regularly are things like "writing maintainable code", which was definitely not a CS topic. If Reggie can program well, CS math will be a bonus. If he can't program well, all the math in the world won't help him. –  E.Z. Hart Aug 24 '11 at 17:07
show 4 more comments

You dont need a degree.

Especially since it sounds like you already have some programming experience. Write some apps, publish them, get some users - thats a far quicker path to a good job than a new degree because you'd have concrete examples of completed projects in your portfolio. Plus who knows, maybe you'll make enough off one of the apps that you dont need to work.

share|improve this answer
add comment

I switched my career from neuroscience to programming one year ago. Currently working as a web-app developer.

Here is the thing. You are competing with people who've been doing it since a very young age. Programming is becoming like music in that sense. It is insanely hard to catch up.

The degree and career itself is many-fold harder then psychology. It takes much more self-discipline, time-commitment, talent etc...

Is it doable? Yes. However it will take you much more time then you anticipate by far. Programming is damn hard to work up to a professional level from 0 experience.

This year was absolute hell for me in terms of having very little time to do anything else but learn and practice. Are you sure you are willing to make that kind of commitment?

In terms of education: get computer science degree. Anything else will not properly prepare you or have you taken seriously in a lot of cases.

share|improve this answer
add comment

Software Engineering or CS would be the most useful degrees to already have, but neither would be a great use of your time/money now in pursuing the specific goal of becoming a mobile app developer.

Spend some money on reference books and a few representative devices to test with, spend your time (lots of it) focusing on learning everything you need. In 6-12 months you'll be employable, in 2-3 years you'll be up there with everyone else (degree-d or not). You will have to really immerse yourself though.

If you do go for the degree, bear in mind that most of what you learned won't be directly applicable to the job and the stuff that was relevant will be outdated. You'd get a graduate-level position, or internship if you're unlucky, and still have to learn most of what you don't know now.

share|improve this answer
1  
I would have to disagree that what you learn by getting a CS degree isn't applicable to a mobile developer, many of the problems in that field have similar problems in other fields, and thus your general knowlege of how to approach a problem is there. I argue the only thing I really learned in while getting a degree is how to solve a problem with software, I already knew how to program, plus I learned more about how a computer actually works and the mathmatical concepts behind it. –  Ramhound Aug 24 '11 at 14:31
    
The problem is that with the way the economy is, someone with out a degree is going to have a hard time competing with someone that has one unless they can really stand out with a good portfolio. Without getting some sort of code review putting one together and it is almost worth while to take a couple classes just for that. –  rob Aug 24 '11 at 15:00
1  
Sure, it's applicable - but mostly not directly. I'm generally a contractor but I've interviewed roughly 25-30 candidates for a few different development roles, contract and perm, and found that a CS degree was really no indicator of aptitude at all in those cases. Sure, it's more important for someone without relevant qualifications to have experience but with code it's easy to prove you know what you're doing. I'm more impressed by a guy who rolls up and says "a year ago I was a waiter, but now look at these Android apps I wrote" than a grad who can half-remember some sorting routines. –  timh Aug 24 '11 at 15:07
    
@timh - For the most part I agree that the degree is really just a check mark on your résumé; however, it can be an extremely important one depending upon what you want to do career wise. Not having a degree will definitively prevent you from getting some jobs except in the most extraordinary of circumstances and even then it may still may not happen. –  rob Aug 24 '11 at 15:32
    
@Ramhound - I think the telling part of your comment is "I already knew how to program". A lot of CS degrees don't really teach programming (at least not programming in a collaborative environment where maintenance is a concern). –  E.Z. Hart Aug 24 '11 at 15:39
show 1 more comment

Microsoft has just brought out a certificate exam for Windows Phone development, passing that and putting a small app that shows your skills on the app store would get your CV to stand out.

However you must also be able to prove you can program, as the exams only cover knowing the API not programming skills. So contributing to an open source project would help as well.

As to a 3 or 4 year degree, it will cost a lot and take a lot of time, but I have found no one cares what your degree is after the first job.

share|improve this answer
    
agreed! A degree shows that you have the ability to learn. Some certification showing that you have some knowledge of mobile development would help you more than anything. –  luketorjussen Aug 24 '11 at 15:12
    
Mobile is close to web dev. Web devs and devs who hire them tend to take certs and degrees with about 5 megatons of salt given our somewhat universal experiences with industries and platforms that used to/still do take such things overly seriously. It's a foot in the door in some places at best. But ultimately you don't get a mobile app dev job by spending four years falling behind the curve that academia and the cert industry are incapable of staying ahead of. You get it by learning how to write mobile apps right now. –  Erik Reppen Jul 4 '12 at 6:26
    
@Erik, but you got get an interview unless you can get past HR! –  Ian Jul 4 '12 at 10:37
    
If I were hiring for mobile, I wouldn't leave it to general HR. I usually consider it a bad sign when somebody is putting you through HR rather than using a specialized recruiter or the devs themselves aren't handling it. These are jobs with requirements that won't get you the piles of qualified resumes that Java and C# will. I'm primarily a JavaScript engineer who never completed an irrelevant college degree. This has not been an obstacle for me. Java-Centric mobile? Maybe. Web technology oriented so you can hit multiple platforms at once? Have fun finding people with HR culling for college. –  Erik Reppen Jul 5 '12 at 14:16
add comment

The best answer is going to depend a bit on if you are planning on making a career out of writing software, just thinking about doing mobile applications for a couple of years and then moving on, or using mobile applications as a way to get your foot in the door.

If you are planning on making a career out of writing software then you are better off going for a degree in Computer Science or Software Engineering. The value of a second Bachelors versus a Masters is debatable to an extent and would likely depend more on how much money you want to invest versus what classes you are going to take. The reasoning for this is quite simple: if you want a job with a large company then degrees are important for career advancement as well as even getting your foot in the door for an interview.

With a good portfolio you can get an interview and job with a smaller company or a company that deals exclusively with software, but you need to make sure you really stand out compared to someone that has been writing software for years and just never went for the degree. Since you are starting from scratch you are better off get getting the degree so recruiters can check that box off.

However, if you are planning on just getting in to mobile applications for a few years or as a way to getting your foot in the door to software development as a whole you might want to look into certificate programs at a reputable university that allows you to just take a couple courses related to mobile application development. These are generally targeted as people trying to get additional credentials on their résumé and assume that you already have a firm grasp on software development so you might find them challenging, but they do provide you with a solid foundation in the area and you can walk away with a portfolio you can show during interviews. Likewise, depending upon where you are, the night school programs can be a good way to make contacts in the local developer community as I've known a number of developers that will take a class or two (at the company expense) to stay fresh in certain areas.

In the long run, if that leads to a job with a larger company you might be able to take care of education benefits that the company offers to be able to get a Bachelors or Masters degree that is more relevant to what you want to do as a career.

One thing to remember though is that depending upon where you are, the economy is tough right now and companies are favoring candidates with proven skills (i.e. degrees, experience, portfolios) versus ones that are changing fields. If you are bright and disciplined you can likely learn enough in about a a year or so to be a competent entry level developer, but you will be competing against recent graduates or developers that are switching companies so you need to focus on having a good portfolio. A good portfolio is going to require some form of code review so you need to make contacts for that and it might still be worth while to take a class or two just just to say you have (i.e. pad your résumé for the first pass through HR) and to have some code view done as part of your assignments.

share|improve this answer
add comment

A software engineering degree would be better than a pure CS if your goal is to write commercial software. Either gives you the basic computer science theory that is very helpful in any software development role, and software engineering gives you the practical skills need to produce real product that many pure CS programs omit.

A lot of CS graduates have little or no idea how to write an actual application that anyone else might use or maintain.

Having said that, in the mobile application space a portfolio is far more important than any degree. If you have an app in the Apple App store you can find a job writing iOS apps. Trust me on this.

share|improve this answer
add comment

With a psych undergrad, it actually might be good for you to look into graduate degrees in Information Science. There should be specializations in such a degree program that deal with human-computer interaction, data visualization, information architecture, how people interact through social networks, etc. Since much of your study would be in how people think about and interact with information, you will likely apply a lot of what you learned in your Psychology studies. The more computer-related specializations probably will require that you take some undergraduate-level programming courses, or may have special tracks for people without software development experience.

share|improve this answer
add comment

Take a programming course to see what it is like. Keep working on your skills and try to get a job in this area. You'll find out what you need. Your current degree has given you a well-rounded background in math, science, critical thinking and other areas of liberal arts. All you need to decide is if you have the aptitude and willingness to spend a lot of time programming.

If this doesn't land you a job because you lack a degree, you can consider going to school for a few more years or try another profession.

share|improve this answer
add comment

I actually have a degree (BSc Hons) in 'Mobile Game Development'. I shit you not ;)

That's from the J2ME days too! To be fair, the first two years covered general software development and the later two years specialised in mobile technology and games.

People always look surprised when I tell them my qualification.

share|improve this answer
add comment

Ok, I've looked into degrees recently because I'm getting a full ride (I got hired on by the university as a programmer without a degree).

You have compsci, BS. Math-intense, very theoretical. If you want to learn set theory and computational complexity (whether certain things are even computable or not), this is it. Though many people do get that degree and go on to become mundane programmers instead of computer scientists writing papers and developing awesome algorithms and whatnot. It's offered as a 4 year degree.

Many community colleges also offer a 2 year degree in compsci. It's usually just the general requirement courses (history, english) plus about 4 classes. These are the fundamentals of programming classes, fairly easy. Check things out, and you might even get all of these to transfer if you ever want to go for the 4 year.

You have what's usually called MIS. At my university, it's taught through the college of business. They'll also have those 3 or 4 basic programming classes. Plus some "managing software teams" classes, a few network/computer security classes, etc. These are also useful for getting programming jobs. I'm not necessarily inclined to believe that the courses are more practical though... understanding the theoretical stuff is important, so some dumbass boss doesn't tell you that you have 48 hours to solve what's essentially a halting problem or the like.

Keep in mind that it can be called other things at other universities. If there are 2 year degree versions of MIS, I haven't noticed. Wouldn't shock me though.

Mathematics degrees also get people programming jobs. But usually at the higher end. If you were some brilliant mathematician, you might land a job at Google or whatever doing something technical, though it wouldn't be mobile apps.

Someone else mentioned "software engineering" degrees... but at least where I am, that's only a grad degree (Master of Science, Software Engineering). Might be available elsewhere as an undergrad.

You should check out other places, some colleges offer degrees in game programming and all that crap. Though, I get the impression those are the "let's bilk money out of laidoff factory workers" sort of schools, so be cautious.

A certificate might actually be better... won't spend 2-5 years getting it, might only spend $5000 as opposed to $25,000+.

share|improve this answer
    
I can't believe they still offer MIS degrees. Do not spend money on an MIS degree. –  Erik Reppen Jul 4 '12 at 6:28
    
It's certainly a better deal than spending money on an English or philosophy degree. I work with a few people who have MIS degrees, and we wouldn't think poorly of a job applicant who had such. As always though, experience counts for at least as much as the degree and probably quite a bit more. –  John O Jul 5 '12 at 16:01
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.