Tag Archives: Encapsulation

Topic 4 – Object-Oriented Programming

Why do I need to know an object-oriented programming language?

Because most of modern applications are written using an object-oriented programming language. Using an object-oriented programming language as a tool will save you a lot of time and cost when you create a modern application.

Alright! What should I do now?

Please read this JJim Keogh and Mario Giannini (2004). OOP Demystified. McGraw-Hill book.

Is that all?

Unfortunately, the book is not sufficient although it already gives you the fundamental concepts of object-oriented programming. The book does not teach you how to create real world software using an object-oriented programming language.

We recommend that you read it first because it introduces basic concepts of object-oriented programming very well. It helps you to distinguish object-oriented concepts from procedural programing concepts very clearly so that you could read other books to dig into object-oriented programming in a right way.

Please read this RB Whitaker (2017). The C# Player's Guide. Starbound Software book to understand how to use object-oriented concepts to create real world software using a specific object-oriented programming language (i.e. C# language).
After that please take a quick look at  
- this Joseph Albahari and Ben Albahari (2018). C# 7.0 in a Nutshell: The Definitive Reference. 7th Edition. O’Reilly Media book or 
- this Herbert Schildt (2010). C# 4.0 The Complete Reference. McGraw Hill book so that you can refer to specific topics when creating real world applications.

I hear that there are many object-oriented programming languages such as C++, C#, Java, PHP, Objective-C, Swift, Python, Ruby. How many object-oriented programming languages should I know?

You should learn as many as possible. However, in this stage, we recommend that you learn only C# or Java or C++.
- If you are required or prefer to learn C++, please read this Bjarne Stroustrup (2013). The C++ Programming Language book.
- If you are required or prefer to learn Java, please read this Herbert Schildt (2014). Java: The Complete Reference book.
After that please read 
- this Matt Weisfeld (2019). The Object-Oriented Thought Process book and 
- this Bertrand Meyer (1997). Object-Oriented Software Construction book to understand the object-oriented concepts more deeply.
After finishing the books please click Topic 5 - Introduction to Windows Programming to continue.