Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

Vladimir Grbic
Vladimir Grbic
324 Points

PLEASE SOMEONE Can anyone recommend me a course, book, website, etc... that explains everything about programming???

I want to find a book and/or course and/or webpage that is full of lesions about Computer Science and programming. I want to start from scratch and learn everything about how computer and computer programs work. Something that will explain everything to the smallest details. Like what are objects, data, databases, data structures, fields, methods....

I want to have a full understanding of how it works so that it becomes easier and more natural to understand coding and java.

I don't just want to learn lines of code without knowing what is actually happening behind that.

Please help, and try to recommend different types of source where I can learn that.

Thanks!!! :)

1 Answer

Benjamin Larson
Benjamin Larson
34,055 Points

Hi Vladimir -

For starters, that's a great mindset! I totally relate to what you're looking for. Now for sad part...no such book or resource exists. It would take many volumes and many bookshelves to fully explain everything about Computer Science and programming, and by the time you finished them, new hardware, algorithms, languages, frameworks, tools and patterns will have been invented and the cycle will never end.

I can certainly understand your mindset though and it would be nice if you could just find that 1 resource that would teach you everything you needed to know from start to finish...even if it was thousands of pages long, because at least the path would be clear.

Fortunately, you don't have to learn EVERYTHING. Start with the basics and eventually you'll develop a couple more specialized interests. The fundamentals of Computer Science aren't tied to a specific language, but certainly if you want to learn Java you can learn those fundamentals within Java. Java has not been my primary language, but certainly you can always go on Amazon and search for Java programming books and find some introductory books that have a lot of good reviews to get you started. There's always a few that have hundreds of reviews and sites like Treehouse can serve as a great supplement to those textbooks. When you finish an introductory book, get once that's target for intermediate users and then an advanced one. These will certainly teach you a lot of details about objects and data structures. Sometimes books will combine teaching a programming language alongside a Database Management System, but you can also pick up a book specific to databases. If you want the more pragmatic texts, finding a SQL book for a specific DBMS (like SQL Server or MySQL) will be best. For a more abstract Computer Science understanding, search for "database systems". These books usually cost quite a bit more and you can quickly tell from scanning the contents that they are more abstract theory.

Keep in mind that Computer Science (especially after the first couple of introductory programming classes), tends to be much more theory than what you might do as a developer in industry. If you want to know how computers work, you can search for books about "computer organization and design" or computer architecture. Algorithms are another important topic, though before reading an Algorithms text you should have some prior knowledge in Discrete Mathematics. There are certainly many more advanced topics in Computer Science but a typical program with will begin going through a couple semesters of teaching programming fundamentals, maybe a data structures class, and computer organization and design class, and an algorithms class.

So there's no 1 book...there are many books (classes, tutorials, etc) :D Try not to get too discouraged and overwhelmed by all of it. It takes years to start connecting all the pieces, but that doesn't mean you can't learn a lot and start using it early on. And yes, you'll likely encounter things in the beginning where instructors or books ask you to simply accept something without understanding the "why". It can be frustrating, but eventually if you stick with a resource long enough, those things will be revealed. If the hope is that books will go into more details than the shorter videos on Treehouse...they probably will, but they will still save a lot of those details for later. There are so many concepts and terms that no one could absorb them all in one shot.

Have you ever looked up an article on Wikipedia for a programming term you weren't familiar with, and in defining it, the article referenced something else you weren't familiar with, so you clicked that link to read more info? And then when you got to the page, you ran into 2 more things you needed to lookup. And before you know it, you're reading links all over the place, getting farther and farther away from the original article and only getting more and more confused about everything. Maybe it's just me. But this is what happens. There's so many concepts to understand, many of which build on each other, that it's usually best to simply appreciate when an instructor wisely says, "ignore this for now" or "we'll come back to this". They've thought through how to best teach this material and when to introduce more complex topics. If it seems too easy at first because they're just telling you to ignore all the interesting, complicated stuff...don't worry, it won't take long for you to start screaming obscenities at your computer monitor, not even realizing that it's 4:00am and you haven't eaten or slept in your bewildering attempts to understand something or fix a problem :D

Vladimir Grbic
Vladimir Grbic
324 Points

Thank you very much for your answer!! That's exactly what happened. I opened Wiki page about objects and I ended up clicking on all this hyperlinked terms so in a minute I had 10 new tabs open... I hoped there was a place with all those information sorted in a better way but I guess I just have to learn couple of basic definitions that i found over here: http://blog.teamtreehouse.com/java-basics-for-android-development-part-1 http://blog.teamtreehouse.com/java-basics-for-android-development-part-2

Combine that with couple of Oracle and Wiki pages and it will definitely get me going through this course.

Then later, once I get all the basics and some intermediate stuff, I'll start expending my knowledge.

Thank you again!!