Fog Creek Software
Discussion Board




Career path

Hi Joel,

My question involves how to get from where I am in my career to where I want to be in my career. I have a pretty clear picture of where I want to be, I'm just not sure how to get there.

My situation: I have been working with computers professional for about 6 years, mostly networking-related. My degree is in Business Administration. I am dabbling in C# and .NET right now. I want to be a professional programmer, and I am having trouble deciding the best path to take to get there. One option: go back to college and get an MS in CS. This is an appealing option, but will require much money and time, which is limited but available if necessary. Another option is self-study. Self-study has proven to be more difficult than I thought. I have found it difficult deciding what to focus my energies on when studying (there's so much to learn!). As a result, my study efforts are usually unfocused. which doesn't get me very far.

For someone in my position, which would you recommend: self-study or university learning? If self-study is your recommended path, where should I start?

Josh E.
Wednesday, April 14, 2004

First of all, I would start out by taking one or two courses -- even not-for-credit if necessary -- in a hard-core computer science area, just to check if you really want to be a programmer (and if you have the aptitude). I would take one data structures course taught in C (NOT Java) and one algorithms course.

If you find that you're really loving it, go ahead and get the Masters, but bite the bullet and do it full time. Get financial aid if necessary. Trying to change careers by going to night school is an exercise in frustration and by the time you've got all the credits you need, you'll be long past the stage where your brain is malleable enough to do hard core programming.

Instead of the masters degree you might just try getting a great job developing software. But I mean a GREAT job -- something that will look good enough on a resume that nobody would care that you didn't have a CS degree. That means software shops that everyone has heard of. Microsoft. Amazon. Borland. Apple. Oracle. And it means working as a software developer on a real product; not a "software engineer in test" and not a wishy-washy "third deputy assistant in charge of fonts and typesetting." Don't bother getting another job at the East Brunswick Community Center writing tennis court scheduling apps.
If you take this route you're going to rely on serious brand name power on your resume to overcome the lack of a CS degree.

Whatever you do, don't compromise for the sake of expedience. Go to the best school you can get into, even if it means a long commute or moving somewhere else for a year. Don't do some stupid certificate program in snapping-together-Novell-networks just because it's cheap and can be done on Sunday afternoons at the local technical college. Just ship yourself off to MIT or Stanford for a year or two and let the bank account get a little bit depleted. Don't take jobs that involve PowerBuilder and scripts -- take jobs that involve Win32 programming or device drivers. If you don't live in a city where serious software development is done, move. Stop looking for "good enough" and reach for the stars.

Joel Spolsky
Fog Creek Software
Wednesday, April 14, 2004

Now I feel like a loser.

Sassy
Wednesday, April 14, 2004

I agree with everything Joel said except the night school bit.  ;-)

Philo

Philo
Thursday, April 15, 2004

+++let the bank account get a little bit depleted+++

heh.. if only my bank account would merely SURVIVE going to Stanford or MIT...

If only I had enough IN my bank account to walk in the front door without being thrown to the sidewalk.  :)

muppet from electric-chipmunk
Thursday, April 15, 2004

I'm on Philo's side here. Methinks Joel has a rather limitted experience in this arena. I had a BS in Industrial Engineering and decided at age 30 to get an MSCS going nights. I already had 2 kids by then. Full time school was simply out of the question. It took me 3 years but I was earning a good living while going to school taking just one course at a time.

How often do you hear people on JOS talking about working 60 hours a week, and for what, for whom? Advancement? No. Big pay raise? No. More responsibility. No. It gets them nothing other than extra stress and kudos for their manager. After 3 years of extra hours, done for MY OWN benefit, I got all three.

I was also working for a big company that had very good tuition reimbursement policies. My MS in total cost me $25. The company paid for everything except printing the diploma. Tell me again why night school is not the way to do it.

old_timer
Thursday, April 15, 2004

When I was about 20, first mumbling about grad school, my parents gave me advice to the effect of, "Do all the school you think you'll need now, because it gets harder as you get older."  They weren't talking about the academic kind of "hard," obviously, rather the "hard" that comes from spouses, larvae, mortgages, etc.

I've seen people use night school degrees to significant effect, granted, but I've seen a great many more talk a lot about it and never get finished, or sometimes even started.  I'm not claiming that night school isn't a financial win (it probably is, sometimes), just that it's a pain in the ass.

As for those who say their bank accounts can't handle expenses at a good school, I call shenanigans.  My wife and I both paid for school (undergrad and post-graduate) ourselves, and we did it straight out of high school, so our bank accounts were effectively empty.

Quit screwing around and make a business case to yourself.  If you do or don't go to school, what is your expected return?  Don't forget to factor in necessary student loans or whatever, compared with your new salary, job satisfaction, etc.  If you're poor (and in the US), you may get some no-strings-attached grants in addition to loans, so do your homework.  I claim that if you have a good programmer's aptitude, going to school almost certainly wins, unless you're an investment banker now, or really love your current job or something.

Lucas
Thursday, April 15, 2004

I'm doing nearly 60K as a senior programmer right now as a self-taught high school dropout, so, so far I'd say the return on my 'investment' has been pretty good, though not typical.  :)

I live on my own after having been divorced (meaning I have a living situation which was acquired on two incomes and is now supported on one), have a child, am a single father (hello daycare expenses), a car payment, etc.  I have approximately $200 a month in disposable income.  Since technically I'm making just fine money, I don't think I can qualify for many grants (if any), and I certainly don't have the money out of pocket to fund an education, let alone the childcare resources to actually ATTEND class if indeed I could pay for it.  And if I did, I'd be an absentee dad.

So yes, get all the school you can stand right out of high school, don't wait!  Night school works for some people very well but that experience is NOT typical.

muppet from electric-chipmunk
Thursday, April 15, 2004

If you are planning on doing MSCS full time in US schools, you don't have to worry about the money. All most all the schools have what's called Graduate Research Assistanships which will pay your tution in full and ~ $1000/month. In return you will have to work 20hrs/week in some department doing some software/network stuff or for some professor doing some sort of research, depending on your interest. And if you are an American Citizen, you are given priority over International Students for these assistanships. I think it's required by some law or regulation. I know this because I did MSCS and didn't pay a penny.

Anon
Thursday, April 15, 2004

Unfortunately, going to night school AND doing 20 hours per week for some prof AND raising a daughter on my own seems a bit unrealistic.  Nice to know there's programs like that around, though.

muppet from electric-chipmunk
Thursday, April 15, 2004

>> I know this because I did MSCS and didn't pay a penny. <<

I also did my MS this way (although in math, not CS; shouts of, "Navel gazer!" are heard from the gallery).  However, you did pay something, namely opportunity cost.  I claim that this opportunity cost is more likely to keep people who are already working out of grad school than direct price.  This also doesn't help undergrads; I managed to get an assistantship post in my 4th undergrad year, but that's very rare AFAIK.

Lucas
Thursday, April 15, 2004

Also, don't underestimate the value of a good mentor.  If you're learning software development, just like any other field, find someone who really knows their stuff and would be willing to mentor you a bit here and there.  You'll be amazed at what you learn and how quickly you learn it.

Note, this isn't meant to replace an education.  I also (mostly) agree with all the stuff above too....

Michael Kale
Thursday, April 15, 2004

Thanks to all for the reponses. To give a little more background on my situation, I am 27 and currently working in the IT field (technical writer/trainer) at a good job (I even get to work from home!). Joel's advice re: going back to school full time is good, but I'm not sure how feasible at this point. I'm married with a mortgage. I currently live in the Nashville area, which is close to several colleges. Vanderbilt's an option, but making a business case for spending that much money is difficult.

How would I go about obtaining a job at the programming heavyweights (MS, etc) with no "real" programming experience? What are my other options? I'm trying to gather as much information as I can...

Thanks!

Josh E.
Thursday, April 15, 2004

"I've seen people use night school degrees to significant effect, granted, but I've seen a great many more talk a lot about it and never get finished, or sometimes even started"

And there are people who talk about writing a book and never do it. There are people who are going to write the next Word or IE-killer and never do it. There are people who are going to build their own house and never do it.

While on the one hand I always advocate playing to one's own human weakness (like staying in school while you're there), this is a case where your statement bolsters my argument about not getting an MS straight out of school - if you can't be bothered to go to night school to get it, then it wasn't that important after all, was it? ;-)

Sometimes setting hurdles for yourself can, by testing your mettle and dedication, save you time and money down the road.

As for OP - being in Nashville makes it interesting. I'd say get the lay of the land - find out where there's software work going on. Find out what their preferences are for platforms, then you may be able to teach yourself into a job where there's more work than talent.

I would suggest more research on the local IT job market before thinking more about educational requirements.

Philo

Philo
Thursday, April 15, 2004

Before you dismiss the full time route, make sure you check course loads and scheduling.  I seem to remember that I didn't spend a lot of time in the classroom when I got my MSCS.

If your current job gives you any scheduling flexibilty, you can probably work around your class schedule.  By taking advantage of summer sessions I was able to work full time and still finish in two years.

Chris
Thursday, April 15, 2004

"How would I go about obtaining a job at the programming heavyweights (MS, etc) with no 'real' programming experience?"

Yeah, Joel, just how _would_ he go about doing that?  You speak as if it were easy.

Kyralessa
Thursday, April 15, 2004

When I got my first "real" programming job, I had virtually no commercial software experience and one (count 'em, one) programming class in university.  I had, however, been tinkering with software since childhood, and could speak intelligently w/ interviewers about both the business and coding.  I took an offer "way" below scale, and after a year or so of proving myself got a nice bump that put me at scale. 

Three or so promotions and five years later, I have a team of seven talented folks cranking web service access points to our feature product.  I also never forget how I got my job and what my background was; Now that I am in a position to hire for my team, I look don't immediately disqualify those without MSCS and 3 years paid professional experience.

Brad
Friday, April 16, 2004

I also (apparently) don't proofread before hitting the "Post Message" button.  What the heck does "...my team, I look don't immediately..." mean?

Brad
Friday, April 16, 2004

Brad-

This is kind of the experience I'm trying to get. I've taken *two* programming classes in college, but one was Fortran, so we won't count that one. ;)

I would like to be able to get into a situation where I could work with a mentor and progress that way. I don't necessarily care about the MS degree in terms of personal achievements; the knowledge I would gain is more important to me (the degree would be great to have, though). If I could obtain that knowledge elsewhere, then great. I'd be willing to take a pay cut if the opportunity for working with a mentor presented itself.

Josh E.
Friday, April 16, 2004

Speaking as someone who is (hopefully) taking their last class towards a MS in Software Engineering, it can be a long haul.

I will have been at it for seven (yes, SEVEN) years.

Hopefully, it will have been worth it.

Thank God I have the most wonderful, patient, and supportive spouse. I couldn't have made it with out her.

Overall it has been a pretty good experience. My employer(s) have had excellent tuition reimbursement policies. The program I am in (National Technological University), is expensive, but offered me the opportunity to take classes from a variety of different universities in the US. For example, I got to take a class on Software Engineering Economics taught by the guru himself, Barry Bohem.

One of the reasons that is has taken me so long is I tried to take classes that where I would actually "learn" something. I took classes on Requirements, Analysis, Desgin, Testing, User Interface Desgin, and even a few on JAVA (cough, cough). Some of my co-workers finished in 3-4 years because their first criteria for selecting a course was "How easy is it?".

I often wonder why co-workers and managers didn't know about this stuff, and then I look at the copyright dates in my textbooks and realize that most of the concepts were just starting to take form while they (and I) where still in college.

If you your employer has a tuition reimbursement program, and you are young (I'm 38 now) I would seriously consider taking advantage of the opportunity. But don't do it just if you want a piece of paper. Don't do it if all you care about is getting a high grade point average. Do it because you want to learn something new.

In fact my primary job now is Network Administration, but I don't think I have wasted my time learning more about software development at all.  When encountering a tricky networking problem it really helps to be able to put yourself in the developer's shoes and think, "What the hell was he/she thinking when they did this?". Usually there is a good reason.

The best congratulations I received is when I invited a old college freind to my graduation. He replied, "Oh, I thought you were getting an MBA. You're actually getting a REAL degree!"

Neil Johnson
Friday, April 16, 2004

You should probably find out what a programmer does. A programmer in on shop is vastly different from a programmer in another shop. If you go the "IT" route you probably don't need more than a vocational understanding. If you really want to develop something you need to know the ins and outs and most likely go to a name brand school.

Tom Vu
Saturday, April 17, 2004

> I would like to be able to get into a situation where I could work with a mentor and progress that way ...

I shudder when I read things like this. Can't you learn yourself?


Sunday, April 18, 2004

Of course I can learn on my own. However, having a mentor to provide a little help couldn't hurt, could it? Isn't that, in essence, the same as having an instructor provide guidance in a classroom environment?

Josh E.
Sunday, April 18, 2004

"Unfortunately, going to night school AND doing 20 hours per week for some prof AND raising a daughter on my own seems a bit unrealistic."

If you're going to do 20 hours a week as an assistant for a prof, that would be part of an assistanceship in which you'd study full time.  Meaning no night school.  They'd pay your tuition and a ~$1000/month stipend.  It probably wouldn't be any more time-consuming than your current full-time job.  You'd just have to have the savings to foot the bill for other expenses that the $1000 won't cover.

T. Norman
Sunday, April 18, 2004

Dude, if you aren't the type that was hacking your Commodore 64 in assembler in junior high, you're not going to last as a programmer.

At best, you'll be some VB and Java cranker, not doing very interesting work. And all of that work is going overseas.

Has anyone mentioned the age discrimination in the computer industry? Past age 35, if you get laid off, you're automatically looking at a career change. Don't even think about finding a job at 35+.

You might try one of the more squishy type positions - like product manager, or development manager, take a few classes, but I'd stay away from doing it for real.

anonymous strikes again
Thursday, April 22, 2004

> Past age 35, if you get laid off, you're automatically looking at a career change. Don't even think about finding a job at 35+.

I was laid off a year ago. I've had 3 offers in the last 6 months, and I'm 40+.

I'm not trying to get into this career, though: I'm already in it.

> I have found it difficult deciding what to focus my energies on when studying (there's so much to learn!).

That's true. I've always learned (outside of university) by having an actual project to work on: so that I focus on learning whatever it takes to complete this project.

Christopher Wells
Thursday, April 22, 2004

"Dude, if you aren't the type that was hacking your Commodore 64 in assembler in junior high, you're not going to last as a programmer."

Horsefeathers.

Don't listen to him, OP.

Fernanda Stickpot
Wednesday, April 28, 2004

I wasn't too concerned with the comments by 'anonymous'. I know that if you are good, there will most likely be jobs available, regardless of age.

Josh E.
Thursday, April 29, 2004

*  Recent Topics

*  Fog Creek Home