everyone! I am going to learn mathematics in a university, but it will be rather ''pure'' math, so, I want to get some exposure to computer science on my own. The problem is, I've never tried any programming or computer science activities. I'm not sure where should I start. Now, I realise that internet is full of online or video courses about cs or codes, but they are specific, for example, ''how to learn C++/Python'' or ''algorithms''. As far as I'm concerned, what I need is some kind of introductory book for computer science( basics, how this and that works and why, what is this and what is that ). Though, some people say that it's better to learn some programming language first even before getting exposed to theoretical material. Thanks in advance, I will appreciate any answers.

  • $\begingroup$ Try something like Brookshear's Computer Science: An Overview. $\endgroup$ Commented Apr 16, 2015 at 10:51
  • $\begingroup$ We don't have a strict policy for list questions, but there is a general dislike. Please note also this and this discussion; you might want to improve your question as to avoid the problems explained there. If you are not sure how to improve your question maybe we can help you in Computer Science Chat? $\endgroup$
    – Raphael
    Commented Apr 16, 2015 at 17:29
  • $\begingroup$ personally like turing omnibus by dewdney & books by hofstadter. see also CS textbooks $\endgroup$
    – vzn
    Commented Apr 17, 2015 at 2:35

1 Answer 1


I started progamming as a kid and (at adulthood) graduated in Computer Science. I really don't know what's the best to learn first.

Computer Science is a breed of mathematics and programming is a craftworking. To implement the ideas of the first you must use the second.

IMHO programming is something you learn by demand while CS is a knowledge you study by passion.

The modern languages today (C#, Java, Javascript) are complex tools of trade and one learning it must dive in to learn it idiosyncracies (and not to mention the libraries and frameworks like jQuery, Hibernate, etc).

So while you are not willing to become a pro programmer I can advice you to use more "crude" languages like C||C++.

To get start in CS go to the basics: Algorithms.

There are a lot of classical and well studied problems like sorting, path finding/evalutaion, finding substring, etc.

While studing these problems you can learn how to implement some know solutions again IMHO that's can the best approach to get starting.

  • $\begingroup$ In the case of C++, "crude"does not mean simple. Learning some programming goes in hand with learning CS. Learning C is not a waste of time, and can teach you about the basics of the computer itself. $\endgroup$
    – babou
    Commented Apr 16, 2015 at 12:28
  • $\begingroup$ Exact! I advise C/C++ because 1) Yoou don't need to learn "fancy" languages, 2) There are a lot of CS works already writen in C. The "fancy" languages got a lot more "inside box tools" and thus can take more time to start learning (example: no need to learn C# lambda) $\endgroup$
    – jean
    Commented Apr 16, 2015 at 12:43
  • $\begingroup$ I can advise C. I advise against C++, which is very complex, and designed to satisfy constraints that were political more than technical. $\endgroup$
    – babou
    Commented Apr 16, 2015 at 12:50
  • $\begingroup$ @babou you got a point. C++ can be better for a enginering approach for a math seeking CS basics C can be better $\endgroup$
    – jean
    Commented Apr 16, 2015 at 12:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.