Wednesday, November 10, 2004

Education?

A question was posed to me asking how much education I expect a software engineer to have before I would consider hiring them. I don't like questions like this one, because it begs for a general answer to a question that I think deserves more careful scrutiny. I am not a fan of hard and fast rules for anything in life. Place two candidates in front of me, and the person with the formal education does not necessarily beat the high-school graduate in intelligence or skill.

While I do believe that education is important, I believe that education can come in the form of reading books, working, traveling, and just living life in general. Albert Einstein was a high school drop-out (okay, later in life he squeeked his way past earning a degree) who wrote his amazing papers without any academic instruction while working as a patent clerk. He hated the rigid structure of the classroom setting.

So in my estimation, a person's worth should be measured by their ability to present themselves, by their passion, and basically by their performance rather than by a piece of paper signifying their diligence to show up to and pass college level courses. Don't get me wrong, you can get a lot out of college. You can also get very little.

23 comments:

RG said...

Typically, organizations use education requirements as a way of weeding out candidates when they receive a flood of resumes for a position. If your organization receives 500 resumes every time you post an opening, education requirements are as good a way of filtering the pile to a manageable number, if somewhat arbitrary. My personal experience though is that unless you work for a big company, you don't typically see huge numbers of candidates applying for software engineer positions.

I think it is also important to consider the position for which you are hiring.

Professional experience for a tech lead or experienced developer position will always trump education - what they learned in school likely matters very little.

However, if I am hiring for an entry level developer position, then I might be more interested in their formal education. Still, any related work experience will probably be more important to me than education.

Also, a good candidate will leverage his/her strengths on a resume and in an interview. So, if their school projects more closely match things that are relevant to the position, they'll point that out. That's what I'm really looking for - someone who can think.

Anonymous said...

Avonelle said: My personal experience though is that unless you work for a big company, you don't typically see huge numbers of candidates applying for software engineer positions.I work for a company with a whopping 15 employees. We put out an ad for a developer and ended up with over a thousand applications... But I digress.

But I agree with the general point: college != intellegent. I knew some of the brightest programmers who never went to college because they didn't understand why you need all those extra classes. And I graduated from college with some people who couldn't code their way out of a wet paper bag.

The reason why I (personlly) would hire someone who went to college before someone who didn't boils down to one fact: you learn about life in college. You learn how to jump thru hoops by dealing with all sorts of different "bosses", and you have a more rounded education. For example, someone coming out of college that I hire as a programmer doesn't need to be an expert in the concepts of business. But I expect them to have at least a rudimentary understanding of economics. If they don't, then how can I expect them to understand a business model and why it may or may not work? This isn't as large of a deal in a big company... but in a small company, it can make a world of difference.

Don't get me wrong... I have nothing against people who didn't go to college -- I understand that they can be a lot smarter than the ones who did. I just think that they may be lacking in all the extraneous skills that someone needs to be a good employee, regardless of company size.

~Aaron

Valerie Vogt said...

So Aaron, do you think that a person right out of college has a leg up on someone with 5 years of experience when it comes to lessons learned regarding business?

RG said...

Aaron said: I work for a company with a whopping 15 employees. We put out an ad for a developer and ended up with over a thousand applications...

Wow! That hasn't certainly hasn't been my experience. (Do you think that the ad was well crafted? I wonder if it was too broad. But I also digress...)

You comment about learning about life in college is very funny to me. I would never argue that college teaches you about life. I would argue that completion of a college degree demonstrates an ability to complete a long term goal, which is a useful skill that I could be looking for in an employee. But to me, college has very little to do with real life, except in the sense that college is a part of life. Certainly real-world experience teaches individuals more about life than college every would (or at least the relevant life-learning which is valuable to me as a business person).

Anonymous said...

Re Val: Interesting question, and my answer depends on the type of business. I think a college kid may have more understanding of broad topics than a high school kid who's a whiz coder and burger flipper. But if the high school kid when out and got a job in the business industry, then it depends soley on the ambitions of the person. I know people who work in a business setting and don't understand squat about how business is run. I also know people who've never had a "true" job and can run a company better than most .com start-ups. ;-)

Re Avonelle: The entry we posted is a long story. We have a Canadian who works for us and his work visa is almost up. So we have to prove to the INS that no one but he can do his job, and so we have to interview people for his position. Bleh! So we wrote the posting to be about as unappealing (yet accurate) as humanly possible. And yet people still applied like mad for the position. As for the college == real life: I agree, what you learn in college in terms of book-smarts is pretty much worthless. It's the "life experiences" that teach you things. Such as how to deal with an anal prof, or meet deadlines, work with groups, etc. But you're right... nothing beats the knowledge you gain from working in the trenches (depending on the trenches, of course).

~Aaron

Anonymous said...

Call me an elitest again, but IMHO I would put a Bachelor's degree in Computer Science over 3.5 years of experience. Granted you get experience from a job ALL year round, I think that school teaches you the core to which makes you stand out above the crowd in development. Ask anyone without a college degree what the Pumping Lemma is.. or what a Finite State Machine is... You might ask, why does this matter? Well it just so happens that it matters quite a bit on how you think about development and can solve real world problems. I would bet my years salory that you can't learn the pumping lemma from "Teach Yourself C# in 21 Days" (yes I know its an extreme, but its supposed to be humorous :P)

Comparing Einstein to candidates now-a-days without a college degree is like comparing tacos from taco bell and chevys or chipotle. Yeah they both get the job done, but one was thrown together through a corporate machine and the other is a well crafted, thought out, educated taco. Which one do you choose Val?

I know from personal experience what it feels like to be "below" someone in a company that doesn't have a real college education in software development yet you are comparable in software development skill.

But, you are right Val, there are exceptions such as Einstein :: scratches chin :: I anyone to find an example within their company that is similar.

I know it's going to cause some ruckus, so bring it

Jake
from whoISjake.com fame

RG said...

Jake: I agree that there are things that you will learn by getting a computer science degree that you won't learn in "Teach Yourself C# in 21 days". But wouldn't you agree that there are also things that you learn in real-world experience that you won't learn in college?

In the end, it is hard to write in generalities regarding such things. There are candidates who are superior with no experience but a college degree, and there are candidates who would be superior with no college degree but work experience. It depends on the individual, and it depends on the position.

In the interest of full-disclosure, I'll admit that I didn't finish college, and in fact the time I did spend in college was spent learning absolutely zero about computers or software development. That being said, I've worked hard to compensate for that lack of software development fundamentals by regularly doing a lot of reading about software development (theory, not language-based "learn it in 21 days" types of books). Still, I'll admit that I come to the table a bit biased. Jake, I'll suggest that your view on this may also be biased based on your experience, as I recall learning on your blog that you are in your early twenties. It is just possible that only being out of college a few years has made you see that time as slightly more relevant than you will see it 15 years from now. (Oh, God, you youngsters make me feel so old!)

RG said...

Aaron - It is even more surprising to me that the position description was unappealing, and yet you received huge numbers of applications. Was it in the Twin Cities, or some place else? And was it in the last year?

I guess I've been away from hiring and interviewing a bit too long. I've heard stories like that, but typically they seemed to be from big corporations, or in huge cities. Or the position was posted in a very general way "Company seeks programmer..." How many of the applicants were actually qualified? (I'm guessing few to none. That would have driven me nuts!)

Speaking as someone who left school to give birth to a child (and to pay for things like, um, food), I find it hard to put the things I learned in college on the same level as the things I've learned in the real world. Struggling to make ends meet, feed and clothe a kid, learn how to be married and not kill the other person, and start and run a business were much better preparation for my current life as a software consultant than anything I learned while attending college. (But perhaps I would have gotten to that my senior year!)

Anonymous said...

Re Avonelle: We're based out of Austin, TX. And the position was actually very specific since we (obviously) wanted to keep the current programmer, but had to show that no one else was as qualified as him.

It was a very long, drawn out process that I got to sit thru every other day while my boss interviewed potential candidates. What's scary is, there were a lot of qualified people who we interviewed over the phone.

To Val: this is an awesome discussion! I'm really glad to see it continuing. I was beginning to think I was a thread-killer since every other time I post on your blog the discussion seems to end. :-P

~Aaron
I think that experiences you get in life all help shape what sort of an employee you are. Someone who has had life handed to them on a silver platter and cheated their way thru college is going to be a worthless employee. But along the same lines, if you're just looking for an entry-level position, someone who's been top dog for a long time won't be a good fit either. Every position is unique (no matter what the size of the company), and the entire point to interviewing is to make sure you're not trying to fit a square peg in a round hole (so to speak). Each situation will call for a different skillset, and I guess (to me) it doesn't really matter how you fit the bill so long as you do so. Make some sense or am I still too groggy to be posting? ;-)

Anonymous said...

Heh, obviously groggy since I mamanged to sign the middle of my post instead of the end. :-P

~Aaron

RG said...

Aaron - a very coherent response despite being a groggy. I think your point was right on the money.

Your description of your experience in advertising a position has made me glad that I'm an independent, and don't have to worry about such things anymore. Phew!

Anonymous said...

Re Avonelle: What's funny is -- I'm just a code monkey. My boss made me sit thru the interview process since we needed a witness for each interview from someone qualified to judge whether the interviewee was a valid replacement for our current employee. :-P

I got interested in the entire hiring process, and so called my dad up. He hires people for the local lumberyard + real estate company (hires everyone from yardsmen to salesmen to upper management) and he had a ton of insight as to what makes an employee fit right. It was a lot of interesting stuff to learn.

So what sort of work do you do as an independant? I'm assuming you're based out of the cities?

~Aaron (w00t, I even signed at the bottom this time!)

RG said...

Aaron: In the olden days (okay, a few years ago) I worked for a little consulting firm in the Twin Cities. I worked for them for more than 7 years, starting as a green newbie (with little software development experience). For about half my time working for them, I was either a team leader (with hiring responsibilities) or a tech lead on projects. I liked interviewing candidates, but I hated management. Too much paperwork.

Picking the right candidate is tricky, and I've learned a lot along the way. One thing I know for sure (now) is that the most important thing is to get someone with the right personality, drive, and temperment. I've seen some people with the right skills be completely crappy to work with, and they aren't worth it to the team. I want to hire someone who cares about what they are doing, who is willing to share the credit, and willing to take the blame. If they care about what they are doing, they can learn good software development skills.

I decided to go independent 1.5 years ago, and I love it. The best part is that about 75-90% of my job is slinging code, which is what I love. I work my own hours, and I don't work with people who suck. Mainly VB.NET, ASP.NET, and .NET Compact Framework projects.

Anonymous said...

Re Avonelle: I know what you mean about wanting to focus on coding -- that's what tends to keep me from starting my own business. I would rather not deal with the hassles that come with it.

I agree with your views on what it takes to hire the right person. If you end up with a primadonna or someone combative, it ends up bringing down the utility of the entire group. Yech!

FYI: I'm mostly a low-level C/C++ programmer. I tend to do things like networking, serial devices, file i/o, threading models, etc. But then again, I also work for a compiler company, so I'm rather out of the ordinary. ;-) How do you like working with .NET technologies? What's the biggest pros and cons of it, in your opinion? (Same question goes to anyone reading this thread, so Val and Jake: feel free to speak up!)

~Aaron [http://ramblings.aaronballman.com]

PS - with the amount of people I talk to on Blogger, I really should just get an account. :-P

Anonymous said...

So I leave for one second and there are a jagged array of posts! (hehe no pun intended) :)

It's interesting to read peoples opinions.. and yes Avonelle.. you ARE right. I am early twenties and I am biased by the fact that I'm new and just out of college.

Why would I be frustrated? I'll give you examples. Person A and Jake graduate school in 1999. Person A decides to jump into the software industry, Jake goes to college. Jake spends oogles of money and time learning the craft of software development, Person A works.. gains the work experience. Now Jake graduates and Person A gets $25,000+ more a year than Jake. Yet I bet Jake can code circles Person A. Where does that ever make sense?

I am often bitter about this topic also because of the "bandwagon" effect. Everyone and their mom wanted to be a software developer. There are too many people in the industry that go to work and gain that experience you all are talking about... just to do it and get rich. I, on the other hand, care about my career and am passionate about software development, so what did I do? I went to school... now I am punished by an over flooded market and people who could give a crap less about the software industry. Want to know another personal insite (like the person I described earlier).. another person I have worked with, said .. "If I could find another good paying job other than software development, I'd switch to it on a dime." Why WOULDN'T anyone be biased and bitter?

Jake
from whoISjake.com fame

RG said...

Jake - just a piece of friendly advice: stop worrying about what everyone else is making. While it is certainly in your best interests to be knowledgeable about your value in the marketplace, it will do you no good to constantly compare your salary to the salaries of other people. You will always find that someone who is less talented is making more money than you, and this is true in any field. When it comes to compensation, I try to focus on what makes sense for me, not worry about what others are being paid.

Also, you might want to keep in mind that those of us who didn't go to school to become a software developer aren't necessarily all money grubbing opportunists. In fact, some of us may be just as passionate about software development as you.

RG said...

Aaron - Yes, there are a fair number of hassles associated with running my own business, although it hasn't been as bad as I feared. I think the biggest challenge is to make myself do the things that will keep business flowing to me while I'm also working on projects. Once I am coding, I don't want to think about anything else.

As far as .NET goes, I'm not sure I can give you a good balanced view. My background is in VB3-6, ASP and eVB, so VB.NET was a natural progression. Most of the work I do involves creatings apps for managing corporate data, which is quite different from the compiler universe. For the work that I do, VB.NET, ASP.NET and the Compact Framework are a huge step forward in terms of flexibility and productivity from the tools I've used previously.

RG said...

Aaron: I agree that it can be disheartening when we believe we are not being paid what we are "worth". However, I would turn that argument around. You (or your skills) are "worth" what someone is willing to pay you. If you think you are getting screwed, then go find another job.

Also, keep in mind that a guy with one set of skills is worth different things to different companies. A VB.Net guy with experience might be worth $60,000 to one company, but might not be worth more than $40,000 to a company that specializes in Java (and would need to retrain him). That is an extreme example, but certainly more subtle differences (in skill, experience, education, and aptitude, etc.) also apply.

I'm a big believer in the marketplace, which generally will sort itself out.

Anonymous said...

Aaron: Thanks, I DO see both sides of it.

Avonelle: Thanks for the advice but if you're new to the market, how are you expected to place a metric on your salary without comparing to other peoples? I admit though, it's easy to pick salary as a metric, but I didn't mean for it to diverge from experience and knowledge.

But the originality of my haste to reply comes from the fact that there are ALWAYS exceptions but exceptions are exceptions, in their rarity. I will gladly concede to someone who has work experience and is better than me. But I feel that the reason why there are hungry developers is because of the fact that companies aren't making the distinction between experience and education, often misplacing a flooded resume as being better than a resume with an education listing on it.

The software industry has been screaming because we aren't being treated as an engineering practice. Now why would you say that? Possibly because you aren't treating it with the same discipline and respect through education of software engineering practices and letting people in with 3 years of experience with no core knowledge of engineering...that you can't just pick up from standard books. The exceptions can if they know what books to get... but our industry is FLOODED with the non-exceptions...

So.. I think I'm hungry for a Chipotle burrito? :)

RG said...

Aaron: Making the jump from VB6 to VB.NET was challenging, but it was never really a question for me. I like learning new things, and looked forward to the productivity boost (which has come in the long term, but not so much in the short term). I never considered moving to C/C++, because for much of the work that I do (and enjoy doing), C/C++ would likely be a less appropriate solution. Achieving top performance is not a consideration in much of what I do, but building applications quickly and affordably is.

RG said...

Aaron: I'm not sure why you think it is BS. Yes, companies don't pay people more than they have to, but that doesn't mean that employees are worth more they are paid. If you think you can be paid more and it is important to you, then go find another job. If you are unsuccessful, then I'd argue that you are wrong - your skills are not as valuable as you think they are (or you have other issues with your job searching abilities).

You are right - knowing other languages is a valuable skill, and is a worthwhile thing for software developers to pursue. And you are right - a good programmer will be able to pick up another language, and so perhaps establishing a salary difference based on that is a bit flawed. Except...let's face it - when someone hires you, they don't really know what you can do most of the time. So, I can say I can learn any language in a week, but who knows if that is true. So as an employer, I might offer you the lower salary, and tell you if you work out, I'll increase the salary in 6 months.

And that's true of a lot of skills, experience and personal attributes. I might offer Joe Oracle dude less money if I need a SQL Server guy because he doesn't have any experience with SQL Server, and so he doesn't know the many quirks, pitfalls, etc. that a guy experienced with SQL Server may know. Or I might offer Mary Component chick less dough initially because she doesn't have any UI development experience, and I need someone who can create well thought out user interfaces. Or I might offer Oliver OOP who is fresh out of school a bit more dough than I offer Joe Junior who has 1 year of practical experience because Oliver's course work seems to more closely mirror the stuff I need.

But I'm not sure how else to evaluate "worth" than what people are paid. Certainly, companies shouldn't be forced to pay employees what employees think they are worth, right?

RG said...

Yes, we have successfully steered the conversation in all kinds of directions. Thanks for the interesting perspective!

Anonymous said...

I had a chicken fajita burrito today at Chipotle.

mmmm

Jake
from whoISjake.com fame