Somebody asked me how to get started building their own website. She intended to spend three months studying the basics before starting and asked for some pointers where to start. She is familiar with Windows and the basics of HTML and has replaced a faulty hard disk in her computer at home.
That is the sort of level I’m aiming this article at.
It’s not easy, but it’s the best way to learn a wide variety of basic internet technologies while having some fun and having something to show for it at the end.
Here I’ll outline a few of the things you’ll need to investigate before starting on your website. This is not exhaustive but is just a pointer in the right direction for the novice. If you understand the terms listed here, you’re on your way!
If not, Google and Wikipedia are your friends.
>> Web Server / Web Host – The computer(if your own) / or company that will host your site after you’ve built it. Without either or both of these, your website will not be visible to the outside world
>> Domain Name or Dynamic DNS – Every successful web site has a Domain Name attached to it, like http://www.worpdress.com which is just a memorable way of pointing to an actual address 18.104.22.168. Think of it as a name attached to a phone number. You’ll need to assign a domain name to your site if it is hosted. If you host the site on your home computer, you’ll probably want to look at Dynamic DNS and an “update client” to keep the address pointing at your computer.
>>Router – If you are hosting your own site, you’ll need a router that will let you forward connections from the internet to your web sever.
>> HTTP (Web) Server Software – Usually Apache HTTP Server or Microsoft IIS. Without this, you cannot show your page.
>> Database Server Software – This is the server that will hold all the often changing information for your website, like comments, user names, etc. The most common database software in use today is MySQL.
Here are some of the utilities and languages you’ll need to play with.
>> FTP / SSH – The tools you’ll need to master to communicate between the software you will use to make your website and the Web Server, Web Host.
>> HTML / CSS – The basic building blocks of the web. Your programme will create the HTML and CSS for your visitors to see on their browser. If you don’t know how to write good HTML or CSS, your programs will not be visible on your visitors’ browsers.
>> SQL – Only needed if you want to make a website that accepts comments from users, etc. You’ll need to understand the concepts of SQL (Structured Query Language) in order to put in and get out the information to and from your database. Without a basic grasp of this, you will be hard pressed to make dynamic websites that accept user’s input, comments and so on.
The Server Programming Language. Now, I suspect this is the bit my questioner was interested i.
Here are a list of the popular languages:
PHP – By far the most popular web programming languages out there. It’s easy to learn, easy to set up and is quite forgiving of bad “grammar” (i.e. it lets you get away with murder 😉 It’s very stable and there is great support out there. Also it’s very easy to get a test going on your computer.
One of the keys to PHP’s worldwide success is the small amount of overhead required to start building your web site. You really only need to know how to write HTML and you can start writing in a couple of weeks.
PERL – Perl is a mixed bag of increadibly easy to use bits and frustratingly tough bits. It’s an old language, call it the Latin of the computer world. Old, cranky and very powerful. It gets the job done but not too many people would say elegantly.
Perl is very useful because it can be used in many programming situations on Linux, and the Mac, for example, and is often the back bone of many commercial applications.
It is also a useful language for handling vast amounts of text and processing data with some of the most powerful tools in the trade. To it’s credit, PHP has taken some of the best bits of PERL and made them more accessible to the common man.
Ruby – One of the few programming languages to come out of Japan and make it in the wider world. Ruby is more modern, and some would claim even easier to understand than PHP. It’s extremely easy to learn and has the advantage that it is not just used on the web, but can be used for writing programmes (scripts) for the Mac and for Linux, too. It can even be learnt without knowing HTML or CSS (but of course, you won’t be able to make a website without these).
Ruby is a little more “urusai” (i.e. strict) than PHP when it comes to grammar and it encourages reasonably good programming techniques.
Ruby on Rails (ROR) – This is the newest web programming kid on the block and is actually a combination of the programming language Ruby and a collection of tools called Rails that help you to build websites quickly.
There is a significant amount of learning involved with ROR and it is very strict about how you must proceed. This can also be considered an advantage, because there is little leeway for interpretation and is more like learning by rote, i.e. it’s often clear cut when you make a mistake, but if you’re dilligent and follow the rules carefully, you’ll have a powerful, working web site more quickly than practically any other language combination.
Active Server Pages (ASP) – I’m not particularly au fait with this Microsoft stuff, but I believe that it’s basically an extention of Visual Basic, a popular Windows programming language on to the net.
If you’ve ever written long Excel VBA scripts, and so on, you might find this easiest to get started with. Like PHP, you can get practicing (at least) by writing your code directly into HTML pages. It’s about as easy to learn as PHP, but needs a little more background learning to really get going.
Java (and all its gubbins – too complicated to even explain, let alone use) – Java is the “mother lode”, the “granddaddy” of them all. Java is the most popular programming language for banks, high security facilities, some military applications and high performance computing.
To even get a Java application working you’ll need to spend several weeks studying if you’re starting from zero. Java is serious. I know people who swear by it, but they usually have it as a career.
There are countless tools and frameworks to help the experienced programmer get the best performance and security from the code. And there are countless people out there to help these experienced programmers get the most out of their tools.
To be frank, to date, I have met exactly zero pure Java hobbyists in person.
Well, I hope you found this personal summary of stuff useful.
Let me know what you think.
I’ve finally got my webserver back up and running after nearly three months of being too busy to even think about it. And what can I say? I’m back!
When I say I’ve got my webserver back up and running, that’s not quite true. My little broken linux laptop that I used for the last three years to host my web site is sitting forlornly on the floor under my desk.
So, have I sold out? Have I gone professional? Have I finaly shifted my blog to Blogspot and my photos to Flickr? Nope. I’ve moved my server; I’ve shifted it from the Mandrake Linux 128Mb RAM Transmeta Crusoe laptop with the broken screen over to my shiny Mac G4 Cube with 1.5Gb RAM and 300Gb hard disk. Which, up until this time was beloved but under-used.
And I’m not a fan of underused electronics, so what better use can you think for it than a 24 hour duty cycle as my webserver.
So, yet another operating system bites the dust! First it was Win2K and this time Linux! I can’t really see a compelling case for moving back to Linux either, now that I can do everything with Mac OS X.
It was less tricky than I thought moving my site across, and installing PHP5 and MySQL was a breeze with the packages from http://www.entropy.ch. I hardly seemed to be using Unix at all and to be honest, I almost feel like a cheat after the hoops I jumped through to build Apache, MySQL and PHP on my Mandrake box.