Well, you have a very large goal.  Obviously, the first thing you need to
do to learn the language.  In your case you've chosen Perl (good choice).
I'd recommend the following books:

You may want to start with Elements of Programming with Perl.  It teaches
you programming from the ground up (assumes no previous knowledge) using
Perl.  I haven't read it but its been well reviewed in multiple places.  
This may be just the thing to get you started.

Programming Perl - don't worry if the chapter on references makes no
sense.  Either of the next two books explains this quite well
(particularly EPP)

Advanced Perl Programming (you can skip some of the chapters though.  The
Tk stuff is not what you're interested in, I don't think) and/or Effective
Perl Programming

Perl Cookbook - lots of examples of good code

Damian Conway's book - this does contain an OO intro but I skipped it.
The book itself is fabulous and invaluable.

Read each of these at least twice (no, I'm not kidding).  You will
definitely miss things the first time through and the best way to fix that
is to keep reading them.  In my case, I've read Prog. Perl & APP 3+ times
each.

For mod_perl, there are two excellent resources that I know of:

1. Doug & Lincoln's book is great and really steps you through the Apache
API via Perl.
2. _Do not_ miss Stas's online guide (soon(?) to be a book).  There's a
reason half (or more) of the newbie questions to the list are answered
with a reference to a piece of the guide.


Once you've done all that you should have a decent idea of what Perl can
do as well as what mod_perl can do (and what it's pitfalls are).

Of course, I highly recommend looking at existing code on CPAN.  Not to be
snobbish, but stick with the 'known' others.  There's some really scary
stuff out there.  For mod_perl, look at the Apache::* modules.


You also mentioned an interest in SQL.  SQL is real easy so pretty much
any book should cut it.  You may want to check out the forthcoming Perl
DBI book regarding database programming in Perl.

> SSL?

You probably will never need to know the inner workings of SSL.  Knowing a
bit about it (what port it uses, what a certificate is, how to install
mod_ssl) is probably something you can pick up as needed.

> HTTP?

You should end up learning at least something about this from Doug's book
and the guide. Again, this is something you can pick up as necessary.
Don't run out and start reading RFCs just yet.

> HTML?  Do I need this or can I focus on the back end processing?

Depends.  Do you want to do UI work?  Better learn HTML.  If you just want
to do back end work and have someone else create the UI then you don't
need to know it too much.

> XML?  I know 0.1 about this.

XML is very cool and has a lot of potential.  OTOH, there's not a heck of
a lot of stuff using it right now so it seems to me that right now it's
largely conceptual (you _could_ do a lot of neat stuff with it but a lot
of it hasn't been done yet).  Save this for later.

> XHTML?  same.

XHTML is almost identical to HTML 4.0.  Learn HTML 4.0 and then read about
XHTML differs from it (which is basically 2 pages of text).

> I've read "Perl and Cgi for the World Wide Web : Visual Quickstart Guide" 
> by  Elizabeth Castro and some of the perldocs.

The Amazon reviews suggest this book is more focused on CGI than Perl.
I'd say skip it.

> Is Damian Conway's book a good enough intro to OOP for a beginner or do 

Until you're more advanced in Perl this book will probably be extremely
arcane.  It's great but you have to have good solid Perl knowledge to
understand a fair chunk of it.

> I need something on OOP before tackling this book.

I dunno.  I picked up OOP by reading other people's code and talking to
fellow programmers, but I'm a weird case.

> A good book on SQL.

Don't spend much time on SQL.  It's just too simple to worry about.

> Good books on system/CGI security 

System security is somewhat different (and much bigger) than CGI security.
I'd suggest you check out securityfocus.com, which should have links to
lots of info (more than you'll ever want).

> Other good books on other technologies needed.

The O'Reilly HTML book is quite good.  Their Regular Expressions book is
also quite good, though it can be pretty difficult (but rewarding).  The
ORA MySQL book is good if you want to use MySQL.  I don't know of any
PostgreSQL books.  To learn about software design in general, read
Frederick Brooks' The Mythical Man-Month, which is quite illuminating.
Other books that may be useful:

Kernigham & Ritchie's C book - I don't like C and I never use it but to be
a 'literate' programmer (as in you have a clue about programming in
general) you should be familiar with C.

W. Richard Stevens' Advanced Programming in the Unix Environment - It's
all C but you learn a _lot_ about Unix that is good general knowledge for
any programmer.  You'd probably need to read the K&R book first though.


Everybody tells me LISP and Smalltalk are super cool but I haven't learned
them yet so I can't say.  You probably won't find much work doing either,
but they are of interest.


> I have a lot of learning to do.  (If anyone knows of any technology where I 
> can just absorb this stuff in my sleep let me know!:-)

If you try to read everything I've listed you won't have a chance to
sleep.

> decide to change my database backend and have to rewrite all the database 
> calls, etc.).  Any thoughts on this?

DBI and totally standard SQL.

> to rearrange priorities at any level.  Should I go ahead and ignore CGI on 
> NT?  ...any level.

Well, IMHO NT is lame so why bother.  Unix is much more fun to deal with.



Good luck.


-Dave


/*==================
www.urth.org
We await the New Sun
==================*/

Reply via email to