5 ms·
The Computer Science Mismatch
- k8si 13y agoAt University of Massachusetts, you can't get into the CS degree program straight off--you have to take the first 2-3 intro courses, prove you're a) dedicated to CS and b) able to do the work, then they let you in. So if you spend your first year taking gen-eds and getting good grades in your CS classes, you're fine. I think it's a good system.
- pavel_lishin 13y ago> So if you spend your first year taking gen-eds and getting good grades in your CS classes, you're fine. Isn't that kind of a general rule of thumb for just about any major/direction in college?
- sbov 13y agoIn my college you got accepted by the department before you took a single class. I think most work this way. Sure, I took mostly gen-ed and low level CS classes the first year or so, but I was already accepted to the CS department while doing so.
- Taylorious 13y agoMy college was like this as well. I think the basic idea is that you will sink or swim. If you can't make it in the program then that's your problem. I don't really see the point in limiting who can take part in the program. They get my money and I get to try, whether I succeed or not is totally up to me.
- goldenchrome 13y agoIt's like that at the University of Washington as well, except the admittance rate for CS/CSE is about 15% right now and it's only getting lower. The average GPA of an admit is 3.76 which is ridiculously high. It's a good system as long as the department has the funding to keep up with the applicants.
- kabdib 13y agoI'd feel better if GPA was an indicator of success. Unfortunately, all it really appears to be is an indicator of future GPA scores. (College dropout here... :-) )
- mjmahone17 13y agoWhile it might not be feasible for every college to do this, my college actively tries to get more students to take CS: you don't choose your concentration until your sophomore year (and you're allowed to take any concentration, regardless of what you declared going in/how many others are in it), and departments' survival depends partly on students taking their courses, so they have an incentive to try and recruit concentrators. EDIT: Also, universities need to learn how to scale their courses. For CS courses, it shouldn't matter whether 10 or 100 students are in a course: you should have enough undergraduate TAs who want to work on course development, grading and hours to scale your classes up with not-too-much friction. That's how one of our intro CS courses went from having 80 students to 180 the next year, and maintained the same attrition rate. Students learn best through each other: the professor should help figure out what the course should be, then get out of the way.
- rm999 13y agoA computer science degree isn't the only way to get a good software/programming job. In fact, I think doing a more quantitative major like applied math or engineering with a base education of 3-4 CS classes (programming, algorithms, data structures, maybe an applied high-level lab class) would serve many people better. If you have the mind for it learning a language and applying it to problems in your speciality isn't hard and can be done outside a class.
- pnathan 13y agoI have never seen a replacement for the algorithmic study outside of a CS degree. It can be approximated by theoretical Math degrees, however. I have a strong bias towards CS/math graduates because of this. Self-taught individuals frequently have a terrible time grasping these concepts and difficulty picking up the language that is taught in CS classes. (n.b.: I don't know WHY this is. Certainly its right there in the textbooks and on Wikipedia. But its been my experience that it is so.) Also, outside of the hotspots, programming jobs are scarce as hens' teeth. Would not recommend living or going to school outside of a hotspot in 2013.
- qdog 13y agoI know some people that go into programming without a CS degree, but there don't seem to be that many motivated people that learn enough if they don't go through school. There are tons of people who can program a little in visual basic or something, but when we interview people we ask them to implement a stack/queue and have tons of people who fail to come anywhere close.
- onemorepassword 13y agoThose "hotspots" where programming jobs aren't scarce include every major city in the Western world... Also, the same applies to countless other professions. There isn't a lot of demand for any kind of educated professionals in Hicksville, Middle-Of-Nowhere.
- vonmoltke 13y ago
- coldcode 13y agoThese types of articles only make sense in Boston, NY, Seattle or Silicon Valley kind of places. In middle America generally few people compete for new/any programmers at a level that would inspire an article.
- bluedino 13y agoIn middle America, businesses don't realize that you don't need a Computer Science degree to be a systems administrator, much less a CRUD app developer. It's weird that the same society who thinks "little Johnny is good with computers, he can do x/y/z" has trouble even letting little Johnny get an interview if he doesn't have a CS degree.
- vonmoltke 13y agoThey also don't realize that you don't need 5+ years of experience in their specific alphabet soup of languages, platforms, and frameworks to do those jobs effectively.
- Dewie 13y agoSo more people are applying to those programs - but what are the drop-out rates? I've heard that they can be quite high for these types of things.
- saryant 13y agoThe problem my alma mater faces is an incredible surge in CS enrollment but a fear of a 2000-style pop in which all those students flea the program. IOW, they've got more students trying to major in CS than they can possibly handle but are afraid of hiring more professors to handle the load. That's what they did in 2000 and they wound up having three professors with nothing to do. For a small school of <3000 students, that's a big problem. Their solution is just to make the intro courses so difficult that >75% drop. (Intro to CS in Scala will do that)
- andybak 13y agoStop obsessing about college degrees for the 90% of coding jobs that don't require complex algorithmic work. Hire smart people and train them on the job or hire smart motivated self-learners.
- bluedino 13y agoHow do you find the 'smart people'? (not that a college degree implies that someone is smart). Being 'smart' isn't enough to get the job done.
- ninjac0der 13y agoYou put out an ad? I would have assumed otherwise, but since you actually asked this question I'll make the obvious statement that a college degree is clearly no substitute for screening for 'smarts'. So either way, the ability to tell if someone is smart is still required. The degree is just more typically used as a crutch, imo.
- toomuchtodo 13y agoTime and effort. They don't magically appear. There is no webapp for it. You WILL have to spend a significant amount of time to find these people. It's probably also why you should be spending whatever you can to hold onto them once you have them.
- onemorepassword 13y agoThe problem is that those people are even harder to find than people with CS degrees, many of whom couldn't code their way out of a paper bag. I live in a country where most companies couldn't care less about CS degrees when it comes to developers. Still leaves us with the same problem though.
- lifeformed 13y agoDid anyone actually learn software development from their CS degree?
- per06a 13y agoYes. Mostly from these classes: 1. Operating Systems (custom malloc lib, building own data protocols, servers, networking, etc) 2. Compilers. If you've ever taken this, I really don't need to say more. It's basically a semester-long project with distinct phases all relying on each other (parser, IR creation, type-checking, back-end code generation) Pretty much every one of my classes included a heavy programming load, including Algorithms. Depends on the program.
- lifeformed 13y agoI found that a lot of the stuff I do daily (architecture, and structuring code for optimum readability, elegance, and performance) was barely even glossed over in my classes. I guess the how-computers/programs-work type of stuff is pretty important (in a subtle way). I just learned waaaay more by making things I liked in my own free time (games, web apps, tools).
- bdamm 13y agoI've found myself to be an effective programmer because of the non-degree experiences that allowed me to see the larger strategic and tactical environment in which programming takes place. However, the foundations that my CS degree gave me allow me to think much more openly about the possibilities of what can be done with computers. I don't need to depend on what a library can do, I can dream big and then find the code that does what I need or build it if I have to. And strategic thinking is an orthogonal skill that will elevate anybody no matter what professional discipline they are in. As a professor of mine once said "if the only things you learn at university are covered in your classes, you've attended a very poor university indeed."
- wting 13y agoOS: Used mutexes, semaphores, implementation details, argue about pros/cons, liveness/safety properties. Implemented shell, virtual memory, interrupt handling, process tables, scheduling algorithms, and multi-processor kernel support on JOS. Inode management and journaling for a FUSE filesystem. Concurrent network proxy. Distributed Computing: Paxos, Bayou, Byzantine Faults, 2 Phase Commit. Network Security: Had to demonstrate SQL injection, XSS attacks, stack smashing various C programs (one exploit required taking advantage of a double free to gain control). Programming for Performance: cache / matrix multiplication optimization, finding single source shortest path for the USA road network using a multithreaded implementation on a supercomputer 3 ways (Djikstra, Bellman-Ford, BF with chaos relaxation), and again using CUDA. Algorithms: graph theory (cycle detection, min-max flow, bipartite detection, Kruskal's, Floyd-Warshall, A*), divide & conquer, recursion / dynamic programming, greedy algorithms. Other courses: compilers, data structures, combinatorics, probability, linear algebra. These are just some projects I've done over the years, and only a subset of what was taught. Oh, and I picked up boring stuff like git, unit testing, and 3NF along the way. > Did anyone actually learn software development from their CS degree? Yes, yes I did.
- wfunction 13y ago> You might also think colleges would be expanding their departments proportionately, since even with higher numbers of students, the universities aren’t anywhere close to filling industry demand. Why is that a bad thing? If high demand was to cause a proportionately high supply, then in 15 years we'd find ourselves having too many coders looking for a job.
- dgbsco 13y agoIt seems counterintuitive that a budget-stressed department would want to turn away potential revenue.
- scott_s 13y agoStudents don't pay departments, they pay the university itself. The university determines the department's budget. So departments will have budgets which allocate the number of professors, instructors and teaching assistants. From there, they determine the number of courses and sections they can offer. And, from there, they will determine how many students they can handle.
- gwern 13y agoTry reading the article: the departments take a loss on each student. (But we'll make it up on volume?) It's the other departments like liberal arts which are cross-subsidizing them. (Which is cheaper to teach, a computer lab or a poetry class?)
- CodeCube 13y agoI'd just like to say that I'm extremely grateful to be working as a programmer right now. Of course, everyone else is, but I started my career right after the .com bust when all I read was how there were tons of new compsci graduates who couldn't find work (I was gainfully employed the whole time professionally). So, no real comment other than to express my gratitude to be working at a time when so many others in other fields aren't. Hopefully the music keeps playing and we keep circling the chairs. :)
- pyrocat 13y agoNice to get an Informatics shout out, even if it's presented as a computer science 2nd choice. It's a wonderful program that blends code, design, and user experience, with a sprinkling of library science and business ethics. I couldn't think of a better degree for an aspiring entrepreneur.
- tenpoundhammer 13y agoI find this article to be mostly bogus, while recruiters are working hard to bring in talent it's rarely with competing salaries or incentives that people actually want. Increasingly companies are centralizing and reducing the locations in which they will allow employees to work. While those same employees are placing a higher value on staying close to their families and developing interpersonal relationships. If you need to find an employee and having a hard time offer more money or expand the area in which employees can work so you have a larger pool of candidates! If you are a company that truly needs specialized talent, then create it. Stop whining that it doesn't magically appear on your doorstep. Hire someone, train them, and then pay them a retention bonus so they don't leave.