views:

608

answers:

15

I'll make this short and sweet. I like working with technologies that I'm currently not working with at my full time job. I like working with technologies that you don't usually see in a typical IT department( objective c, RoR, objective j/cappucino ). How do I move to a job that uses these technologies?

I feel like I'm in quicksand and when my head goes under this will mean I'm stuck doing boring .NET/Java IT business web app programming for the rest of my life. Right now, I can only see two options:

  1. Develop a portfolio of projects that I create using the technologies I'm interested in. To me this seems like the obvious choice but it still seems to me, and I may be wrong, that it may not be enough.

  2. Go back and get a MSCS. Now I know that I probably won't be using these technologies in any of my classes, but the masters may get me on interviews that I may not get on otherwise.

I don't know if you were hiring someone would you want someone with projects that they've built with the technology that your hiring for or someone with more education?

I could do both but then I will be spreading my self then and I won't be able to do either very well probably.

+3  A: 

I would put your knowledge, experience and willingness to learn above all. Education is secondary.

In some places employers value education most. But even a bachelor should do it in most places.

The biggest trouble is, however, that even in the year 2009 most employers only value your working experience and ignore your personal experience as irrelevant. I'm not sure if anything will ever changes this wrong attitude, but the best way would be to demonstrate completed work to convince them you have mastered this particular technology.

Developer Art
+1  A: 

If the goal is to wind up getting paid to develop software in cool/interesting technologies, then I do not believe getting an MSCS will help you.

I would expect that would just be nearly wasted time and effort, which would ultimately guide you further down the rabbit-hole of line-of-business or scientifically based applications.

I imagine the best way to get the opportunity to develop in one of the interesting technologies you name is to network and find companies that have jobs for those skill-sets. More specifically, make sure you can work with progressive companies (either remotely or in a technology hub). Otherwise, no amount of studying/side-work will open up job opportunities in slow-moving markets.

YeahStu
+1  A: 

May I suggest a couple of other options?

  • Find a company that uses those technologies and see if you could be an intern there to show that you do know how to use those technologies. For example, maybe there is a company that builds websites using RoR that would be something you'd like.

  • Start your own company using those technologies and become a consultant to companies wanting to use these for various internal functions,e.g. Twitter, Wikis, and other social media. This may be harder but would have more flexibility for you.

Similar question that may have useful answers:

JB King
I've done a bit similar to your variants: eventually I was employed by just-born company and become the main programmer. I can use whatever techologies I like while I create web-apps. There are some corporate websites done by me, running on ZF, RoR, using Memcache and some key-value DBs, built with XSLT, even used JS in server-side, etc - I used differend technologies every time :) (Yeah, I was trying to reduce mainternance cost, though: I tried not to make solutions too much complex, but unusual)
valya
+2  A: 

If you are interested in working with particular technologies then I think you need to show an interest in those specific technologies. Getting an education is great but you'll have a tough time finding a program that teaches you some of the newer technologies out there. Schools tend to stick to the bigger, more established languages and platforms. Find a few interesting projects and implement them using the technology of your choice. That way you'll have something to show potential employers instead of waiting 5 years for your local college to develop a class in something you're interested in now.

TLiebe
+1  A: 

I'd recommend both. Education has a huge impact on the society, giving you at least the opportunity to be called up for interviews in several companies. However, education never ensures that you also know how to so stuff, so self-learning is a great option too. Learn by yourself, build some nice projects to add to your portfolio, and I'm sure you'll find some company interested im someone who have education + self-learning experience + initiative to keep learning.

yoda
+1  A: 

I suggest saving your money so you can relocate. Objective C had 500+ hits on Dice.com. If you have applied for these types of jobs, what feedback are you getting from interviews as to why you're not getting the job?

Jeff O
+1  A: 

OK, why don't move to company that can use your current knowledge right now and are based on technologies you want so you so you can change scope step-by-step? Looks hard but I know number of people that already did it.

Roman Nikitchenko
+6  A: 

A couple years ago I deliberately set out to move from programming for a defense contractor to working with technologies I was interested in. Now I work for a startup writing Ruby code and loving what I do.

I cannot stress this enough: start participating in the community you want to be a part of right now. Look up your local user's groups and start attending. Pick out a conference to go to - if you can't afford a major conference find a local BarCamp to attend. Sign up to mailing lists and ask and answer questions. Start sending patches to Open Source projects you like. Get on Twitter - for better or for worse, it's where all the hot coders are. Start a blog and write about the technologies you are interested in. It doesn't matter if you are a n00b; just start adding your voice to the mix.

I was going to make this a list of steps, but really the above covers it. Become involved in the community you want to be a part of, and the work will find you. That's really all there is to it.

Oh, and skip the degree. The time you'd be spending in classes and on homework is better spent contributing to the developer community and becoming known.

Avdi
A: 

I would suggest getting the Master's, if you are interested in research-y or scientific applications. In the academic world, degrees and published papers are the biggest qualifications, typically.

If you want to be a hot code jockey on the cutting edge of development, you're probably best off learning the web stack and moving to Seattle or Silicon Valley or another one of the cities with a lot of startups/tech and contracting out there.

Paul Nathan
+1  A: 

Moving into a job that makes software with languages/technologies you have no experience in can be a tough sell. That being said, I think you should apply to some jobs that you want (1+ year old startups and smaller established firms are generally fantastic with this) -- you might be surprised at how many will be willing to take you on despite a dearth of experience. Huge factors in getting someone to take a chance on you in such a circumstance:

  • experience with similar types of applications and/or scale or scope of projects
  • experience with similar languages or technologies (making the transition easier)
  • most useful of all: an enthusiastic and confident exhibition of core concepts and approaches

From my experience you can make virtually anyone with an open mind overlook all other deficiencies if you show that you can solve problems in a fundamentally sound way.

Nicholas Becker
A: 

Some companies hire based more on solid foundational knowledge (algorithms, data structures, sound engineering practices, etc.) than on specific technology experience. If you really know your stuff at that level, picking up RoR or Objective-C or what have you on the run isn't that difficult. Send your resume out and see what happens. Couldn't hurt.

That said, if you do run in to difficulties finding somebody who hires this way, portfolio projects could help, and stretching your brain on your off hours can help relieve the pain of working with technologies that don't float your boat. So might as well do that also.

Corey Porter
+1  A: 

Take the Red Pill

You have the feeling that things aren't right, and I agree, but we should be sure that the real core issue has been identified accurately.

It's possible that the problem is that you are quite reasonably unhappy with being an accessory on the business pyramid. I'm not sure what the buzzword for this is, but even ancient career advice recommends working within the mainline of a business if possible.

So, you may not want to be an accountant at a software company or an IT programmer at an accounting company.

It might be better to be a geologist at an oil company than at a construction company, even though both need geologists.

I would look for opportunities to move into a business that revolves around technology, instead of one that merely uses it to support an unrelated main line of business. You are right that the amount of respect you get will be limited if the company's mission is not technology of some sort.

DigitalRoss
+1  A: 

I'd like to add a little twist to the advice above, especially Avdi's response, speaking from the perspective of 25+ years mainly in software development and having worked for a very wide range of organisations. I'm currently also trying very hard to keep working in a similar range of technologies to you, although remotely from Perth, Western Australia (which looks like offshore+expensive so I have to add value).

  1. MS means nothing, maybe an MBA would mean something if you wanted to work in business (regardless of technology) but an MS means nothing. If you want to teach or work in science, a PhD is essential to get respect but MS is an intermediate degree UNLESS it is a conversion degree, adding CS onto some other science, in which case it qualifies about the same as your basic BSc.

  2. Prove you can do things in those cool languages.

    • Don't just join communities but fix bugs, especially in build systems, sample projects and the fringe tidying-up stuff that people don't bother with.
    • Add more samples and documentation - become the person people love because you have helped them use the technology
    • Document your contributions - imagine you are answering the question what value would you add to the team
    • Look for projects which have stalled or been abandoned and offer to help.
Andy Dent
A: 

Just to add to the above answers, I'm in a similar position - working on fairly standard/boring .NET business applications when what I would like to be doing is using different technologies which I have much more interest in. Personally, I am looking into developing some of my side-projects into a small startup where I can decide what technologies I want to use and leverage their potential to (hopefully) produce a product/service which can compete with the larger players in the field.

mikecsh
A: 

The question is: How do I get a non-traditional IT Job, when my career background is in conventional business programming?

I see a lot of stupid advice here, so I'd like to offer my own advice, which I hope is less retarded than what most of the people here have posted.

I always think more school is always a good idea, but at the end of the day, you can spend 2 years in school and still be a lazy unmotivated sack in your next job. What you're asking for takes some personal development, and you can do it now.

Observation: Forward thinking IT guys are always opportunistic, examining trends in the market place, and tailoring their experience to match anticipated demand. Spotting trends in the market place requires a bit of calculation and planning from a career perspective and may take a few jobs to eventually land where you want to be.

Advice: Please understand that stuff you find interesting and unconventional can and should be viewed as strategic insight. Always be thinking about how it's good for your career, and how it makes you stand out.

Advice: Tailor your day-to-day mundane experiences with practical applications of technnology that you find interesting, with the purpose of clearly articulating a bridge in experience from one place to another. Your project manager is probably too stupid and unimaginative to appreciate the subtle nuances of your day to day tasks, but that doesn't mean you can't put something interesting that you learned and applied on the job (that's relevant to where you want to go) on your resume.

Advice: pitch an unconventional technical solution to your immediate higher ups, with the understanding that you'll probably get shot down because your bosses are too stupid to appreciate your ingenuity and imagination. Contrary to what someone observed: "you don't want a job, you want to play at work," - this is what's really happening when you pitch these opportunities:

  1. you're honing your evangelical communication skills to a technical and non-technical audience
  2. a good manager will get the message that you're interested in taking stuff on that thinks out of the box.

If you actually do you get a shot, don't be afraid of failure - it's merely a stepping stone of opportunity in your career progression. Every bit of real-world experience counts.

Advice: if you're not working somewhere that you can identify and articulate opportunities (either because business tasks are not compatible, or because management sucks), it's time to move on.

In short, show some balls and a little bit of bravado.

The lot of corporate programmers are lazy pu*sies playing catch-up with current trends in the marketplace, looking to collect a paycheck and punch out at 5pm. Join them and then go home and play with your computer on your own time, or show some initiative and do good work at work.