A while back I posted a question about learning what the job market wants versus learning what you think is cool. Now let me ask the reverse: When looking to pick up a new language, do you think it can hurt your career to learn a language and/or framework that isn't used in your local job market?
To recap, I live in the Tampa area, and I would say that 98% of all the jobs posted are for .NET developers on the Microsoft stack. Every once in a while I see a job for a PHP hacker (usually low paying, but that's besides the point) or "Senior Java EE Architect". While I have some .NET skill it's around 2 years old and even then I was pretty much only at junior level; pretty much my entire career has either been maintaining crufty old Classic ASP VBScript "applications", or doing some very minor maintenance work on larger .NET applications. My current job is all maintenance of a Classic ASP application and I desperately want to pick up something better to avoid killing my career off by only working with a "dead" language for the past year.
I have been looking at learning a new language and framework both for work (seeing as I work for a very small but insanely cheap company -- see my previous question regarding dealing with the situation) and because I personally feel that, given the economic situation, open source technologies and services are going to become more prevalent as companies look to maintain quality services without spending a ton of cash on expensive licenses.
I've already decided that I want to look at Java, since I can leverage the basic C# I already know and pick it up (although I'd have to swim through the sea of acronyms at some point). My secondary choice is a showdown between Python and Ruby along with Django and Rails as the frameworks. I've seen very few Rails jobs, but I know of at least one company that makes use of it (they aren't hiring, sadly) and I belong to a Ruby Meetup group in Tampa (sadly, I have not found the time to go to any meetings yet) so I know there are other people around who use it, and that network might come in handy some day. However, Python seems to have no such thing; a quick job search on SimplyHired.com for Python in Tampa gave back maybe 3 results -- a search for Django gave zero, and a search for Python groups in Tampa on Meetup resulted in zero as well. I've looked at them both and I like a lot of things in Rails, but Django seems less restrictive and more malleable for situations that don't necessarily fall in the "sweet spot"; with Rails, it seems like if you go against the grain it works against you, while Django can easily be told to do exactly what you want. However, Rails seems to have a larger and more active community around it, with more plugins and add-ons to help you get things done quicker and better, as well as making better use of things like testing, not to mention weird "new" ways of writing web applications through templating languages like HAML.
I know that the general opinion is that you can never go wrong with adding a new language to your repertoire, but would it be prudent to choose something that isn't in demand at all, especially when I am looking for better opportunities? Would my time better be spent learning something that I know will help me get another job? Technically speaking, I would probably be better off just learning and mastering .NET since that's what the vast majority of companies here use; however, I'm just not interested in .NET -- what I really want to look at is open source, I'm just afraid I will further ruin my career if I do it because I live in a predominantly .NET area. I once entertained delusions of grandeur of having a consulting company that educated businesses to the benefits of open solutions, but realistically speaking that's a pipe dream.
<-
I hate to be blunt, and I sympathize with your situation, but it seems to me you answered your question: .NET is where the jobs are, and you are not interested. The other big mainstream area outside of .NET is of course Java, and it has the benefit of the large open source community contributions.
-
There's an undeniable advantage in learning a language that is interesting, different and teaches you something about the way you program. Some people even say you should try to learn a programming language every year (which I think is at least a slight exaggeration).
But if you're in the situation where you need a paying job, and 98% of jobs in your area ask for technology X, then it would be foolish to deny yourself technology X.
Why do you not want to learn .NET? C# is a perfectly good language, comparable to Java, and the .NET stack is popular because it works. Yeah, signing on with the MS camp can leave a slightly bitter taste, but surely that's better than being unemployed?
Wayne M : Honestly? I'm not really sure -- I taught myself VB.NET 3 years ago but I've never really been "interested" in .NET, per se. I try to learn stuff like ASP.NET MVC and I get bored with it and can't grok it for more than a few minutes.Wayne M : There's also the fact I can't really use it at my current job since they're cheap, so either I learn it and hope I get a job that uses it, or try to learn 10 things at once; open source for work and .NET for personal/career.Marcus Downing : My flatmate's job is programming in an ancient language and his skills are getting ever more out of date. If he ever wants a better job, he'll have to take the time himself to learn something new. You can't expect an employer to train you in stuff they don't need. Show initiative, learn it yourself.Wayne M : Right, but that's my issue. Work is too cheap to pay for anything so that pretty much rules out using Microsoft stuff, but the rest of the job market uses Microsoft. So either I pick one or the other, or try to learn both at the same timeBill Perkins : It looks like the Express version of C# is still free. You can get it from Microsoft.womble : Learn what work wants you to learn on their time, and learn what you think will help you the most in your own time. If work doesn't want you to learn anything new on their time, you don't learn anything new for work. Easy!Marcus Downing : I might actually check out Visual C# Express myself. Never hurts to learn another thing.Cruachan : Actually the one new language a year paradigm has been remarkably accurate for me, I've been coding for about 20 years and I have used professionaly (i.e. be paid to work in) about 20 different languages - and I probably have a nodding acquaintance with another dozen. -
I have a similar example.
I've always worked with Microsoft technologies and these days I'm doing ASP.NET / SQL Server. I'm currently situated in Germany and a while ago when I was looking for a job I was very unpleasantly surprised. I know that Microsoft and its technologies is an object of common hatred in this country, though I did not know it was THAT bad.
Compared to Java/SAP technologies where people find jobs quite easily within weeks, it took me many months to find just something where these technologies were used. There were simply nowhere to apply.
Answering your question:
If noone wants that technology where you live, you should ask yourself two questions:
1) Is this technology promising and future oriented? 2) Am I ready to leave the region to pursue my interest in this technology?
Now, the options would be:
(!1 && !2): Don't learn it (!1 && 2): Better not learn it (1 && !2): That's between you and you but you probably won't (1 && 2): Go for it!
Hope this helps. :)
I personally feel that, given the economic situation, open source technologies and services are going to become more prevalent as companies look to maintain quality services without spending a ton of cash on expensive licenses
Try not to make long-going conclusions. You know, all the economists and financial guys with degrees tried that and screwed the world economy. The second thought is that people always forget about the TCO. If you save a few thousands on licences but your team will spent many months (nK USD x PersonCount x MonthCount) working with open-source technologies, then ultimately you will have wasted many thousands and saved nothing. Don't make predictions on the future, the world is surprisingly conservative. Who would think COBOL be still in use in 2009?
-
This is really something I think you need to answer for yourself. It really depend on how much you really don't want to do .NET versus how much you want to move versus how much you want to be marketable. Personally, to me, most programming jobs are the same, so I'd rather work with technology I think is less than ideal than move. But, it's really your call, it's tough for us to weigh how important this stuff is to you. If you're going to be miserable as a .NET developer, don't do it. If you can't stand to move, then don't. But then you have to sacrifice by potentially not having marktetable skills.
-
Career advice, given over the internet, for someone you don't know is almost destined to be not helpful. There are so many factors about your personality & your micro situation, that make general statements really hard. Nevertheless, here are some points you might consider when making your decision.
If you are learning a new language "just for fun", go for it! No matter how crazy it might appear. But it seems like you are looking for a good language that helps your career. In this case, you have to align yourself with the market. Be careful to bet on the next big thing (e.g. open source, fancy new languages) as investments in upcomming areas are quite risky and don't always pay off.
The save bet might not be too bad. As some other poster pointed out: .Net can be fun, if you tackle it the right way.
-
You joined a Ruby group but haven't been to any meetings yet? That's a waste. User groups are about networking and meeting people in the field and showing your face and being recognised. It's a way in. Go to the meetings regularly. Don't show job desperation or naked hunger, but show enthusiasm and join in everything. You have a good chance of getting advance notice of job openings, and if you get an interview, you have an IN.
-
I have to say this, as a developer you want to learn the language that is going to pay your bills. It is your profession and you have to put food on your table, and live a comfortable life.
I have been developing in .Net for 8 years now and the longest I have been unemployed was 2 weeks. I've probably worked at 10 companies in that period, I do contract work becaues it pays a lot better and I don't need the benefits.
The other aspect of this is getting bored with what you do. Contracting helps out a lot because it gives you variety. Once you have some experience under your belt you can pick and choose the projects you want to work on because there is such a shortage of .Net people.
If you are interested in Ruby or Django check out the MVC Framework microsoft just released. In my opinion it smokes both of those, and is a lot of fun to develop in. I usually work a main boring contract developing meat and potatos applications (.Net Webforms) and do side contracts developing projects in the MVC Framework (really fun stuff). The combination allows me to easily clear six figures a year.
In the end its really up to you what you want to do, I started my career for the first 2 years programming in VB6 and switched over to .Net when I got the chance, and have really loved it. Contracting on my part was also a great decision because of the variety. I hope this helps, good luck!
Wayne M : That's also something... thank you. I mean, I do see the benefit that using .NET would bring (namely that it's where all the jobs are at here), but whenever I try to figure it out I get distracted.. maybe I should have a new question about the current "trends" in .NET -
If you truly want to improve your skills as a developer and keep yourself relevant to the industry, then regardless of what language/platform you're interested in, the most important thing is that you spend time writing code with other people from whom you can learn. This means that unless you're able to find a decent open-source project and really commit yourself to working on it (possibly giving up important aspects of your personal life, such as family), what you really need to consider is to drop your current employers and find a job where there are other developers, preferably more-experienced developers who will mentor you. Even if this means taking a "junior-level" position - which doesn't sound completely out of line given your self-assessment - you're very likely hurting yourself professionally by staying at a company that (a) doesn't give a damn about the quality of their products and (b) refuses to spend money on their "IT dept".
I like Python about 3000 times more than I like .NET, but I'd bone up on .NET if that was the best way to getting a job where I could really learn something. Once you get a foot in the door on a "real" software team, it will be much easier to branch out and learn other things such as Ruby or Python or Java - and chances are much better that you'll get support from your colleagues and perhaps even your management, if the environment is progressive enough.
Wayne M : Your advice is great - thank you. This is what I have been mulling over; if I do move this cheap company to open source, even if it works I'll be in the same position because they're CHEAP, and even less able to get a job in a better environment since my .NET skills will be even more out of date. -
Many reasons to say yes!
If you would use it as a foundation technology for a startup or side project, absolutely!
If you would use it to target an employer you would love to work for, and are willing to do what it takes to get employed there, YES!
If it just something you want to do, that makes you a better developer and citizen, DO IT!
These are just 3...there are many more if you work your imagination.
-
You're not asking the right question. There are jobs in every major metro area for every major technology. Your question should be, "I'm really jazzed about [whatever] - how do I find a job for that?"
I'm a Ruby person. I know a lot of Ruby people. Off the top of my head, I know of one shop in Tampa who's using Ruby, and I guarantee you they're hiring. If you wanted a job in San Francisco I could give you two dozen. Most of these companies don't advertise their jobs online. Some use recruiters, but the most common strategy is to go to some Ruby meetups and see who's good and who's available.
That strategy is common in many of the smaller tech communities. Java no longer falls into that category =), but there are still Java user groups out there. Go to one and ask around.
0 comments:
Post a Comment