views:

642

answers:

13

I'm 41, currently a sys admin for a large-ish company. I graduated in 1989 with a Comp Sci degree, but never took a programming job. What would your advice be if I said I wanted to move into a programming career now? Too old? Naive? I have kept reasonably up to date over the years and know a fair bit of C++ and Java but only used for hobby projects. I use SQL Server regularly but more from an admin perspective. I have written a few internal utilities in scripting languages. Any thoughts?

+2  A: 

pick a technology, a language, and just start to do more with it. Get involved with an open-source project is a good way to learn more.

Basically, you aren't too old, if you are open to new ways of thinking, as sysadmins tend to think different than programmers, in my experience.

If you can find an intro job that would help you get started, but you will take a paycut and you will need to show that you are interested.

James Black
+1  A: 

You're certainly not too old to be a programmer, but it might be a challenge to get someone to take a chance on you. I have a couple of friends who accomplished the move to programming by taking roles in test or configuration management, and then moving into development based on their demonstrated work ethic and domain knowledge.

Robert
+1 for "working your way in"
Dave Swersky
In the US it is a violation of federal law and probably state laws to discriminate applicants by age. It shouldn't be a challenge and if it is I say call the Attorney General of whatever state you live in and report it. Employers are taking a chance of civil and criminal liability if they think hiring someone on the basis of age is 'taking a chance.'
apphacker
The discrimination here isn't based on age, it is based on past experience. You were doing x for so long, now you want to do y for less money. How do I know you won't go back to x for more money in two months?
Yishai
That's not what his answer implied.
apphacker
I promise you that if I ever see discrimination of any kind, I will make huge deal out of it, and so should you.
apphacker
I did not mean age descrimination, I meant lack of recent direct experience. I think my suggestion that he could work his way in demonstrates that.
Robert
A: 

Your hobby projects will serve you well. Your time management and familiarity with systems will be even better.

However I definitely agree with the Malcom Gladwell's "10,000 hours" theory which he presents in "Outliers". After many years of seeing different programming and architecture issues I think I'm just at the passable level. Peter Norvig seems to come to the same conclusions.

However, I've seen a few programmers who have a history in very very slow and methodical programming. This gives them a very specific specialization and you will probably be able to find your niche and develop your core skills in a good environment.

Karl the Pagan
+1  A: 

One way to break in and build your portfolio of real world skills is to volunteer your services to a non-profit or charitable organization. Many have need of programmers to do internal systems or web sites.

Even if it takes you two years to get the job you want, you will be making progress. If you don't do anything different you will just be two years older.

Gary.Ray
A: 

You could start with server side web development. With the web you can generally concentrate on the business logic task without having to deal too much with plumbing issues which can be more complicated programming tasks. For example deployment for a desktop application or multi-threading for a service can be difficult and don't apply for web development.

sipwiz
+3  A: 

What disadvantage could age possibly give you?

  1. Hiring: It's illegal for employers to discriminate on the basis of age.
  2. Mental fitness: In your 40's? You're as sharp as you've ever been.
  3. Responsibilities: in your 40's you probably have more responsibilities than someone starting out in their 20's. Family obligations, retirement planning, etc might present a challenge when in a entry level position with long hours and lower than usual pay.
  4. Culture: Probably many of your peers will be younger than you, as will your managers, and the managers of your managers. Something to contemplate maybe. Not a show stopper probably though.
  5. Education and training: probably the toughest aspect: making that change will require a lot of reading and programming and maybe some time in school.
apphacker
Good points. Young managers...I guess there's no escaping that. The low pay could be an issue, could be the dealbreaker.
20th Century Boy
It's not low pay, at least not in the Bay Area, depending on employer of course. It's probably just lower than what you're used to.
apphacker
I'm in Australia. It's all low pay here :-)
20th Century Boy
+5  A: 

I think you could make the transition easily with persistence. The trick is to go after a market that has a shortage of supply, then position yourself correctly in that market. I'm 41 too and have been a VB programmer, then an Oracle DBA, then to product management and now back to Rails. I'd recommend concentrating on rising-tide technologies and languages. Do some projects of your own that are publicized and used by others using these technologies. Two that immediately open the door for you today are Rails and iPhone's Objective-C. I'd skip C++ - there's little demand for it. Market yourself and create a compelling story around the advantage of 20 years of sysadmin that a future employer will benefit from. Don't market yourself as a run-of-the-mill programmer since you won't be able to sell against a 23 year-old college graduate whose on 1/3 the salary. Competitively differentiate yourself. Good luck and have fun!

I like this answer - I hadn't though of those. Ruby is a big shift for me though. And the iPhone dev environment is Mac isn't it?
20th Century Boy
Yep, iPhone development requires a Mac which makes sense I suppose.. as unfortunate as it is. Ruby runs on just about anything, and is actually a very gentle introduction to OO programming.
Bayard Randel
The Pragmatic Programmers' "Agile Web Development with Rails" is a good intro to Ruby/Rails. It does quite a good job stepping you through all the steps. The "Head First" books are also quite good as intros to concepts/languages.
GreenKiwi
A: 

I think its bad idea

1) dynamics - sys-admin has diffrent dynamic at work. You have more time to surt the internet and many programming companies have very tight deadlines.

2) frameworks - with Java knowing the language is not enought and you will need to learn many frameworks.

3) code style - nowadays writing code is not enough and you are expected to write code to be easy to maintain. some people that are programming every day cant do it right. Old school programming is writing everything in one method. changing that is not easy.

4) ajax - web-app rules and you will have to get to know javascript and css also.

5) money - you wont earn as much as sys-admin veteran.

01
First negative response! Valid points. Most answers seem to point to web apps. Unfortunate as that's not my favourite area. My ideal would be writing desktop apps in C++ and Qt! I guess that's fantasy land these days.
20th Century Boy
People are never too old to learn (excepting personal prejudice of course, and that's obviously not the case here).
Hardryv
im not saying hes too old to learn. im saying that its not worth it.
01
+1  A: 
  1. Choose the general tech that you want to start programming in. i.e. Java/C#/C++/Ruby/etc.

  2. You will want to buff up on your programming skills, pick a hobby and/or open source project that you can contribute to in the technology that you want to learn. This will give you some examples of your work for interviews.

  3. Pick some technologies with which you are familiar. While you don't have a lot of programming experience, you do have other experience and you will want to sell that "experience" when you go looking for jobs.

GreenKiwi
A: 

Guys, remember, it is illegal to admit or document that you discriminated on the basis of age. But a company can and often does discriminate. the trick is to find another excuse for not getting the "discriminated against" guy...

Ali Shafai
A: 

There are a few things to get figured out here, IMO:

1) What do you want to be doing - What languages and environments would you like to have, e.g. web, windows, database, some mixture of all three. This is partly from a motivational angle in terms of what gets your juices going.

2) What skills do you have that you could leverage - Smaller companies may take a sys admin that can also do some small development stuff and roll that into one job that would be my suggestion for a starting point.

3) Fallback - How far down in salary and corporate hierarchy are you ok in dropping, e.g. would being a junior developer be OK to you?

You aren't too old, or naive. The scripting knowledge would be important along with knowing some basics of software development like SDLC and methodologies though if you go with a start-up there may not be that much structure.

JB King
+1  A: 

I can relate to your current situation, even though I was not as "old" when I did it. I had been working in IT as a Linux sysadmin and Oracle DBA consultant for about 5 or 6 years. During that time, a couple of projects required some programming tasks (PHP, PLSQL), but no "full time" developments.

I grew a bit tired of the consulting jig, and started to look for something else. I was lucky enough to land a job in a big multinational manufacturing company as a Software Projects Engineer, working with .NET, SQL Server and a side dish of Oracle, this without having any experience with .NET languages at all. And with better pay and benefits than my six-year experience consulting job.

Two years later I'm still here, and have received very favorable comments in my yearly reviews. Once I asked my boss why was I picked over other candidates to the position, given my null knowledge of the tools required. To make this short, what matters is not what you know now, bur rather, what you are capable of doing in the short and long term.

Being in your 30s, 40s, you surely have developed great skills, both hard and "soft". Use these to your advantage. Luckily, your career change is not so drastic so that you'd be starting from zero. Of course, brushing up on current trends while you look for something else will improve your chances, so pick a technology that has some market value and, most importantly, that you are interested in learning. A developer with DBA and sysadmin experience is of great value, as s/he has dealt with issues from outside the barracks.

Depending on the passion with which you embrace programming, you can become a great developer, or maybe you can learn just enough to branch into less technical stuff and become a project manager / planner / what have you, with enough tech skills so as to be useful to both your costumers and your tech team. This too, can be done (a friend of mine spent one year as a programmer, then moved to less hard tech stuff and is now an excellent director of IT in an international company). But that is for another thread I think.

Myself, I'm still trying to figure out and design my career path for the next 5-10 years, but now with a broader perspective.

PJ
Just for the record, I am 32. I know 30 is not 40, but considering I have a shorter career than you, I think your chances of success are good.
PJ
Thanks for the input, very interesting!
20th Century Boy
A: 

Hi,

did you switch to a development? I am in similar situation now.

I am 35, Comp Sci degree, but worked as a sun/solaris sysadmin all the time. Now I am loosing my last job, and sending resume to several companies which work with same equipment. But there are not so many chances - small city, far from any big civilisation.

From other hand, one company I worked for asked if I can come back as a developer... Which is a little weird, considering that I don't have practice...

At the same time I tried to get Australian visa... They don't need sysadmins, so I applied as software engineer and acs rejected to certify my explirience :-). But agreed to send sysadmin certificate (which is ok only for state sponsored visa... But states don't need sysadmins neither )

I wander is it wise choise to take developer position offer (somebody agree to pay for your training), and move in a couple years to Australia with gap in sysadmin work history...

Igor