Sunday, May 18, 2008

Are Experience and Education Mutually Exclusive - The Result

I got a great response from my post the other day on whether or not formal education is necessary if you have experience. I appreciate all of you who left comments or contacted me directly.

Almost all of you said that experience was more valuable than education, once someone has already gotten their foot in the door.

But, something funny happened a couple days after that post. I got schooled by a 20 year old teaching assistant. Needless to say, it was a bit humbling, and I drove one thing home for me:

I need to stay in school and finish my education.


Lily and Jack said...

I'd agree with your view to stay in school, but for other reasons.

There will always be people that know some detail of a language that you don't.

For example, these types of discussions were really important back in the day.

Most people today would find that discussion rather pointless or pedantic. And for the younger readers, some of the people in that discussion were the 'heavy-hitters' of the day. It seems every language/plaform has its gurus, then for whatever reason, they move on and a new breed of gurus come into the picture. Today it's Scott Guthrie, DHH, Ted Neward, Hanselman, etc. Tomorrow? Who knows? We'll all be talking about software transactional memory and parallel computing or some other concept that has yet to come into fashion.

My point is, don't expect to be a language/technology guru after being in school. There are many reasons to stay in school, but I don't think that is one of them. I think school gives you a good baseline for your career, but from a programming perspective, it is more vocational. Knowing when to use a particular design, language (or sometimes when NOT to use one) can really only come with experience. I always think what separates an Architect from a developer is that the Architect realizes they don't know everything.

I do however, think it is practical for someone to be self-taught--at least most of the concepts that one would learn in school. Even easier today to get a formal background -- without that piece of paper of course. :) I don't think that would be true if you say, wanted to be a chemical biologist. I am sure someone out there has their own chem lab in their basement, but for the general population, that's not the case.

As someone who has done a fair amount of hiring, school is really important for people without experience, but somoene who has a proven track record with solid experience behind them goes a long way. It also depends on where you want to work. Sometimes it depends on where you work. Teachers for example, can get pay increases based on their formal education (sometimes even per credit hour post-grad). Some companies have strict policies regarding education--typically for more sr. management and R&D positions. But as always, if you haven proven yourself more doors are open.

At the end of the day, I think you should do what you think is right.

Anonymous said...

This is probably not the answer that someone who has been in school for years (and has a few years left) wants to hear, but the point of going to school is so that you can go back to school later. Your work experience may get you the next job or promotion, but try to get into a post-graduate program without a BS or BA. It most likely won't happen.

When I finished with my BS (300 years ago), I was fairly convinced that I hadn't learned anything that would be remotely useful toward my future career (my major was Industrial Engineering, but I was headed in the direction of software development as a profession). I had taken some CS classes, and was solid enough to get a job with a large consulting firm.

Then I was offered a parital ride to grad school for Industrial Engineering, and I decided to take it. One of the things about grad school is they force you to take advanced level courses in other disciplines. My first reaction to this was that taking grad-level classes in another engineering discipline that I had had no exposure to in undergrad would be academic suicide.

By chance, I decided to take a number of courses through the Civil Engineering department (actually, I think it was because the woman I was dating at the time was a CE major, but that's besides the point). What I didn't know when I made that decision was that all the optimization and factory simulation classes that I had taken for my BS had a direct application toward research that was being done by the professor I was taking the CE classes with. There were concepts that he knew about that I didn't, and there were concepts and algorithms that I knew that he didn't. Throughout the two courses that I took with him, we were able to have an incredibly interesting working relationship, and I was able to learn more than I ever thought I would. It completely changed my perspective on most of the things I had learned while getting my BS.

Those sort of opportunities aren't really possible in the professional setting (unless you are able to work for a pure R&D company). They might have been possible in the undergrad setting, but if they were I was unaware of them. It wasn't until grad school that knowing the fundamentals really started to pay off.

What it really sounds like is you are dealing with some form of "why do I have to deal with this at my age" burnout. If that is the case (and I have been there myself), then I would recommend taking a course in something completely different from your current major but still theoretical in nature. Try a sociology practices course, or a statistics methodology course, or an urban planning course. I bet that you will find so many tie-ins with your major that it will re-invigorate your interest in CS, and you will probably be able to bring fresh new ideas to those professors, too.