Think Java is an introduction to Java programming for beginners. It is tailored for students preparing for the Computer Science Advanced Placement (AP) Exam, but it is for anyone who wants to learn Java.
Think Java is concise. It uses a subset of Java that lets students work on interesting projects without getting bogged down in the details of Java.
Think Java teaches program development and debugging; these topics are discussed throughout the book and summarized in two appendices.
Think Java incorporates the GridWorld case study that is part of the AP Exam. The book provides the background you need to get started with the case study, and some additional exercises for practice.
Think Java is based on the original text of How to Think Like a Computer Scientist, a popular online textbook with versions in Python, C++ and OCaml, and translations into Spanish, French and other languages.
Think Java is a free textbook available under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License . Readers are free to copy and distribute the text; they are also free to modify it, which allows them to adapt the book to different needs, and to help develop new material.
Allen Downey is a Professor Emeritus at Olin College and the author of a series of freetextbooks related to software and data science, including Think Python, Think Bayes, and Think Complexity, which are also published by O’Reilly Media. His blog, Probably Overthinking It, features articles on Bayesian probability and statistics. He holds a Ph.D. in computer science from U.C. Berkeley, and M.S. and B.S. degrees from MIT.
It's a simple book about coding that uses JAVA to explain how to think CODE. I found it very simple as i am an experienced wed developer , but it was also fun to read and kind of refreshing . no matter how much experience you have , there's always something u don't know , so it's okay to read simple programming books for a change .
Totally recommended for any one who's new to coding , this will make a lot of stuff clearer . i wish i read these kind of books in collage , i would have loved coding even more.
This was a good introduction to the Java programming language and thinking about algorithms and problem-solving in computer science. The parts about classes and objects were especially nice and I only wish there were solutions to some of the more difficult exercises uploaded somewhere on the Internet or at the back of the book.
A great introduction to Java. My girlfriend's sister is taking her first Java class in college,I recommended this book, and she found it easier to follow than her textbook. I am a big fan of the "Think" series. Would love to see Think Objective C.
8/7/2014: In conclusion? I am not confident with anything I am writing here. I hope I can better analyze everything, and consolidate my experience with this traumatic book when/if - no, when - I become more proficient with the Java language. But I think what I am about to say does hold some truth, since it is catered for the likes of me. Alright, what is positive? It's clear in every piece of information that it gives. It's to the point, and I love that. I like the fact that there is a focus on mathematical programming. Makes it tougher, but you would come out ahead. On that note of clarity, the glossary was fantastic. It helped immensely; and it was a perfect idea to put a definition list at the end of each chapter. Now the bad, was really bad. As I said earlier, the amount of inference you have to do, the amount of presumed internet excavation you have to dig out is not acceptable in any capacity. If certain challenges are presented, then actually illustrate them in code. Don't tell me to look it up, or surprise me with a completely new challenge that I have never heard of. That just breeds bad coding habits. Something that should be emphasized as keeping to a minimum.
Did I learn? Yes, I did learn to swim-- at least I have a better understanding. I would appreciate it if I was thrown into a body of water with some flotation devices. Better yet, if I wasn't thrown into an ocean, but a kitty pool. I don't recommend this; there are better books out there. Free doesn't mean good. This is not good.
I am a bit less than half-way through with this textbook. So I'd really like to say a few things as I get into the second half, and try to finish it in the next two weeks. And adding a second review might help prospective students.
This is my second Java reading; but my first textbook. I delved into one prior to just a simple reading on the language, and found it daunting. So I went with a "Dummy" book to ease me into things. At this point, I don't think I made a great choice; but I did make a challenging one.
First, the book recommends compiling from the command line/prompt for all exercises. A lot of CS go-ers definitely advocate for this practice. I tend to agree, as it can be quite rewarding. But it's definitely not a productive-conscious environment. The majority of programmers are using their favorite-flavored IDEs for optimal coding. Aside from being a slower method, it also has its learning curve. Unfortunately, this textbook does not even attempt to show the reader basic commands to compile, or setup the correct path variables. It tells us simply to "look it up". That's not exactly what a novice wants to hear.
Luckily, I do know the basics of compiling from cmd so I tried it out for a few chapters, but I subsequently went back to Eclipse.
My second gripe with the text so far is the exercises. Usually inferring is a given when learning anything; but I usually find inference is best applied to problems when examples are abundant. Here, they are minimized but the inference level is high. E.g., I had to figure out how to manipulate a method with multiple parameters through main; or currently in ch 6., how to execute a program without invoking main (regardless of the fact that method main has been implemented in every exercise thus far, and no example exists where it is not invoked). So, there is definitely a lot of Googling done by me - probably every other exercise. The challenge is great; and I will probably come out stronger because of it. However, I feel like I am learning from a last-minute substitute teacher with general notes; instead of a dedicated tenure professor.
I won't say what exactly I recommend just yet, but I will say to start with a textbook that isn't less than 300 pages long (think: How To Program, etc.). Or perhaps the "Trails Covering the Basics" from Oracle online. If you'd like to read this one, I suggest this be your 'third introductory' textbook.
Just not bad! The book was a good review of a few hard-to-understand concepts in java programming language (I had read a few parts of "java - how to program" before) and I enjoyed its structure and literature but it was not a complete, mind-blowing reference for learning java. The exercises were just ok; I mean not challenging and not so easy. The best thing for me was that it helped me to understand inheritance better.
I am always on the lookout for good technical books, especially beginner books. There are a lot of common mistakes made in beginner books—and intermediate and advanced books, but as the student increases in ability, he can shoulder more of those—that I think probably drive people away from a subject, make a subject seem harder than it is, and so on.
I'm reacquainting myself with Java these days to work on an open source project, so I thought it would be a good idea to start from ground zero and see what's what. And this book was one of the best beginner books I've read in fifteen years. There's a great attention paid to handling bugs, which are kind of a bugaboo (heh) of teaching programming from a book. In a class, for example, if you make a mistake you can call the teacher over and figure out what it is. If you're typing in code (or doing an exercise) from a book and something goes wrong, you can be really screwed.
Way too many modern books overburden the beginner with more than the absolute minimum necessary to work in a particular language, environment, or stack, with so many moving parts that a slight change will create an error that he has no chance to figure out. Compound that with the occasional typo, and you get frustration and grief—not something that ever needs to be added to the world of computer programming.
So, this book gives you pointers to the bare minimum environment needed, and encourages you to make your own bugs on purpose (so you'll recognize when you make them accidentally). There's downloadable code, but I don't care for that as much because it's way too easy to get lazy and not do the coding yourself. (The learning is in the doing.)
It also moves on a very gentle gradient, each chapter building on the last, which is a staid approach I feel has been abandoned by some authors in an attempt to try to be exciting. At the same time, there's a lot of meat in the exercises: You should not pass those over. This book also doesn't try to do too much: You will need a fair bit more to get a grasp on workaday Java, but you will be better prepared to take your next step.
The appendices are also meaty. The 2D Graphic section introduces some fun, and the debugging appendix is hope for when you get lost, occasionally.
I could only nitpick by talking about what this book isn't, and the only serious nitpick I have there is that it isn't book 1 of a series. You can't have a much better recommendation, I think.
I have programmed for many years in simple languages like basic and fortran77 and a little in pascal, the programming ever was near to my hearth for something although I am not a computer science specialist, I am most a scientist. when I tried to learn "modern" languages like java, I took books write by developers for developers and all these books gave me a certain frustration sentiment. After that experience, finally my search brought to my hands books like this one and then all was different and I can grasp the material all the way to the end. Now I believe that scholars write better books than developers for those who try to sneak peak at computer scientist stuffs. Like Downey book Ihave had read other java books written by academic scholars and my thoughts are the same. I want some academic scholar can write books about javascript fundamentals like this about java, cause I am now trying to grasp it, in aspects like asynchronicity and another features.
I don't know why it is ranked that low. This book is great at explaining concepts in a clear and concise way.
What I especially appreciated is the way they define each and every new programming term. The last book I skimmed through - Core Java, assumed some previous computer science knowledge. This material doesn't expect a reader to know anything and starts from ground zero. It is short, to the point, and can be easily read in a few days. A week, if you do some exercises at the end of each chapter.
It's a nice book for beginners. It introduces basics of Java and program design in an organized and progressive way.
I found it while looking for a books for young students. Core Java by Cay Horstmann seems too much for high schoolers.
Think Java skipped some topics, e.g. generics, collections, concurrency. They could overwhelm beginners, and it's difficult to choose simple concepts from these topics for beginners.
I would recommend a learning path of Think Java -> Core Java to my students.
Uses Java to educate you to basic programming principles and pitfalls in an engaging, conversational manner. The pictures and diagrams that assist you understand complicated subjects are particularly impressive. The examples are straightforward and well-explained, and the practical exercises at the end of each chapter are really enjoyable. You even get to program Conway’s Game of Life in the chapter on multi-dimensional arrays!
Written in a nice comfortable voice with lots of relevant end of chapter practice problems, I found this a great book to relearn Java from well over 25 years ago. I'd have loved a little more about graphics and I don't recall anything specific about multithreading. This was the text for my college class, so the added benefit of a competent instructor with her own assignments kept it fun.
A good first introduction to programming. For anyone that already know something about it it'll fall short. Useful as an exercise book if you can read Java but you've never write it.
This book is good for a person who just starts to learn basic of java. This book does not give depth information about any topic and only cover the tip of the topic without explaining much about it. I would not suggest this book if you know basic of java and wants to learn more.
'Think Java' by Allen B. Downey is a textbook about Java and Object-Oriented Programming (OOP) for total beginners. The first 9 chapters (The Way of the Program, Variables and Operators, Input and Output, Void Methods, Conditionals and Logic, Value Methods, Loops, Arrays, Strings and Things) cover the basic syntax, while the next 5 chapter (Objects, Classes, Arrays of Objects, Objects of Arrays, Objects of Objects) introduce OOP. Every chapter has a Vocabulary section and an Exercises section, which are a good way to consolidate the knowledge of every chapter before passing to the next one. This may be an excellent starting point for total newbies to programming, but those who can already programme a bit (even in another language) would probable be better with something else.
Это не учебник по программированию на Java. Более того, книга еще не закончена — автор сейчас редактирует финальную версию для O'Reilly. Это скорее попытка подхода к использованию языка программирования в качестве подспорья ученому. При этом, прочитав книгу и поделав упражнения можно вполне себе составить начальное представление о языке — а это не каждый учебник может дать. Почему-то.
This is billed as a book that will teach you the basics of Java as well as the basics of computer science. (I saw it on the shelves and I'm a sucker for a good review of basics, especially now that I'm taking an online course in algorithms that happens to be taught in Java. Also, it was so shiny and new!)
Now, it's hard for me to judge that claim, since I've done some basic Java and basic computer science for a while; but I thought the book was clear in its explanation of some foundational topics (types, arrays, recursion, etc.); and had a nice progression from basics to a fully functioning game of Crazy 8s.
I actually recommended it to my wife, who has some interest in programming; and if you have someone who doesn't have a lot of experience and would like to know the basics, you might recommend this to them, too.