views:

196

answers:

11

I'm an experienced C#, ASP.Net, and Flash ActionScript developer. I'd I really like to keep learning new and exciting things. The upside is right now it seems like there are a lot of very interesting things to learn. The downside is that as a new parent, my time is limited. So I'd like to stick to learning something that might help me most in my career.

With the understanding that there's no way to tell what future jobs may come my way.

Things I'm considering:

  • F#: I've always been interested in putzing around with a functional(esque)(ish) language.
  • ASP.NET MVC: Never messed with it, but I work mostly on the web and it seems interesting.
  • Silverlight: As a long time Flash developer that works mostly in C# now, this sounds exciting to me. Not sure about the demand for it though.
  • Flex: Again, it seems like a logical step forward for me, but I'm just not sure if it's something that will help me down the road.

I am equally interested in all of these technologies, and I'm just trying to get people's opinions on what might be most beneficial for me to get into.

Which of these might be most beneficial for my career?

+5  A: 

My vote goes to asp.net mvc and some sort of ORM.

svinto
If I had to pick a pair for you to look at ASP.NET MVC 2 and LINQ to SQL are my top favorites. Entity Framework 4.0 when it comes out will be strong. But the current version is still lacking in many ways. SubSonic is nice though. And NHibernate is always awesome but to complex for simple projects.
Andrew Siemer
+2  A: 

F# is fun but you probably won't make any money off of your experience with it. Not directly anyway. Still, it's not entirely academic as a functional programming perspective can make you a better procedural programmer.

Silverlight is fun too and you can actually make money with your new skill set. Though it's not really "new" since you'll still be writing in C# and it'll take you all of an hour to grasp the basics of XAML.

ASP.Net MVC is a great approach to public facing web sites and definitely something you should learn at some point as a ASP.Net developer.

Spencer Ruport
+2  A: 

While the other may have instant benefits, learning F# (if you have never been exposed to such languages) will make you a lot better programmer and thinker.

Langali
+3  A: 

I think silverlight would be the one you should go ahead for. Because as far as I understand, MS is trying to push as next Desktop app development platform which would have best of both worlds. Plus it would be available on Linux too via moonlight.

jatanp
+2  A: 

Personally, I would wait on learning ASP.NET MVC if you are not familiar with MVC paradigm at all. They will soon have a new version and they are making some great changes. You will benefit learning this later when it gets a bit more polish.

Silverlight/WPF has a large learning curve, but is gratifying. This would my immediate choice of the technologies listed.

Now of the technologies not listed...

Rails would probably be fun for you. Rails is easy to get going and is very fluid. It will open your mind on strengths/weaknesses of ASP.NET and C#. It is also a very wildly used.

Objective-C is a fun language to learn if you have interest in iPhone development. The barrier of entry is pretty large though, you have to have a mac for development. If you don't have a mac, you can still make a nice mobile web app using Rails and get a taste of both worlds. There are some interesting ties into the iPhone hardware you can get from a web app(GPS, accelerometer etc) that might appeal to your geek side :)

Jab
Heh... I almost downvoted you for saying that Objective-C was a *fun* language to learn. Objective-C is a *frustrating* language to learn, yes. But fun? Oh, hell no!
Randolpho
A: 
  1. C
  2. C++
  3. Cobol
  4. J2EE, Java
Nick
Besides the fact that you're ignoring all of his suggestions, it would be helpful to provide some sort of reasoning for your suggestions
LorenVS
Don't forget Fortan and Assembly! Seriously though, C and Cobol must be in there for the gags.
Dan Atkinson
This does not fit with the current stack that he is already familiar with. In an ASP.NET C# world you will rarely be called on to write a C app. In a windows shop that is already using C# you would rarely be called on to write java or j2ee stuff. This is like taking 10 steps in the wrong direction.
Andrew Siemer
C and C++ are defensible choices, Java is too similar to C# to be worth learning unless he's going to work in it. Never learn COBOL unless you're going to work in it. There's advantages in leaving the .NET stack, but only if it's going to be educational.
David Thornley
I felt like he was allready familiar with the new web technologies, so I suggested some older ones that are still in use: http://www.codinghorror.com/blog/archives/001294.html Also if he is going to be a web guy he might as well become familiar with the Java side of the web.
Nick
+1  A: 

I am a father of 6! So I know what you mean.

This may not be the approach you were looking for. But contact Manning, O'Rielly, Apress, etc. and see about getting into their technical reviewer program. Each one is different but for the most part they will send you either all of a new book or parts of a new book. You then read as much of it as you can and fill out a questionaire at the end of the process. You usually get two weeks or so to complete the task. At the end of the process you have seen a book a year before it is to be published. You get your name in the book (yeah!!!). And some companies will pay you $50 for the help. The nice thing about this is that you get to stay current with what is coming out. You will get to see more technologies than you would normally take the time to look at. And they will send you a copy of the book once it goes to print so your shelves will fill up with free things to read. This approach will take you into flex, lucene, silverlight, jquery, architecture, ddd, tdd, hadoop, and every other place that you might never have thought to go before. For me it has introduced me to technologies that I have never heard of before. Our career choice is a constant learning curve and for me this approach has really helped me to stay in front of the wave. And you get to help an author make a great book for the community!

Andrew Siemer
Really interesting suggestion.
blesh
It has helped me to extend my knowledge of what to learn about. And it is something that most people aren't even aware of as an option!
Andrew Siemer
+1  A: 

I think F# will remain a bit of a niche for a while. I'd pursue it out of interest, and the different kind of thinking it could provide, rather than for potential career advancement.

Silverlight sounds like it would be a great fit for you in terms of interest, but as you mentioned, the job opportunities may not be overwhelming. Still, that could make you a big fish in a small pond.

MVC I've had some experience with, and it is a very interesting and different paradigm than the traditional ASP.NET model. If that's where you have been and are thinking you are going to be for a while, this could be the "safest" bet...and it has the added bonus of being neat.

Beska
There were a lot of great responses here, but I think this one helped me the most. So while I'm not sure that marking any of these as "answers" is appropriate, I feel obligated to do so.
blesh
Thanks...glad I could help out.
Beska
A: 

I would also suggest Silverlight, but I'd also add WPF in general as a great desktop UI toolkit to learn. There's a significant amount of overlap between WPF and Silverlight (Silverlight is a subset of WPF, but the size of that set keeps growing), so learning Silverlight will help you there.

Randolpho
+1  A: 

If you have an Actionscript background, Flex IS the natural progression. It plays really well with MS backend solutions, has a strong community, and there is a definite need for applications built on top of the Flash Player. You get AIR desktop apps for free with the skillset, and it would take you a month or two to get completely up to speed based on your previous experience. The platform is moving in a really nice direction, the architectural framework landscape is very bright, and it is generally just a fun space to be in.

Joel Hooks
+1  A: 

If you are looking to learn a new programming language, there are several useful suggestions in the replies to this question: http://stackoverflow.com/questions/362226/whats-your-next-programming-language-and-why

Brian Rasmussen