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

Having already obtained another degree (philosphy) and wanting to apply computer technologies to the humanities (which I later deviated from), I thought it would take too much time to do another degree in computer science. Nevertheless, I knew from my previous education, how important the fundamentals are. So over the years, I worked myself through many of the most important fundamental textbooks. Sometimes it was quite a rush (the textbook on Turing machines and Lambda calculus I read in 3 days); but here my goal was not to memorize everything, but to just understand each step in the thought process. There are still some areas I have not covered, because they have never been of much importance for my work and have not caught my interest otherwise (for example hardware beyond the bare basics). And some others, where I have some basic knowledge, but feel that I should learn more about (for example some mathematical concepts such as category theory or fuzzy sets). However, I have no idea how I would compare to you and your colleagues. I would reckon that it might be difficult to come to a definitive conclusion, because there are obviously some areas (as already mentioned), in which I lack the fundamentals, but others were I have deeper knowledge due to my philosophical training (in which I took a particular interest in logic, semiotics and the philosophy of language, among other things).

So yes: I agree that the fundamentels are extremly important. Not necessarily on the level of the individual (depending on her or his role), but for the field as a whole. For me personally the motivation to learn the fundamentals is not so much the need of a foundation to built on. Rather the opposite: When I want to do something, I start doing it and try to refine what I am doing in the process by going deeper and deeper.



> There are still some areas I have not covered, because they have never been of much importance for my work

I think that's a main difference. With a degree you tend to learn / get taught things upfront of which you don't know whether you'd ever need them, and you may not. You kind of trust, or hope, that what they teach you has some relevance and is useful.

Many subjects from courses I took during my degree I'd never have picked up "on the side" during my jobs that came after. But I can actually also confidently say that each and every course I took left some impressions/concepts in my head that later became useful in one way or the other. So for each course I took, had I not taken it, I'd be missing something. Of course there is opportunity cost: could I have used that time in some better way, i.e., even more efficiently? Not sure. There is also the question about the courses that I did not take because, well, there is only so much space you can cram courses into within 6 years :) but maybe there are diminishing returns as well, since many things tend to overlap.


I would say that the difference for me was that I already had a more specific plan of what I wanted to achieve, so it was easier to focus on the more useful fundamentals. And even in computer sience itself, it is not set in stone what the fundamentals are that should be covered in 6 years. The field has become so specialised that many new courses have emerged in recent years, such as bioinformatics or humanities computing. The latter is now branching out into subfields, because what an archeologist needs (digital maps, 3D models, image processing) is very different from what a philologist or archivist needs (text encoding, long term storage, information management). And wat makes humanities computing particularly difficult is that it requires a deep understanding of fields that are very far appart and hardly overlap. Think of it like this: Normally you train an historian for 6 years and a computer scientist for 6 years. What should a curricilum for both look like in a time frame of 6 years?

I think the most important benefit of a university degree is not so much what specific fundamentals you are trained in, but that you get an idea of what it really means to know the fundamentals of a subject and how to get there. Later in your career, you can then use these strategies to deepen your understanding of everything that comes your way. Of course, it is easier if your education roughly matches what you will find on the job. But you never know what aspects of your training might help you later on. In my case, I would say that the many difficult debates and deep essays in philosophy prepared me much better than probably computer science might when it came to working out a plan for a software module with others and writing an accurate specification.




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

Search: