7
$\begingroup$

I am a senior year high school student. I love programming and my chosen language is Java. I'm very much into high-level programming and Object Oriented design.

Recently, I started to show first interest in the low-level side of things. Especially the most basic level of how computers work (the more theoretical level, not the hardware side).

For example, how computers make basic calculations has always been a mystery to me. How is it that a computer can even come up with the result for 5 + 2? (As a kid I used to think that every computer stores the answers for all of the possible calculations.. lol)

I am also interested in the most basic level of how computers, well, generally do things internally. Again, at the most basic and fundamental level.

As you can see it's hard for me to phrase what I'm interested in learning, probably because I know almost nothing in computer science. But I hope you get the idea.

Could you direct me to a good source that I can learn from - at the most beginner level - this kind of knowledge? (A website or a book [preferably a website]).

Thanks

$\endgroup$
2
  • 3
    $\begingroup$ The book The Elements of Computing Systems: Building a Modern Computer from First Principles seems popular. $\endgroup$ Mar 5, 2014 at 21:03
  • $\begingroup$ dup how does a computer work $\endgroup$
    – vzn
    Mar 6, 2014 at 3:18

3 Answers 3

3
$\begingroup$

What I have got for you is :

These books should help you understand how computer works. A bit knowledge of computer hardware is a must and it will surely speed up your learning process.

$\endgroup$
2
  • $\begingroup$ This is more on the practical side. You can dip into the real theory, but it is quite rough going (and probably not what you are looking for, anyway). $\endgroup$
    – vonbrand
    Mar 6, 2014 at 17:27
  • $\begingroup$ I would add Digital Design and Computer Architecture to your list. $\endgroup$ Mar 10, 2014 at 1:12
1
$\begingroup$

Recently, I started to show first interest in the low-level side of things. Especially the most basic level of how computers work (the more theoretical level, not the hardware side).

Well, actually it is the opposite: the more theoretical, the more high-level, since you deal with abstract notions.

To understand the theory behind computers, the best book I have read is Introduction to the Theory of Computation by M. Sipser. You have everything: Turing machine, automata, grammars and languages, complexity, etc. It is very well written and fairly accessible, considering the topic.

I am also interested in the most basic level of how computers, well, generally do things internally. Again, at the most basic and fundamental level.

The reference remains for me A. Tanenbaum's books: Structured Computer Organization for hardware and Operating Systems: Design and Implementation for OS. Old books but still standing. Caution however: these are reference books, and not always very "undergrad-friendly" (since you are soon an undergrad, right? :) ).

$\endgroup$
-2
$\begingroup$

You could start off with Java at http://www.learnjavaonline.org/. And once you are clear with syntax of Java, you could try http://codingbat.com/java. Its got some really good programming exercises.

$\endgroup$
2
  • $\begingroup$ Thanks for your answer. Maybe you didn't understand my question exactly. Java is high level programming, and it's also my chosen language which I already have a pretty good grasp of. My interest is in starting to learn the basic of CS, mostly how compters work fundamentaly on the theoretical side. $\endgroup$
    – Aviv Cohn
    Mar 6, 2014 at 6:01
  • $\begingroup$ Aka, the most low level side of things (except for the electronics part. I'm only intersted right now in the theory). $\endgroup$
    – Aviv Cohn
    Mar 6, 2014 at 6:02

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