Is this a good resource for beginners to learn OOP?

I'm working out of PHP and MySQL For Dynamic Web Sites - and I plan to work out of PHP Advanced and Object-Oriented Programming both by Larry Ullman.

When I have free time I am going to do some Java on Team Treehouse and I was thinking about adding this book.

I worked out of strongly worded languages in high school but I have never covered Object Oriented Programming. Is this book going to be over my head? I was thinking about outlining it.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

This is a huge topic building a web site and you really need to streamline what you need to learn.
So just a couple of pointers to fire up any questions
You know if you know the questions and the topic youtube could provide you with an entire university degree in any subject.
Youtube is full of everything tutorials guides and you can even ask questions.
The Real Truth about OOP?
Java Tutorial - 14 - Introduction to Object Oriented Programming
Object Oriented Programming Concepts

I find most websites these days include PHP and C++  open source  java
for example Joomla
Joomla! is an award-winning content management system (CMS), which enables you to build Web sites and powerful online applications. Many aspects, including its ease-of-use and extensibility, have made Joomla! the most popular Web site software available. Best of all, Joomla is an open source solution that is freely available to everyone.
Your thoughts?

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Olaf DoschkeSoftware DeveloperCommented:
There are two aspects and they rather exclude each other:

In regard of rapid development of a new website you rather build on top of a framework or even on top of a readdy to use and extend CMS system, as Joomla is.
In regard of learning OOP on a novice level you better not learn that by using a framework or writing Joomla extendions, as this alone needs more than just basic oop knowledge and experience.

So learning OOP by building a website is an approach that would only be practical, if the website is complex. You get tossed to side topics like css and browser specific quirks, using jquery helps, but again hides things you rather would need to know already.

The book you mention is a good resource, but already bases on simpler base knowlegde of OOP. The first steps would be learning the very basic concepts, which are the SOLID and or GRASP principles. And wikipedia could be a first step for that matter.

Bye, Olaf.
Ray PaseurCommented:
Find Jeffrey way's "Laracasts" for some of the good parts of object-oriented programming and design.

There is object-oriented programming and there is object-oriented design.  Both are worth understanding.  OO programming is mostly a matter of syntax and language extensions.  OO design gives us an understanding of why we do the work this way.
OWASP Proactive Controls

Learn the most important control and control categories that every architect and developer should include in their projects.

Olaf DoschkeSoftware DeveloperCommented:
>So learning OOP by building a website is an approach that would only be practical, if the website is complex.

I meant to say not complex, obviously.

Taking Rays distinction between OOP programming and design, the book about design patterns is of course about designs, it brings all of them down to only a few patterns.

Bye, Olaf.
burnedfacelessAuthor Commented:
I have another question. I plan to take on a major project for this company after I graduate with my uncle who is a badass. We're doing it for free and will present it to the board.

Obviously I want to be proficient and I bought Modern PHP so when I am there my code will be professional.

Do I need to be doing more Java first - it's been good doing a strongly worded language, by brain feels different. I've also heard be wary of writing PHP and not coding. So you guys think I need to hit some Java hard?

But could I focus on PHP, learning OOP and then getting with the trendy modern PDO statements and proper code? This code doesn't have to be portable so not worried about

Again is this book good?

I have a feeling I will skip to the OOP section so I can determine whether or not it would be in my best interested to write object oriented code. Is this book going to make me legit enough to code something complex off the clock?

P.S. TeamTreehouse blows at PHP content. They seem to be pushing Laravel, but not PHP. Not anything that the language actually does anyways.
burnedfacelessAuthor Commented:
Is it desirable or even necessary to take Java from TeamTreehouse?

Is it possible to learn OOP in PHP?

I have one more question - there is a PHP class I am trying to get into (in the midst of studying for the LSAT). They graciously gave me an assignment of a GCF and LCD program.

Do you think I should incorporate OOP in this? Even if I split it up between you know passing variables through functions and OOP to show I had done a little (and hopefully I'll be decent by the time I submit it if I go that route). Anways let me know what you think they are looking for in that program, if you have a minute.

Ray PaseurCommented:
It's still a pretty broad question - one that usually takes a few semesters of computer science to understand.  At the center of things, OOP is about "encapsulation" -- keeping your code and data isolated and co-located.  Then, there are the issues of code reuse, and class (or prototype) inheritance.  The PHP web site has reasonable documentation of PHP's implementation of the object-oriented paradigm, and it's pretty good at PHP 5.3+, with a few real improvements at PHP 5.4+

This is probably a good table-of-contents:

Math problems like GCF and LCD are often shown in code katas.  Jeffrey Way's Laracasts has some examples that are pretty good.  At least one of them is free.
greetings burnedfaceless, , I will start by saying that learning to do effective and useful code work as a web site development coder for a "project for this company", is different than leaning how to do "Basic Beginners" syntax and "TEXT definitions of functions" as code work in lessons. Most coders who can do effective company code work, , ,  have much experience, and have stored PHP scripts, that have useful or complex web page solutions in HTML, CSS, PHP, MySQL, and javascript, , that they know, or can go back and review their code to solve problems for a NEW company project. So your hope that your "code will be professional", after some book learning and web instruction, may not happen, as today's Company web sites require that pages are "responsive" and have some user "interactive" touch features, sometimes needing not simple code solutions, like data-tables and Ajax to PHP interactive touch for page alterations.

You probably need to narrow your learning to the HTML, CSS, PHP, and MySQL that all web code beginners need a solid foundation of knowledge in those. When you know several many of the PHP array functions, and how to use them, then you might think about learning some of the PHP Object and Class syntax and formations. BUT the effective object oriented code work in PHP, requires a different mental approach, as I have seen so many that create a php CLASS, but only use separate "Function" (as object methods) thinking, just as if they were not using an Object, but just calling methods as they were used to doing with out the advantages of interactive relational OO programming, using tree-branch sub objects.

the Book "Design Patterns: Elements of Reusable Object-Oriented Software", may not be a benefit for you, until you have the experience , and have the stored code work, to know the real value of "Reusable Code", As I said before web coders with much "pages with stored PHP scripts, that have useful or complex web page solutions in HTML, ect."

You will not likely benefit from learning the "JAVA" code language at this point, if you will be coding in PHP, instead, make an effort to learn SQL query language used in MySQL and other DB , like SQLite.
Please do not start in the PHP database use as PDO object, learn to use the mysqli (the new improved version of MySQL) and the query syntax for the SQL language. PDO should be used if you need to have code "have to be portable", but PDO absolutely does not offer you all of the advantages the mysqli code has available.

Object Oriented code work, is something you will need in PHP at some time, but if you do not know the necessary PHP working code functions like  strstr( ) and  strip_tags( ), your object methods will not be able to do much.  You might consider to look at just the PHP string functions here -
to see how much there is to know about doing "professional" code work.
burnedfacelessAuthor Commented:
Thank you for the solutions.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.