Is It A Good Thing That Computer Science Is 'Cool Again'?
from the maybe-not dept
Computer science is cool again. At least, that's what the headline at Network World says. Apparently, CS enrollments are up for the first time in six years, driven by "teens' excitement about social media and mobile technologies." I'm a CS grad student, so you might expect me to be excited about this development, but I'm not actually sure it's such a good sign. It's great that there are more people considering careers in the IT industry, but I worry about people going into computer science for the wrong reasons. In my experience, if your brain works a certain way, you'll love programming and will have a successful career in the software industry. If it doesn't, there probably isn't much you can do to change that. So I'd love to see more kids explore CS, but if, after taking a couple of classes, they're not sure if CS is the right major for them, then frankly it probably isn't. If you don't enjoy programming, you're almost certainly not going to be a good programmer, and you're not going to be either successful or happy in that career. The fact that you like Facebook or your iPhone definitely isn't enough reason to be a CS major.
I think it would be better if colleges focused on expanding the computer training that non-CS majors receive. Almost every technical field involves manipulating large datasets, and so the ability to write basic computer programs will be a big productivity boost in a wide variety of fields, from economics to biology. Most people aren't cut out to be full-time programmers, but lots of people could benefit from a 1-semester course that focuses on practical data manipulation skills with a high-level scripting language like Perl or Python.
Thank you for reading this Techdirt post. With so many things competing for everyone’s attention these days, we really appreciate you giving us your time. We work hard every day to put quality content out there for our community.
Techdirt is one of the few remaining truly independent media outlets. We do not have a giant corporation behind us, and we rely heavily on our community to support us, in an age when advertisers are increasingly uninterested in sponsoring small, independent sites — especially a site like ours that is unwilling to pull punches in its reporting and analysis.
While other websites have resorted to paywalls, registration requirements, and increasingly annoying/intrusive advertising, we have always kept Techdirt open and available to anyone. But in order to continue doing so, we need your support. We offer a variety of ways for our readers to support us, from direct donations to special subscriptions and cool merchandise — and every little bit helps. Thank you.
–The Techdirt Team
Filed Under: computer science, students
Reader Comments
Subscribe: RSS
View by: Time | Thread
Couldn't agree more
I wish this was something some colleges/universities did. After learning Perl, I saw on just how much I was missing out on. Now, I'd argue I can get by generating, examining, and data mining large data sets (both numeric and text) with a text editor and interpreter alone.
[ link to this | view in chronology ]
[ link to this | view in chronology ]
Agreed
Software writing is all in the approach to the package and has very little to do with the actual coding. Those who sat at a computer and started typing code as soon as an assignment was given were mediocre to average at best.
[ link to this | view in chronology ]
Re: Agreed
My friend and I would always do that right after class.
But it was a always a friendly little competition to see who could get done first. We really enjoyed it.
I do enjoy the coding process and problem solving.
[ link to this | view in chronology ]
Agreed...
During orientation, we were told to expect that our four year bachelor degree would take five and a half years, mostly because you could never get the classes you wanted such that you could fit the whole program into four years. At least, not without doubling or tripling up the hard classes, which is just foolish to attempt in CS.
I would say that a good 80-90% of those people had no talent at all. They were constantly lost, had no sense of efficient logic, no sense of code readability, no creative problem solving skills, and otherwise just got by on sheer perseverance alone. Most of them end up as "implementors". They are told exactly what to make and how it should work, and the push through it.
They are a far cry from the few of us capable of actually designing, building, and debugging systems which are complex and still efficent.
[ link to this | view in chronology ]
Re: Agreed...
Honestly, I'm pretty much self-taught. I just read the text book in about two days, messed around with stuff and taught myself. Early on, I had a tendency to try and bite off more than I could chew. I would try and use the fanciest concepts that I could dream up, stumbling upon capsulization pretty much just from learning about functions (man, I thought function pointers in C/C++ were the most amazing things ever for a while...I still think so, but I like the abstraction placed on them in some higher-level languages). I always would get hung up trying to debug my program because of those 100,000 extra lines of code that I was writing where I was just over the horizon of grasping the concepts.
Experience has helped me get over that, but I still look back and wonder how many of my classmates actually have become good programmers...some of them couldn't code unless, as BillDivX mentioned, someone tells them what to do. I have a co-worker like that. He's good enough after that, but he's not gonna figure out anything on his own.
Personally, I feel that I'm gifted at algorithms, but I have a job as a code-monkey for now. I kinda hate the idea, but it's definitely changed my coding habits for good and given me more discipline. Breaking into a graphics algorithms field will have to come with time. Besides, landing a job your Senior year in college is hard enough. I'd say that I was really lucky to get anything (Nebraska is not really a technological epicenter of the world - it's the corn-husker state...what can you expect? I guess I could move back home to Texas).
My point is that I do agree with BillDivX, but I think that the ranks get quite mixed in the real-world...I think plenty of those "untalented" people end up in the jobs that others of us have (or at least, think we have) the talent for and would love to have ourselves. O well, time and patience may remedy that...or at least help ease the pain of it all.
[ link to this | view in chronology ]
[ link to this | view in chronology ]
Look to math performance
At least that's how I've always felt, but maybe I'm wrong. Anyone out there hate math, but love programming?
[ link to this | view in chronology ]
Re: Look to math performance
Speaking as someone who was the only junior in his high school's Calculus II class, I think you're spot on. You don't have to be a math genius to be a good programmer, but I don't think you can be a good programmer if you hate math - there are too many similarities between the two, as you've pointed out
[ link to this | view in chronology ]
Re: Look to math performance
I have three programs I want to make in my free time though, one of which is to help me study in a non-CS related class.
[ link to this | view in chronology ]
Re: Look to math performance
[ link to this | view in chronology ]
Re: Look to math performance
That said, I've been coding for 25 years, professionally for 11, and I love the crap out of it!
[ link to this | view in chronology ]
Re: Re: Look to math performance
You are right, logic and problem solving skills (breaking a large problem into consumable chunks) are key to being a good programmer. It just so happens that most people start developing those skills in "math" classes which, in middle and early high school, are actually "advanced arithmetic" classes.
[ link to this | view in chronology ]
I agree completely, except for the "probably" at the end.
The kids who will do good in programming will take CS whether it's "cool" or not. They're the ones who will teach themselves to program on this new "Turbo Pascal 1.0" from some startup called "Borland" after convincing their parents to shell out $2k for a new Kaypro II. They'll ace the AP Computer Science exam without ever taking a programming class in high school. And later on in life, they'll have a wife that gets upset that they spend too much time in the evenings working on their hobby coding projects. :)
From the first time I ever used a computer (an old Osborne "portable" that probably weighed 30 pounds), I simply *knew* that that's what I wanted to do with my life - to the point that I never had (and still don't have) a Plan B.
[ link to this | view in chronology ]
[ link to this | view in chronology ]
What About Actual Computer Skills?
Oh, and passable spelling would be great, too.
Most of my friends in the major could barely write reports, let alone somewhat readable comments. Those same friends also tended not to have a clue how to snap together a desktop computer (because it seriously isn't that hard, so long as your motherboard manufacturer gave you a good header pin-out, of course!)
[ link to this | view in chronology ]
Re: What About Actual Computer Skills?
Personally, I'd rather the people who take up CS write OSes and software that don't need users "to install without hand-holding".
These are (artificial) thinking machines. They should adapt to our skillsets. These are the first tools we've developed that should know how to work for the user, rather than force the user to understand the tool.
IMO, it makes no sense that people should learn how to put together a machine that can be mass manufactured for under $200.
Should some people learn those skills? Sure, those people who are going to create and repair hardware should. And those going into programming should have a decent understanding of the environment where their softwares will run.
But I see no benefit from having everyone learn the internals of computers. This would be akin to having everyone learn how to repair a car engine. It would be a massive inefficiency for everyone to learn the exact same skills.
[ link to this | view in chronology ]
Not for everyone
My time in college and since has shown me four groups of people:
A lot of people, many of them very smart individuals, just don't have the ability to put themselves in the place of the computer (or system) in the manner required to be able to build good programs. A partial CS eduction might still benefit this group for a career in technical writing or even IT management.
Other people (again, many of them very smart) just switch their brains off when they sit down in front of a keyboard and monitor. These people are the stuff of tech support nightmares. They can use a computer, but only if the programs and hardware they rely on extremely well put together. Thankfully, as computers become more and more a part of daily life this group is getting smaller. That also indicates that if you bang them over the head with it hard enough, there just might be hope for them.
Then there are normal people. Yes, they do exist. With hard work and study, these people can make it through a CS program and come out the other side as productive graduates that would be a great addition to almost any team. It is a lot of work, though. For many of them, the rewards just aren't worth the costs.
Finally, you have the born programmers. A person from this group just 'gets it' from day one. They understand how a program is put together and why, and know how to assemble code that accomplishes the task. Often these are very smart people, but some of them are pretty dumb, too.
The main thing is that it's the manner in which you think that is important, not necessarily good you are at thinking.
Now, finally, to the point. I don't think it's a bad thing that more people are applying to CS programs. The things I've described above are not new, and over the years schools have become pretty good at weeding out those who are not well-suited to the discipline. Those who shouldn't become programmers normally learn this pretty quick.
[ link to this | view in chronology ]
Confused... why is a CS degree only good for coding?
And was I a great coder? No, but I think I was pretty good. But I would probably agree that only a small percent of the CS grads are really good coders. However,only a small percentage of English majors are good writers so, I don't really see the point here.
[ link to this | view in chronology ]
[ link to this | view in chronology ]
By comparison, I much prefer people actually interested in technology getting into the field.
[ link to this | view in chronology ]
Programming...
Unfortunately for the former, I never really had much in the way of resources to use for too long - (the only computers I had for a long time were various kinds of Sinclair Spectrum) - and it was only in the past 5 years that I even got a PC. (I had a couple of Amiga's in between). (And I got that for music instead).
I remember learning Sinclair basic and finding it pretty easy, but never had any luck in finding some good guides for using machine code programs at the time. Later on I took a basic programming course in C, which was enough for me to decide I could do it if I really wanted to, but since I didn't have a computer at the time, I left it alone and haven't bothered with it since... Now I'm just waiting for a better computer (again) for my music...
[ link to this | view in chronology ]
Work With Real Code
Nowadays, you can learn so much about programming by looking at real, working code written by other people. Put a Linux distribution on your PC, and have a play with it. Find a program you like? Go look at its source code. Maybe it's buggy, or doesn't quite have the features you want? Why not try fixing the bugs, or adding the features? It's a whole lot less effort than writing your own program from scratch. Plus you get the satisfaction of other people using stuff you've written.
Not a bad thing to have on a resumé, either.
[ link to this | view in chronology ]
So Wrong
[ link to this | view in chronology ]
[ link to this | view in chronology ]
[ link to this | view in chronology ]
Following the money...
[ link to this | view in chronology ]
i want to ask how we can use the computer
[ link to this | view in chronology ]