views:

216

answers:

5

Hi Guys,

I have about a year's experience in building c#/asp.net applications thanks to a year's intern-ship program. I have enjoyed it very well, but I want to focus on something else.

Currently I am torn between focusing my efforts on either mobile apps for the Android platform or web apps using ruby on rails. I do not want to do both at the same time as they are two specialist skills, I'd rather focus on one.

Which of the two would be a pragmatic, from a career and jobs availability standpoint to focus on for now and the foreseeable future?

Thanks guys.

A: 

Desktop applications are the way to go.

A: 

In my opinion, it would benefit you to focus on programming and software development in general. I obviously don't know where you stand in terms of education or experience beyond that internship, so I can't say much, but there are a few things to consider.

Employers don't tend to like generalists - they like people with solid skills in something useful, which generally means specialized to something they need like mobile apps, the web, et cetera. However, if you're young and inexperienced, don't put your focus on this before you get experience with general development. Design patterns, architecture, tools, testing, etc., can all help you more than prematurely specializing.

Tony k
Thanks for the reply. I have been developing for over 4 years mostly desktop apps and small throw away programs. I have been a jack of all trades master of non, hence the desire to want to specialize. Thanks again Tony.
simplyme
A: 

Well, it's hard to know which area will offer better job opportunities in the future (it would be a 'best guess' at best), so my advice would be to choose the path you personally enjoy the most.

If you can't get a job right away in either specialization, you could do some personal projects or contribute to open source projects to build some reputation and experience (whilst continuing with other work) until the right job becomes available.

Sometimes though, what you'd like to do and what people are hiring people for can be very different. Prepare to be flexible and also consider alternatives if you can't find the right opportunity right away.

RobS
Personal enjoyment, good point. Thanks Rob.
simplyme
+2  A: 

Don't limit yourself in a specific topic. But try to understand the constraints of different areas. As an example, think of the scalability for web applications and limited processing power and memory for mobile applications.

Learn a tiny group of technologies (e.g. C/C++/C#) very deeply -- as much as you can write a book about.

Focus on software architecture, design patterns, best practices. Try to design as much as you can, although you don't have time to implement most of your ideas. Because in industry, especially you are young, they won't let you design a system from draft in most cases. So you are all alone to train yourself in software architecture and design.

Burcu Dogan
Insightful point, thanks Burcu.
simplyme
A: 

Web.

Plenty of future in mobile apps too, but as mobiles get better they're going to be used more and more as web browsers.

MGOwen
Good point thanks MGOwen.
simplyme