Really, your list just about covers it in most situations. HTML, CSS
and DOM are also good to have basic knowledge of. It seems like I
can't get through a project these days without some need for
required to make the job come together.
You don't need to be a guru in these areas, but you will need to be
able to find the gurus, or the information when the need arises.
Flash is becoming more useful these days, since Google and other
Search Engines have developed the functions to search flash files for
text and index them. Also with the ability to access and dynamically
relate to external databases, such as MySQL and others, many sites are
now made completely with Flash and Actionscript.
While we love to think that we are just programmers and not designers,
we never seem to make that separation of church and state completely.
A working knowledge of Photoshop or Gimp will always come in handy.
Speaking of separations of design and programming, you would not be
wasting time learning a template system such as Smarty [
http://smarty.php.net ] This system for larger projects will
definitely help when working with designers.
There are several libraries out there which allow PHP to create PDF
files. These are good to know about, and learn to use them. Often
clients will want to be able to send invoices and other material from
the website as PDF files, created dynamically from the information put
into the web site. Having a working knowledge of PDF will always be a
plus on any job.
Many clients want to be able to work on the site after you are gone,
and they use programs such as Dreamweaver. Having a working knowledge
of these tools helps you communicate with your clients.
The last thing I would insure is that you understand why you would use
ASP on one project and PHP on the other. Knowing the difference
between the two as Internet languages helps to work with clients.
Again, we like to think we are programmers and therefore don't need to
work directly with the clients, but that ability is sometimes the only
thing that separates the employed form the unemployed.
System Administration, Apache and other web servers, SendMail and
other email servers are not really necessary to "know". When you are
programming websites you interact with these but the only thing you
really need to know about them is that they are there, and they are
working. I started out as a System Administrator, and rarely use that
knowledge in creating websites, no matter how functional.
If you are planning on working as a freelancer, then the more you know
the better off you will be. If you are planning on working for a
company as the in-house programmer, your list is fairly complete at
this point. Enough to get you in the door.
A suggestion, either way, would be to get involved with one of the
open-source projects on Source Forge [http://www.sourceforge.org ].
This will give you a good base for what is required on production
projects, as well as giving you Resume experience.