Re: Object Oriented PHP (5)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, June 24, 2005 12:56 pm, Josh Olson said:
> PHP has inspired me to become a better programmer.  I have been
> actively reading books as well as online content to try to become
> better at designing and programming object oriented web applications.
> My primary focus is PHP.
>
> Will you help a pragmatic programmer in training out by suggesting
> some worthwhile resources?
>
> I have read the following already:
> PHP 5 Power Programming
> Advanced PHP Programming
> Pragmatic Programming
> Gang of Four Design Patterns
> php.net/oop
> zend.com php 5 resources
> most of ibm object design articles
> http://www.solarphp.com/home/
> and many many many shitty online tutorials and source repositories

I didn't read any of those books.

Only PHP books I've really read all the way through were the ones I
Tech-Edited.  I don't think I'd really feel right recommending those,
solely because I worked on them, but they are pretty good books.
PHP Bible series and MySQL/PHP Database Applications.

I mostly learned Programming from going to college.

Well, okay, really mostly from trying out all kinds of stuff sort of
loosely based (or not) on what the boring homework assignments didn't
cover. :-)

I take it back.  I *have* read many many many shitty online tutorials and
source repositories.  So you got that going for ya :-)

Honestly, the best reference *I* know of is:
http://php.net/manual
The User Contributed notes are priceless.
Well, some of them anyway.
You have to find the pearls in the muck.

And, of course, this list, which has provided invaluable support for YEARS
from people way way way smarter than me.

One other piece of advice:

Write lots and lots of code.

Lots of it.

I was just reading an interview with Jakob Dylan, whom you may or may not
like, but he said something intereesting, which I'll paraphrase.

"I really wasted a lot of years not writing songs, because I knew I
couldn't write them as good as I wanted.  I knew I had much better songs
in me, maybe even great songs, but I couldn't get myself to write them,
because I didn't know how.

Eventually I realized.  You have to write 10, 100, a thousand bad songs
before you've learned enough to write good ones.

That's just how it works.

If you sit around not writing songs, because they'll be bad, you won't get
anywhere."

So, stop reading so many books and start typing! :-)

Some other suggestions to consider:
Take some cheap programming courses at a local community college.  Even if
you whiz through them, you'll have a piece of paper that helps get a job,
and you'll be surprised how much you learn (or re-learn) from a structured
course that books and on-line digging won't push you through.

Re-write some old code of your own.  Amazingly instructive, and often
leads you to new heights. Plus your old stuff suddenly has a lower
maintenance cost, for some odd reason... :-)

Publish some articles or code snippets on your site. The act of trying to
explain what you did to somebody else will open up worlds of
understanding. You never really understand something until after you've
taught it to somebody else. :-)

Re-read the whole front part of http://php.net/manual/ -- Just up to the
function definitions part.  That section of the manual that defines the
actual language (quotes, commas, and braces) is SEVERELY under-studied by
virtually every PHP programmer, even the ones who have been around forever
and a day.

Try to work on a project with another developer.  You may tear your hair
out.  You may want to kill them.  You may learn a whole hell of a lot. 
Maybe what you learn is that a whole lot of developers just don't think
like you do.  That's okay too.  At least, it's okay for me. :-) [shrug]

Work on a cool new project just for fun, with no time-line, and no
intention of every finishing, much less releasing it, nor showing it to
anybody.  Just write that cool program you've always wanted to write. 
Hell, I do this with a dozen projects at once, all the time.  Don't pay
the bills.  Don't get the house cleaned up either.  But I'm happy.  What's
that worth?

Sure, some of these won't ever get finished. Hell, some of them I've just
plain lost interest in over the years.  So?  I've put in a lot of happy
hours instead of drudgery.  Wanna put a price on that?

One of them turned into the code that's still in production use 10 years
later. [shrug] I'm not all that interested in it, but some other guy uses
it all the time, and maintains it. Hell, I'd forgotten all about it,
pretty much.  Certainly had no idea this guy was still using/maintaining
it.

Ooooh.  At the risk of being branded a heretic, try to pick up another
language or two.  Start with something a whole lot like PHP.  Maybe Perl,
or even C.

You'll have to shove all your PHP knowledge over to one side of your
brain, cram all the new stuff into the other half of your brain, and then
compare/contrast.

Then, for real fun, try to learn something totally whacked-out different
like Lisp, Scheme, Forth, Logo, or even (blech) COBOL.  This will require
even more compartmentalization in your brain-space, and some serious deep
thinking on what makes a program tick.  Only after you really "get it" in
a totally different programming paradigm do you achieve that deep
comprehension of Programming with a capital P.

Hmmmm.  That came out kinda stronger than I meant it...  I mean, sure, the
guy who learns C, and knows only C, and codes C all day is a Programmer,
and I'm not knocking that.  But there's this sort of "hole" in a guy like
that, and while it doesn't "hurt" them or make them less a Programmer,
it's there, and it's just not the same as a guy who actually groks
something as bass-ackwards (that's a compliment) as Lisp as well as they
do C.

Well, that got long and philosophical, didn't it?

-- 
Like Music?
http://l-i-e.com/artists.htm

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux