How Computer Science Education Got Practical (Again)
jfruh writes: In the 1980s and 1990s, thousands of young people who had grown up tinkering with PCs hit college and dove into curricula designed around the vague notion that they might want to "do something with computers." Today, computer science education is a lot more practical — though in many ways that's just going back to the discipline's roots. As Christopher Mims put it in the Wall Street Journal, "we've entered an age in which demanding that every programmer has a degree is like asking every bricklayer to have a background in architectural engineering."
Sure, but you can't ask a team of bricklayers to assemble a livable house. In fact in this analogy it's so obvious that you also need an architect, a plumber, etc, that there's no need to even mention it. But when it comes to programmers and (corporate) management it's a whole different story. They will get a team of 'bricklayers' together and tell them to build the next Youtube - or a bit close to home, the next corporate content distribution platform - and then be utterly dumbfounded when that blows up in their face.
Maybe you should fire your HR people?
I love Jesus, except for his foreign policy.
We have hired, and let go, 3 "computer science" majors who didn't know how to calculate a range of IPs given a single IP and a netmask.
CS != IT. This makes as much sense as complaining that your car mechanic knows nothing about plumbing. If you want a sysadmin, then hire a sysadmin. But that is not what a CS grad is, or should be.
You should also change your hiring practices. If there are basic skills that you require, you should test for that during the interview process. By failing to do that, you are wasting your time and theirs. Letting one slip through may be excusable, but three in a row is a sign of serious dysfunction.
The link is paywalled, but programmers are not bricklayers. So just based on that one quote I can tell the article is stupid.
Indeed. TFA equates programming with bricklaying, and implies neither needs to be educated like an architect. But writing a program is much more like architecture than it is like bricklaying.
I have worked as a bricklayer. The first day, the foreman told me to pull the wall down and try again. The second day it was "good enough". By the end of the week, I could work as well (but not as fast) as the guys with years of experience. A programmer with a week of experience can not come close to someone with years of experience, and likely can't write a working program at all.
"The idea of programming as a semiskilled task, practiced by people with a few months' training, is dangerous. We wouldn't tolerate plumbers or accountants that poorly educated. We don't have as an aim that architecture (of buildings) and engineering (of bridges and trains) should become more accessible to people with progressively less training. Indeed, one serious problem is that currently, too many software developers are undereducated and undertrained. Obviously, we don't want our tools--including our programming languages--to be more complex than necessary. But one aim should be to make tools that will serve skilled professionals--not to lower the level of expressiveness to serve people who can hardly understand the problems, let alone express solutions. We can and do build tools that make simple tasks simple for more people, but let's not let most people loose on the infrastructure of our technical civilization or force the professionals to use only tools designed for amateurs." - Bjarne Stroustrup.
No sig today...
Also, why do we care what a former biologist, now sci/tech article writer for the WSJ has to say about technology-related education? Is there some connection that I'm missing?
We already have Playboy models advising the public on medicine and Fundamentalist Christians in charge of the National Science Curriculum so hey, why not?
No sig today...
Many of those large spreadsheets would be much better off as a database and a little bit of scripting language like Python. But most of these business analysts have only ever had exposure to Excel and VBA, and they would have been much better served with some technical training in the right tool for the job.
I agree with you, but, in my experience, the biggest single obstacle to deploying better tools is the IT department.
I'm an accountant, not a programmer (although my degree was a Computer Science joint honours 25 years ago) and I find that while Excel is great for some things, I prefer to us R for most data and financial analysis. But my IT department gets jumpy about R: We don't understand it! We can't support it! We don't understand its dependencies! If it stops working one day, we won't be able to help! Where will we find skilled resources if you leave the business?
"Fine," I say. "Give me C# or Python; I'll use those instead." But then I'm told I'm not allowed those tools because they're too dangerous and restricted to IT staff to maintain proper control. This hasn't just happened in one company - it's the normal response in my experience.
Comment removed based on user account deletion
What this author is trying to say is computer programming can be a trade of a learned skill set, much like a brick layer is a learned skill set; albeit a crude example. If companies are bemoaning about the lack of computer programmers and the skill sets in the market, then they need to realize that mandating a college degree is not needed.
When I read the comments, in here, and the general attitude in the outside world, it always comes down to some form of this:
"We know exactly what a student will need for their career, nothing more need be taught."
Or some other such truism, focused on the job as it presently exists. One thing for certain, is that if you train a student in the fully practical, the student will know how ot do exactly one thing, and will become redundant rather quickly.
A programmer knowing what a netmask is? Hell yes.
I have found through personal experience and general logic, that a person who knows more about what they are doing knows more about what they are doing. A programmer that can answer questions that do not relate 100 percent to his narrow job description is more valuable than one who cannot. KNowing bout more things can lead to nifty stuff like promotions, raises and the like.
My extraneous and supposedly non-relevant knowledge has over the years served me quite well, as relevant solutions are often found outside the normal solution set. In addition, I can never tell where a solution might pop up from.
disclaimer: I read Wikipedia for fun.
But if you want to teach someone off the street the programming language du jour, and set him or her in a cubicle raking in that minimum wage, then yeah, you can teach that in short order. That isn't worth much more than minimum wage, as you are producing an almost valueless throwaway employee.
The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
Jeez I learned that stuff in my networks classes, but I don't remember the stuff about netmasks, does not mean am I a bad programmer? It does mean at least that if I am faced with a problem that requires that knowledge I would be able to study it to complete the task.
I am a recently retired software developer who specialized in scientific, engineering, and image processing applications. I must have been considered pretty good because I kept getting significant raises and I retired with a net worth of over a million dollars. I do not know what a netmask is.
Most people do not have photographic memories. I've learned and forgotten netmasks countless times. If I don't do something for a few months, I can't remember it off the top of my head. Expecting "CS" people to remember endless trivia is stupid and counterproductive. You'll only hire the people who remember trivia, not the people who can create new things from scratch.