Reading the article raised tangential questions for me: How comfortable is it for someone who's not a programmer by temperament or interest to get a computer science degree in college? Or, alternately, what percentage of computer science grads simply aren't programmers? I've never really thought about this but now I'm wondering!
Having taught university students in "computing studies", I'd venture to guess that it isn't that big of a deal for them to go through the motions of the course and eek out a pass by acing the essay questions. I don't have any statistics, but I'd guess about half of them would have had a hard time putting two lines of code together. Back then (late nineties), it was the ideal major for people who didn't know what to major in. Enrollment in the UK is down since then because the generation that grew up equating computer science with using microsoft office (thanks to Bill Gates lobbying Tony Blair) has come of age, and the educational authorities are trying desperately to repair the curriculum. The last time I applied for a teaching job (two or three years ago) the curriculum I was expected to teach looked like it could have been written in the eighties. The job went to someone with more teaching experience than me.
Edit: I met a former student on the London Underground some years later who wasn't much good at anything in school besides cracking onto his female colleagues, but got serious after that and ended up scoring a decent programming job in finance. Academic performance might not be such a good predictor of later success.
I think it's a small percentage but there are a few for sure. In my last position, I worked with a few comp-sci grads who were "not programmers" (their words) and had really no interest in programming. They just wanted to play with technology and kind of strategize around it.
To pass any decent CS course you need to at least be able to program, but outside of maybe a few group projects the programs that you write won't be very large so you don't have to be an expert in TDD, version control or any frameworks.
In the UK at least once you get into the 2nd/3rd year of the degree you get to select a larger number of the modules that you study. So it's possible to choose modules with lower programming content which might be focused on theory or on business type subjects.
Most universities here offer a sister degree to CS which is focused on business computing/project management and has substantially less programming.
I went to a good school for computing science and I know I graduated with a few people who couldn't program. They had no intention of programming in their career which is good because in 4th year they were producing awful spaghetti code.
You might get the impression that the author studied engineering ("I studied engineering, not English...") or perhaps computer science ("...graduated at the top of my class in computer science...") whereas a quick look at his LinkedIn profile shows that he studied Management Information Systems[0] which, as far as I can tell, is a non-degree along the same lines as "Marketing" or "Media and Journalism" i.e. light on technical skills and heavy on jargon and buzzwords.
I have an MIS degree, and generally, you're correct. They're light on technology, though I did learn some basics. I already knew a lot of that already, though... what I learned the most from were the Accounting, Marketing, and Business Management classes I took.
>According to Alan Morrison of PwC, "The new analytics is the art and science of turning the invisible into to visible...It's about detecting opportunities and threats you hadn't anticipated, or finding people you didn't know existed who could be your next customers. It's about learning what's really important, rather than what you thought was important. It's about identifying, committing, and following through on what your enterprise must change most."
I didn't verify that he had an MIS degree... but MIS is definitely not the same thing as Computer Science or Engineering. If this is true it's a fairly disingenuous and manipulative article.
MIS programs are glorified IT training--which is fine, if you're good at what you do. University of Houston runs a decent degree program in MIS, and they can place graduates.
Had the author wanted us to actually feel bad for them, maybe they should've linked a github.
Penn State has a college of engineering and a college of business. It seems like it would be pretty easy to tell which one you were in, and if you went to the business school, you wouldn't say "I studied engineering."
Although to be honest, the only place it says "engineering" is in the headline, which editors often mess with.
The article itself gives a strong implication that the author graduated with a CS degree: "I’d worked hard, graduated at the top of my class in computer science and managed to acquire lots of experience with the sorts of industry software that I was sure hiring managers were looking for. I’d even chosen a STEM degree." So, apparently there are people who seriously think business MIS degrees are STEM?
That's a big difference. I wondered what possible computer languages that he could have studied recently in school that he couldn't get work in today, and why he was talking about the industry software he learned in school. He seems a little young to have done a pascal or scheme CS program.
The only applications I learned in CS/EE school were POSIX, the Microchip assembler IDE, and EAGLE. For every other one, I was on my own.
Nice catch. Someone in the comments section pointed out that the WaPo actually listed MIS as one of their "most unemployable majors." (Is that irony on some level?)
None of the "10 Most Unemployable Majors" are even remotely related to MIS (well maybe graphic design, but I'm sure that number is inflated by a lot of unemployed art majors).
According to his LinkedIn[0] he doesn't even list any of the tell tale indicators of being a programmer/engineer/etc. No GitHub/BitBucket/etc, no descriptions of code projects worked on, etc. But hey, he does have "Direct Mail" as a skill!
"Maybe it’s a crazy idea, but if you’re going to spend all that money for a college education, shouldn’t you expect to learn real-world skills from people who know what they’re doing?"
Maybe it's a crazy idea, but universities are not, and were never intended to be, career training centers. Helping you get a job is just not the mission of these institutions. And it's just as well; it would be highly unfortunate for the academic field of computer science if the undergraduate curriculum focused on how to use current tools like Eclipse or Ruby on Rails or Angular.js. Universities are designed to give you a firm grounding in the fundamental concepts, which should give you the ability to understand whatever tools are in fashion in the industry with relative ease. Besides, if you're not doing any hacking in your free time outside of class anyway, you're probably not cut out for this career.
The problem highlighted by the article seems to be that companies are no longer so interested in hiring raw material and then providing training in angular.js or whatever but expect to hire people who already have those skills.
Anecdotally, I'd say that of my CS class maybe only 5% did any serious programming work outside of class.
All of programming can be self-taught. The problem with finding people who have "skills" already is that they might only be able to use libraries and frameworks to build things, but they can't really solve problems. Can they figure out the solution to a memory management problem when throwing hardware at it isn't an option? Writing an application that doesn't fall down is par for the course these days. So knowing how to use some tools doesn't cut it. The companies hiring these candidates are digging themselves a hole, or they are just satisfied with having shallow technical requirements.
(I've rarely programmed outside of class/work since college. I've never had a problem getting a job. I just don't like sitting in front of a computer all the time.)
You articulated perfectly exactly what I was thinking.
I realize it is a popular idea among society - that college is a career training center - but that is patently false.
It is an unfortunate idea too, because it leads to lots of people wasting thousands of dollars on an education they won't ever use in their career just for the sake of having the piece of paper they get at the end.
> Besides, if you're not doing any hacking in your free time outside of class anyway, you're probably not cut out for this career.
It'd be really interesting to go back and see when people started to shift towards colleges being a training ground and not the typical apprenticeship path that was the real training for generations. The way you learned to be an electrician was by being someone's apprentice, then working your way up the ranks, and this went for nearly all trade industries that I can think of. This statement has come to sound incredibly pompous (and I genuinely don't mean for it to), but college isn't for everyone, and it shouldn't be the only road to a successful life and career.
Germany is still strong on the apprentice model, but even here there's a shift towards universities.
Now companies face an apprentice-shortage and they started actively recruiting university drop-outs to fill the ranks. At least it's not an expensive experiment for those kids, given that tuition costs max out at about 1000 EUR/year.
Although German universities were meant to teach things that are going to be useful later on. They were not intended to give "well rounded experience" people these days talk about without being useful to chosen career.
I think universities could do more to educate the public on this, but it isn't really in their best interests, at least in the short-term. And there is a lot of political pressure for public institutions to be career training centers, since nothing else is really filling that role.
Look at how many job ads, especially in software that require a degree in CS. To be fair, there are more technology related courses which are more vocational and not pure CS compared to 20 years ago, but its still seems to be the most common name for a university course teaching computer concepts.
Having a degree means that you have a degree. Sadly, it absolutely does not mean that you have any particular level of education. Trust, but verify: I believe that a job candidate has 10 years experience and a master's in comp sci, but I'm still going to make them code FizzBuzz before we move on with the rest of the interview.
"universities are not, and were never intended to be, career training centers"
The professional vocational degrees like engineering, medicine and law are intended exactly for career training. They are usually certified by practitioner guilds, for example.
You are quite right about computer science, but that is not a vocational professional program.
The OP studied engineering.
(edit: reading down a bit, someone spotted that OP studied Management Information Systems, which may or may not be engineering as generally understood.)
Medical school is absolutely not career training. It simply gives you the knowledge and vocabulary so that you can be trained to be doctor. The additional training, of course, happens in your residency.
You are utterly unprepared to truly be a physician when you graduate medical school, even if you have earned the right to be called 'doctor.'
Agreed. I think a better solution to the article author's problem would be to treat 'programming' education (which is not the same thing as computer science) like a skilled trade like carpentry or plumbing, and intersperse community college courses with a formalized apprenticeship program ... it might take a while to get some traction, but it seems like it would work as a way to train programmers while not gutting our ability to do blue-sky theoretical research in computer science.
"Maybe it's a crazy idea, but universities are not, and were never intended to be, career training centers."
Maybe it's a crazy idea, but they are equally not intended to be places where you go and learn nothing of value to anybody.
I mean, I get the whole academic focus thing too, but the described education wasn't focused on academic computer science either. It was simply useless.
Moreover, the idea that academics can be so strictly partitioned from practice is a rather silly one as well, at least in the computer science world. A program that claimed to be turning out really good computer scientists that, mysteriously, are incapable of actually driving a computer to do anything useful to anybody (academic or industry), would not be one that I would be paying much attention to. Even computer science academics are, on occasion, expected to be able to write an actual program every once in a while.
And I certainly won't believe anyone who claims to be really experienced at, say, using multithreaded programming, because they sat through a couple of classes and did a couple of homework assignments that didn't involve coding anything. It's really easy to think you know something, until you actually try to do it, and end up spending 15 hours debugging a terrible race condition. Which turns out to be something really, really simple in the end, and the real problem was that your "academic" knowledge still needed to be hardened with real-world experience.
And I'd observe that fully connects back to academia... it's the people who have actually tried things and used things and have some sort of real experience who will be pushing the boundaries forward, not some sort of semi-mystical "pure academics".
The problem is, you are thinking Computer Science == Computer Programming. You are wrong. Computer Science is more math than programming, if you want to learn marketable skills get a different computer degree. Most colleges offer a more practically oriented degree.
Computer science / real world programming work is a mish mash of concepts and practice, and everything in between. Most of the hot research these days seems to be coming from places like Google rather than universities. Certainly the stuff I her about.
That's how it works. Generally with theoretical research, especially math-heavy disciplines like computer science, the distance in time from you coming up with a theory and someone finding a practical application for it is large enough that most people don't even put the two together, unless it was a pretty major deal in academic circles when it was theorized. On the other hand, the things we in the industry care about are not going to come from universities(at least not recent things from universities) but rahter companies like google.
It depends on the style of the college. Computer Science is certainly much more than math. I'd sooner employ a CS major who took foreign languages than one who supplemented his coursework with tons of math classes. Those special/practical degrees that schools offer are just fluff and end up pigeonholing you. If you're going to be a software developer, then computer science is the degree that's most helpful.
I'm not an expert on all colleges in america, it sounds like I came across as thinking that way so I apologize. Right or not, the Computer Science courses at the University I was enrolling in (I ended up dropping out of college due to life issues) was 60% math 30% computer theory and 10% programming. I know, because I talked with the Department Chair and actually studied what the degree would do for me before deciding it was my path. I was fully aware i'd need to work on practical projects in my free time to get a job.
Instead, I just got a job by showing off said practical projects with no degree.
"The problem is, you are thinking Computer Science == Computer Programming."
No, I'm not.
I'm saying you can't function as a computer scientist with 0 programming, and trying to train Computer Scientists in general while somehow shielding or protecting them from programming is something I'd look at very disfavorably. Even computer scientists need to program once in a while. A Computer Science program is doing a disservice to its "Computer Scientists" if it somehow manages to fail to teach them anything about programming.
And to be honest, I find it utterly, mindblowing absurd that anybody could take the alternative seriously. Think about it a bit.
In fact I'd go so far as to say that one of the several major problems facing the University system as a whole right now is this whole idea that theoreticians across all disciplines can somehow be fully severed from all practical considerations, as a result of too many people mindlessly chanting that Universities aren't vocational programs. A theoretician operating without any input from the practical world is a theoretician wasting his or her time, producing theories that will ultimately not even be of academic interest.
(There are very, very specific disciplines in computer science that might be able to get away with 0 programming, BUT the generic undergrad courses would not be able to be that focused. The generic undergrad courses need to be teaching some useful programming stuff.)
"Most colleges offer a more practically oriented degree."
You might want to check that. "Software engineering" or something is actually fairly rare as a distinct major, and while there will often be an "information systems" major of some sort (which it sounds like is what this guy actually took), that isn't so much "more practical" as "a reduced version" of the courses, often reduced to the point that you won't learn "programming" at all.
You are correct. I should have said "Most colleges I considered when starting my degree".
Look, we might have to agree to disagree. What I think, and what the one Computer Science Department Head I spoke to thought, is that Computer Science is math. Period. Just like a degree in Math, it does not have to have a directly practical application to serve a purpose. The fact that we have machines that run these theories is purely a sideline to the theories themselves.
"A theoretician operating without any input from the practical world is a theoretician wasting his or her time, producing theories that will ultimately not even be of academic interest."
I'm sorry, but many many theories that have become helpful for practical purposes were created by someone 100s of years before who didn't have any "practical consideratinos". Just because something isn't useful NOW or even in our lifetime, doesn't mean it isn't useful.
Quite frankly, I think programming (distinct from computer science) should go back to an apprenticeship based program if we can make that sustainable, and computer science (as in the degree program) should be kept where it is: Mostly theorectical with a minor side of practicality occasionally.
Sure programmers sometimes need to understand Computer Science theory, but most of what the average programmer needs to know about it does not require a degree but simply reading a book or three.
"Computer science" tends to be a pretty ambiguously-defined term, largely because it's a pretty awful term. Everything from AS/400 business programming to combinatorial mathematics could be plausibly lumped under "computer science".
My anecdotal experience seems to match jerf's: I can't think of any undergraduate computer science program that appeared to favor math over at least moderately practical topics. But I've also not seen any undergraduate computer science program that appeared to be job training.
A local community college offers an associate's degree in "computer programming", and their graduates strike me as more obviously employable in the real world than area university computer science graduates. They learn skills that are known to be desired by major area employers, and the program seems to carry more of a "this is all about getting a job" sort of attitude.
"The fact that we have machines that run these theories is purely a sideline to the theories themselves."
I'm not sure you got my point entirely. If you've got a machine sitting there than can help you, you should use it.
If you're going to write about operating systems, you're an academic fool if you don't also actually take some time to gain some real experience on the very-cheap systems that can help validate that you actually do understand what you're learning about.
If you're going to do AI, you're an academic fool if you don't take the time to implement some of your theories and see how they actually perform. Who cares what someone hypothesizes may work in the field of computer vision if they have no implementation?
And so on and so forth. Even if it is just math, you are an idiot if you pass up the opportunity to implement something to verify your theories.
And the result will be courses, especially at the undergraduate level, that turn out to be useful both for academics, and for programmers who want to learn how to write theoretically grounded code. Which, remarkably, is exactly what we actually have.
You are not benefiting by trying to split academics off from practice. It's a stupid idea and a stupid ideal. It isn't a win for anybody.
And you are a fool if you dismiss people/ideas simply because you don't feel they are practical. Sure, don't try to use them in your business. However, many many very useful and practical things have come out of these impractical theories and people who never try to practically prove anything or use their theories. It is a win for everybody to have at least some subset of people who do pure theoretics.
That being said, as already stated, you shouldn't be going into these types of programs if your end goal is to get a job in the industry.
I think you're exaggerating how impractical Computer Science curricula are. CSE courses at major universities generally include courses on everything from Systems Programming, to Compiler Construction, to Data Structures and Algorithms, to OOP design, to Database Systems, to Graphics Programming, to Web Programming, etc etc. Each one of these will (at least should!) have several homework assignments and a final project that all involve submitting working code.
I'm not saying that CSE degree programs shouldn't teach you how to write code or require you to write code. I'm just saying that they are not vocational training and therefore should not focus on training students to use whatever specific tools are popular in industry.
Contrast that with community college certificate programs where they offer courses like "C# Programming in Visual Studio" and "iOS Application Development." Those programs' mission is to get you a job, and they also cost much less time and money than a bachelor degree.
"Besides, if you're not doing any hacking in your free time outside of class anyway, you're probably not cut out for this career."
I really dislike this mentality and it unfortunately seems to be the expressed by a lot of engineers (at least ones that have an internet presence).
Just because you don't spend all of your time hacking away doesn't mean you aren't cut out for this career nor does it mean you can't be a great engineer.
This kind of mindset is only going to deter potentially good engineers from entering into the field.
If you are serious about getting a job, you damn well better be hacking in your free time if you don't currently have a job in the field. The OP didn't specifically say but, at least for me, if you are in school/unemployed looking for a job you better be hacking in your free time if you expect me to hire you.
Can you imagine "if you are studying accounting and want a job as an accountant, you'd better be doing your friends' taxes pro bono in your free time. Otherwise you're just not cut out for this career."
I'm certainly sympathetic to the idea that if you want to be a developer, it's helpful for programming to be an area of passion. But it's not at all obvious to me why that passion must be expressed in a certain way.
I really like math and computer science, and once I finish grad school, the plan is to have a job in applied math or statistics. Maybe even software. But in college, I didn't spend my free time programming, nor doing regressions just for kicks. In four years of university I did one personal project and two hackathons...total time invested, maybe 3 weekends? But let us not assume this means I'm not passionate about CS and math: I was a double major, I was a teaching assistant for 8 courses, I worked through the school as a private tutor for struggling students, I did research with professors, I published...and on my own time, I relaxed.
> Can you imagine "if you are studying art and want a job as an artist, you'd better be doing drawing and uploading to deviantART in your free time. Otherwise you're just not cut out for this career."
Yes. Yes, I can absolutely imagine judging someone in a partially-artistic field on whether they enjoy making art on their own time. That doesn't apply in every field, sure, and I bet chip designers don't generally go home and make little 8088 clones for fun. But programming is still as much of a craft as an engineering discipline, and I'm suspicious of people who claim aspirations in the field without demonstrating that they actually enjoy it.
In interviews, I ask what projects a candidate has written on their own time. It doesn't have to be on GitHub. It doesn't have to be big. It doesn't have to be generally useful. One of the best responses I got was from a guy who'd been developing his own duck hunting journal for the last decade to track location, weather, etc. I'm not surprised to see that he's the lead engineer at his company now.
I absolutely agree that when hiring an artist, you want that person to be excited about art. I suppose in a nutshell, my thought is: all time is your own time. Choosing to pursue a career in <art | programming | etc> is a monumental investment of your own time into <X>. We ought not judge as terribly different those who spend ~50 hours a week of their own time doing X and getting paid for it and those who spend ~50 hours per week of their own time doing X and getting paid for it and also spend 2 hours per week doing X on the side.
This is particularly true of developers: generally speaking, someone who has the technical ability to be a strong developer could make a good living in finance, accounting, consulting, etc. The very fact that they're applying for a software job rather than something else is a powerful signal that they'd rather spend half their waking hours on software than on something else.
...or am I missing something obvious? - wouldn't be the first time.
I don't disagree with you in general, but we're in the context of people starting new careers. A professional <artist | programmer | etc> will have a portfolio of on-the-job work they've done. A recent grad only has the fact that they've graduated and not anything to really demonstrate their aptitude or abilities. I'd be skeptical of such a student who'd never branched out to do something fun during their entire learning time.
But back to the career professional context. I think maybe I've identified the disconnect. Could it be that asking about personal projects is a way of identifying not just a competent developer but an actual geek? Those are different roles with different requirements. For example, you probably don't want to unleash a geek on your legacy business logic maintenance project. They'll probably be bored and end up breaking stuff in the name of optimization or cleanup. Similarly, you don't want "just" a programmer in your R&D team where you genuinely want and need creative innovation.
So maybe both sides are correct: for some jobs, it's completely appropriate to expect personal projects. For others, it shouldn't be expected at all. What do you think?
If you're not doing X in your free time outside of class anyway, you're probably not cut out for a career in X.
You should be pursuing a degree because it's a thorough & facilitated process of learning what you would be learning on your own anyway. You should be there because it's the fastest, most efficient way to get to the head of the pack of people who do have a tenacious passion for X and do spend a significant part of their free time on X. Every minute you're not doing something in X, you're not improving therein.
You think you're going to have a great career in X just by showing up for class and doing what's assigned? you think that will make for a good practitioner of X compared to others who live-and-breath the subject?
That you don't spend all your time on X doesn't mean you aren't cut out for this career and can't be great. The lead comment was "if you're not doing any X in your free time", not "if you're not spending all your free time on X". Don't wantonly construe the former as the latter.
But fact is, if you're not going above and beyond, you won't get above and beyond.
"Maybe it's a crazy idea, but universities are not, and were never intended to be, career training centers. Helping you get a job is just not the mission of these institutions."
Very true. If you want job training, go to a technical/vocational school, or enroll in a certification program. Those are both perfectly legitimate things to do, and there should be no shame in either.
I am very sympathetic to this point of view: my undergraduate degree prepared me very well for nothing in particular.
However, if you go back to the medieval roots of the universities, you find the Parisian model, which prepared one to be a cleric or a teacher of the same, and the Bologna model, where you learned law. Think of the account of the founding of Harvard: "One of the next things we longed for, and looked after was to advance Learning and perpetuate it to Posterity; dreading to leave an illiterate Ministery to the Churches, when our present Ministers shall lie in the Dust".
Well said, the interesting thing for me is that we have too many young people who aren't actually learning they are ticking off objectives like some giant RPG quest engine. Go to school, check, go to college check, get job, uhh where?
When treated as an objective rather than a place to learn, college becomes something to get "through" rather than some place to develop life skills.
> Universities are designed to give you a firm grounding in the fundamental concepts, which should give you the ability to understand whatever tools are in fashion in the industry with relative ease.
One of the things that continually frustrates me about people's attitudes toward higher education (at least in the U.S.) is that they don't recognize this fact. An undergraduate university education should give you a general competence, self-motivation, and curiosity. More particular skills can be learned elsewhere; if you spend your time in college learning Java instead of learning to be a well-rounded, thinking, educated person, you're making an expensive mistake. Particular skills go stale quickly, and, unlike other subjects you could study instead, they often lack intrinsic interest.
Companies used to hire people with general competence and then train them in the particular skills they need on the job. I'm not sure why people now seem to expect students to learn these skills at universities, at their own expense. It seems to me that the burden of this training should be on industry, not on universities and their graduates.
Yet-another-whining-about-college-education. Frankly, this is the most appropriate place to scream, "get a job, man."
I never understanding these complains about how bad college education is. We talking about America here, the land of individualism, of self-interest, of self-discovery. It seems like everyone expects 5-year-old kids to pace their studies. Yet, funnily, if it's college, the professors have to decide what the students need for "real world." What gives? So elementary pupils know what they need to learn, but college students (aka 18+) do not?
On a closely related note: half of all technology workers have no formal education, the article said. Wait, if those workers can learn by themselves, can't our precious, innocent, poorly taught college students get off their behinds and study those, too? Rather than whining about how their professors are not familiar with, you know, "real-world" experience, why not focus on what they are familiar with? Can you go out to a real world and expect those to know the greatest and latest algorithms and languages and formal definitions, their pros and cons and applications? Or how, says, Windows applications and AJAX applications are similar and different. Or a thousands of those long-term researches that businesses just can't afford to do. No. That's why we need professors and researchers.
> 47 percent of the technology jobs in New York City no longer require any college education at all.
I've done a lot of hiring over the years and recently in NYC. I can say in general I've always hired for Attitude and Aptitude. I can teach you anything if you have the right Attitude. I can't teach you to have a good Attitude and I can't make you have a better Aptitude.
One very real challenge in NYC is that big players are soaking up most of tech talent and there is a ground war between financial technology companies and other start-ups. That pressure has caused companies to go back to the drawing board on how they qualify candidates. For a while recruiters wouldn’t even look at a person without seeing some lofty education background in a resume. Now they’re looking for the scrappy problem solver that might be savvy based on their recent work experience.
I find this interesting because when I started in technology 30 years ago I had a hard time hiring for my companies and developed this “Attitude+Aptitude” concept with my teams. Over time it seemed like it was getting harder for people to get into technology jobs because it became accepted principle that you had to hire people with CS degrees to ensure success. Of course that was BS when it happened and I’ve always fought against it over the years. One of the best things for me about hiring in NYC was being able to tell the recruiting team what I was looking for and to tell them to stop looking for just CS degrees.
Recently I took a position as CTO in a San Francisco HQ’d start-up. I’ve been talking to my engineering team on how we filter candidates, again I’m preaching A+A but its clear they’ve been taught to look for CS degrees and Math majors. I’m working with them to broaden their thinking. I think this is an example that in general people are lazy about hiring and they’ll use anything they can as an excuse to not invest in finding out if a candidate is the right person. It’s tough, we’re all busy and have yet another meeting to run to or another customer call to deal with. It’s easy to think hiring is a pain and distraction from what you’re doing today. But, let’s be clear, the single most important thing you can do is scale your teams and if you don’t hire they’ll never scale and you’ll fail. To me the most important thing you can do in a company is hire well. The second most important thing is fire well, let people go if they’re not working out. You’re not doing them any favors and in the end their life will be better if they can find a place they fit in and can be successful and your world will be more successful if you focus on building a team that is a well oiled machine that smashes through problems like a hot knife through butter.
Author claims to have studied engineering, but seems to be absolutely unaware of co-op programs which almost all engineering schools have. Some, like Northeastern University, even require you to do a co-op[1]. I've worked with Northeastern students at pharma companies and they dive into the belly of the beast when they they spend six months at a company. Often, they become so integral, they get hired after they graduate to keep doing what they did during their co-op.
Or an alternative model, going back to 1916, is MIT's Practice school[2], where graduate students go into factories and apply their training on specific projects.
This reads largely like someone who is ignorant of the opportunities that were probably present at Penn State, assuming that a degree would just get him a job.
I don't think that's true. Obviously the person with a CS degree will be hired over the person with the MIS degree all other things being equal, but it's up to the candidate to spend time to create a portfolio or something that shows they know what they are doing and can code. If you're too lazy to do the CS route and plan to go MIS then get a programming job, then you have to be un-lazy in your free time to make up for it.
I finished my bachelors in CS at a state school while working in an unrelated field. I couldn't get a job programming a VCR out of school. My school was not prestigious. I had no idea how to interview. This was over a decade ago now.
I got a job working telephone tech support for a networking company, hardly worth my time. Nearly two years later i got a job as a data analyst through a friend of a friend, working in SQL server and writing VB6 apps.
I should have spent some time researching and contacting companies while I was a junior and senior in college. I figured, like the OP, champagne would rain down from the heavens when I left school. It did not.
But there is hope. Keep plodding forward. What I learned in college has helped me through the years and it does still look good on the resume.
It is unfortunate that this article gets featured when the author is obviously blowing smoke; it would be great to hear from someone actually in this boat.
"...a 2006 study of college professors in STEM fields showed that a whopping 59.8 percent hadn’t had any job experience in their industry. That means that a large portion of the professors tasked with teaching college grads how to become marketers, managers and salespeople have never marketed anything, managed anyone or sold anything at all."
Come on HN, you guys missed this cherry? I do like that you dug through the 22 year old's Linkedin profile to get his real degree, but yall missed a pretty big logical flaw there.
That said, there is a lot to analyze about the poor kid. First, he thinks that spending a year unemployed is abnormal. Granted the guy was in State College for a long time, and that is a pocket universe filled with football, cheap beer and cheaper dates. He's been sheltered with the Penn State pride and now is finally realizing that you gotta kiss a lot more ass than what he is used to in order to make it through an interview.
Second, he's at least misleading readers to his actual degree (as yall sought out online) and he thinks thats ok to do on a national level. A simple google search is going to ruin this guy. But as a voting, draft-eligible citizen, he's allowed to pave his own path.
Third, he's naive at best, ignorant at worst. Honestly, he seems harmless, and that is not going to cut it for the guy now that he dug this grave. He's got to get some beating in here before he realizes that he is the only one that will straighten his own back.
Best wishes to the poor guy. As John Wayne said: Life is hard, but its a lot harder when you're stupid.
73 comments
[ 2.5 ms ] story [ 154 ms ] threadEdit: I met a former student on the London Underground some years later who wasn't much good at anything in school besides cracking onto his female colleagues, but got serious after that and ended up scoring a decent programming job in finance. Academic performance might not be such a good predictor of later success.
In the UK at least once you get into the 2nd/3rd year of the degree you get to select a larger number of the modules that you study. So it's possible to choose modules with lower programming content which might be focused on theory or on business type subjects.
Most universities here offer a sister degree to CS which is focused on business computing/project management and has substantially less programming.
[0] http://www.smeal.psu.edu/scis/mis-undergrad
>According to Alan Morrison of PwC, "The new analytics is the art and science of turning the invisible into to visible...It's about detecting opportunities and threats you hadn't anticipated, or finding people you didn't know existed who could be your next customers. It's about learning what's really important, rather than what you thought was important. It's about identifying, committing, and following through on what your enterprise must change most."
Had the author wanted us to actually feel bad for them, maybe they should've linked a github.
Although to be honest, the only place it says "engineering" is in the headline, which editors often mess with.
The only applications I learned in CS/EE school were POSIX, the Microchip assembler IDE, and EAGLE. For every other one, I was on my own.
http://www.washingtonpost.com/blogs/wonkblog/wp/2014/08/26/t...
[0] http://www.linkedin.com/pub/casey-ark/23/194/668
And they wonder why linkedin isn't taken seriously anymore.
Maybe it's a crazy idea, but universities are not, and were never intended to be, career training centers. Helping you get a job is just not the mission of these institutions. And it's just as well; it would be highly unfortunate for the academic field of computer science if the undergraduate curriculum focused on how to use current tools like Eclipse or Ruby on Rails or Angular.js. Universities are designed to give you a firm grounding in the fundamental concepts, which should give you the ability to understand whatever tools are in fashion in the industry with relative ease. Besides, if you're not doing any hacking in your free time outside of class anyway, you're probably not cut out for this career.
Anecdotally, I'd say that of my CS class maybe only 5% did any serious programming work outside of class.
(I've rarely programmed outside of class/work since college. I've never had a problem getting a job. I just don't like sitting in front of a computer all the time.)
I realize it is a popular idea among society - that college is a career training center - but that is patently false.
It is an unfortunate idea too, because it leads to lots of people wasting thousands of dollars on an education they won't ever use in their career just for the sake of having the piece of paper they get at the end.
> Besides, if you're not doing any hacking in your free time outside of class anyway, you're probably not cut out for this career.
Bingo.
Now companies face an apprentice-shortage and they started actively recruiting university drop-outs to fill the ranks. At least it's not an expensive experiment for those kids, given that tuition costs max out at about 1000 EUR/year.
Having a degree means that you have a degree. Sadly, it absolutely does not mean that you have any particular level of education. Trust, but verify: I believe that a job candidate has 10 years experience and a master's in comp sci, but I'm still going to make them code FizzBuzz before we move on with the rest of the interview.
The professional vocational degrees like engineering, medicine and law are intended exactly for career training. They are usually certified by practitioner guilds, for example.
You are quite right about computer science, but that is not a vocational professional program.
The OP studied engineering.
(edit: reading down a bit, someone spotted that OP studied Management Information Systems, which may or may not be engineering as generally understood.)
Medical school is absolutely not career training. It simply gives you the knowledge and vocabulary so that you can be trained to be doctor. The additional training, of course, happens in your residency.
You are utterly unprepared to truly be a physician when you graduate medical school, even if you have earned the right to be called 'doctor.'
Maybe it's a crazy idea, but they are equally not intended to be places where you go and learn nothing of value to anybody.
I mean, I get the whole academic focus thing too, but the described education wasn't focused on academic computer science either. It was simply useless.
Moreover, the idea that academics can be so strictly partitioned from practice is a rather silly one as well, at least in the computer science world. A program that claimed to be turning out really good computer scientists that, mysteriously, are incapable of actually driving a computer to do anything useful to anybody (academic or industry), would not be one that I would be paying much attention to. Even computer science academics are, on occasion, expected to be able to write an actual program every once in a while.
And I certainly won't believe anyone who claims to be really experienced at, say, using multithreaded programming, because they sat through a couple of classes and did a couple of homework assignments that didn't involve coding anything. It's really easy to think you know something, until you actually try to do it, and end up spending 15 hours debugging a terrible race condition. Which turns out to be something really, really simple in the end, and the real problem was that your "academic" knowledge still needed to be hardened with real-world experience.
And I'd observe that fully connects back to academia... it's the people who have actually tried things and used things and have some sort of real experience who will be pushing the boundaries forward, not some sort of semi-mystical "pure academics".
Instead, I just got a job by showing off said practical projects with no degree.
No, I'm not.
I'm saying you can't function as a computer scientist with 0 programming, and trying to train Computer Scientists in general while somehow shielding or protecting them from programming is something I'd look at very disfavorably. Even computer scientists need to program once in a while. A Computer Science program is doing a disservice to its "Computer Scientists" if it somehow manages to fail to teach them anything about programming.
And to be honest, I find it utterly, mindblowing absurd that anybody could take the alternative seriously. Think about it a bit.
In fact I'd go so far as to say that one of the several major problems facing the University system as a whole right now is this whole idea that theoreticians across all disciplines can somehow be fully severed from all practical considerations, as a result of too many people mindlessly chanting that Universities aren't vocational programs. A theoretician operating without any input from the practical world is a theoretician wasting his or her time, producing theories that will ultimately not even be of academic interest.
(There are very, very specific disciplines in computer science that might be able to get away with 0 programming, BUT the generic undergrad courses would not be able to be that focused. The generic undergrad courses need to be teaching some useful programming stuff.)
"Most colleges offer a more practically oriented degree."
You might want to check that. "Software engineering" or something is actually fairly rare as a distinct major, and while there will often be an "information systems" major of some sort (which it sounds like is what this guy actually took), that isn't so much "more practical" as "a reduced version" of the courses, often reduced to the point that you won't learn "programming" at all.
You are correct. I should have said "Most colleges I considered when starting my degree".
Look, we might have to agree to disagree. What I think, and what the one Computer Science Department Head I spoke to thought, is that Computer Science is math. Period. Just like a degree in Math, it does not have to have a directly practical application to serve a purpose. The fact that we have machines that run these theories is purely a sideline to the theories themselves.
"A theoretician operating without any input from the practical world is a theoretician wasting his or her time, producing theories that will ultimately not even be of academic interest."
I'm sorry, but many many theories that have become helpful for practical purposes were created by someone 100s of years before who didn't have any "practical consideratinos". Just because something isn't useful NOW or even in our lifetime, doesn't mean it isn't useful.
Quite frankly, I think programming (distinct from computer science) should go back to an apprenticeship based program if we can make that sustainable, and computer science (as in the degree program) should be kept where it is: Mostly theorectical with a minor side of practicality occasionally.
Sure programmers sometimes need to understand Computer Science theory, but most of what the average programmer needs to know about it does not require a degree but simply reading a book or three.
My anecdotal experience seems to match jerf's: I can't think of any undergraduate computer science program that appeared to favor math over at least moderately practical topics. But I've also not seen any undergraduate computer science program that appeared to be job training.
A local community college offers an associate's degree in "computer programming", and their graduates strike me as more obviously employable in the real world than area university computer science graduates. They learn skills that are known to be desired by major area employers, and the program seems to carry more of a "this is all about getting a job" sort of attitude.
I'm not sure you got my point entirely. If you've got a machine sitting there than can help you, you should use it.
If you're going to write about operating systems, you're an academic fool if you don't also actually take some time to gain some real experience on the very-cheap systems that can help validate that you actually do understand what you're learning about.
If you're going to do AI, you're an academic fool if you don't take the time to implement some of your theories and see how they actually perform. Who cares what someone hypothesizes may work in the field of computer vision if they have no implementation?
And so on and so forth. Even if it is just math, you are an idiot if you pass up the opportunity to implement something to verify your theories.
And the result will be courses, especially at the undergraduate level, that turn out to be useful both for academics, and for programmers who want to learn how to write theoretically grounded code. Which, remarkably, is exactly what we actually have.
You are not benefiting by trying to split academics off from practice. It's a stupid idea and a stupid ideal. It isn't a win for anybody.
That being said, as already stated, you shouldn't be going into these types of programs if your end goal is to get a job in the industry.
I'm not saying that CSE degree programs shouldn't teach you how to write code or require you to write code. I'm just saying that they are not vocational training and therefore should not focus on training students to use whatever specific tools are popular in industry.
Contrast that with community college certificate programs where they offer courses like "C# Programming in Visual Studio" and "iOS Application Development." Those programs' mission is to get you a job, and they also cost much less time and money than a bachelor degree.
I really dislike this mentality and it unfortunately seems to be the expressed by a lot of engineers (at least ones that have an internet presence). Just because you don't spend all of your time hacking away doesn't mean you aren't cut out for this career nor does it mean you can't be a great engineer. This kind of mindset is only going to deter potentially good engineers from entering into the field.
I'm certainly sympathetic to the idea that if you want to be a developer, it's helpful for programming to be an area of passion. But it's not at all obvious to me why that passion must be expressed in a certain way.
I really like math and computer science, and once I finish grad school, the plan is to have a job in applied math or statistics. Maybe even software. But in college, I didn't spend my free time programming, nor doing regressions just for kicks. In four years of university I did one personal project and two hackathons...total time invested, maybe 3 weekends? But let us not assume this means I'm not passionate about CS and math: I was a double major, I was a teaching assistant for 8 courses, I worked through the school as a private tutor for struggling students, I did research with professors, I published...and on my own time, I relaxed.
Yes. Yes, I can absolutely imagine judging someone in a partially-artistic field on whether they enjoy making art on their own time. That doesn't apply in every field, sure, and I bet chip designers don't generally go home and make little 8088 clones for fun. But programming is still as much of a craft as an engineering discipline, and I'm suspicious of people who claim aspirations in the field without demonstrating that they actually enjoy it.
In interviews, I ask what projects a candidate has written on their own time. It doesn't have to be on GitHub. It doesn't have to be big. It doesn't have to be generally useful. One of the best responses I got was from a guy who'd been developing his own duck hunting journal for the last decade to track location, weather, etc. I'm not surprised to see that he's the lead engineer at his company now.
This is particularly true of developers: generally speaking, someone who has the technical ability to be a strong developer could make a good living in finance, accounting, consulting, etc. The very fact that they're applying for a software job rather than something else is a powerful signal that they'd rather spend half their waking hours on software than on something else.
...or am I missing something obvious? - wouldn't be the first time.
But back to the career professional context. I think maybe I've identified the disconnect. Could it be that asking about personal projects is a way of identifying not just a competent developer but an actual geek? Those are different roles with different requirements. For example, you probably don't want to unleash a geek on your legacy business logic maintenance project. They'll probably be bored and end up breaking stuff in the name of optimization or cleanup. Similarly, you don't want "just" a programmer in your R&D team where you genuinely want and need creative innovation.
So maybe both sides are correct: for some jobs, it's completely appropriate to expect personal projects. For others, it shouldn't be expected at all. What do you think?
You should be pursuing a degree because it's a thorough & facilitated process of learning what you would be learning on your own anyway. You should be there because it's the fastest, most efficient way to get to the head of the pack of people who do have a tenacious passion for X and do spend a significant part of their free time on X. Every minute you're not doing something in X, you're not improving therein.
You think you're going to have a great career in X just by showing up for class and doing what's assigned? you think that will make for a good practitioner of X compared to others who live-and-breath the subject?
That you don't spend all your time on X doesn't mean you aren't cut out for this career and can't be great. The lead comment was "if you're not doing any X in your free time", not "if you're not spending all your free time on X". Don't wantonly construe the former as the latter.
But fact is, if you're not going above and beyond, you won't get above and beyond.
Very true. If you want job training, go to a technical/vocational school, or enroll in a certification program. Those are both perfectly legitimate things to do, and there should be no shame in either.
However, if you go back to the medieval roots of the universities, you find the Parisian model, which prepared one to be a cleric or a teacher of the same, and the Bologna model, where you learned law. Think of the account of the founding of Harvard: "One of the next things we longed for, and looked after was to advance Learning and perpetuate it to Posterity; dreading to leave an illiterate Ministery to the Churches, when our present Ministers shall lie in the Dust".
When treated as an objective rather than a place to learn, college becomes something to get "through" rather than some place to develop life skills.
One of the things that continually frustrates me about people's attitudes toward higher education (at least in the U.S.) is that they don't recognize this fact. An undergraduate university education should give you a general competence, self-motivation, and curiosity. More particular skills can be learned elsewhere; if you spend your time in college learning Java instead of learning to be a well-rounded, thinking, educated person, you're making an expensive mistake. Particular skills go stale quickly, and, unlike other subjects you could study instead, they often lack intrinsic interest.
Companies used to hire people with general competence and then train them in the particular skills they need on the job. I'm not sure why people now seem to expect students to learn these skills at universities, at their own expense. It seems to me that the burden of this training should be on industry, not on universities and their graduates.
I never understanding these complains about how bad college education is. We talking about America here, the land of individualism, of self-interest, of self-discovery. It seems like everyone expects 5-year-old kids to pace their studies. Yet, funnily, if it's college, the professors have to decide what the students need for "real world." What gives? So elementary pupils know what they need to learn, but college students (aka 18+) do not?
On a closely related note: half of all technology workers have no formal education, the article said. Wait, if those workers can learn by themselves, can't our precious, innocent, poorly taught college students get off their behinds and study those, too? Rather than whining about how their professors are not familiar with, you know, "real-world" experience, why not focus on what they are familiar with? Can you go out to a real world and expect those to know the greatest and latest algorithms and languages and formal definitions, their pros and cons and applications? Or how, says, Windows applications and AJAX applications are similar and different. Or a thousands of those long-term researches that businesses just can't afford to do. No. That's why we need professors and researchers.
Geez. Get a job, will ya?
I've done a lot of hiring over the years and recently in NYC. I can say in general I've always hired for Attitude and Aptitude. I can teach you anything if you have the right Attitude. I can't teach you to have a good Attitude and I can't make you have a better Aptitude.
One very real challenge in NYC is that big players are soaking up most of tech talent and there is a ground war between financial technology companies and other start-ups. That pressure has caused companies to go back to the drawing board on how they qualify candidates. For a while recruiters wouldn’t even look at a person without seeing some lofty education background in a resume. Now they’re looking for the scrappy problem solver that might be savvy based on their recent work experience.
I find this interesting because when I started in technology 30 years ago I had a hard time hiring for my companies and developed this “Attitude+Aptitude” concept with my teams. Over time it seemed like it was getting harder for people to get into technology jobs because it became accepted principle that you had to hire people with CS degrees to ensure success. Of course that was BS when it happened and I’ve always fought against it over the years. One of the best things for me about hiring in NYC was being able to tell the recruiting team what I was looking for and to tell them to stop looking for just CS degrees.
Recently I took a position as CTO in a San Francisco HQ’d start-up. I’ve been talking to my engineering team on how we filter candidates, again I’m preaching A+A but its clear they’ve been taught to look for CS degrees and Math majors. I’m working with them to broaden their thinking. I think this is an example that in general people are lazy about hiring and they’ll use anything they can as an excuse to not invest in finding out if a candidate is the right person. It’s tough, we’re all busy and have yet another meeting to run to or another customer call to deal with. It’s easy to think hiring is a pain and distraction from what you’re doing today. But, let’s be clear, the single most important thing you can do is scale your teams and if you don’t hire they’ll never scale and you’ll fail. To me the most important thing you can do in a company is hire well. The second most important thing is fire well, let people go if they’re not working out. You’re not doing them any favors and in the end their life will be better if they can find a place they fit in and can be successful and your world will be more successful if you focus on building a team that is a well oiled machine that smashes through problems like a hot knife through butter.
What the hell was this guy expecting? "Hey, guys! I just graduated! Let the money river flow!"?
Or an alternative model, going back to 1916, is MIT's Practice school[2], where graduate students go into factories and apply their training on specific projects.
This reads largely like someone who is ignorant of the opportunities that were probably present at Penn State, assuming that a degree would just get him a job.
[1] http://www.northeastern.edu/coop/ [2] http://web.mit.edu/cheme/academics/practice/
I got a job working telephone tech support for a networking company, hardly worth my time. Nearly two years later i got a job as a data analyst through a friend of a friend, working in SQL server and writing VB6 apps.
I should have spent some time researching and contacting companies while I was a junior and senior in college. I figured, like the OP, champagne would rain down from the heavens when I left school. It did not.
But there is hope. Keep plodding forward. What I learned in college has helped me through the years and it does still look good on the resume.
I feel like the Washington Post ought to be embarrassed to have printed this.
The comments there pointed out another article by the same author last year, explaining how he turned down multiple jobs to start his own web design company: http://www.pennlive.com/opinion/2013/09/heres_why_why_more_a...
Come on HN, you guys missed this cherry? I do like that you dug through the 22 year old's Linkedin profile to get his real degree, but yall missed a pretty big logical flaw there.
That said, there is a lot to analyze about the poor kid. First, he thinks that spending a year unemployed is abnormal. Granted the guy was in State College for a long time, and that is a pocket universe filled with football, cheap beer and cheaper dates. He's been sheltered with the Penn State pride and now is finally realizing that you gotta kiss a lot more ass than what he is used to in order to make it through an interview.
Second, he's at least misleading readers to his actual degree (as yall sought out online) and he thinks thats ok to do on a national level. A simple google search is going to ruin this guy. But as a voting, draft-eligible citizen, he's allowed to pave his own path.
Third, he's naive at best, ignorant at worst. Honestly, he seems harmless, and that is not going to cut it for the guy now that he dug this grave. He's got to get some beating in here before he realizes that he is the only one that will straighten his own back.
Best wishes to the poor guy. As John Wayne said: Life is hard, but its a lot harder when you're stupid.