views:

285

answers:

11

Possible Duplicate:
How did you choose a technology to specialize in

  • WPF
  • Silverlight
  • Windows phone 7 w/ Silverlight
  • iPhone OS w/ Objective-C
  • Cocoa w/ Objective-C
  • ASP.NET
  • Android
  • Facebook FBML
  • HTML5

I will be graduating with B.S. in Computer Science soon and have to decide what do I want to learn from this list. I believe it's better to focus on one thing, master it and build up a portfolio to enhance my resume.

Bachelor's Degree with no experience, no portfolio won't do me any good. It won't get me a job by itself. I need to have something that will greatly boost my resume. What would it be? iPhone development? ASP.NET web development? Facebook development? Or completely something else that I haven't listed?

I understand it's natural for silverlight developers to say "Learn Silverlight", and iPhone developers say "Learn iPhone SDK and Objective-C". So please try to give a constructive, non-biased, objective opinion on which technology should I focus on.

Please don't close the topic for "subjective/argumentative" reasons. I am just looking for some guidance.

+2  A: 

Start with the things you like. End with the things you don't.

Andrei Ciobanu
+4  A: 

In terms of sheer demand for services, I'd say that .NET/C#/ASP.NET/WinForms is a very safe bet.

Adam Crossland
That's true, but it's all a lot of boring, business stuff.
jeffamaphone
OP wants to enhance his resume. Presumably, the resume enhancement is for getting a job rather than impressing cute female FOSS developers. But I could be wrong.
Adam Crossland
In terms of developer satisfaction, I kinda disagree...
Andrei Ciobanu
+2  A: 

My advice is to come up with a problem first.

An "itch", if you will. At that point you can start figuring out how to scratch it. Do you have an idea for a small mobile application? If so, look at the phone in your pocket and figure out how/what you need to develop for it. Do you want to write some sort of web based application? Does it NEED silverlight or can you go with something simpler? Use what is simplest.

Basically, have something you want to write and then do. The rest will sort itself out :)

Bill
+3  A: 

Whatever you want. Go do whatever sounds interesting to you. Don't learn something just because you think it might be marketable. If you want to make iPhone apps, then that's your answer. If you want to make corporate websites, HTML5 and ASP.NET. There's a lot of stuff you didn't list (like OpenGL or D3D) so you've already made some decisions. Don't listen to us yahoos... just go start writing code. When I interview someone, all I care about is do they (a) write a lot of code, and (b) care about the code they write.

jeffamaphone
+1  A: 

If you're getting into web development in any language, start by learning HTML..just basic HTML and how the HTTP protocol is used, including Request methods & basic web server administration.

It's surprising how many developers getting into web developement/scripting don't know how the web works & they make a hack of a system by WYSIWYGing & copy/pasting code they find on the web.

Once you have an understanding of the foundation, you can build on it by learning the new technologies.

Ed B
+1  A: 

Personally i would suggest you combine several of those , don't limit yourself just 1 for example a good combination is

1) HTML5 + asp.net + silverlight + web services ( optional FBML ) ( also you would need to learn some JS)

2) WPF + touchscreen monitor/ microsoft surface

Android deveopment = java

windows 7 phone & 1 & 2 = C#

hope that helps you decide :)

Aviatrix
+3  A: 

Jack-of-all-trade, master-of-none

You can't get a job by only learning one topic, you have to learn a few thing, even if they seem unreleated.

  • Try to do a windows app. You could use C# and Winform.

  • Then try to do the same application as a web application. You could use php, ruby or asp.net. If you did your windows application in C#, try asp.net

  • If you feel like it, try a iPhone application that does the same.

In all case, you will most likely learn about database development, which is also important.

Pierre-Alain Vigeant
Yep, any jr developer who doesn't learn at least the basics about databases is going to severely limit himself in terms of opportunities. Jobs are hard to come by with no experience, so even if you want to do something else eventually, you should be prepared on graduation to be a business application programmer. You should learn either the Microsoft stack of technologies (including the database as you said) or the Java stack. Then add something specialized like iPhone OS w/ Objective-C if that is where your heart is, but only after you know you can qualify for more common entry level postions.
HLGEM
+1  A: 

Here's an idea. Why not take a few of those and build on the same solution? For example, create a cloud website that synchronizes with a mobile device. That way you're using multiple technologies, have a cool solution to show off, and are getting a butt load of experience doing it all.

From experience, staffing agencies want cookie-cutter people with very narrow knowledge. However, most employers who are not staffing agencies greatly value diversity and broad experience, especially if you have something really neat to show for it.

MattB
+1  A: 

For a look at some of the industry trends take a look at the following link to get an idea on what languages are most popular.

Programming Job Trends

As for which one you should choose it probably depends on your connections and what companies are in your area. The best thing you can do is go to dice or some other job board and do a search for Beginner level programmer jobs in your area and see what languages come up the most.

runxc1 Bret Ferrier
+7  A: 

There are different approaches to take depending on what you want to get out of your career.

  • Be popular Try to get experience in what jobs are being offered. Scan the job sites, what skills are being the most requested? Improve your skills in that area to (potentially) increase your chances of getting a programming job.
  • Be exclusive Scan the job sites again, this time looking for the highest paying jobs. Gather the skills to garner these jobs.
  • Be Yourself Pursue what it is that you like, what you enjoyed the most in school. Use the old adage, "Pursue your passion and the money will follow".
  • Be something for everyone Take the "jack of all trades" route, try to learn A little of something from as many areas as you can, then you can market yourself to many different types of people.
  • Be realistic Look for any opportunities out there, even apply for positions that you wonder if you are qualified fully for. A lot of jobs list a laundry list of specific requirements for the job, but often what they really want are people who can program well, specific skills come as you use them.

There are hits and misses to whatever approach you take. Be open to options and learn to program well. That means the ability to problem solve, not just assemble code.

Bill
I agree with this list. Personally I would say, let your passion guide you. If you're passionate about a certain platform/language, your passion will shine through in your work. If you're not, learning the language/platform will just be hard work.
Mads Jensen
+1  A: 

First watch this video, and then watch it again, repeat until you really "GET" what he is talking about. Discover your WHY. The HOW and WHAT will follow naturally. No body here is going to be able to give you a "correct" answer to this question.

fuzzy lollipop
Thank you so much. The video has been really inspirational to me. Simon Sinek - how unfortunate I haven't listened to his podcasts/videos sooner.
Silence of 2012