Live data from Hacker News

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

codemanship.co.uk

191–200 of 205 posts

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

#191

Earlier quoted context omitted.

After I wrote out "fuck just programming, cs is fucking awesome", I immediately thought it sounded like a good name for a blog post :) Is my hipster showing?

I've been mentally composing a blog post entitled, "Programming is hard, which is why I don't want to do it" about the differences between "real programming" and computer science. The thesis is that "real programming" involves solving problems that are inherently simple but have loads of incidental state and details to mentally keep track of, whereas computer science involves solving streamlined, semi-pure instances…

Please write this blog post out in full because it sounds exactly like what I've always felt but haven't been able to express properly.

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

#193

Earlier quoted context omitted.

> As an example, take Google's self-driving cars. Would you say the meat of their body of work theoretical? No.

Would you care to elaborate? Surely most of the lines of code are not directly implementing theoretical things, but I would say the meat of the work is without a doubt theoretical.

I don't know about self driving cars, but I have known people who did PhD level research in control engineering and then went into industry (real, heavy metal industry, like offshore oil installations in the North Sea) implementing advanced control systems.

The estimate they gave me of the contribution of their control algorithms (the "theoretical" part of the project) to the over amount of effort getting the thing working was less than 1%.

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

#194

I interview a lot of people who want programming jobs. What I find is: almost nobody can program, and almost nobody knows basic CS 101 data structures. It does not matter if you are a self-taught programmer with ten years of experience in the best companies, odds are that you cannot solve a trivial coding exercise. It does not matter if you have a masters degree in Computer Science, odds are that you cannot successfu…

Probably because the vast majority of the "programming" field as it stands today barely exercises computer science knowledge. Linked list optimizations, heaps, that stuff isn't even on the radar of most devs hacking on a startup, frankly, because the language hides it away. And they are not inferior programmers if they can execute on their knowledge, are they? I hate that, to most folks who are into CS, CS is a yards…

Did you really not notice that your reply is to a strawman you made up? The person you are replying to did not say anything about CS vs programming. He stated that most people who claim to be programmers can't do basic programming, and most CS grads can't do basic computer science. Incompetence is widespread on both sides. There was no claim that one side is more important than the other, yet your reply is almost entirely "you are elitist for thinking computer science matters".

Every programmer should be able to fizzbuzz. 95% can't. This is a problem. Every CS grad should be able to build a tree. 95% can't. These are serious problems.

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

#195

I interview a lot of people who want programming jobs. What I find is: almost nobody can program, and almost nobody knows basic CS 101 data structures. It does not matter if you are a self-taught programmer with ten years of experience in the best companies, odds are that you cannot solve a trivial coding exercise. It does not matter if you have a masters degree in Computer Science, odds are that you cannot successfu…

If a person is a self-taught programmer with ten years of experience working in a good company, then you are obviously programming for that company in a sufficient capacity even if you are unable to solve puzzles offered up by human resource managers that found them on Google by typing in "Questions for Programming Interviews." Programming is not about being able to solve brain teasers. Programming is about being abl…

You are the only one who said anything about brain teasers and puzzles. The parent lamented the fact that so many programmers can not solve basic programming problems. Fizzbuzz for example. If you can't write fizzbuzz, you are not qualified for a programming job. It has nothing to do with computer science, or brain teasers people googled, and everything to do with writing actual working code to accomplish a trivially simple goal.

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

#196

Earlier quoted context omitted.

If a person is a self-taught programmer with ten years of experience working in a good company, then you are obviously programming for that company in a sufficient capacity even if you are unable to solve puzzles offered up by human resource managers that found them on Google by typing in "Questions for Programming Interviews." Programming is not about being able to solve brain teasers. Programming is about being abl…

You are the only one who said anything about brain teasers and puzzles. The parent lamented the fact that so many programmers can not solve basic programming problems. Fizzbuzz for example. If you can't write fizzbuzz, you are not qualified for a programming job. It has nothing to do with computer science, or brain teasers people googled, and everything to do with writing actual working code to accomplish a trivially…

I had to look up "FizzBuzz" to know what you mean, but you are correct. (I have actually been asked to write programs like this, and this is great even if it is minimal. I think the questions may need to be a bit more complex than this, but at least it is possible to solve in one sitting.) Asking an applicant to write simple programs like this would be good. Or, if the person is a front-end JavaScript developer, you can ask them how they would handle thumbnail mouseovers to display larger versions of the images in a separate div. Things like this are fine and have purpose. Asking a database administrator about the difference between joins makes sense. Another question might be how would you write a class to represent a deck of cards including methods for shuffling the deck. In comparison, sometimes you will have technical questions thrown at you that have no real world applications or literal brain teasers, and I think those types of questions are pointless. There is a difference between asking programming questions and asking programming puzzles, and I wanted to voice the opinion that puzzles should not be misconstrued to the point of suggesting that people cannot program because they cannot solve them.

Real programming projects are best. I think one of the best methods would be to give a person a reasonable assignment that should only take a couple hours to complete (if that long) and ask for the results within a few days. (This will give them plenty of time to clean it up, add surprising features, and create a nice design and front-end after they are finished with it. A day can be used for the promise of completion, and the remaining time can be used to overdeliver.)

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

#197

Earlier quoted context omitted.

You are the only one who said anything about brain teasers and puzzles. The parent lamented the fact that so many programmers can not solve basic programming problems. Fizzbuzz for example. If you can't write fizzbuzz, you are not qualified for a programming job. It has nothing to do with computer science, or brain teasers people googled, and everything to do with writing actual working code to accomplish a trivially…

I had to look up "FizzBuzz" to know what you mean, but you are correct. (I have actually been asked to write programs like this, and this is great even if it is minimal. I think the questions may need to be a bit more complex than this, but at least it is possible to solve in one sitting.) Asking an applicant to write simple programs like this would be good. Or, if the person is a front-end JavaScript developer, you…

>In comparison, sometimes you will have technical questions thrown at you that have no real world applications or literal brain teasers, and I think those types of questions are pointless

My point was that nobody else is talking about that. You just brought that up completely out of the blue, but in response to someone. When you reply to a post, those of us reading the thread tend to assume your post will in fact be in reply to the parent post, not a completely unrelated post just stating your opinion on something else entirely.

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

#198
post #127

Earlier quoted context omitted.

> 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 ...

The skills of "programming in the large" are hard-won through experience. There is no good "theory" that will help you structure a large program (despite many languages from academia making the claim of good structure). That's just one example. In my experience, it's easier to teach a programmer CS theory than the other way round. At least the programmer knows what he doesn't know.

I think you misunderstand what I mean by "theory" and "theoretical background." Knowing how a computer works from the silicon level up to the operating system helps you design systems, and starting with that foundation helps you build better systems. You can get the same experience after a theoretical education, but you can't fake a theoretical basis from simple experience. You're right that you can learn it, but in my opinion, having the theoretical foundation is key to getting the right type of experience, and also helps you immensely along the way.

All I know is that I look for it when hiring. A Berkeley, Stanford or MIT CS student has a very high weight. They still have to prove themselves, but they definitely have a head start in my book.

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

#199

I interview a lot of people who want programming jobs. What I find is: almost nobody can program, and almost nobody knows basic CS 101 data structures. It does not matter if you are a self-taught programmer with ten years of experience in the best companies, odds are that you cannot solve a trivial coding exercise. It does not matter if you have a masters degree in Computer Science, odds are that you cannot successfu…

Probably because the vast majority of the "programming" field as it stands today barely exercises computer science knowledge. Linked list optimizations, heaps, that stuff isn't even on the radar of most devs hacking on a startup, frankly, because the language hides it away. And they are not inferior programmers if they can execute on their knowledge, are they? I hate that, to most folks who are into CS, CS is a yards…

I avoid quizzing people on CS, but I do have a practical problem that I pair program with candidates on where most (but not all) say "hmm, I guess I want to store this in a tree structure", and then start implementing one - so they quiz themselves.

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

#200

I interview a lot of people who want programming jobs. What I find is: almost nobody can program, and almost nobody knows basic CS 101 data structures. It does not matter if you are a self-taught programmer with ten years of experience in the best companies, odds are that you cannot solve a trivial coding exercise. It does not matter if you have a masters degree in Computer Science, odds are that you cannot successfu…

If a person is a self-taught programmer with ten years of experience working in a good company, then you are obviously programming for that company in a sufficient capacity even if you are unable to solve puzzles offered up by human resource managers that found them on Google by typing in "Questions for Programming Interviews." Programming is not about being able to solve brain teasers. Programming is about being abl…

Sure - so I prefer to ask people to write a small program that solves a small, practical task. And I try to make it feel like we're pair programming, instead of just me watching them code, so we can see what it's like to collaborate.
Post reply on HN