
Computer Science Major Needs a Rebrand, Android Head Says (businessinsider.com) 96
The computer science major needs a rebrand, Google's head of Android Sameer Samat said, arguing that the discipline is widely misunderstood as simply learning to code. "It is thought of as, 'go learn how to do Java coding,'" Samat said of the major, adding that if that's what students want to do, "you don't need a degree."
Samat, who studied computer science at UC San Diego, views the field differently: "It's definitely not learning to code. It is the science, in my opinion, of solving problems." The major should focus on breaking down problems, learning system design, and collaboration rather than just coding skills, Samat said.
Samat, who studied computer science at UC San Diego, views the field differently: "It's definitely not learning to code. It is the science, in my opinion, of solving problems." The major should focus on breaking down problems, learning system design, and collaboration rather than just coding skills, Samat said.
Shouldn't have gotten rid of calculus (Score:5, Insightful)
If you want to learn to code, go to a boot camp. It's only 8 months. College is about learning to think.
Re:Shouldn't have gotten rid of calculus (Score:4, Informative)
They shouldn't have gotten rid of calculus as a requirement.
Who is they? UC-SD requires Math 20, a calculus series is the pathway for Science, Technology, Engineering, and Mathematics majors.
Re: (Score:3)
This is the other part: not all computer science programs are equal. 25 years ago, my university basically created it as a "managing programmers and technologist education" concept, the idea being no one with a college degree was going to do any actual programming in the future. So it was very light on hard technology and very heavy on what was basically MBA prep. If you wanted to do information theory or data science, you were in ECE or a math major. You might touch on all the same concepts as a better pro
Re: (Score:2)
They shouldn't have gotten rid of calculus as a requirement.
No one has defined they. The article states UC-SD, they haven't got rid of calculus for a cs major. Who is they? I'm sick of this some very people are saying bullshit.
Re: Shouldn't have gotten rid of calculus (Score:1)
No one has defined they.
Lizard people. Illuminati. Deep state. Globalists. Nativists. Take your pick.
Re: Shouldn't have gotten rid of calculus (Score:2)
Re: (Score:2)
Weeding out is one of the intended roles (Score:5, Insightful)
I hope they didn't as I think it was useful. In depth algorithm classes were harder imho than calculus, so having the math requirement up front would help avoid having people get a couple of years in and realize they can't do the math.
Weeding out is one of the intended roles of Freshman Calculus. The correlation between successfully completing Freshman Calculus and various CS classes heavy on theory and/or math is high. Second year math, Differential Equations is more to give the graduate options. Allowing them to apply for those rare software jobs that require a mathematical literacy beyond HS level. Linear Algebra more of a genuine prerequisite for some CS classes.
Re: (Score:2)
Weeding out is one of the intended roles of Freshman Calculus.
And what is the societal benefit of "weeding out" an entire cohort of students before they have mastered the topic? It seems to me that the primary purpose is for colleges to avoid scrutiny and duck responsibilities for some deficiencies endemic to the education system.
Re: (Score:3)
Weeding out is one of the intended roles of Freshman Calculus.
And what is the societal benefit of "weeding out" an entire cohort of students before they have mastered the topic?
Seats at a university are a very limited resource. We have to ration them in some manner. The correlation between "Freshman Calculus" and second year "Analysis of Algorithms" is so strong the former can identify those ill-suited for a seat in the Algorithms class. Is it perfect, no. But it is better than having half the class fail.
It seems to me that the primary purpose is for colleges to avoid scrutiny and duck responsibilities for some deficiencies endemic to the education system.
The deficiencies and problems are at the K-12 level. Fix that and almost everything else will sort out from there.
Re: (Score:2)
Seats at a university are a very limited resource.
Not really. That's just part of the marketing.
Re: Weeding out is one of the intended roles (Score:2)
Better to change your major freshmen year that senior.
Re: (Score:2)
Who did that? Many years ago, I had to get a math minor (which I ended up with a second major) to get my computer science degree. Looking at my school's current requirements, they don't have quite as much math required, but it still has all the calculus, linear algebra, and probability/statistics (with a note that you can add one more math class to fulfill the technical elective in CS and also get a math minor).
Re: Shouldn't have gotten rid of calculus (Score:2)
Who did that?
I cant find a bachelor granting program that did. Just another internet troll making shit up.
Advanced math and sciences give you options (Score:4, Insightful)
They shouldn't have gotten rid of calculus as a requirement.
Besides weeding out the weak, advanced math and science classes give the graduate options. Sure, most software development is using HS math, maybe even only elementary school. :-) But occasionally there is a job that requires a certain "literacy" regarding advanced math or a branch of science. A 4-year Computer Science curriculum is designed to make such jobs an option. If you only want the HS math option go to your Community College and get a 2-year Software Development degree or certification. Don't dumb down the 4-year programs.
Re: (Score:2)
Re: (Score:2)
Calculus doesn't intersect CS too much. Better to have linear algebra and discrete math.
Statistics is highly useful for CS, and calc is a prerequisite for (real) statistics.
Re: (Score:2)
I've used statistics a lot while working with software, but never the parts that require calculus. Mostly it's computing averages, quantiles and counting the outliers. Never once was there a need to e.g. compute a probability distribution function.
Re: (Score:2)
Partially.....but in these modern times, college isn't JUST about the higher eschelons of thought....it is also training for jobs.
You learn chemistry to doing chemistry things, you learn engineering to learn engineering things ...you learn biochemical lab work to learn biochemistry.
Sure, you need to learn to reason, etc....but it is far from a pure form of education for education's sake and learning to think, you ARE there to learn real skills...at least the ones hoping
Re: (Score:1)
I took CHEM 660 Chemical Oceanography as an elective.
It wasn't particularly useful for anything either.
Re: Shouldn't have gotten rid of calculus (Score:2)
"you don't need a degree." (Score:4, Funny)
Re: (Score:2)
Money.
I mean, that IS the reason people work...right?
I mean hell, if they paid me $300K/yr to scrape dead cats off the road, I'd switch careers in a New York minute...
Accredited online university, can challenge class (Score:2)
If I don't have one, people like you won't hire me though.
You need certain knowledge. A degree is one convenient way to get such knowledge. And for some, it's necessary. Being self taught is certainly doable, but few on the self taught path will do a comprehensive study of topics similar to a CS program. It happens, but it is extremely rare for a person to have such personal discipline and curiosity. Far more often the self taught will have gaps. They will pass on topics they believe, sometimes wrongly, to be unimportant. This is sort of the foundation for the pre
Re: (Score:2)
You need certain knowledge.
Basically, this.
Degrees aren't magic. Someone without a degree can know a hell of a lot more about a subject than someone who does have one - even for advanced subjects.
What a degree is though, is some level of proof to the rest of the world that the person has at least some baseline level of knowledge. If I'm hiring a programmer: 1 has a Computer Science degree and one doesn't. The guy without the degree MIGHT be significantly better, but I'm taking more of a risk because he also might be clueless. Now
Re: (Score:2)
After a few years....you then are dependent upon experience and contacts you've made to get better jobs that pay significantly more.
Re: (Score:2)
If I don't have one, people like you won't hire me though.
Not if coding is all you can do. That's his point. He's not saying you don't need a degree, he's saying you do need it because it teaches more than just how to code. If all you want is to code, you don't need a degree. But if you want to be a computer scientist or a software engineer, you probably do need a degree... and Google hires computer scientists and software engineers, not coders.
Heh. That reminds me of a conversation I had with my academic advisor in the CS department back in college (~35 yea
Re: "you don't need a degree." (Score:2)
You must be new around here. The only engineers here know everything about code. They were born with it.
You, on the other hand, admitted that while you once thought you knew it all, you saw the error of your ways and learned some valuable lessons in the process.
Far too mature for this crowd. :)
(Seriously: excellent post. Thanks)
Re: (Score:2)
I have hired dozens of programmers over the years. I never consider a person's degree as a requirement. I look at experience.
If you have no experience, then a degree is better than not having a degree. But once you have experience, it no longer matters.
Further, if you have a master's degree, I consider that a strike against you, and a Ph.D. is two strikes against you. It's possible to overcome these obstacles, and some excellent programmers have these advanced degrees. But for the most part, students with a
yes (Score:3)
100% agree. In fact most people don't need a degree to be good coders. I learned more the first year out of school than I did getting my CS degree. The best coders I have worked with don't have a degree.
Re: (Score:3)
But you need a degree to be a good developer.
You might write the most elegant implementation of Bubblesort ever as good coder. But only a good developer who studied things knows why you shouldn't use Bubblesort
Re: (Score:2)
But you need a degree to be a good developer.
No, you can do the equivalent work of earning a (minus the non-technical classes) by on-the-job experience or self-study without earning a degree and still be a good developer.
"4 year CS degree or equivalent education or experience or combination thereof" is a much more rational hiring criteria than "4 year degree."
missing word Re:yes (Score:2)
"No, you can do the equivalent work of earning a _DEGREE_ (minus the non-technical classes) by on-the-job experience or self-study without earning a degree and still be a good developer."
Sorry about that.
My keyboard dropped out of college shortly before graduation. That's my story and I'm sticking to it.
Re: (Score:2)
You may be able to learn the same without a degree (simplest explanation: study and learn a lot, but don't take the exams), but work experience is something different. If you never learned the things, your work experience will only contains solutions that do not contain these things. You study to learn new things, you work to use existing ones.
Re: (Score:2)
But you need a degree to be a good developer.
You don't need a degree to learn anything. I personally believe the vast majority of people don't have the discipline or desire to learn a craft as difficult as writing software on their own, but plenty of people can learn to be an amazing software engineer without a degree. There is absolutely no knowledge that only exists in proprietary secretive knowledge bases controlled by universities that cannot be learned outside of college.
Re: (Score:2)
Agreed. You need to learn the stuff you would get the degree for if you take the exam. Where and how you learn it, doesn't matter. But university is the easiest way and a degree is the easiest way to prove you actually know them.
Re: (Score:2)
I was taught this knowledge in the German equivalent of a high school, together with a reference implementation of quicksort in Delphi.
Re: (Score:2)
And what other algorithms did you learn? Or more interesting but hard to answer: Which ones are missing?
In the end it is missing the point to discuss single examples. If you would learn everything in school, you wouldn't need to study.
By the way, Quicksort has worst-case complexity n^2, so it isn't optimal either. It is often used because it has no memory overhead and some distributions of data work fine with it, but if you need guarantees use something like mergesort.
Hey now (Score:1)
Maybe return CS to pre Internet Boom ways (Score:4, Interesting)
... arguing that the discipline is widely misunderstood as simply learning to code ...
That's true to a degree. I've often argued that High School Computer Science is a misnomer, outside of perhaps an AP class. But the regular class is best described as a Computer Programming shop class. Pretty much like wood shop, auto shop, etc. Just something for students to try out and see if they have any interest or curiosity. If so, then they can take the optional advanced shop classes in the area of interest.
But what computer science really needs is a return to the type of students who possess a genuine interest and curiosity in the field. Lets maintain the academic rigor and advanced math classes, the weeding out CS classes, etc to deter those student who lack the interest and curiosity but who were told its a good career path by a parent or guidance counselor. Kind of a return to pre-Internet boom ways. A return to the type of students that could, I don't know, build an internet? Not the type of student, graduate actually, that will slap 37 layers of dubious libraries together to accomplish a simple task.
Re: (Score:2)
... arguing that the discipline is widely misunderstood as simply learning to code ...
That's true to a degree. I've often argued that High School Computer Science is a misnomer, outside of perhaps an AP class. But the regular class is best described as a Computer Programming shop class. Pretty much like wood shop, auto shop, etc. Just something for students to try out and see if they have any interest or curiosity. If so, then they can take the optional advanced shop classes in the area of interest.
But what computer science really needs is a return to
Re: Maybe return CS to pre Internet Boom ways (Score:1)
Re: (Score:2)
However sometimes people go the 9-5 career route because of serious obligations, constraints on time. It's a valid understandable tradeoff for some.
Re: Maybe return CS to pre Internet Boom ways (Score:2)
Decomposition (Score:1)
Call yourselves "engineers" (Score:1)
Stolen valor for programmers, developers, code monkeys and script kiddies.
Re: (Score:3)
Re: (Score:2)
Re: (Score:2)
If only they hadn't fired the cowboy coder who suggested hardcoding in the form of a "bridge out" sign on a concrete barrier.
Re: (Score:2)
Hey, shitty engineers are still engineers.
What do you call the person at the bottom of the class in medical school? "Doctor"
What dod you call the person at the bottom of the class at West Point or Annapolis? "Sir".
Re: (Score:1)
This is adjacent to a good point.
We need actual software engineering, with actual software engineers, who are treated like actual engineers.
Re: Call yourselves "engineers" (Score:2)
Re: (Score:2)
The same skills as you get from a CS degree, but with an added level of responsibility. And as the much more insightful comment next to yours says, authority to say no.
Re: (Score:2)
This is adjacent to a good point.
We need actual software engineering, with actual software engineers, who are treated like actual engineers.
That would require giving said software engineers actual *power* to go with their now-crushing *responsibilities*
Including (and especially) the power to say *no* to management's fantastical (and usually self-contradictory) demands.
Re: (Score:1)
Get licensed as a PE if you wanted to be treated like an actual engineer.
Further reading here:
https://www.nspe.org/about/abo... [nspe.org]
Re: (Score:2)
In some states there's apparently laws against using the title of "engineer" if not licensed by the state as an engineer. Didn't Microsoft retire all certifications that had "engineer" in the name? Preferring to use words like developer, administrator, analyst, or expert instead?
Re: (Score:2)
In some states there's apparently laws against using the title of "engineer" if not licensed by the state as an engineer.
You pass a state exam and pay a fee. One great grandfather had a state stationary engineering license, it allowed him to fire the boilers at an industrial power plant. A grandfather had a state civil engineering license, it allowed him to build roads and bridges. The title "engineer" can cover a wide variety of roles, have varying levels of responsibility. A software engineering license could be little more than a simple test covering basic topics covered in a 4-year CS program, ie nothing terribly special
Re: (Score:1)
In some states there's apparently laws against using the title of "engineer" if not licensed by the state as an engineer. Didn't Microsoft retire all certifications that had "engineer" in the name? Preferring to use words like developer, administrator, analyst, or expert instead?
Do those states have trains? If so, who drives them?
Re: (Score:1)
Engine monkey....when the computer is on its union break.
Re: (Score:3)
You're thinking of this incident. https://www.vice.com/en/articl... [vice.com]
The state got pissy because someone questioned their traffic signal timing.
Re: (Score:2)
Yep, there's that. What also comes to mind was Texas causing trouble for people that used "Microsoft certified engineer" or words to that effect on their CV and such. Under Texas law one can be an "engineer" (or maybe it was more of "certified engineer" that caused problems) only if one of two conditions were met. The person passed all the required testing, and paid all the fees, to get an engineering license from the state. Or, they drove a train.
I can imagine there's been other states that have, or ha
Re: (Score:2)
My guess is that with that court case out of Oregon that few to no states kept such laws in place.
That was a district court case. It has no (legal) force in Texas. And I believe a recent supreme court decision might limit its impact to just that one person.
I believe what they want is "software engineering" (Score:2)
I've heard of how computer science programs do a poor job of training software developers for decades. The solution I've seen in this is the creation of software engineering programs. Such programs are often treated as a kind of subset of a computer science program or a computer engineering program. Computer engineering is often a poor path to take to be a software developer as the program is focused on hardware than software. There's a lot of overlap in computer engineering and software engineering but
Re: I believe what they want is "software engineer (Score:2)
Re: (Score:3)
I've heard of how computer science programs do a poor job of training software developers for decades.
That's because many "coding" skills as left as an exercise for the student to develop ion their own time, if fortunate covered in TA sessions.
Computer engineering is often a poor path to take to be a software developer as the program is focused on hardware than software.
No. Computer science and computer engineering mostly differ in preparing someone for software development centering on mathematics or the hard sciences vs low level hardware. Lots of overlap in core classes. And there is often a third type of program, let's call it computer information systems, that focuses on software development for business and government. Sometime
Or the classic MIS degree (Score:2)
That's the one where you learned how to make all the boring business software (positive).
Re: (Score:1)
Maybe because the degree is "computer science", not "software development".
Re: (Score:2)
Maybe because the degree is "computer science", not "software development".
That's where I believe people have gone wrong for so long on what computer science is supposed to teach.
Computer science was never meant to teach people how to be a software developer. It was meant to teach theory, much like how any science degree at a university is meant to teach theory. If people are wanting to learn more about practice then they should be studying engineering, or perhaps seek some kind of 2-year degree at a tech school.
It appears to me that there is a disconnect between the title and t
Re: (Score:1)
The problem is that "software development" is a trade, and trades do not live in the realm of academia. Computer science does.
The issue is that there was insufficient reaction to the development that programming could do more than solve problems and explore mathematical theories ; it could be used to develop APPLICATIONS, used by "ordinary" (not academic) people to do useful, everyday work. Instead of reacting properly to that, the powers that be let things slide and "coding applications" became a thing i
Re: (Score:2)
The problem is that "software development" is a trade, and trades do not live in the realm of academia. Computer science does.
That's an argument for software development to be something taught at a trade school, or perhaps as an apprenticeship program operated by a trade union or state licensing board. Consider that many states have apprenticeships for electricians, a combination of on-the-job training and some kind of time for instruction and testing in a classroom setting. There's certainly licensing for all kinds of trades, and I'd expect at some point software development will also be a licensed trade, assuming this isn't al
Tech / IT really needs the TRADES SYSTEM! (Score:2)
Tech / IT really needs the TRADES SYSTEM and not high theory loaded college
Re: Tech / IT really needs the TRADES SYSTEM! (Score:2)
Certs Re:Tech / IT really needs the TRADES SYSTEM! (Score:1)
We may not have a "trades system" but we do have privately-run certification systems that are separate from university degrees.
Think of an entry-level CompTIA/Microsoft/Cisco/OtherMajorBrand certification as apprentice-level. You can move up from there and specialize without needing to go to a college or university.
This exists. Check your local community college. (Score:2)
My high school art teacher back in the mid-90s took night courses for programming at the local community college as she wanted to change careers.
Of course (Score:2)
Leave it to a CEO to frame this as a marketing problem instead of a skills and competency problem.
It's in the name (Score:3)
Engineering is applied physics (Score:4, Informative)
Computer science is applied discrete mathematics.
Re:Engineering is applied physics (Score:4, Interesting)
Computer science is applied discrete mathematics.
It is, but that's because it's really "Software Science" . If labels were correct, "Computer Science" would be about the structure of a computer: interfaces, caches, distributed processing, and so on.
Re: (Score:1)
haha Google Android head is wrong (Score:2)
Computer science is the study of computers and computing as well as their theoretical and practical applications. -- Britanica
Way bigger field than just solving problems (for money I bet he's thinking). It even includes theories on what problems are solvable at all by various types of computers.
Re: (Score:2)
Just because Bitanica gets it right, doesn't mean the broader world understands it.
His complaint is that too many people think of it as a 'degree to get coding' and it's more than that. You seem to agree with that, though maybe room to quibble over the nuance of what more it is or how it should be described.
Big Yes (Score:2)
It's true, there's a big difference between developers with a CS degree and developers who learned to code a local community college. It's primarily in the depth of understanding and ability to solve novel problems.
I often think of it as the difference between an installer for a skilled trade and an engineer. An installer--for example, for an HVAC system--selects from a handful of pre-built solutions to solve the problem at hand, often involving multiple disciplines and tools but not building anything new.
And everything old is new again... (Score:2)
When I was at UCSC in the early '80s (specifically '82-'84), there was a minor rebellion among CS students. The curriculum was mostly theoretical, with very few practical options. Programming (in Pascal!) was taught, as a means to learning/implementing theory -- i.e. automata theory, language theory, etc...
The students wanted more practical courses, such as VAX assembly. Of course, in hindsight, the department knew what it was doing.
The more things change, the more they stay the same.
Just hire mathematicians (Score:1)
If you want to solve difficult problems, simply hire mathematicians. In academics, the Math department has its house in order. But Compsci departments vary so much between different universities that I start interviews of NCG with some really basic questions that anyone in the field should know.
For example, I might start with a linked list, an interrupt handler (ISR), and a semaphore/mutex/threading problem. If you can do 2 out of 3, then that's a good start. If you can't do any one then I recommend to the
Re: (Score:2)
Most mathematicians do not study the kinds of mathematics required for basic computer science. Of course, maybe computer science should not have started in engineering depts, usually EE, but rather in math depts, but history is history.
Re: (Score:2)
Most mathematicians do not study the kinds of mathematics required for basic computer science.
Good first principle and good foundations are more important that domain knowledge.
Of course, maybe computer science should not have started in engineering depts
Some CS departments started in math department. But more common these days, at least in the US, is they are an extension of engineering. Probably because there isn't a huge difference between digital design and hardware description language (HDL) than with the coding that computer science and software engineering does.
I would prefer if CS was more in the vein of Knuth when it comes to approach to theory and Wirth when it come
Java? (Score:2)
I think he meant javascript.
Coding is usually a gateway to (Score:1)
doing all the other stuff mentioned. Without experience, one is not going to make a very good domain analyst, for example.
Tis has been true since at least the 1980s (Score:2)
I got my CS degree in 1988. Even then, it was all about learning how to code. "Computer Logic" class was little more than learning about code branching structures (if/then/else, case, etc.). "Algorithms" wasn't a requirement. Certainly, there was no requirement to learn about the SDLC or collaboration techniques or release management or deployment strategies.
Computation science (Score:3)
Call it Computation Science. Soblem prolved. That'll be $200,000.
Rebrand (Score:1)