Monthly Archives: December 2010

How to become a web developer?

There’s a HECK of a lot to learn to be able to do web development effectively. Just to be ABLE to do it, you have to learn:


  • HTML
  • CSS
  • PHP or some other server-side language

To do it EFFECTIVELY, you’ve got a lot more to learn:

  • SQL
  • JavaScript
  • libraries and frameworks
  • a bug tracking system
  • Subversion or some other revision control system
  • IDEs
  • other tools
  • Apache
  • Linux command line

To do it WELL, there’s even more:

  • usability
  • unobtrusive JavaScript
  • separation of concerns (MVC, etc)
  • testing
  • customer relations 
  • HTTP protocol
  • AJAX

I think that skipping PHP and the others and going straight to Rails is a good idea. Maybe. At least if he’s talented. But he’ll still have to learn a lot of things before he’s any good at creating a site. (Don’t forget that we found Rails easy to learn because we already knew a lot about web development.) He’ll still have to understand HTML and CSS. The Agile Web Development with Rails books is excellent, but it takes a lot to get through. If you’re the type who can read a manual to learn how to do something, then it’s fine. But if you need to start out with a tutorial, then you’ll need to start with a different book. If you do go this route, I’d recommend learning in this order:

  • HTML
  • CSS
  • Apache (as little as possible to get 2 virtual hosts running)
  • Rails
  • Subversion
  • Test-Driven Development
  • Ruby
  • SQL

If you want to make a living at it, I’d expect it to take at least a year of full-time (self-)education. Everyone learns differently, so it’s hard to recommend learning materials. I’ll offer some ideas though:

  • books (my favorite; I look for conciseness)
  • formal training classes
  • (community) college classes
  • local user groups (attend if topic is pertinent)
  • online videos/screencasts
  • podcasts
  • web tutorials
  • blogs (hard to get the basics though)
  • personalized training
  • mentoring

If he just wants to play around, I suppose the order is not as important. Learn things as they interest you. Eventually, you’ll find you’ve learned a ton and enjoyed doing it.

How to make Subdomains on Localhost

Developing websites on localhost may sometimes need making of sub domains. Installing and running another server for this purpose is useless, consumes more resources etc. So here is the technique to make sub domains on localhost.

So here is the technique to make sub domains on localhost.

You can also use this to host more than one site on localhost. i.e, you can host multiple sites situated on different folders.
PS: This is for Apache-Windows configuration. (If you have info about other Server-OS configs please let me know.)


First decide on the subdomain names…
for eg:
sub.localhost, sub2.localhost, alt.localhost , images.localhost etc..
You can also name (Please note that if there is a site with that name on the net, you wont be able to access that site on the internet.)

Second making these sites to point to, for this you can edit the HOSTS file on windows. See this about the HOSTS file.

Now add to HOSTS line hostname
Egs: sub.localhost sub1.localhost sub2.localhost images.localhost

Next we have to assign each of these different URL’s to different folders.
This is done on the apache conf file. (httpd.conf file situated in apacheconf directory)

Scroll all the way down the httpd.conf file until you reach about Virtual Hosts.

NameVirtualHost *:80 #(This line was commented before)

ServerName subdomain name.localhost OR
DocumentRoot Path to the server root, See examples.
DirectoryIndex index.php index.html index.html index.htm index.shtml


ServerName sub.localhost
DocumentRoot “C:/public_html/sub”
DirectoryIndex index.php index.html index.html index.htm index.shtml

ServerName images.localhost
DocumentRoot “C:/public_html/images”
DirectoryIndex index.php index.html index.html index.htm index.shtml

DocumentRoot “C:/public_html/site”
DirectoryIndex index.php index.html index.html index.htm index.shtml

Test the configurations (using apache -t)
All done!