> First, he has to take inventory of the skills which he needs
> (GUI design,
> GUI tool [such as Python/Tk or Perl/Tk] usage, database
> design, database
> tool [such as MySQL or Postgressql], Web scripts, ...)
Actually, the interesting part is to figure out which skills you *won't*
need. Read: how to smooth out that learning curve.
Take databases for instance. He won't really need to learn how to design a
database, you can usually start out with one huge table with everything, and
move to a normalized schema as things get complicated. Many things he
probably won't need for a long time, indexing for example.
You can start the project with very basic knowledge of SQL, learn as you
grow. When I look back at my earliest attempts of coding database access, it
looks pathetic. I was working much harder because I didn't know sql server
contained soundex as a stored procedure (stored procedures are another thing
beginners don't need to know about).
Some things are quite easy to learn together. PHP and mysql are nicely
integrated, so you can learn them both at the same time.
GUI design is a bonus, you can live without it for quite some time, and its
the first thing you get bug-reports about, so it tends to take care of
> Then, he should decompose the project into steps (as said above), such
> that at each step he'll need to master only one new tool. Each step
> should also be useful in its own right. I'm too happy to
> leave the damned
> details to other helpful Hackers-IL members.
Looks like you can get quite far with a web/db combination, without learning
I'd start with php/mysql or asp/access.
> There is also the question which tool is the right tool for each task
> (MySQL vs. Postgressql religious war, anyone?).
Happily there's almost no need for one. These tools grew remarkably similar
in the last year.