As for you, the average reader, go/stay in school and get a degree. Life throws all kinds of curves at you. At 20-something it might be cool and trendy to be a modern hippie-techie drinking latte's and coding for Google, Facebook or whoever. One day you might wake up in an entirely different landscape at thirty, fourty or fifty years of age and regret the fact that you did not take the time to complete a degree before your life got more complicated. I've seen this happen.
Not everyone is going to drop out of high school or college and launch a billion dollar company.
Don't be a moron. Get a degree.
BTW, I am not just talking about CS degrees. A friend of mine was rejected for a sales engineering job over someone with a BS in Architectural Landscaping. He had years of experience as a technology developer, just didn't have a degree. The large corporation a a strict requirement for BS degrees as a minimum, even if the degree was bullshit or unrelated. He was told they wanted to hire him but could not due to the lack of a college degree.
>Not everyone is going to drop out of high school or college and launch a billion dollar company.
Neither did this guy. Most of us without degrees did something similar to what this guy did; do a high dollar job for a while for a low-dollar wage, and eventually you build up enough reputation that you can get paid market rate.
>As for you, the average reader, go/stay in school and get a degree. Life throws all kinds of curves at you. At 20-something it might be cool and trendy to be a modern hippie-techie drinking latte's and coding for Google, Facebook or whoever. One day you might wake up in an entirely different landscape at thirty, fourty or fifty years of age and regret the fact that you did not take the time to complete a degree before your life got more complicated. I've seen this happen.
Serious question: What is the downside to going back to school later?
I mean, sure, if you have someone giving you free money to go to school, yeah, that might be a time-limited offer, and you should take it. All other things being equal, you should take free money. But for those of us who have to pay our own way? seems to me like it would be much easier to go back to school when you can make a bunch of money working part time.
I mean, I don't know; I haven't seriously attempted to go to school. But I can tell you that when I work part-time, my hourly rate is more than 10x what I could get when I was 17, and trying to go to school while working. My cost of living isn't much higher than it was then, either. (biggest difference, probably is that I've gotta pay for health insurance now.) - I could live pretty comfortably and pay reasonable state school fees, contracting myself out 1/3rd of the time.
So from where I stand now, in my early '30s? it looks like going to school would be way easier than it was when I was 17, and thinking I needed a degree to increase my salary above sustenance levels. But then, I haven't seriously tried to go back, so I don't know.
According to the stats for my region, 56% of women and 45% of men start into a degree program, yet the degree attainment rate is only 25%. I find this attitude a little bit troubling when such a large percentage of the population are already trying and failing.
Given the costs – actual and opportunity – involved, unless you are certain you are in the top ~25% of students and can derive value from that expense, it seems rather foolish to follow said advice. Do what feels right for you and your situation. You know yourself better than anyone else and if you are truly doing what you want to do, there should be no regrets either way.
People need to stop treating a "degree" as being equivalent to "an education." Instead of filtering by whether someone completed years of irrelevant, understimulating general education coursework, why not look at actual past performance and work sample tests? There needs to be an option for already "educated" people to bypass the process of getting a "degree".
>" The large corporation a a strict requirement for BS degrees as a minimum, even if the degree was bullshit or unrelated. He was told they wanted to hire him but could not due to the lack of a college degree."
Sounds like a place I wouldn't want to work at.
College has been productized to a disgusting degree. If you can do it, you absolutely should not waste years of your life going to college for something dumb vs. doing what you love. You CAN be successful without a degree if you really want it.
I generally agree with you. While I think college is drastically over priced (both in terms of time and money spent) it's the best option for the majority of people.
There are exceptions though. And even for those exceptions it's not as if going to college hinders them. At most it delays what they would have done had they not gone to college.
Truth is most people out of high school don't know what they want to do. Most probably don't have any marketable skills, aren't self driven enough to succeed without the safety net of a degree and don't have anything productive they'd do otherwise. College is the best option.
However, if you're out of high school, driven and have acquired valuable skills and want to turn that into a business then you better think twice about jumping right into college.
You're right, things do get complicated when you're 30 and with kids. It's 10x harder to go back to college OR start a company OR do the peace corps.
This isn't a debate about what the value of college is (skills, connections, experience, etc.).
> A friend of mine was rejected for a sales engineering job...
Seems like he wouldn't have even made it to the interview phase if the BS was a hard requirement imposed from above. Are you sure your friend wasn't just rationalizing why he didn't get hired?
That said, I agree with your message -- get a degree folks...
Yes. Exactly this. Please get a degree. You will have a great experience doing it and get a piece of paper that will make you employable at much higher salaries. Worst case you won't enjoy your time in college. Do it any way. Life is not about having everything your way every minute of your life. It is a marathon. Prepare yourself for the long haul.
If you are worried about the debt there are plenty of great universities which are not all that expensive. Many schools also have the option of GA/TA where your tuition will be completely or partially waived off.
I don't have a college degree, i work for one of the new and successful startup today.
Yes, i do regret about not having a degree sometimes[when i'm drunk]. But most of the times, my life is exactly what the OP has written. Life is fantastic for me today. i'm having 5 years of beautiful experience working on amazing things. Having a degree, you are constricting yourself to one thing. But for me, i'm free to try anything provided i have people and their support, which i have actually got over the past. I'm hoping to die happily now. I have tried 7 roles and perfected in one.
I want to bring a change, not everyone can spend 7000$ to get a degree. That 7000$ can give food and life for a group of people for 5 years. Think my friend.
About one and a half year ago, a long time IRC buddy from the states suggested that I'd apply to Google. I was a 30-something programmer with a wife and kid who had spent the last 12 years working on trading systems in Europe. I decided to go ahead. Both because I wanted to see what the interview process was actually like and if I could pull it off. Going to work for Google seemed very distant at the time.
After telephone interviews and on-site interviews in Mountain View (got to meet my friend again on Google's dime!) I got the offer. Up until that point it had been "what the heck, we'll see what happens". Now it was real. We decided to pack up our stuff and leave the country and now I work at Google in MTV.
The only reason I mention all this is because I don't have a degree either. Getting into the United States turned out to be more tricky than getting getting into Google.
Google happens to be one of the companies where getting in without a degree is possible. It also happens to be one of the places where your advancement has pretty much nothing to do with your degree.
All that said a degree will make it easier to get to the interview stage at Google so even though I work there and don't have a degree myself I recognize that having a degree does give you an edge over someone else.
Same here. I have a degree from a Canadian university, but not in anything CS-related. I can pass a coding interview fairly easily, but getting into the US is a tremendous pain in the ass.
And once you're there, you won't be able to get a Green Card in a year or two, like all your colleagues. No advanced STEM degree; you go to the back of the line. You're looking at waiting a decade or more to really be in control of your own life. Possible, maybe, for someone in their early 20s, but if you are that young, why wouldn't you just get a degree?
I believe I am a good engineer, I have heard generally positive things about my professional work, have a college degree, etc.
I am however terrified of programming challenges (topcoder, spoj, interview-street, etc.) I have tried solving some problems there using Ruby (back when it was 1.8.x, too slow for these kind of problems) and given up. Maybe I should give it a shot with C. Any ideas how to start, considering these competitive coding websites are quite important when interviewing at certain companies?
My experience participating in TopCoder SRMs (quick algorithm development competitions) has payed off quite a bit when it comes to white board coding style interviews (both as the interviewee and the interviewer). Just thought I'd share a few pointers:
- participating in SRMs is great practice for interviews because you're forced to learn to think clearly while under intense time pressure.
- The TopCoder tutorials are a great resource. In addition to review of useful mathematics, data structures and algorithms they'll give you an introduction into how to participate well. For example time management between the easy, medium and hard problems.
- You have four language choices for SRMs. My preference is C#. I like using Visual Studio because the auto-complete/intellisense comes in handy when you have to write a bit of boilerplate code (like "new Dictionary<int, int>();". I've also used MonoDevelop on OS X. It worked well. iirc almost all problems are solveable using C# except a few where, to my knowledge, C++ was necessary. Read-up on Petr's advice. I believe he's a fan of C#.
- My knowledge of C# isn't particularly deep so don't let learning a new language scare you away. imo you just have to effectively use dynamic arrays (List<T>), hashtables (Dictionary<Tkey, TValue>), static arrays and strings. Also a sorted key-value store like SortedDictionary comes in handy once in a while.
- Last bit of advice: solve lots of problems and have fun! You can access a vast archive of problems from previous competitions and match editorials which usually have decent explanations for the problem solutions.
I am similar- I don't perform well with abstract code challenges. So I don't interview with companies like Google that require them- it's just a coincidence (or is it?) that I don't particularly want to work at those companies either.
In my most recent interview I was given a computer hooked up to a projector and a real world challenge to solve. I went step by step, describing to my interviewer what I was doing. I got the job.
Those programming challenges are silly, completely unrelated to real-life programming. Staying awake for 24 hs, writing ultra-optimized snippets of code that barely compile with zero documentation. Training exactly the kind of programmer that is useless in any organization except for programming challenges.
Start with the basics of data structures and algorithms. Get a textbook and read it and implement the structures using whatever language you like, and find problems that are solved by using those data structures (and solve them).
Watch computer science lectures on iTunes U. These days all the top schools put their lectures online. Try to do some of the homework assignments. If it's too hard, figure out what part you don't know and find an online course on it. Then try again.
My Google interviewer was a HS-educated guy. My parents couldn't believe it. I tend to think - if he is as good at the job as me, what does his education matter? Why should I be offended that a HS-educated guy is in the same room with me?
Education is meant to produce a difference in job performance; it's good for the worker, not directly to the employer. If I with my college degree can't get a better job than a HS-graduate, it's on me to change.
My parents find my lack of ego around this subject so weird. Also, the world at large is probably more similar to my parents.
I was on a team of about 10 that had at least one of each: HS dropout, HS diploma, bachelor CS, masters CS, Ph.D. CS.
Most people weren't really aware - many came from other teams, so they didn't interview each other, and it just never came up. Everyone is just known by their title/responsibilities.
There were two people in particular that were carrying a lot of that team. Not only did they do the most work, they fixed broken design, and other engineers relied on them for support as subject matter experts. One of them happened to be the HS grad, call him Sam, another had a BSc.
It came to be interview time for a new hire, and the hiring engineer (head engineer made team hiring decisions there, manager just signed) asked me for feedback on the candidates. "That guy? He didn't even have a degree!", was his response, even though this guy did objectively better in the interviews than anyone else.
Confused that he would be surprised that I would vote for the clear winner, I said, "Huh, since when has that been a consideration here? Sam is one of our strongest contributors and his lack of a degree sure doesn't seem to be a problem, right?"
"What do you mean? He only has his Bachelor's? Wow! Really?" he said, completely shocked.
"No, Sam doesn't have any degree. He didn't even go to college at all."
After some feelings of both shock and skepticism, he muttered something about being uncomfortable with it, and legal liability, then walked off.
Just a few weeks prior, I watched this guy rave to the VP like a fanboy about how smart Sam was. His favorite employee, until then judged on his merits over the last year, was perhaps not up to his standards now. Boggled my mind. I always thought that a degree is one of a few positive signals that you have a worthy candidate. If someone is already proven, how can it possibly matter?
You shouldn't necessarily care about this at a personal level, but this has some deep implications, which might be a reason for concern for your parents and/or the society:
1. The company doesn't value education. It only cares if somebody can do the hard work and maybe pick up what he/she needs to perform at the same level of other people who have degrees.
2. The university program you attended did not give you any skills that can provide a differential in the market. It is clear that several degrees give that differential, such as psychology, electrical engineering, medicine, just to mention a few.
I think both issues are true for CS degrees. Companies are too interested in getting bodies to do their programming jobs, and don't care if the people have the right kind of education (especially at big companies like Google). Universities, on the other hand, are doing a lousy job of preparing people for the profession.
> I made mention of a Paint Bucket and the interviewer asked me to implement it.
That is one interesting question. It can be solved trivially with BFS, but there is also some crazy way of doing it without using the stack (or a queue). I am sure the MS Paint uses what I call it the smart zamboni algorithm. You basically pretend you are a zamboni driver, and paint the screen avoiding obstacles but being careful not never paint yourself in a corner. It is complex but uses no stack space. I don't imagine there are any people that could implement it on the whiteboard. I was glad to see that he didn't do some impossible feat.
Interesting to see this latest incarnation of the whole Degree/No Degree thing. My time on HN has evolved my opinion of the situation somewhat. As a high school dropout (later, GED recipient) who has drawn decent six-figure salaries despite a strict telecommute-only policy ("If I can't do it from my subtropical island, it ain't worth doin"), I more or less considered the subject closed; I'd done fine without a degree.
The other side of this, however, is that yes, I've done fine without a degree, building countless line-of-business apps, a few games, and doing some amount of administration. I also fix my own large appliances and boats when they break, instead of calling someone. What I'm getting at, is that I am not a computer scientist, or a Rockstar Programmer, just a Handy Guy. And if your ambition only goes as far as line-of-business apps and living comfortably, being a Handy Guy is often enough. Everyone wants guys like us on their team, after all.
I've never dealt with discrete math or graph problems, but only now at the age of almost-36 (and being a computer professional since age 15), am I beginning to think about learning computer science. Or maybe not. It's looking like a decent fishing day. It seems likely, however, that a degree that taught me some of these things, would yield more interesting jobs, and perhaps more enthusiasm for work.
No, you're not curious, you're just passive-aggressively pointing out that you don't think programming is engineering, but phrasing it in such a way as to make it sound like this is some universal truth that everyone accepts.
Anyway, the answer is because it is engineering. Not in the capital "E" sense of engineering where you have some sort of official certification from some governmental or professional body that states that You Are An Engineer, By Golly. But it certainly is lowercase "e" engineering in the sense that it is a highly technical discipline that lies squarely in the middle of the spectrum between an art and a science.
Plus, it's just common terminology in the field, so there you have it.
I think probably because in the real world, programming and software engineering are the same thing. You can't write a program without engineering at least some of it, even if the overall design was not yours.
Thanks for writing this. I was one of the original people who asked about this in your previous post.
Working at Google is something that intrigues me. After doing (my own) startups for 10+ years, it's one of the few big companies I'd consider working for. It's also one of the few reasons I've considered finishing the last year of my CS degree.
"Those people are not the norm, they are the special case. Well yeah, you’ll not know you’re a special case unless you took a chance. And that’s the hard thing about it."
So what's the take away message from all this?
Work hard and enjoy your work.
I've got a lot of the former and none of the latter. While building websites for random clients and studying at a University, I've discovered my interest in the digital world has waned.
You mention Ruby on your "become fluent" list, but I get the impression that Google doesn't use much ruby. Is the feeling there that skills in ruby can transfer, or is it more important to focus on Java, C++ or Python?
In my experience, the actual languages you know aren't all that important. Google wants to know that you can write code well and solve problems in SOME language. If you're smart, you can learn a new language quickly.
That being said, Java and C++ ARE still the primary languages for production applications coding at Google (with Go starting to pick up speed). If you're interviewing as a software engineer, you're probably going to want to know something about object-oriented programming (even if that's in C#, Ruby, Python, etc.). A SWE candidate that ONLY knows a purely functional language is going to have an interesting time.
What you DON'T want to do is feel like you have to go out and get a "Learn Python/Java/C++ in 21 Days" book when you have 5 years of Ruby or C# experience. As long as the interviewer can understand your code, you should be fine.
I personally have interviewed several people for my group whose primary language is TCL (yes, really!), Matlab, or Perl. As long as they can walk me through their code, or even solve the interview problems using pseudocode, I won't ding their interview scores just because they don't know Python. I'm not interviewing for traditional SWE roles, though.
As long as it's a multi-paradigm language. I'm not a huge Ruby fan, and you're right, Ruby at Google is almost non-existent. But I know a lot of developers like it, and a lot of companies look for it. So long as you master one of these languages and learn a couple others, I figured you'll be fine.
Being a good developer in any language is pretty transferable. Google isn't going to care if you have to fumble for a few weeks getting comfortable with the syntax.
The important bit is being a good developer, not which language.
These are all things you should be doing anyway, even if you're pursuing a degree, and want to land a good software engineering job. So the "without a degree" caveat doesn't really matter.
By comparison, here were my steps to Google:
1. Attend a 4 year state school, majoring in computer science.
2. Enroll in mixed bachelors/masters program.
3. Apply for job at Google, pass interviews.
4. Graduate.
I'm saying this because for nearly EVERYONE getting a bachelors degree is the correct path, and if you can get into a program that will let you do a masters degree in less than the usual 2 years then it's a great idea. Less risk, same reward. My high school GPA wasn't quite as bad as OP's, but I had a 2.7.
As an upstart-from-QA developer with a liberal arts degree, #3 is my biggest concern. I've been reading as much about data structures and theory as I can in preparation for the day I have to interview again. It's scary. I feel I am competent developer, can code well, but I know that there's a glaring hole in my computational vocabulary that will bite me in the ass.
I've been considering trying to see if I can get a masters in CS, to supplement.
Although the author didn't go to college and had a low GPA in High School, it's evident he had a penchant for math, and therefore grasped advanced Computer Science concepts.
Now take a high school graduate who sucks at math, but may be a great web developer. My advice to them, should they want to work at Google, is graduate from college.
I have a Physics and Maths background, NO programming skills.
But I like industrial design, and two years ago had created a few designs that anticipated products/patents/concepts that companies like Microsoft, Nokia, Apple announced only recently.
I wonder if Google would like to hire people like me, especially since now they are also building hardware?
Where are some good resources for learning the details and practical uses of the various algorithms and data structures one should know? Even if I never end up using the information in my line of work, I'm interested in them just out of curiosity (and they probably wouldn't hurt for job interviews, either).
[+] [-] robomartin|13 years ago|reply
As for you, the average reader, go/stay in school and get a degree. Life throws all kinds of curves at you. At 20-something it might be cool and trendy to be a modern hippie-techie drinking latte's and coding for Google, Facebook or whoever. One day you might wake up in an entirely different landscape at thirty, fourty or fifty years of age and regret the fact that you did not take the time to complete a degree before your life got more complicated. I've seen this happen.
Not everyone is going to drop out of high school or college and launch a billion dollar company.
Don't be a moron. Get a degree.
BTW, I am not just talking about CS degrees. A friend of mine was rejected for a sales engineering job over someone with a BS in Architectural Landscaping. He had years of experience as a technology developer, just didn't have a degree. The large corporation a a strict requirement for BS degrees as a minimum, even if the degree was bullshit or unrelated. He was told they wanted to hire him but could not due to the lack of a college degree.
[+] [-] lsc|13 years ago|reply
Neither did this guy. Most of us without degrees did something similar to what this guy did; do a high dollar job for a while for a low-dollar wage, and eventually you build up enough reputation that you can get paid market rate.
>As for you, the average reader, go/stay in school and get a degree. Life throws all kinds of curves at you. At 20-something it might be cool and trendy to be a modern hippie-techie drinking latte's and coding for Google, Facebook or whoever. One day you might wake up in an entirely different landscape at thirty, fourty or fifty years of age and regret the fact that you did not take the time to complete a degree before your life got more complicated. I've seen this happen.
Serious question: What is the downside to going back to school later?
I mean, sure, if you have someone giving you free money to go to school, yeah, that might be a time-limited offer, and you should take it. All other things being equal, you should take free money. But for those of us who have to pay our own way? seems to me like it would be much easier to go back to school when you can make a bunch of money working part time.
I mean, I don't know; I haven't seriously attempted to go to school. But I can tell you that when I work part-time, my hourly rate is more than 10x what I could get when I was 17, and trying to go to school while working. My cost of living isn't much higher than it was then, either. (biggest difference, probably is that I've gotta pay for health insurance now.) - I could live pretty comfortably and pay reasonable state school fees, contracting myself out 1/3rd of the time.
So from where I stand now, in my early '30s? it looks like going to school would be way easier than it was when I was 17, and thinking I needed a degree to increase my salary above sustenance levels. But then, I haven't seriously tried to go back, so I don't know.
[+] [-] randomdata|13 years ago|reply
According to the stats for my region, 56% of women and 45% of men start into a degree program, yet the degree attainment rate is only 25%. I find this attitude a little bit troubling when such a large percentage of the population are already trying and failing.
Given the costs – actual and opportunity – involved, unless you are certain you are in the top ~25% of students and can derive value from that expense, it seems rather foolish to follow said advice. Do what feels right for you and your situation. You know yourself better than anyone else and if you are truly doing what you want to do, there should be no regrets either way.
[+] [-] nitrogen|13 years ago|reply
People need to stop treating a "degree" as being equivalent to "an education." Instead of filtering by whether someone completed years of irrelevant, understimulating general education coursework, why not look at actual past performance and work sample tests? There needs to be an option for already "educated" people to bypass the process of getting a "degree".
[+] [-] seanp2k2|13 years ago|reply
lol.
>" The large corporation a a strict requirement for BS degrees as a minimum, even if the degree was bullshit or unrelated. He was told they wanted to hire him but could not due to the lack of a college degree."
Sounds like a place I wouldn't want to work at.
College has been productized to a disgusting degree. If you can do it, you absolutely should not waste years of your life going to college for something dumb vs. doing what you love. You CAN be successful without a degree if you really want it.
[+] [-] jmathai|13 years ago|reply
There are exceptions though. And even for those exceptions it's not as if going to college hinders them. At most it delays what they would have done had they not gone to college.
Truth is most people out of high school don't know what they want to do. Most probably don't have any marketable skills, aren't self driven enough to succeed without the safety net of a degree and don't have anything productive they'd do otherwise. College is the best option.
However, if you're out of high school, driven and have acquired valuable skills and want to turn that into a business then you better think twice about jumping right into college.
You're right, things do get complicated when you're 30 and with kids. It's 10x harder to go back to college OR start a company OR do the peace corps.
This isn't a debate about what the value of college is (skills, connections, experience, etc.).
[+] [-] bostonpete|13 years ago|reply
Seems like he wouldn't have even made it to the interview phase if the BS was a hard requirement imposed from above. Are you sure your friend wasn't just rationalizing why he didn't get hired?
That said, I agree with your message -- get a degree folks...
[+] [-] therandomguy|13 years ago|reply
If you are worried about the debt there are plenty of great universities which are not all that expensive. Many schools also have the option of GA/TA where your tuition will be completely or partially waived off.
[+] [-] Techasura|13 years ago|reply
[+] [-] vinkelhake|13 years ago|reply
After telephone interviews and on-site interviews in Mountain View (got to meet my friend again on Google's dime!) I got the offer. Up until that point it had been "what the heck, we'll see what happens". Now it was real. We decided to pack up our stuff and leave the country and now I work at Google in MTV.
The only reason I mention all this is because I don't have a degree either. Getting into the United States turned out to be more tricky than getting getting into Google.
[+] [-] zaphar|13 years ago|reply
All that said a degree will make it easier to get to the interview stage at Google so even though I work there and don't have a degree myself I recognize that having a degree does give you an edge over someone else.
[+] [-] neilk|13 years ago|reply
And once you're there, you won't be able to get a Green Card in a year or two, like all your colleagues. No advanced STEM degree; you go to the back of the line. You're looking at waiting a decade or more to really be in control of your own life. Possible, maybe, for someone in their early 20s, but if you are that young, why wouldn't you just get a degree?
[+] [-] ultimoo|13 years ago|reply
I am however terrified of programming challenges (topcoder, spoj, interview-street, etc.) I have tried solving some problems there using Ruby (back when it was 1.8.x, too slow for these kind of problems) and given up. Maybe I should give it a shot with C. Any ideas how to start, considering these competitive coding websites are quite important when interviewing at certain companies?
[+] [-] spaghetti|13 years ago|reply
- participating in SRMs is great practice for interviews because you're forced to learn to think clearly while under intense time pressure.
- The TopCoder tutorials are a great resource. In addition to review of useful mathematics, data structures and algorithms they'll give you an introduction into how to participate well. For example time management between the easy, medium and hard problems.
- You have four language choices for SRMs. My preference is C#. I like using Visual Studio because the auto-complete/intellisense comes in handy when you have to write a bit of boilerplate code (like "new Dictionary<int, int>();". I've also used MonoDevelop on OS X. It worked well. iirc almost all problems are solveable using C# except a few where, to my knowledge, C++ was necessary. Read-up on Petr's advice. I believe he's a fan of C#.
- My knowledge of C# isn't particularly deep so don't let learning a new language scare you away. imo you just have to effectively use dynamic arrays (List<T>), hashtables (Dictionary<Tkey, TValue>), static arrays and strings. Also a sorted key-value store like SortedDictionary comes in handy once in a while.
- Last bit of advice: solve lots of problems and have fun! You can access a vast archive of problems from previous competitions and match editorials which usually have decent explanations for the problem solutions.
[+] [-] untog|13 years ago|reply
In my most recent interview I was given a computer hooked up to a projector and a real world challenge to solve. I went step by step, describing to my interviewer what I was doing. I got the job.
[+] [-] aortega|13 years ago|reply
[+] [-] tensafefrogs|13 years ago|reply
Watch computer science lectures on iTunes U. These days all the top schools put their lectures online. Try to do some of the homework assignments. If it's too hard, figure out what part you don't know and find an online course on it. Then try again.
[+] [-] anxx|13 years ago|reply
Education is meant to produce a difference in job performance; it's good for the worker, not directly to the employer. If I with my college degree can't get a better job than a HS-graduate, it's on me to change.
My parents find my lack of ego around this subject so weird. Also, the world at large is probably more similar to my parents.
[+] [-] lawnchair_larry|13 years ago|reply
Most people weren't really aware - many came from other teams, so they didn't interview each other, and it just never came up. Everyone is just known by their title/responsibilities.
There were two people in particular that were carrying a lot of that team. Not only did they do the most work, they fixed broken design, and other engineers relied on them for support as subject matter experts. One of them happened to be the HS grad, call him Sam, another had a BSc.
It came to be interview time for a new hire, and the hiring engineer (head engineer made team hiring decisions there, manager just signed) asked me for feedback on the candidates. "That guy? He didn't even have a degree!", was his response, even though this guy did objectively better in the interviews than anyone else.
Confused that he would be surprised that I would vote for the clear winner, I said, "Huh, since when has that been a consideration here? Sam is one of our strongest contributors and his lack of a degree sure doesn't seem to be a problem, right?"
"What do you mean? He only has his Bachelor's? Wow! Really?" he said, completely shocked.
"No, Sam doesn't have any degree. He didn't even go to college at all."
After some feelings of both shock and skepticism, he muttered something about being uncomfortable with it, and legal liability, then walked off.
Just a few weeks prior, I watched this guy rave to the VP like a fanboy about how smart Sam was. His favorite employee, until then judged on his merits over the last year, was perhaps not up to his standards now. Boggled my mind. I always thought that a degree is one of a few positive signals that you have a worthy candidate. If someone is already proven, how can it possibly matter?
[+] [-] coliveira|13 years ago|reply
1. The company doesn't value education. It only cares if somebody can do the hard work and maybe pick up what he/she needs to perform at the same level of other people who have degrees.
2. The university program you attended did not give you any skills that can provide a differential in the market. It is clear that several degrees give that differential, such as psychology, electrical engineering, medicine, just to mention a few.
I think both issues are true for CS degrees. Companies are too interested in getting bodies to do their programming jobs, and don't care if the people have the right kind of education (especially at big companies like Google). Universities, on the other hand, are doing a lousy job of preparing people for the profession.
[+] [-] stevewilhelm|13 years ago|reply
But in general it's probably more efficient to just to go to college and get a degree.
[+] [-] mahyarm|13 years ago|reply
[+] [-] readme|13 years ago|reply
Pros:
Cons: Still, I feel like I'm due for some serious topcoder sessions.[+] [-] anonymous|13 years ago|reply
[+] [-] jcampbell1|13 years ago|reply
That is one interesting question. It can be solved trivially with BFS, but there is also some crazy way of doing it without using the stack (or a queue). I am sure the MS Paint uses what I call it the smart zamboni algorithm. You basically pretend you are a zamboni driver, and paint the screen avoiding obstacles but being careful not never paint yourself in a corner. It is complex but uses no stack space. I don't imagine there are any people that could implement it on the whiteboard. I was glad to see that he didn't do some impossible feat.
[+] [-] coyotebush|13 years ago|reply
[+] [-] justanother|13 years ago|reply
The other side of this, however, is that yes, I've done fine without a degree, building countless line-of-business apps, a few games, and doing some amount of administration. I also fix my own large appliances and boats when they break, instead of calling someone. What I'm getting at, is that I am not a computer scientist, or a Rockstar Programmer, just a Handy Guy. And if your ambition only goes as far as line-of-business apps and living comfortably, being a Handy Guy is often enough. Everyone wants guys like us on their team, after all.
I've never dealt with discrete math or graph problems, but only now at the age of almost-36 (and being a computer professional since age 15), am I beginning to think about learning computer science. Or maybe not. It's looking like a decent fishing day. It seems likely, however, that a degree that taught me some of these things, would yield more interesting jobs, and perhaps more enthusiasm for work.
[+] [-] ivv|13 years ago|reply
[+] [-] davidbyttow|13 years ago|reply
In the end, I was savvy enough to know that the rate they were paying me to develop their sites and the amount they were paid was a huge margin.
[+] [-] alberich|13 years ago|reply
[+] [-] mwfunk|13 years ago|reply
Anyway, the answer is because it is engineering. Not in the capital "E" sense of engineering where you have some sort of official certification from some governmental or professional body that states that You Are An Engineer, By Golly. But it certainly is lowercase "e" engineering in the sense that it is a highly technical discipline that lies squarely in the middle of the spectrum between an art and a science.
Plus, it's just common terminology in the field, so there you have it.
[+] [-] lawnchair_larry|13 years ago|reply
[+] [-] klepra|13 years ago|reply
[+] [-] walshemj|13 years ago|reply
And if you are a technical programmer you are doing engineering eg writing weather simulations for the met office or modeling a nuclear rector.
[+] [-] alberich|13 years ago|reply
[+] [-] callmeed|13 years ago|reply
Working at Google is something that intrigues me. After doing (my own) startups for 10+ years, it's one of the few big companies I'd consider working for. It's also one of the few reasons I've considered finishing the last year of my CS degree.
[+] [-] MojoJolo|13 years ago|reply
"Those people are not the norm, they are the special case. Well yeah, you’ll not know you’re a special case unless you took a chance. And that’s the hard thing about it."
[+] [-] navs|13 years ago|reply
I've got a lot of the former and none of the latter. While building websites for random clients and studying at a University, I've discovered my interest in the digital world has waned.
[+] [-] chrisa|13 years ago|reply
[+] [-] packetslave|13 years ago|reply
That being said, Java and C++ ARE still the primary languages for production applications coding at Google (with Go starting to pick up speed). If you're interviewing as a software engineer, you're probably going to want to know something about object-oriented programming (even if that's in C#, Ruby, Python, etc.). A SWE candidate that ONLY knows a purely functional language is going to have an interesting time.
What you DON'T want to do is feel like you have to go out and get a "Learn Python/Java/C++ in 21 Days" book when you have 5 years of Ruby or C# experience. As long as the interviewer can understand your code, you should be fine.
I personally have interviewed several people for my group whose primary language is TCL (yes, really!), Matlab, or Perl. As long as they can walk me through their code, or even solve the interview problems using pseudocode, I won't ding their interview scores just because they don't know Python. I'm not interviewing for traditional SWE roles, though.
[+] [-] davidbyttow|13 years ago|reply
[+] [-] mseebach|13 years ago|reply
The important bit is being a good developer, not which language.
[+] [-] kniht|13 years ago|reply
[+] [-] charleslmunger|13 years ago|reply
I'm saying this because for nearly EVERYONE getting a bachelors degree is the correct path, and if you can get into a program that will let you do a masters degree in less than the usual 2 years then it's a great idea. Less risk, same reward. My high school GPA wasn't quite as bad as OP's, but I had a 2.7.
[+] [-] mmanfrin|13 years ago|reply
I've been considering trying to see if I can get a masters in CS, to supplement.
[+] [-] gems|13 years ago|reply
[+] [-] JoeKM|13 years ago|reply
Now take a high school graduate who sucks at math, but may be a great web developer. My advice to them, should they want to work at Google, is graduate from college.
[+] [-] tytung2020|13 years ago|reply
But I like industrial design, and two years ago had created a few designs that anticipated products/patents/concepts that companies like Microsoft, Nokia, Apple announced only recently.
I wonder if Google would like to hire people like me, especially since now they are also building hardware?
[+] [-] jmgrosen|13 years ago|reply