Hey dear HN-fellows,<p>I asked this question on Quora some time ago but didn't get much from it.<p>I'm not sure whether I should copy the text or paste the link so I'll do both:<p>––––––––––––––––––––––––––––––––––––––––––
Original question:<p>Currently I'm studying computer science (first semester) at the Institute of Technology Berlin. While the university itself is great I sometimes really don't get what the real benefit of studying is.
Of course many job listings state that a B.Sc or similar is required but really: why?<p>Until I began to study I invested a lot of time in interesting technical things. I learned how the web works. I contributed to various open source projects related to web technologies.
I love to learn new things and I think that I'm quite good at teaching myself.
Now I don't have enough time to do it as much as I want.<p>In university there is also a lot of stuff that I could learn. However I don't see the need for this kind of knowledge.
While people often say: "Doing a B.Sc you prove that you can work in a scientific way.", I don't see many real-life situations where this would be a requirement or even a nice-to-have.<p>Beside studying I work for a business consultancy held by students and at a smaller startup located here in Berlin.<p>I sometimes think that I could make a living with the skills I already have. Regarding that and the fact that I'm constantly improving and extending my skillset I don't get the point of studying.<p>-----------
The first and only answer:<p>Given other factors are mostly equal, an employer might prefer a candidate w/ a degree. It proves you're smart enough to handle the math and other rigor that usually comes with a CS degree.<p>Mastery of algorithms, a topic covered heavily in most CS programs, is quite important for anyone who wants to write code as a part of their job.<p>Some would also argue that the seemingly useless CS topics like advanced complexity theory or set theory make you smarter and will help you design solutions to problems at any level.<p>-----------
A comment I wrote to this answer:<p>Thank you.<p>Regarding math:
Math is boring. I'm not attending at the lectures and when I'm doing my homework I'm learning all the stuff myself with the material that was given to me as a student.
I'm investing a lot of time into doing homework while not seeing any benefit from it (now or even in future).
While I think that I could motivate myself a lot more solving real problems and "learning math by doing" (with some guidance) I'm just solving problems that don't have any relation to life, science or anything.
In real world there probably aren't many mathematicians calculating just for the sake of it.
There is always a higher target and math is often a needed tool to achieve this target.<p>Regarding algorithms:
I learned about 3-4 algorithms by the time I started studying (I already know some of them from highschool/college). I'm personally interested in algorithms and I'd love to study things like http://sortvis.org/index.html. However I don't find the time to because I have to invest a lot of time into doing time-intensive math homeworks.
Unfortunately nobody would give me a certificate in some way that I understood what I teached myself.
Thats the reason I'm studying.<p>Regarding smartness:
I think smartness comes with experience and the will to tackle problems that seem unsolveable.
At some point of course it's quite important to be able to make thoughtful/powerful abstractions but I think that's something no one can really "teach" you.
Probably it's possible to get this deeper understanding and this ability to abstract by understanding other complex areas of science.
(What I'd love to do.)<p>I feel like studying at an university is not the way of learning that suits me best.
This makes me kind of sad, since stopping to study doesn't seem like an option but continuing would mean not doing what I think is right.
And obviously this would not produce the best results.<p>BTW; My spoken and probably also my written English gets worse every day. No courses in English and rarely people around to talk to in English. Things I also had more time for when I did attend to college.<p>I'm super thankful for any advice, whatever it might be.<p>––––––––––––––––––––––––––––––––––––––––<p>And here is the link: http://www.quora.com/Why-should-I-study-computer-science<p>If you recognize this as a cross posting I'm sorry.
However I feel like I have to do it since I couldn't get much out of Quora.<p>Thank you,
Martin
Hi there,<p>I'll give you my 2 cents worth as I definitely felt the same way and even more so when I went out to work.<p>A CS degree is probably not required for most work out there. Even though some put it as a requirement to narrow the criteria, more often than not, you won't use the skills you learnt for the degree on your job.<p>Having said that, Computer Science is not about teaching your programming skills nor equipping you with skills where you can immediately use them. All those sorting algorithms that come with programming languages - they were written and optimized by people with a good understanding of CS concepts (note: they may or may not have a degree).<p>The algorithms in CS are motivated by real problems. The algorithms came about when researchers faced certain issues(i.e. a faster algorithm is needed etc). The degree just teaches you the techniques that people used in the past - and gives insight on how you can create your own or improve one of the existing ones. The undergraduate degrees merely expose you to the techniques but in reality, you will most likely call some function or routine if you want to do it.<p>And that's just the algorithms part of CS. There's a whole world of optimizing this and that, how to design a fault-tolerant distributed computing system, etc. Again, you may or may not use this. But to invent/create something like Google BigTable or Google File System etc, it is always handy to have the CS knowledge at hand.<p>Added note:
Of course, you can do this all by yourself but with a professor in front of you (who hopefully is willing to help), you can question the hell out of him/her to get the concepts right. And assignments and tests help train your understanding of these concepts.
Do it because at some point you'll apply for a job that has 100 candidates applying. And the person behind the recruitment process won't be able to read the cover letter and CV of 100 applicants, and so to cope with the deluge they will click the radio button on their application that says "Has Degree"... now they only have to look at 50 applicants and you'll be one of them.<p>Do it because the people you're working with will be your first and perhaps most permanent network. One of them will help you get a job later or set you on the way with a promotion when they recall you're a solid programmer or something.<p>Do it because if you learn on your own, even if you succeed, you'll always doubt whether you are as good as someone else who got a degree. You'll always wonder if they know something you don't and how to learn it (my answer from that: they probably don't, but it's still very good to have a rigorous grounding in compsci theory for completeness rather than just having discovered most of it along the way... which is much slower than being taught it).<p>Don't do it because you believe it will suddenly make you employable or teach you everything... it won't. You remain the person in control or your learning and your chances of getting a job, doing a degree didn't absolve you of this responsibility to yourself.
If you do not like the theory, have you considered changing from the university to an FH? (Edit: explanation for non-German readers: a kind of school where studies are more concrete and slightly shorter than at a university)