Hacker News new | past | comments | ask | show | jobs | submit login

Well you can't deny that if you understand how to compile your kernel, how to make a rootfs, what a primary/secondary bootloader is, etc, then you actually have learned about computers, right?

Try Linux from scratch, then ask yourself how macOS, Windows and *BSD solve those problems. Wouldn't you call that computer science?




No, not really. They're closer to the equivalent of learning how to install a new lens in your telescope so you can do more astronomy.

You've learnt about telescopes, which is a very useful skill, but it's not the same thing as astronomy.


Ok let's take one step back and look at the parent:

> I don’t see how this can be true under any definition of computer science.

Let me arbitrarily copy one definition of computer science, from Wikipedia:

> Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (including the design and implementation of hardware and software).

I think that designing an OS counts as computer science, at least under "some definition of computer science". And learning how to maintain an OS is a step towards understanding how it is designed.

Of course, maintaining your OS does not teach you Javascript. But Computer Science is not limited to Javascript. I wouldn't be very happy if you told me that I am not a software engineer because I don't know Javascript, to be honest.


In this analogy, I think you should replace Astronomy with optics to be equivalent. And in this case you learned a lot about optics


I think it's like saying if you learn how to maintain a submarine, have you become a good swimmer? Or, if you know how to maintain a submarine do you understand fluid mechanics?


Ok let's take one step back and look at the parent:

> I don’t see how this can be true under any definition of computer science.

Let me arbitrarily copy one definition of computer science, from Wikipedia:

> Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (including the design and implementation of hardware and software).

I think that designing an OS counts as computer science, at least under "some definition of computer science". And learning how to maintain an OS is a step towards understanding how it is designed.

Of course, maintaining your OS does not teach you Javascript. But Computer Science is not limited to Javascript. And I have seen many developers distribute libraries without having a clue about how package management works, which results in a big mess. And then they complain about the tools ("CMake sucks, it's not my fault"), where actually they just don't have a clue how it works below.

I see computer science as the discipline that makes the whole computer work. Because one can't be bothered to understand anything below their favourite framework doesn't mean it doesn't count as "computer science".




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

Search: