Hello Harry:
If you are a system administrator, you are already ahead of the game. You
know a bit about networking and have probably setup a bit of the enterprise
back end - web servers, database servers, etc. Understanding network
topology and the nature of client / server computing is important especially
if you are going to be writing web applications. You will want to be aware
of where processing is taking place and how to distribute that throughout
your system's various pieces.
My personal opinion is that the web is a bad place to host applications. I
feel that the web is great for information dissemination or even a launching
point for applications, but a web browser is no place to serve an
application. I really don't know why people insist on doing it. I have
written some larger web based applications professionally. I did this for a
number of years. I kept coming back to the same conclusion - The web is not
a place for applications. I have now been working outside the browser for
many years and will never go back.
If you must do it, however, you will want to attack things piece by piece.
You will probably want to acquire a bit of the basics before you apply them
to an application or environment. Get a beginners book in your language of
choice C#. It will probably walk you through the basics of algorithms,
control flow logic, and data structures. For this process I would ask around
for a good book. When you have selected one, read it cover to cover and
write out, compile, and run all the examples. If you have any questions,
write test programs that explore the issue further. They don't need to be
complicated or have a fancy user interface. Once you go through this process
you will own these concepts.
Next learn some of the particulars of your chosen environment. When you are
looking at creating user interfaces that run in a web browser, you need to
be very aware of the specifications supported by the browsers you are
targeting and the specifications supported by the tools that you are going
to use to help you produce your content. I would suggest becoming intimate
with XML and the form used on the web XHTML. In this case, I would target a
book that is platform agnostic. Don't count on a toolset or server
technology to do this work for you unless you are always in control of the
environment in which your application will exist.
On the server side of the web application you may have more control over the
platform and can use platform specific tools and technologies. If you are
into C#, ASP.Net is the way to go. In fact, my personal web site uses C# and
asp.net to output XHTML to the client. You should find upcoming versions of
visual studio and .Net doing this. I believe I read that VS 2005 will
support XHTML. Anyway, seek out a book on ASP.Net and follow it through from
end to end. Just always keep in mind the multi platform nature of your
target environment.
After you have gotten some of the basics in these key areas, I would look to
do a study in more complex application development in your chosen
environment. Look to do a study in distributed systems and web services...
To recap... do small concentrated studies on the major pieces:
1. The basics, algorithms, data structures, program flow in C#
2. Web client - XHTML
3. Web server - asp.net
4. Distributed systems and web services.
You will also want to sprinkle in some study on the process of software
development and coding best practices.
Divide and conquer. The path will become more evident.