Looking for advice on Web site creation

I’m a work at home consultant, mostly assisting a small company by doing tech writing for college level computer textbooks. I love the job, but it’s just not keeping me busy enough. In light of that, I was thinking of honing my Web design skills and picking up some Web work. There’s only one or two companies in my area doing commercial Web design, and I think there’s some potential for another.

My skills include 10+ years as a software engineer primarily focused on C/C++ and database development. I also know enough VB to get along, and can pick up just about any language easily enough. I’m also pretty good on the writing side, as that’s my current gig.

What I lack is graphic design skills, and skills in the specific technologies involved in Web site creation. I don’t even know what the new hot stuff is in Web design. I turn to the dopers for help - if you were gonna learn a new technology that will allow you to create commercial Web pages, which one would it be? I know Microsoft promotes ASP, but I’m not sure it’s a good business decision to limit myself to MS based servers. What’s the competition to ASP? What technology is most common?

On the graphic design side - any suggestions on how to ramp up on that? Books/Web sites/etc?

Do Perl. It does cgi stuff. Also do Java servlets. That should take care of the dynamic side of web programming. Maybe pick up a little bit of JavaScript and PHP.

HTML/graphics you can probably quickly pick up by reading a SAMS book, there’s nothing to either of those, just practice.

The first thing I’d recommend is finding yourself a WYSIWYG editor (what you see is what you get). Handcoding is all very well, but IMHO, it’s too time consuming and brain numbing, especially if you’re just looking to suppliment your income.

I use Macromedia DreamWeaver to do the main part, then I’ll tweak the code by hand.
You can download a trial version from http://www.macromedia.com
Macromedia are also the creators of Flash, which can be a nice little earner! (plus Fireworks, FreeHand and ColdFusion)
One of the best things about Macromedia is their tutorials, which are very, very good, and the fact that there is a HUGE support network for their products.

Books-wise, the “For Dummies” series is pretty good, but considering your experience, they might be a little basic for you.
The O’Reilly books are very good reference.

Start with HTML, the most basic building block for websites, learn some XML, & DHTML, and CSS, learn some Javascript. That will give you more than enough to create some really funky websites, without needing to server script anything.

Learn some Java, ASP, Perl, CGI, PHP… the list of Web Technologies is almost endless! There is so much out there, it really depends a lot on what you want to do, and what your prospective clients want.
Bare in mind though that some things will only work in certain browsers, and not all hosts will support the technology you want to use.

A good place to start your web career would be the World Wide Web Consortium - http://www.w3c.org
That gives you a list of pretty much all that is, was, and yet may be of the interweb.

Google for web design help sites, there are a lot of good ones out there with some fantastic tutorials.

Play around with programs like Flash, FireWorks, Photoshop, PaintShop Pro and other graphical software, you’ll be amazed just how forgiving of undeveloped design skills it is. Also don’t forget there are vast collections of free (or cheap) graphics available.

If you see any website you like the design of, view the source and try to work out how they did it, you can learn a lot that way. (no stealing their code though!)

Basically, go out, experiment and enjoy!
:slight_smile:

Speaking for myself I’d probably start with Java Server Pages. In particular because it’s free. Set up a Linux box running Apache and you’re good to go. Don’t have to worry about paying hundreds of dollars for software licenses and such.

If you’re interested in ASP I would learn a little bit of it but would concentrate primarily on Microsofts .NET platform.

The most important question, IMHO, is what type of skills are required by the employer’s in your area? Obviously it won’t do much good to learn JSP if most of the companies in the area work primarily with Microsoft technologies. Also, what are their needs? Are their websites presentation primarily? Or is there an interactive element? Are website visitors allowed special tools like database searches? All of these are going to help shape what technology is going to be the best answer for you.

If you anticipate doing business mostly with companies whose websites are presentation in nature you’re probably best served by really developing your HTML, graphics program creation (I recommend Adobe Photoshop), and Flash skills.

On the other hand, if the companies you will be dealing with have a fair bit of site interactivity (shopping carts, personal settings for users, etc.) then more of a concentration on actual web code (i.e. JSP, PHP, ASP, .NET, etc.) will be useful. If this is the case it’s almost certain that they’re using a relational back end of some kind so make sure you’re familiar with SQL command structure and basic relational database theory and practice.

If, however, you’re really not sure what the skills demand is in your area find out what aspects of web site creation you enjoy most and become exceptionally good at it. Competence has it’s own way of getting you work.

Grim aka Intranet app developer for the past 5 years

Great advice, all.

I like the idea of Dreamweaver - I’ll probably start doing some of those tutorials. I’ve done enough C/C++ that Java is pretty easy (I’ve played with it before).

I’ve heard of Apache before, but I have to confess, I’m not quite sure what it is. Can someone give me a two sentence description?

When you say to set up a Linux box running apache… you mean set up a server so I can play with it? What flavor of Linux is best (and cheapest?) Isn’t Photoshop a several hundred dollar program? Is there something similiar that’s as good that I can learn? I’ve played with Paint Shop Pro, and have to confess, I don’t think it’s very good. Is that me, or is Photoshop that much better?

As far as what people in this area want… well, I think it’ll be up to me to tell them what they want. This is a small area, not many techy type people. I’m guessing my main clients will be small organizations who wish to put together a Web presence. IE, the jewelry store downtown who wants to sell stuff on-line or the museum down the street who wants to have a Web site with general information. Pretty basic stuff, from what I can tell.

Front end or back end? Front end, you can’t go wrong with XHTML + CSS. Back end, mySQL/PostgreSQL + PHP + Apache.

Apache is a free, open source, server software package which can run on either NT or Linux. There’s a TON of information about Apache available on the web. www.apache.org is a good place to start.

Linux is free but if you want a packaged version of it Red Hat and Mandrake are two popular choices. Yes, I was referring to setting up a server to play with. Photoshop is an expensive program unfortunately. Paint Shop Pro is ok while you’re still beginning. A lot of Paint Shop Pro skills will translate to Photoshop. However, once you’ve become familiar with the tools of Paint Shop (assuming this is the route you want to go skills wise), then you’ll definitely want to move on to Photoshop. This website gives some info on Graphics programs. I haven’t done any work with Painter or Fireworks so I can’t really say anything about them. They may be effective yet cheaper alternatives to Photoshop.

Since it sounds like you’ll be dealing with relatively smaller organizations a heavy HTML, graphics design, CSS, and limited javascript is probably my recommendation. Since I develop for a company intranet I don’t have to worry about cross browser issues. Since the “audience” for your web pages most likely will be using all sorts of browser types and versions I can’t stress simplicity enough. Granted, most people will be using I.E. of some kind but there’s still enough Netscape and Linux/Unix based browsers that you’ll want to keep it simple. Graphically pretty, simple code. That’s what I recommend for the small org web site.

Grim

My background is fairly similar to yours – 14+ years programming experience, primarily C/C++ and Java – and I’m currently moonlighting as a web developer as well.

That said:
[ul]
[li]The only thing you really “need” for web site development is a text editor and a server. I’m opposed to GUI-based web builders because the code they produce is inefficient and/or relies on features only supported by certain browsers. If you’re not comfortable with hand-coding HTML, though, you may want to go this route.[/li][li]For dynamic content, you can get away with Javascript, Perl and PHP for most tasks. Java and JSP (Java Servlet Pages) are also good to pick up and fairly easy to learn. Avoid Microsoft-proprietary stuff like ASP, for obvious reasons.[/li][li]Definitely go with Apache for a web server – it’s widely used, robust, and expandable. If and when you get comfortable with the server side of things, you can expand Apache with Struts, Jakarta, and other frameworks.[/li][li]That said, note that you don’t have to do everything yourself. Some web development firms might only need you to do back-end (database) work, or only front-end work, and have the rest handled by their own staff and/or other contractors. If you feel comfortable doing just one aspect of the field, you may want to hone your skills in that area and market yourself as a specialist.[/li][/ul]

Depending on the tasks, these may not be necessary. I just finished developing 40+ pages for a client, and all the layouts and images were provided by their staff artist – I just had to translate the artist’s site layout ideas into actual HTML/JSP code, and set the colors/font/size/etc. to whatever they wanted. Similarly, if you end up working solely on the back-end, you’ll be too busy juggling Java beans and ODBC calls to care about the front end stuff.

Apache and Perl/PHP, in my observation.

For languages like Javascript, Perl, and PHP, you can find plenty of examples on the web. I also recommend the O’reily line of books, particularly the “cookbook” series, for being easy-to-read and easy-to-reference.

Obligatory Mac plug: If you have an Apple Macintosh, load up MacOS X and you’re ready to get started – there’s a built-in Apache server under the hood, PHP is available just by editing one config file, Perl and Java and C/C++ compilers are available after you install the (free) developer’s tools, and you can get open-source code for anything else you want.

Finally… realize that “web development” is a big umbrella term for a lot of different technologies and goals. Keeping up with everything is a full-time job in and of itself, and there’s nothing wrong with specializing in a handful of areas.

OK, I’m sold on Linux/Apache. Next question: how to get a server set up.

The only machine I have right now that I could use for a Linux server is a Dell laptop. 1 Mhz P4, a Gig of memory or so. The trick is that I also need it to stay as a WinME/Win2K duel boot box (I use both of those for various things required for my tech writing gig). I looked into putting yet another partition on the hard drive and loading up Red Hat, but that doesn’t look to be straight forward - something about Linux having to sit on the primary partition, IIRC. Anyone have any experience doing that?

If that isn’t going to work, any suggestions for a cheapo box to install Linux on? I’m assuming the hardware requirements aren’t huge.

Also - will it play nicely with my Windows boxes? I currently have a wireless network with 4 windows boxes on it. Hmm… guess I’m off to the D-Link page to see if there stuff works with Linux…

Oh wait - another question.

I currently have an account with a Web hosting service (I have a small Web site that I maintain). In looking at the specs, it uses Linux/Apache. Can I just play with this server instead of setting up my own? What are the pros/cons?

For what it’s worth, if you’re running Win2000 then you’ve already got MS Internet Information Server - it may be easier to just use that as your webserver. If you’re totally sold on using Perl then you can get addins that’ll run that as your scripting language.

IIS comes with ASP scripting support as standard using either VBScript or JScript and can extend pretty easily into Win2k’s transactional COM+ architecture.

If you want anything like a serious database server for not much money then it’ll probably have to be Linux/MySQL. Alternatively you could use MSAccess databases located on the Windows server as a cheap alternative. The script code will be more or less the same in either case since it’s all abstracted through ADO.

Since everyone seems so keen on Linux I just thought I’d speak up for the evil empire.