Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It really is like the difference between a degree in physics and being a car mechanic. You can be a great car mechanic without a degree in physics, but the intent of the physics degree isn't to create great car mechanics.

But in the case of programming, it's the opposite. Computer Science is a subset of what you need to know to be a programmer.



I'm missing your point. Physics is also a subset of what you need to know to be a mechanic.


Do you need to understand what a metric tensor is in order to be a mechanic?


Frankly I don't think either of them have taken CS, and have no idea what the word subset means.

Though I think pwim may have been pointing that out. There are elements of each discipline that overlap, but you don't need to know any of the physics/mechanics pieces that overlap to get a degree in one, and the same is true of CS/programming.

In fact, you can be an excellent programmer and know no CS, be an excellent mechanic and know no physics, and even be an excellent computer scientist and know nothing that would serve you in a modern programming job. (Obviously you could probably figure it out, but a code monkey would do just as well as some computer scientists.)

But fundamentally they serve different purposes. It's almost conceivable someone could prove P=NP without writing a line of code. Though decreasingly so as computers become so ubiquitous.


Interestingly, one of the most brilliant theoretical computer scientists I know only recently wrote his first computer program. Another very well-known,although now deceased, theoretical computer scientist didn't even use a computer. He would have his secretary print his emails and he would handwrite replies and give them to his secretary. Not sure how he wrote his papers, as he was prolific in his prime... maybe the typewriter?


Not really. You don't need to know about electromagnetism to fix a car.

But you do need to know about data structures, algorithms, computational complexity, and so on, to write software. You also have to know a lot more -- languages, frameworks, libraries, APIs, and good taste.

(I refuse to use the expression "design patterns", because all design patterns are what people with good taste naturally do without thinking. So have taste and you can skip reading about Flyweight Factory Facades.)


I would say there is a part of CS that you need to know to be a programmer. CS is not a proper subset of being a programmer. There is a lot in CS that most programming jobs will never require.


Neither is a proper subset of each other. Computer Science is a huge field, and programmers are rarely competent with more than one or two of those fields:

http://en.wikipedia.org/wiki/Computer_science




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: