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

Put another way, the value of a degree is that it forces you to expose yourself to a broad range of ideas. Self-education is a great way to learn about things that interest you, but less effective at ensuring you try things that seem boring or unpleasant at first.



A degree is useful for systematically covering some topics. However, without substantial self-education in areas you might not be interested in, the limitation of a CS degree is that it still has some rather large gaps in terms of what you are exposed to. The discipline to do substantial self-education is still necessary to be a well-rounded computer scientist, and sufficient to become a well-rounded computer scientist. Which is a good rule of thumb for most things.

With the hindsight of plenty of time in the field, I find it remarkable how many fundamental concepts you still need to learn that they do not teach in current CS programs. In my area of work, massively parallel algorithms and distributed systems, the core theory, never mind practice, still has to be learned outside of school and the initial barriers are not trivial. (Small-scale parallelism and distribution is based on functional programming concepts and mutability. Large-scale parallelism and distribution is based on topology and Nash flows. Very different conceptual models.)


> Large-scale parallelism and distribution is based on topology and Nash flows. Very different conceptual models.)

Totally OT, but I don't suppose you have a reference to some introductory material on that (seminal paper, textbook, etc would be fine)? I've been getting massively more interested in distributed systems & reliability thereof.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: