Live data from Hacker News

Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

codemanship.co.uk

141–150 of 205 posts

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#141
post #95

#1 (My Ad-Hominem Attack) Who is this guy? Why does he go on to trash comp sci if he never studied it? #2 "Of all the mathematical sciences, computer science is unquestionably the dullest. If I had my time again, despite discovering just how much I love writing software, I still wouldn't study computer science." I stopped reading after this point. Why does he state as a matter-of-fact that computer science is unquest…

Starting with your ad hominem, I think you took exactly the wrong things away from this article. Regardless of his writing style, his points are dead-on: 1. Computer science doesn't teach programming (with the corollary that computer scientists specifically don't want to teach programming). 2. Most people going into computer science want to learn programming. 3. Many people get fed up with the rigors of computer scie…

In my experience as a CS student, the fist few classes you take teach you the basics of "computer programming"...aka you just write a lot of object oriented programs. Then as you move on to parallel programming, computer architecture, and operating systems, it really becomes more of a science.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#142
post #98

Earlier quoted context omitted.

It would be like saying an Art History major could "easily" learn to paint. The skills just aren't transferable.

> The skills just aren't transferable. Not all comparison are good. I agree that playing music requires skills that you probably don't have if you only studied art history, but this is absolutely not true when it comes to CS and SE. CS and SE both have to do with abstraction, languages, logic, models ...

I'm not sure I agree. For practical programming, design is one of the most important skills that you need. Code that is ugly is automatically unmaintainable, no matter how theoretically sound. The text editor is your canvas, it is your job to turn out a work of art.

I believe this is why so many without strong CS backgrounds are successful as programmers: They bring the design skills often lacking in CS graduates.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#143
post #113

Earlier quoted context omitted.

Try the following thought experiment: Person A spends four years getting a BS in CS at a top-tier school, learning about programming at least for a few hours a day on average, with the benefit of a well-considered curriculum and instruction by wizards. Person B spends four years working full-time on something interesting at Google, which probably gives her more total hands-on-keyboard time, and also access to some mi…

> Person A spends four years getting a BS in CS at a top-tier school, learning about programming at least for a few hours a day on average, Real world might be different, but I don't think a CS degree should be teaching programming at least for a few hours a day . IMO that would be a total waste. There are bazillion of things to learn - database concepts, discrete maths, networks, ai&ml, digital electronics, some bas…

Sorry, I was just using that as a catch-all to describe learning "things which will probably help you be a better programmer in some way."

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#144
The reality is that there are many different responsibilities that, confusingly, fall under the singular title of "programmer".

If you're the tech cofounder at a startup, you're probably focused on building a new product that customers love from scratch. You're going to need a very different set of skills and abilities than, say, Microsoft engineer #10000 who is maintaining some old codebase. Or even engineer #100 at Google who's trying to scale to hundreds of millions of people. Etc.

What's weird is that people hardly ever mention these differences. They just say things like, "All programmers should know advanced algorithms"... or data structures, or compilers, or UX design, etc. Even if people/companies don't say this explicitly, they say it implicitly when they quiz for specific material in interviews for jobs that don't rely on that type of material.

If you're exceptionally good at what you do, but you constantly hear that you're inadequate because you don't have this skill or that knowledge, it's easy to doubt yourself. But you shouldn't. The fact is there's nobody who knows all of this stuff, or even most of it. And there's no job that's going to ask you to do most of it (I say this as the sole tech person at a startup where I have to do sysadmin, back-end coding, front-end coding, and design single-handedly).

Just find what you love and get good at it.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#145
post #118

fwiw, an opposite take, from a decade ago. at my cs pgm, the assistant professors were supposed to make a presentation on day 1 so the grad students could make an informed decision which prof to work with, which subjects to sign up for. the software engg prof was a glib, entreprenurial hotshot who said "my students have been placed at netscape, sun, microsoft, oracle". he talked about industry partnerships, internshi…

> I was personally not cut out to do scut work. I had zero interest and respect for maintenance, unit tests, requirements & specs, UML modelling, refactoring, waterfall method, agile, kanban... The world in which this is "scut work" is not the world I want to live in. Let's be honest. You don't want to do practical, you'd rather do theoretical, and that's fine. However, don't disrespect practical just because it isn'…

I have to disagree with you.

Software engineering 'ideas' regarding modeling and testing have gone way overboard.

I have a feeling that that all those who peddle fancy buzzwords such as agile and kanban are either MBA graduates with no real engineering background or failed engineers trying to reinvent their career.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#146
post #118

fwiw, an opposite take, from a decade ago. at my cs pgm, the assistant professors were supposed to make a presentation on day 1 so the grad students could make an informed decision which prof to work with, which subjects to sign up for. the software engg prof was a glib, entreprenurial hotshot who said "my students have been placed at netscape, sun, microsoft, oracle". he talked about industry partnerships, internshi…

> I was personally not cut out to do scut work. I had zero interest and respect for maintenance, unit tests, requirements & specs, UML modelling, refactoring, waterfall method, agile, kanban... The world in which this is "scut work" is not the world I want to live in. Let's be honest. You don't want to do practical, you'd rather do theoretical, and that's fine. However, don't disrespect practical just because it isn'…

Are you saying people who do theoretical work don't don't it in practical ways?

As an example, take Google's self-driving cars. Would you say the meat of their body of work theoretical? But would say the code they (Sebastian Thrun himself, and others involved in the project) write code that's not very practical, readable, maintainable or without tests? I would say what they do is theoretical work. And they write practical code for their theoretical work.

If you look at Udacity classes - I've watched Peter Norvig not Thrun's so I'll use that as a reference - Norvig places a lot of importance for tests, maintainability, readability and other practical things throughout his class. I would assume the code he writes (however little now, however much in the past) is very practical. Yet what he writes code for has a huge theoretical aspect to it. I'm saying one can have their body of work being theoretical by nature but that doesn't mean they don't write practical code.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#147
post #118

fwiw, an opposite take, from a decade ago. at my cs pgm, the assistant professors were supposed to make a presentation on day 1 so the grad students could make an informed decision which prof to work with, which subjects to sign up for. the software engg prof was a glib, entreprenurial hotshot who said "my students have been placed at netscape, sun, microsoft, oracle". he talked about industry partnerships, internshi…

I've tended to explain it to people this way -- In the related computer science fields there are only three kinds of problems:

1) The problems math makes for you. These are the kind of problems lots of people think they work on, but don't. Compared to other problems, there aren't a lot of them, but solving one has a huge impact on the field as one solution can be shared across the industry.

2) The problems physics makes for you. These are the problems you encounter when you take the math and start applying it to actual machines. This is hardware design or software to directly make that hardware do what you want. This is 'applied' computer science and again, many can leverage the work of a few.

3) The problems other software engineers make for you. This is what most computer scientists/engineers/programmers actually have to do. This is dealing with making someone else's code do what you want. It's dealing with API's and layers and layers of other, primarily human-created, problems.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#148
post #63

Earlier quoted context omitted.

You can have an intuitive sense of how many operations you're performing without knowing big-O notation.

Of course, but part of the benefit from studying CS is that you'll be able to recognize intuitively when there is or there should be a better solution. Let's say you want a data structure that performs three operations. Insert, Delete, and Find (as in, 'is this in the database?'). The intuitive sense may come from saying, "Linked-Lists would be horrible for this! Each operation would be slow." (O(n)) The practiced pr…

I find it interesting that you think a programmer needs to know big-O to know when to use a hash-table vs a list; I don't find that to be the case at all.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#149
post #98

Earlier quoted context omitted.

Academics are notorious for their code, but I suspect the parent was talking about people in industry with a CS background.

It would be like saying an Art History major could "easily" learn to paint. The skills just aren't transferable.

At least at my university, you can't get a CS degree without a significant amount of programming. Everybody--even the theory people--gets a thorough background going all the way from high-level programming through assembly and even a bunch of EE (it's technically an "EECS" program). Then everybody who isn't specializing in EE or very interested in CS theory does a lot of programming in more advanced courses. On top of this, most people work on some research which also tends to involve a significant amount of programming.

Really, it's not like saying an Art History major could easily learn to paint as much as saying an "Art Practice" major could.

Also, I've found that more CS-oriented people often have a good grasp of software engineering--designing programs, keeping them maintainable, ensuring correctness and so on. On the other hand, non-CS people tend to lack knowledge of theory unless they go out of their way to learn it (and most, unfortunately, don't seem to). It's much easier to get by programming at some company without knowing any theory than it is to learn CS without knowing how to program.

Now, there are obviously CS people who spend very little time programming. But, in my experience, they're relatively rare and tend to stick to academia. Really, they're more like math major who happen to like CS than anything else. The ones like that I've met here also happen to be some of the smartest people I've ever talked to, but that could just be a coincidence.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#150
>Time spent learning the UML meta-meta-model and Object Z >is, for 99.9% of developers, time completely wasted

I thought it was interesting that the poster used these examples for CS.

I didn't take a single course at university that dealt with either of these topics. Everything I dealt with in comp sci was algorithms & complexity theory, coupled with a smattering of, "this is how computers actually work". Far as I can tell op is talking about computer programming subjects, and not computer science subjects.

Post reply on HN