|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
I need some in furthering my education in OOP. I have developed
a set of PHP scripts that I use in a fairly sophisticated database driven website, but I am not proud of the rather amateurish programming that I used to create the functionality. Although I use classes and objects to organize my data and their related functions, it seems to be only marginally better than plain procedural programming. For example, I do not use inheritance, much less polymorphism. The next step, it seems to me, is to become much more skilled in analyzing a program from an OOP point of view and learning the techniques for organizing the structure of the scripts and how to implement them in a website. In other words, I want to move from amateur to pro in terms of both career and technique. Can someone point me in the direction of the right schools(online), books, websites, example code, or other assets that I can use to learn? Also, is PHP the best language to use to learn and implement the full power of OOP? If not, any suggestions? |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
On Nov 7, 2:11 pm, firewood...@yahoo.com wrote:
> I need some in furthering my education in OOP. I have developed > a set of PHP scripts that I use in a fairly sophisticated database > driven website, but I am not proud of the rather amateurish > programming that I used to create the functionality. Although I use > classes and objects to organize my data and their related functions, > it seems to be only marginally better than plain procedural > programming. For example, I do not use inheritance, much less > polymorphism. > > The next step, it seems to me, is to become much more skilled in > analyzing a program from an OOP point of view and learning the > techniques for organizing the structure of the scripts and how to > implement them in a website. In other words, I want to move from > amateur to pro in terms of both career and technique. > > Can someone point me in the direction of the right schools(online), > books, websites, example code, or other assets that I can use to > learn? > > Also, is PHP the best language to use to learn and implement the full > power of OOP? If not, any suggestions? Although I hate to say it, C#.Net is probably the best way to learn OOP at the moment, as it pretty much forces you to write code in the .Net way. Personally, I couldn't get on with it at all. You needed 20 lines of code where PHP requires just one. But, all the accomplished .Net programmers I've worked with say it's the best thing since sliced bread. As far as professional certificates go, a lot of people seem to go for the Zend courses, but I'm not sure if you can do them from home. Rob. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
On Wed, 07 Nov 2007 16:36:02 +0100, Rob <ratkinson@tbs-ltd.co.uk> wrote:
> On Nov 7, 2:11 pm, firewood...@yahoo.com wrote: >> I need some in furthering my education in OOP. I have developed >> a set of PHP scripts that I use in a fairly sophisticated database >> driven website, but I am not proud of the rather amateurish >> programming that I used to create the functionality. Although I use >> classes and objects to organize my data and their related functions, >> it seems to be only marginally better than plain procedural >> programming. For example, I do not use inheritance, much less >> polymorphism. >> >> The next step, it seems to me, is to become much more skilled in >> analyzing a program from an OOP point of view and learning the >> techniques for organizing the structure of the scripts and how to >> implement them in a website. In other words, I want to move from >> amateur to pro in terms of both career and technique. >> >> Can someone point me in the direction of the right schools(online), >> books, websites, example code, or other assets that I can use to >> learn? >> >> Also, is PHP the best language to use to learn and implement the full >> power of OOP? If not, any suggestions? > > Although I hate to say it, C#.Net is probably the best way to learn > OOP at the moment, as it pretty much forces you to write code in > the .Net way. My mother thaught me to stay away from sharp objects :P > Personally, I couldn't get on with it at all. You needed 20 lines of > code where PHP requires just one. But, all the accomplished .Net > programmers I've worked with say it's the best thing since sliced > bread. Every tool at a developers exposal has its place. A multiuser, rightscontrolled projectmanagment tool might very well benifit from some OO. A simple contact form on your webpage hardly requires an a total MVC framework. .Net is hardly my thing, though it has its uses. Creating an intranet environment generating files/templates for MSOffice is a lot easier for instance. > As far as professional certificates go, a lot of people seem to go for > the Zend courses, but I'm not sure if you can do them from home. I'm not sure what courses Zend offers, there may . Rest assure that Zend certification is totally useless though. I have yet to meet a possible employer or client who has heard of it, never mind asks for it. The level of skill required to get the certificate as low as it is -- Rik Wasmus |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
On Nov 7, 4:36 pm, Rob <ratkin...@tbs-ltd.co.uk> wrote:
> On Nov 7, 2:11 pm, firewood...@yahoo.com wrote: > > > > > I need some in furthering my education in OOP. I have developed > > a set of PHP scripts that I use in a fairly sophisticated database > > driven website, but I am not proud of the rather amateurish > > programming that I used to create the functionality. Although I use > > classes and objects to organize my data and their related functions, > > it seems to be only marginally better than plain procedural > > programming. For example, I do not use inheritance, much less > > polymorphism. > > > The next step, it seems to me, is to become much more skilled in > > analyzing a program from an OOP point of view and learning the > > techniques for organizing the structure of the scripts and how to > > implement them in a website. In other words, I want to move from > > amateur to pro in terms of both career and technique. > > > Can someone point me in the direction of the right schools(online), > > books, websites, example code, or other assets that I can use to > > learn? > > > Also, is PHP the best language to use to learn and implement the full > > power of OOP? If not, any suggestions? > > Although I hate to say it, C#.Net is probably the best way to learn > OOP at the moment, as it pretty much forces you to write code in > the .Net way. If you hate to say it, then don't say it I know it is an expectedbehaviour here at comp.lang.php to go around saying how Microsoft's products are bad and how all the rest is great, but I'm not trying to do that since I try not to be emotionally related to something I consider only my job. But I had some experience with C#.NET in web programming, and I must say it only distanced me from real programming. Like Wasmus already mentioned intranets, that was exactly what I was working with, and maybe because I'm "I have to know how it works in details" fan, I hated it. The thing I was working with most of the time was Visual Studio's design environment, clicking on objects and setting its properties, creating SQL connections as they call it, relating them with data views etc. since they try to make non-programmers programmers. I really don't see a problem typing a few lines of code for sake of knowing where my bug can happen to be, instead of drawing in Visual Studio expecting it to do most of the work for me. OK, then you enter the source and meet those famous "phases" (I don't remember exactly how they called them) through which the page gets until finally parsed on the screen, where you have to be REALLY aware what you may and what you must not put in each "phase", which is all mentioned in very detailed MSDN's "documentation" and is the #1 source of bugs .NET-wise. So, if the topic starter needs to be _forced_ to make all in classes, then he/she can use Java. I don't really see the reason for that since, like Wasmus said already, it is a little bit silly to make contact forms or other small pages with objects. There is place and time for everything, so that's exactly PHP (and C++, for example) philosophy - use OOP if you need it, don't use it if you don't need it. It is only an important thing to be able to notice that you need it, which is another story. I think PHP is quite enough to learn OOP, though e.g. I learned it from C++, then Java, then PHP. As for schools, etc. I don't know how old topic starter is, but if they haven't outgrown college, this is probably the best place for it. As for out of college schools, online, tutorials etc. then it's probably reading other people codes + experience + everything else. I don't remember I've seen lately any good documents online that teach *good* and involve practicing various OOP techniques etc, except for various Design patterns tutorials which you must make sure you've read. http://en.wikipedia.org/wiki/Design_Patterns http://www.csis.pace.edu/~bergin/patterns/ppoop.html http://www.phpkitchen.com/index.php?...n-Pattern.html etc. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
firewoodtim@yahoo.com wrote:
> I need some in furthering my education in OOP. I have developed > a set of PHP scripts that I use in a fairly sophisticated database > driven website, but I am not proud of the rather amateurish > programming that I used to create the functionality. Although I use > classes and objects to organize my data and their related functions, > it seems to be only marginally better than plain procedural > programming. For example, I do not use inheritance, much less > polymorphism. > OK, so you've been doing object-based programming (instead of object oriented programming). It's a good start, and where most people begin. > The next step, it seems to me, is to become much more skilled in > analyzing a program from an OOP point of view and learning the > techniques for organizing the structure of the scripts and how to > implement them in a website. In other words, I want to move from > amateur to pro in terms of both career and technique. > That in itself requires years of work to become really adept. Even the basics can get overwhelming at times. But it's easier if you start out on small projects and work your way up. Some of the things, like the organizing of scripts, are not really part of OO (true OO designs are language-independent). But common sense generally prevails here. > Can someone point me in the direction of the right schools(online), > books, websites, example code, or other assets that I can use to > learn? > I haven't checked lately, but you might search amazon.com for books on UML. There are several listed with good reviews. It's the most common OO design technique used today amongst professionals. But bear in mind you don't necessarily have to do a complete UML design on everything. Many things will eventually come more naturally. > Also, is PHP the best language to use to learn and implement the full > power of OOP? If not, any suggestions? > My recommendation would be Java. It forces you into an OO framework and supports all of the features of OO. Other languages like C++ support OO, but allow you to write non-OO code, also. And it's easy for a beginner to fall back into the using structured programming techniques. -- ================== Remove the "x" from my email address Jerry Stuckle JDS Computer Training Corp. jstucklex@attglobal.net ================== |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
On Nov 7, 6:11 am, firewood...@yahoo.com wrote:
> > I need some in furthering my education in OOP. > I have developed a set of PHP scripts that I use in > a fairly sophisticated database driven website, but > I am not proud of the rather amateurish programming > that I used to create the functionality. Although > I use classes and objects to organize my data and > their related functions, it seems to be only marginally > better than plain procedural programming. In fact, it is probably worse than procedural programming; using OOP creates substantial overhead (initializing objects requires CPU cycles and memory that would not be used if the code were procedural). > The next step, it seems to me, is to become much more skilled in > analyzing a program from an OOP point of view and learning the > techniques for organizing the structure of the scripts and how to > implement them in a website. In other words, I want to move from > amateur to pro in terms of both career and technique. If you want to do it in PHP, you need to start by learning the limits of OOP. PHP developers often face a trade-off between development time and application performance; code developed quickly (usually, using an object-oriented framework) requires more system resources to run, while code that runs fast has to stay away from all kinds of abstraction, including OOP. > Can someone point me in the direction of the right schools(online), > books, websites, example code, or other assets that I can use to > learn? Read up on patterns. Note, however, that these days, most books on patterns are written with Java in mind. > Also, is PHP the best language to use to learn and implement > the full power of OOP? Definitely not. PHP is the best language to learn deficiencies of OOP. ![]() > If not, any suggestions? C++ and Java. Cheers, NC |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
NC wrote:
> On Nov 7, 6:11 am, firewood...@yahoo.com wrote: >> I need some in furthering my education in OOP. >> I have developed a set of PHP scripts that I use in >> a fairly sophisticated database driven website, but >> I am not proud of the rather amateurish programming >> that I used to create the functionality. Although >> I use classes and objects to organize my data and >> their related functions, it seems to be only marginally >> better than plain procedural programming. > > In fact, it is probably worse than procedural programming; using OOP > creates substantial overhead (initializing objects requires CPU cycles > and memory that would not be used if the code were procedural). > Properly done, OOP does not create any significant overhead. After all, even in procedural programming you should initialize your variables. >> The next step, it seems to me, is to become much more skilled in >> analyzing a program from an OOP point of view and learning the >> techniques for organizing the structure of the scripts and how to >> implement them in a website. In other words, I want to move from >> amateur to pro in terms of both career and technique. > > If you want to do it in PHP, you need to start by learning the limits > of OOP. PHP developers often face a trade-off between development > time and application performance; code developed quickly (usually, > using an object-oriented framework) requires more system resources to > run, while code that runs fast has to stay away from all kinds of > abstraction, including OOP. > PHP is not good for learning OOP. And OOP does not require any significant additional resources, when done properly. >> Can someone point me in the direction of the right schools(online), >> books, websites, example code, or other assets that I can use to >> learn? > > Read up on patterns. Note, however, that these days, most books on > patterns are written with Java in mind. > Which isn't a bad language to learn OOP. It is, however, heavy on resources. But that is the language - not OOP. >> Also, is PHP the best language to use to learn and implement >> the full power of OOP? > > Definitely not. PHP is the best language to learn deficiencies of > OOP. ![]() > I agree it's not the best language to learn OOP. But that's because it doesn't implement a proper OO model. >> If not, any suggestions? > > C++ and Java. > > Cheers, > NC > > -- ================== Remove the "x" from my email address Jerry Stuckle JDS Computer Training Corp. jstucklex@attglobal.net ================== |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
On Nov 7, 9:11 am, firewood...@yahoo.com wrote:
> I need some in furthering my education in OOP. I have developed > a set of PHP scripts that I use in a fairly sophisticated database > driven website, but I am not proud of the rather amateurish > programming that I used to create the functionality. Although I use > classes and objects to organize my data and their related functions, > it seems to be only marginally better than plain procedural > programming. For example, I do not use inheritance, much less > polymorphism. Since you're posting to a PHP forum, I'm going to assume you've an interest in scripting languages. So I would say you should study Ruby. It's an elegant scripting language, and more fully OOP than PHP. If you're focused on web related work, then study Ruby on Rails, which is a framework for developing web site. It's a very intelligent, elegant framework, with a graceful language that allows a high level of abstraction. |
|
![]() |
| Outils de la discussion | |
|
|