US CompSci Enrollment Up For 4th Year Running
dcblogs writes "Interest in computer science continues to grow among undergrad students, who pushed enrollments up nearly 10% in the 2011-12 academic year, according to the Computing Research Association (CRA) of enrollment and graduation rates at Ph.D.-granting universities. This marks the fourth straight year of increases. Enrollments might have been even higher if not for enrollment caps at some schools that don't have enough faculty, equipment or classrooms to meet demand. Enrollments increased 10% last year as well, but overall enrollments remain below the peak reached during the dot.com bubble. Around 2002, each school had a department with an average enrollment of about 400 students; by 2006-07, that enrollment average had declined to about 200. Average enrollments per department are now nearing 300, according to the survey."
Get back to us after the fourth semester and let us know what % of the enrolled did not switch majors or drop out.
and how meany people are better off voc / tech school type training then 4 years + of CS?
To many people are going to CS and not learning the skills needed to do real IT work.
Joining the other unemployed 54%
* http://newsfeed.time.com/2011/05/10/survey-85-of-new-college-grads-moving-back-in-with-mom-and-dad/
Join the Slashcott! Feb 10 thru Feb 17!
Maybe that is because Computer Science isn't IT work?
I know I'm not meant to reply to this, but please, if you are going to do this, *please* fix the grammar. Sentence two you no sense.
What are those skill needed to do real IT work?
Tell that to people who actually hire CS grads right out of college.
Having a 4 year degree certainly helped me, but what's equally important are certifications. There are too many amateur IT people flooding the market, and not enough highly skilled people. Best way to get experience and name recognition is to freelance a few years. You never know what opportunities you'll come across.
-- By all means let's be open-minded, but not so open-minded that our brains drop out.
At this point, being a developer is so well-established with so many tools and sources of documentation, that it's no longer cutting-edge. The question is whether we're steering these people into dead-end careers where they are (virtual) pencil pushers in cubicles, or whether we're advancing enough that they have something interesting to do.
Making another version of a well-known type of web site, or well-known type of Android app, might be steady work but could also be so boring their brains will collapse and create black holes that can only be filled by daytime television and AM talk radio. We don't want that, do we?
On the other hand, if they're bored at work, they'll be prolific open source contributors!
Googling and being able to type fast.
I can't speak for all US universities but it would seem Information Systems and Technology degrees are suited toward practical programming jobs.. I don't really see IS*T majors doing research for comp sci specific fields but that's not to say they don't exist. In my program, I learned databases, java, c#, vb.net, and the agile development process which will basically get you a job in the US as a front-end or mid-tier developer.
The problem is most people want to come to IST because they don't want to program but find out that they should have just majored in business or MIS. This is only for certain schools however.. I have met some programmers who were better at coding than comp sci people because they have a better sense of scope...
Which brings me back to your point... Comp Sci from my experience gears you toward PHD or masters programs where you will be doing a lot of theoretical work. They don't teach them mandatory database classes or networking which is very important in today's coding world... they also don't teach you anything about how coding fits into the business world. That's not to say you couldn't get any programming job you want.. But honestly, if you live in the US, it doesn't really matter for most companies if you got a comp sci or IST degree so long as you can prove that you know what you are doing in the domain of what they need you for. It's basically just a formality now, they check you off whether or not you got a degree... I think they frown on Votech schools over conventional bachelor's programs, but if you can prove you're proficient, they will give you the chance regardless.
I think that's his point. Lots of people want IT-type jobs, and go for a CS degree because they mistakenly leave off the word "science" when they read "computer science". "Oh a degree in computers! That's what I want to do". You can get an associates learning networking and programming and the like, CS will make you do a lot more theory that isn't really the goal of many students in the program. They just don't understand the difference, or that several options exist depending on goals and interests.
We really do a terrible job in the US of explaining to students the possibilities and letting them go with the best option. It's easier to funnel people into pet programs I suppose, than give any real academic advising.
Is this 1998?
We play the game with the bravery of being out of range
It seems to me that Google, Apple, Microsoft, Facebook et al are currently so dominant in creating 2 - 3 year consumer market-trends, then collapsing them, and pushing yet another nouveau 2 - 3 year trend into the marketplace, that new computing science graduates will have a very, very difficult time "making their mark" in the computing world. I feel that the world of computing, a few years ago, was more open to individual CompSci artisans creating seriously interesting things, and these things growing wings if people liked what they created. Today, if it doesn't get pushed by AppGoogFaceMicrosoft, hardly anyone notices that it exists, or even possible. Good luck to our new CompSci graduates. The world you will be thrown into when you graduate won't be a garden of roses...
Why did the chicken cross the road? Because Elon Musk put an AI chip in its head.
Don't worry, someone in India is not only learning it better, but willing to work for cheaper.
What political party do you join when you don't like Bible-thumpers *or* hippies?
The train/educate ratio needs to tilt far over to the "train" side, IT is expected to do drone work, not invent or think.
The education topics need to remain more or less the same, some comprehension of "big O" and scalability problems and algorithm analysis remain important.
IT needs some biz and accounting classes... mandatory requirements. Intro to accounting is not terribly useful for a computer scientist.
IT needs more liberal arts. Public speaking, mandatory for presentations. A computer scientist only needs pub speaking as an oral defense at the PHD and teaching classes. A foreign language (aka BA degree) seems highly wise for IT as your job will probably go to India or China very soon, so if you learn hindi or mandarin perhaps you can transfer into a project mismanagement or perhaps analyst position...
IT needs to learn how to master a piece of software and/or a system. The software selected to master doesn't really matter, whats important is that some people, shockingly, don't know how to explore and fully learn a piece of software unless that skill is specifically taught to them. Like many, maybe most, computer people, I learned that around age 6, but there's some who need the formal class to learn it at age 20.
IT needs database theory, a computer scientist only needs codd normal forms etc if s/he is going into the DB theory field (frankly, unlikely).
Very little of a CS curriculum would be a total waste of time for a IT guy and vice versa, but a lot of mandatory and nice to have positions will swap.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
In my admittedly cynical experience with most wannabe young programmers, I've found that the vast majority only major in the field because they think it will make them money and provide steady work (or because they think *programming* video games is in any way analogous to *playing* them). But they have neither the heart nor mind for the field and so go one of two ways:
a) They drop out before they finish their degree (wasting *their* money), or
b) They graduate but make for really shitty programers (wasting *their employer's* money)
Either way, go major in nursing if you just want money and a steady job.
What political party do you join when you don't like Bible-thumpers *or* hippies?
It sounds like you have limited knowledge about what schools offer. I have a CS degree and I was taught databases, c++, python, java, c#, and a number of different development processes. Additionally, i was also taught compilers, parsing, formal proofs, algorithms, graphs, and a bunch of other stuff that is only used tangentially where I work.
The MIS majors where the ones who were taught just databases and a few Microsoft languages, like you.
I do believe there is no standard, and you have to look for a school teaching what you want to learn. :)
Googling
Society seems to be bifurcating into those who know how to find stuff and learn from it, and the masses who don't. I have no idea how to train people. You can't be successfully educated without knowing how to research, but thats just a filter, its not something thats taught. If there were a way to teach people how to research, especially research online, that would be helpful.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
someone in India is not only learning it better, but willing to work for cheaper
That's not my experience of Indian programmers. Well, both parts of your statement are correct: someone in India is learning it better, and also someone in India is willing to work for cheaper. They are not usually the same person, however.
I am TheRaven on Soylent News
I love that the grammar's the bit that's annoy's you the most. :) sorry couldnt' help it.
and how meany people are better off voc / tech school type training then 4 years + of CS?
Vocational training isn't a prerequisite for a CS degree.
Besides, there are plenty of nice people in both tech school and CS majors.
The timing on this is funny... I literally just filled out an application to my school's undergrad CS program this morning. I graduated a couple years ago with a physics degree and have been doing research work here ever since. It's a nice job - the pay isn't great, but the benefits and hours are. So why am I going back to school? Because I realized that I spend most of my time writing code, and that's the part of the job I enjoy most. But also because the fundamental economics of science research are bleak and not going to get better anytime soon... science in the US is vastly underfunded, and now there are reams of grad students and post-docs looking for tenure-track jobs at a time when tenure is rapidly disappearing. The best case for NIH and NSF funding for next year is a 0% increase, and that's assuming the automatic debt deal budget cuts don't take effect. Time to find a new career.
He doesn't mean freelance by building some geocities website or by fixing your neighbors computer. There are a ton of ways to freelance via work at home opportunities that can get your real experience and real money. Its almost become a form of apprenticeship. I got started out doing freelance web programming and really enjoyed it. I would still be doing it because it allows me to work from anywhere in the world. But I had to eventually move on to a real job in a boring office to support my family, but if I was single I'd freelance solely.
There are still lots of small companies around, and increasingly they're hiring people to work remotely. I've done a lot of interesting work for random small companies around the world over the last year.
I am TheRaven on Soylent News
If you go to the FED (http://research.stlouisfed.org/fred2/series/USINFO/10) and look at the labor stats IT employment has dropped every year since 2000 and is now down to 1980s levels. For the spreadsheet and "IT Glut" US Senate article you can get those at my website http://www.sooty.ca/capex-and-it.html).
The push from industry of "There aren't enough IT graduates" appears to be a reason for demanding more H-1B visas and justifying outsourcing. There is a large pool of unemployed (mostly over 50 years old) and underemployed (mostly under 30 years old) IT graduates who cannot find work.
In fact IT jobs have been dropping as fast as manufacturing jobs. If you saw a headline that said we graduated 10% more sheet metal workers the response would be sorrow. As "glamorous" as IT jobs are 10% more IT graduates will mean 10% more fast food workers with IT degrees.
Lets be realistic, CS majors have two paths to go once they get their diploma:
They can be a developer and try to fight for every dollar earned against Indians/Chinese who are ready/willing/able to work for pennies on the dollar. For them, a $30,000 annual salary for a CCIE certification is more than enough for a H-1B, because an efficiency apartment isn't glamorous, but it beats the slums or rice paddys any day of the week.
They can go the IT route. Yes, one has to fight against the H-1Bs who will work for any price, but there are jobs available -- someone has to be local and watch the routers, even if it is working for Geek Squad.
Want to know how to make money with a CS degree? Use it to fulfill the law school prerequesite and get your J. D. There are plenty of jobs available for people who both know Sarbanes-Oxley and other regulations without having to tack on "IANAL" behind every statement. Then, there is IP law. There is no such thing as an unemployed lawyer.
Trust me, law is the only money maker in the US (if you want a career, not just a job), and people who don't get this are just plain deluded. Lawyers made the Constitution while doctors were still believing in the four humors and using leeches.
also CS can be very different from school to school.
some are very theoretical based with little hands on.
other are more focused on the programming. But even then there are many areas in the programming area.
Also how does a very focused on the programming 4 year plan help VS a tech school / Votech at maybe 2 years. Help you on Cisco? helpdesk / desktop? system admin work? web? networking?
There is a lot in IT that you can pick up better doing it on the job VS 4 years in a class room.
Now with CS you may be a jack of all trades on a theoretical level. VS say a tech school where you may be focused on say 2-3 on the listed befor areas with some hands on idea of the other skills needed. But going to a school with a big focused on the programming does not really help you be better at IT admin work.
My observation over the past few years is that, just like back in 1998-1999, everyone's fascinated with tech again. Instead of the dotcom boom, it's the Apple/smartphone/social network boom this time. We'll see what happens. I remember back in those days people were piling into CS programs and vendor certification courses alike. Some were interested, and others were out to make phat buxxx because they were "good with computers." On top of that, this time there's a generation of people who grew up with Facebook and think that's the pinnacle of modern technology.
I'm on the IT side of things (engineering, not operations) and we're still working through the backlog of people who hold a vendor certification and not much else in the way of talent or troubleshooting ability. My only fear is that these mini-booms produce more of these types of individuals. I can't tell you how many times a cowboy "IT Consultant" has come in to someplace I worked at, messed things up and disappeared. Without some sort of independent yardstick, it's hard for a business to judge whether an IT person is just a good talker or whether they actually know what they're talking about.
You are living in a subjective reality, a prison of your own construction. If you choose, the "hardly anyone" who you mention, can be everyone who matters.
Think back to 20 years ago when Microsoft looked like the main barrier to progress. The market looked just as un-enterable to people living then too. And their discouraging words were met by fogies who spoke of IBM, saying the 1990s kids didn't know how good they had it. But of course things actually were happening; they just weren't in the headlines.
You're right that there is a large market being played by AppGoogFaceMicrosoft and that little of interest is happening there, but doing uninteresting things is always how it is when you're trying to sell things to the mainstream where the big money is. This says nothing about things that are possible to work on and advance, except the sales volume itself.
This isn't even a software phenomenon. Most creative endeavors are like this. Why learn to play music when so many people are giving their money to Nickelback? Why learn automotive design when people are just going to buy Chevy Silverados? Why work on solar power when people will just write monthly checks to their local utility who burns coal? Why carve furniture with an axe, when people will go to Ikea? Why brew beer in a nation who spends so much on Bud Light? Because you love doing things, that's why, and because even if most people buy lame shit, you're still not alone.
"Believe me!" -- Donald Trump
I'd agree here. To a tech savvy manager, they are more interested in skill than certs. However, to the people that hire the purse strings, they don't see that. All they care about is that the person has the alphabet soup of characters after their name, be it a B. S., MCSE, CCIE, CISSP, TS/SCI clearance, etc.
I went through that circus after I graduated with my CS degree, even with 15+ years in IT experience. A lot of interviews went like this: "Got a valid TS/SCI clearance or CISSP? No? Next in line, please."
Certificates are a filter. No certs, the resume gets round-filed before it ever gets in front of a living person's eyeballs.
And I'm still having trouble hiring a CS professional in Baltimore. I was at a local admin users group recently, and there were 3 people hiring (including myself). 2 for development, and 1 security specialist.
I think that over the years, I have just become impervious to these *shock* forum posts. They don't get any reaction out of me any more.
Bad grammar and bad spelling (minor typos aside) will always grate on me though.
My company was looking to get developers on the cheap and hired an Indian on a working visa. He had one qualification that we hired him for (he had experience implementing RoHC). Now it's months after his visa expired and he went back to India (and quit working for us), and his code is finally being used in production. I have had to do two major rewrites of RoHC features already. As more profiles and features are used, I expect to have to rewrite even more of his code.
This was just one experience. I work with very qualified and intelligent Indians as well, though I would recommend against hiring another one on a working visa, even if we save money.
Freelancing kept me afloat for a few years, until I landed a position as Systems Administrator for a Law Firm. You'd be surprised how many people need your services and willing to pay good money for it. But like you said, I couldn't pass up an opportunity for a full time position with benefits. Now I sit on my ass most of the day, waiting for some dire need of my skills.
-- By all means let's be open-minded, but not so open-minded that our brains drop out.
The bad news: Those fresh grads are learning Java as a first language, leaving them ill-equipped for independent thought. If their solution is not pre-built in one of the java.* or javax.* namespaces they won't be able to do it.
they don't want to pay for a TS/SCI clearance they you to have one form some other place willing to pay for it.
You can't get that on your own.
Reality check here. The market for lawyers in the US is oversaturated, meaning that most of the ones who get employed out of school are doing work that used to be paralegal grunt work with paralegal pay. Contrast that with me or any software developer I know with any skills from this decade: 2-3 unsolicited job offers a week. In most US markets companies are fighting tooth and nail over every single Java or .Net developer they can (not to bash on any other platforms, these are just the most common). I have heard the stories about unemployed programmers, but I have yet to meet one, and I find it hard to believe they are all that common when my inbox is constantly flooded with emails from recruiters, and there is really nothing special about me.
computer engineers are shitty programmers? (not that it's any more use than CS for IT work)
horror vacui
I am always amazed at how incapable of Googling the average user seems to be.
In general lawyers are currently over-supplied, but lawyers who have a STEM degree in addition to their JD aren't. Still a pretty significant demand for patent law and that kind of thing.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Aren't recruiters usually paid by commission on the number of leads they generate? If so, that would explain the spam. Besides, everyone is looking for "good" or "experienced" programmers. There are plenty of inexperienced programmers out there too, many of which aren't given a shot at any of those open positions because they don't have the necessary experience or resume buzzwords.
If you have a bunch of talented, smart workers around with skills, there's no shortage of things to work on. The economy isn't a zero-sum game.
Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
Higher Education is in a massive tuition bubble. Liberal arts, if properly taught, are very good things. But it's getting increasingly hard to justify getting a liberal arts degree for $100,000+ worth of debt. Heck, it's hard to justify any degree for that.
My kids have some ways to go before they are ready for college, but this would be my advice. Consider getting an associates degree and transferring if you are going to go for a liberal arts degree. That may be a good idea in general.
Instead of getting some unpaid internship, consider picking up a skilled trade for a summer job. There is a good bit of demand for those types of jobs, and you never know. At the very least, you may be handy around the house when you get older.
Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
The recruiters I have worked with are paid a commission when they fill a position, not the number of candidates they generate. Like the parent poster, I too am inundated with calls from recruiters. I have also interviewed a lot of people for various open positions on my team. In my experience the inexperienced programmers don't get the job because they lack buzzwords, but that they fail to sell the skills they do have. I have interviewed many candidates who say "never heard of that" when asked about a technology in the job description. Some basic research and preparation would help the candidate to see how they can spin their experience to cover any deficiencies. I am more impressed when a candidate says "haven't done that, but I understand the concepts, and let me tell you about something similar in my background." Sometimes you can draw out that diamond-in-the-rough candidate, but if the interviewer has to dig too far, it is just easier to move on to the next applicant.
I hope all you new graduates are smart enough to make sure you get paid nothing less than $75,000 / year. Otherwise you cheepen the industry, and sell yourself short, and piss off the rest of us already in the industry because it would lower our price.
Looking at job postings for some big companies (few defense contractors, couple semiconductor companies), they're hiring a lot of software engineers. I keep thinking of the Mythical Man Month and how it is quite possible these companies think that throwing more programmers at a particular job will fix their problem faster. But this might not be true; there may legitimately be more software projects cropping up. It's tough when you are a graduating CE/ CS (dual) student and you want to do hardware, but your whole resume is software (because your school needed you on software) and your job out of school is software (because all these big companies need you on software). It's good for comp sci kids because the jobs are irrefutably out there. Computer engineers have an issue where they might be trying to specialize in hardware but employers see "computer" and think software. This is also happening to CS students; I know a PHD student who is extremely good at low-level (chip level) and assembly work, and does high level programming as more of a side thing. Anyways, a good bachelors CS program will have a ton of (practical?) programming. Most CS classes at my school have programming assignments. Not all classes use practical languages (heard of Oz?), but they all require large amounts of coding. The "theory" part is discrete mathematics, algorithms , and programming language theory. Don't think for a second a CS degree isn't "practical". Of all the science degrees, it will probably open the most doors.
Computer Science departments (atleast the one I went to) don't teach "Cisco Networking".. they teach "Networking"... They don't teach "Windows", they teach "Operating Systems".. You might get an intro to programming in $language, but they'll choose any language for any particular course and figure you'll figure it out..
If you're bright enough to do well in competent CS program, you can pick of the specifics of $solution you happen to be working on and you'll have an edge on keeping up in the long term versus those MIS kids..
Wish I had mod points -- what a great, and positive post.
If you are interviewing just asking if they know the definition of XYZ buzzword maybe you really aren't qualified to giving the interviews. I personally walk out on interviewers like you because I don't want to be part of team that thinks knowing a bunch of facts is more important than actually being able to apply,evaluate and create. see http://en.wikipedia.org/wiki/File:BloomsCognitiveDomain.svg .
See you are asking a very primitive cognitive ability actually the lowest one, whether someone can remember something.
That is fucking great you know what inheritance and all the OO concepts but you don't have a fucking clue how to apply them hence the reason why you have copy and pasted the same fucking class 10 times. Oh and you created race condition because you heard about multi threaded programming and wanted to try it out sof you can fill in that buzzword on you resume. And along with that you create memory leak.
Oh I see knowing a bunch of facts is more important that actually being able to solve problems.
Crappy programmers that rattle off buzzwords but don't really have an idea how to program or design a system well eventually they stay somewhere so long eventually the manager has them do interviews even though they still are a crappy programmer that is going to rattle off buzzwords to make their penis look bigger.
That's true, but not all of them are (or would be) good programmers.
Years ago at a different job, we hired a guy who was supposed to be our UNIX admin as well as a programmer. Since he was new and unknown, we weren't just about to hand him the keys to the kingdom, so his initial tasks were coding and some stuff to make sure he was up to the task.
He was an atrocious programmer -- the first task I gave him took him several days to code, and it was badly implemented and incredibly slow. After he argued with me that his was just as good as mine (which I knocked up in 30 minutes). Sadly, the few Admin tasks we let him do he didn't really shine at either.
He didn't last long after that because he refused to understand that his half-assed attempt wasn't as good as we needed.
I also once worked with an electrical engineer who had been hired as a coder. He didn't actually *know* anything about writing code, and eventually became a placeholder position. We had assumed that as an EE he knew these things, and he had assumed we'd teach him.
I'm not saying all inexperienced programmers can't ever become good ones -- but many of us simply aren't willing to gamble on them and trust them with our code.
Lack of experience sometimes means you may not actually have the skillset. And employers aren't willing to pay to find out.
Lost at C:>. Found at C.
You are NOT a Computer Scientist until you get a Ph.D.
You do know that school isn't the only place to learn, right? You do know that you can, for instance, learn about something outside of school, or purely through experience, right? If it can be learned in school, it can be learned outside of it. Most likely.
When you go for any IT job, the number one requirement these days is a degree in Computer Science or equivalent experience.
There. FTFY.
No, no, you're not thinking; you're just being logical. --Niels Bohr
They're all actually Chinese spies. Didn't you read the Slashdot article posted just a little while earlier today?
Having a 4 year degree certainly helped me, but what's equally important are certifications. There are too many amateur IT people flooding the market, and not enough highly skilled people. Best way to get experience and name recognition is to freelance a few years. You never know what opportunities you'll come across.
Certifications (with two exceptions -- CCIE and CISSP both for different reasons) aren't worth the paper they're printed on. I've met so many "certified professionals" who couldn't find their ass with both hands and a map.
There's no substitute for experience. Period. Any certification that you can get by just studying the book and/or doing practice exams are worthless. The two exceptions I mentioned above don't fit into that category. The CCIE requires hands on problem solving and the CISSP requires at least five year of documented experience. Any certifications that don't include one or both of these are, as I said, worthless.
No, no, you're not thinking; you're just being logical. --Niels Bohr
Te audire no possum. Musa sapientum fixa est in aure. I can't hear you. I have a banana in my ear.
yea and God said to Abraham; "You will kill your son Isaac." And Abraham said, "I can't hear You, you'll have to speak into the microphone." And God said, "I'm sorry, is this better? Check check... check. Jerry, pull the high end out, I'm still getting some hiss back here." /p
The RHCE and RCSA are rather good.
And as a CISSP myself who is well-grounded in the infosec field, I guarantee that most CISSPs don't get it, and that cert, while having merit in the past, is quickly becoming the MCSE of our time.
No increase in demand for teacher and professors. For those of crazy and qualified enough to teach (because we are passionate about it), we can't. I begin to see why tenure isn't necessarily a great thing.
I always hire math PhDs to do my taxes. Although their fee is astronomical it's really worth it. After all "math" is "math" right, the same as "reimaging a hard drive" and "python hacking" are the same as "computer science"? No?
I'm not saying all inexperienced programmers can't ever become good ones -- but many of us simply aren't willing to gamble on them and trust them with our code.
Lack of experience sometimes means you may not actually have the skillset. And employers aren't willing to pay to find out.
...which leads to a past "Ask Slashdot" question, how do these folks who stick it out four years for a BS in Comp Sci actually get a paying job in the field if no one is willing to hire inexperienced folks?
I have certainly met unemployed programmers (and engineers too), and I have been one. Generally even after being laid off there are jobs out there but many are just not necessarily the ones you want to do, or the ones you have no experience in (unix and hardware gurus aren't going to get those .net jobs or even want them). I get a couple recruiters a month contact me but never for something I'd want to do or be willing to burn a bridge over. Recruiters just see a certain keyword and call you up.
Compare this to say accounting. There are a lot of accountants who do not want to do people's taxes, and yet they know that during tax season that there will almost always be an open job doing that. But you don't advance your dream job of being a business accountant by taking a job at H&R Block.
(And employers for the most part don't really want Java programmers, they want Java *framework* programmers. You won't get a job knowing only the language though you may get calls from recruiters.)
I never said that I quiz the candidate on a bunch of facts and definitions. That is annoying, and reveals little. Most of my questions are phrased in terms of "tell me about a time where you did x", or examples of how they handled certain situations. I am always more interested in what you have done, rather than what you know. That being said, if the job description states "... the candidate will be working on an Agile development team ...", you had better be able to talk intelligently about Agile, and how your experience applies. Or if the job description mentions a specific commercial software package, I expect that you have read up on in it and know generally what the product does. In that same vein, if I ask if you have ever done multi-threaded programming, or how would you troubleshoot a race condition, you are going to need to know the definition to answer the question.
In short, good programmers do know the definition of basic concepts, and can relate it to their past experience, and good candidates do research before they walk in the door.
Summer internships, research positions, contributing to open source, pet projects ... I honestly don't know. I graduated university almost 20 years ago; and at that time, pretty much only enthusiastic geeks were enrolled in CS.
When I went to school I did research work with one of my profs for the last several years I was in school. So I did some specialized programming and the like (bare metal, OS kind of stuff) , had done code walkthroughs, and almost all of my courses had a really heavy coding quotient. So I crawled around in more code than some friends with Master's degrees since more of their stuff was theoretical, or only had to work well enough to cover their specific area of research -- you can still do cool research and write crap code if nobody else has to see it or maintain it.
In all honesty, by the end of my degree, there were people in my department who I was convinced managed to do most of the course work and pass, but who nonetheless weren't very good programmers. Give them a well defined problem and some help, they can do it -- go much beyond that, and they didn't seem to know much. I also know several people who only formally have high-school, but are absolute rock stars when it comes to writing code.
I am actually surprised at how many people out of school I've met who have never used anything like CVS, never built anything more complex than a little demo, and only really have a semester's worth of coding with everything else being theoretical. I've also seen people who had an OK high-level view of computers, but didn't really understand how an OS actually worked or anything like that. Often concepts like testing and documenting make them turn up their nose as if it's beneath them -- sorry, but we can't use you if you can't see why we do these things. I've also seen people who don't seem to have any measurable skill at debugging programs and trouble-shooting.
Years after I graduated, the prof I did my research work with and I were having a chat -- he asked me if I ever actually used anything he'd taught me. I could tell him in all honesty that the stuff I'd learned from him about programming and building/designing stuff I used every single day of my life. So, I was fortunate in that I got to learn a lot of the intangible stuff we didn't cover in class. I got to learn by going through the process and being shown how these things are done.
So, my best advise? Build something. Be ready to show it. Actual working code is probably better than your resume if you're just starting out. Perspective employers need to know that you have more than a passing/theoretical knowledge about how to program. And they also need to believe that you're capable of learning things you may not know very well.
Lost at C:>. Found at C.
Went CS; dropped out after not getting along with ridiculously advanced calculus; ended up with an AS in 'Computer Information Systems', whatever the hell that is, solely for the purpose of having some sort of college degree.
My thoughts are fought over by many; my words turn the course of businesses; my legend glows like the heat of ten thousand stars.
And never once have I had cause to use that class on binary math I encountered during my CS days. CS is completely useless to the average IT person. We're not talking loltechsupport, either. Systems architecture, administration, developers, designers, management - none of these people need a CS degree.
What a pity our education system hasn't clued clueless high school students in on that.
But you need some sort of Bachelor's degree to get MBA, which allows you to do all the above with job security and 6-figure pay.
Twitter: @dainsanefh
A combined IT / MBA curriculum seems more make sense. Political Science is also a plus. But in the USA there are too many white IT racist that refuse to learn another language.
Twitter: @dainsanefh
That's what your company get by not being patriotic and hire American-Born.
Twitter: @dainsanefh
Amen! There is always room for the CS stars if they know where to look. Look for the cracks or niches that few businesses fill. If something is hard to use make it easy to use. If something is clunky then make it better. Even if you suck at finding niches go make a solution and then go look for problem it solves.
But Google, Microsoft, Apple, Facebook for the most part are just doing stuff in the "facade" of computing. Stuff that people can see on the web in other words. Despite all the hoopla that's really a minority of all computing out there. Most stuff happens out of sight or not on traditional peecees. Apple does more embedded stuff (or at least purchased companies that did it) with iPod and iPhone, Microsoft pretends to have an embedded solution, Google has Android and has played around superficially with some other embedded stuff (Facebook is not even in the running though, they're the purest of facade computing). So if you compact and contract their markets you're still get only a tiny compaction of the embedded market.
The trouble is that students aren't introduced to this stuff. They see what's shoved in front of their faces, either by their peers or by Wall Street or by newspapers. They don't see the computers in their microwave, their automobile, their routers, their television, etc. Some may be away of computers in their phones but mistakenly think it's all done with Java. Some may be away of the other stuff but think it's simple stuff and not very complicated to solve.
Even if only the facade exists there is a mass of complexity there that only a few people get to deal with. Video is cool, but linking to videos and editing them is boring and low tech compared to writing the codecs, optimizing the protocols, etc. Essentially the fun problem solving part of computing only gets done by a minority of programmers and engineers. The trick is to aim for that instead of the saturated job market of technicians.
As if the H1B visa problem wasn't bad enough, most of this increase of students are foreign exchange students.
59% of CS Masters Graduates are non resident aliens according to the survey by the same company.
Few ever reach tenure these days; they've made it far more difficult and easier for politics to prevent somebody from legitimately earning it. Meanwhile K-12 educators get it simply by not being fired for a few years.
That sounds pretty much like the CSC trackrecord I saw during my schooling for CSC degree (2nd one, I have B.S. MIS earlier on): At the start, there were something like 360 CSC majors declared... @ the end?
* Only 10 of us made it... from my class.
My best pal @ the time, A Russian-Jewish immigrant whom my family "took a shine to" because they too were immigrants (1st generation U.S. Citizen here), & I, were the ONLY ones recommended for jobs by the CSC dept. head & with a then "Fortune 500" company too (Goulds Pumps)
Man - but, we did NOTHING but "live the job" is why... & it showed in grades, and work efforts...
However - I look back NOW though, & think to myself @ times:
"College is illogical - you work hard AND PAY FOR IT, rather than working hard & GETTING PAID"
Lol... but, that's the "price of the caste system" (in today's world!)
APK
P.S.=> However, if you "live the job" (I mean put in TONS more time than just what school demands, & to get "A's" for every 1 hour of class time, you had better put in 3 more on your own)? You'll excel... guaranteed.
By "live the job" as far as being a student (and in "the real working world" later)? It means really putting your heart, soul, & TIME (the most important commodity we have as "mortals") into it... apk