I am a 16 year old male who has recently been gifted a big encyclopedia on computer science by a friend of mine. I am usually not that interested in computers and technology, but computer science has started to fascinate me. I do however intend to study Physics and/or Mathematics and not CS, so my question is, would it be useful to conduct a self-study of computer science? I'm not of course going for the level of a BSc but just the basics of CS (it is an encyclopedia with ~600 pages).
I think that learning about computer science certainly can be an advantage. Here are a number of (related) skills computer science has to offer.
Programming – knowing how to program is a useful skill for any discipline. Statisticians and sociologists, geographers and engineers, and so on, often find themselves needing to program. Following a CS degree should teach you to program properly.
Modelling – one of the key things computer scientists do is modelling the world. True, physicists, biologies and sociologists do too, but the kinds of models they are different. Knowing about the kinds of models computer scientists build can often help modelling in other disciplines. Even better, computer science models are generally executable (see point 1).
Abstraction – computer science is all about abstraction, ignoring irrelevant details to bring out the core of a problem. When modelling a programming language, not every single detail is modelled. One can abstract away from almost all details and study the concurrency model in isolation or just the classes in an object-oriented language. This kind of abstraction is less common in other sciences (I claim), but they are crucial for understanding phenomena computer scientists are interested in. I'm sure that other fields could benefit from some abstraction.
This is probably best summed up in an article about Computational thinking by Jeannette Wing.
I would say that anyone in a Science/Engineering track should have at least some CS. Familiarity with at least one programming language, data structures, and basic knowledge of algorithms will come in handy more than you think...
I never thought it would matter much, but now I wish I had tackled these things earlier in my career.
Not sure about a good "intro to programming book" but this was a decent intro to algorithms book.
Not sure about the suggestion to take "real" courses either. Be careful and ask around about the teacher/work load. I was not impressed by the ones I took and feel like I was better off on my own in some respects. Don't feel bound to the prerequisites, talk to the advisers and get placed in the classes that will help you the most.
Computers are a great tool for physicists, say you want to run a simulation about a physical phenomenon it would be useful to know the fastest algorithm avaliable, if it can be computed in a reasonable amount of time, etc.
I'm a software engineer and love computer science, it's good to know what problems computers can solve as well.
If you have been studying physics or maths , studying computer science wont be a problem for you , and it is always good to get some knowledge from a good source. You are also right in your own sense if you dont have to pursue a degree in computer science why you should study that , but you can think it in other way also , inspite of spending your time here and there during your vacations you can learn computer science , as of today you dont want to pursue carrier in computer science , but tomarrow your opinion may change with time. Even if you dont change your mind a knowledge earned is never wasted. Just try with introduction part of few chapters you will be convinced to read more and then you can move further.