What programming language should I learn?
That depends on what kind of programming you want to do:
Client-side (windows applications, linux applications)
The easiest language to learn if you want to do client-side programming is probably Visual Basic or Delphi. Some argue Visual Basic is for newbies only, and they might be right. Software like Word and Windows are written in C and C++ which are a lot harder to learn. If you want to write applications which run on any platform (Windows, Macintosh, Linux) Java is the best language to learn.
Server-side programming (forums, guestbooks, content managing systems)
If you want to write a guestbook, newsscript or content managing software you'll need to learn a language that runs on your webhost. Traditionally the most used is Perl, a language that is becoming more and more popular today is PHP, merely because it's incredibly easy to learn and comes with a large set of functions which makes programming easier. And of course there's VBScript if you want to code using Microsoft's ASP.
If you intend to do programming for big businesses or sites generating major traffic you might want to look into more scalable solutions such as JSP, Servlets or Coldfusion.
General purpose (both client- and server-side)
If you want to learn one language that can do both server and clientside programming you have a couple of options. Most suitable are Perl and Java. But of course running C programs through CGI is possible so you could learn C too.
What's the difference between CGI and Perl?
People tend to confuse CGI and Perl. Now what exactly is CGI and what exactly is Perl? They're completely different things and technically they have nothing to do with eachother. CGI (Common Gateway Interface) is a protocol which allows interaction between webserver and programs on the server. It's most commonly used to forward perl script output to your webbrowser. So here's how it works. You, using your browser send a request to the webserver to run some kind of perl script. The webserver therefor runs perl to execute the script, waits until it's done, then sends the output back to the browser. That's all, nothing more nothing less. So CGI is the protocol, Perl is the programming language.
What's mod_perl, mod_gzip and mod_php?
Apache, the most used webserver on the internet, allows you to write plugins or MODules. Two of them are mod_perl and mod_php, but another well known one is mod_gzip.
mod_perl integrates Perl into Apache. That means scripts no longer run through CGI but are handled by the webserver itself. That also means perl does not have to be started each time someone requests a perlscript generated page. Making the server respond a lot faster. mod_perl also allows kinds of caching, persistent database connections and a few things more. Not many hosts have mod_perl installed because not just any perl script runs using it. There are a couple of things the coder has to take into account, and not many did.
mod_php is the module that integrates PHP into Apache. Nearly all hosts supporting PHP have this one installed. It works just the same as the CGI version does. It also allows persisitent database connections (and if they compiled using the shared memory directive you can use shared memory, ie caching too, though not many did).
For many, many years, browsers have been able to unzip gzipped html pages. Though no site really took that opportunity to make sites faster and consume less bandwidth. If you have mod_gzip installed you can easily take advantage of gzip compression. Which as I said will send your html pages to the user in a compressed (smaller) format.
Which one is faster, PHP or Perl?
People tend to confuse the way these scripts are being run and the speed of the compiler itself. Their compilers and interpreters are nearly as fast, there's no noticable difference. The main bottleneck that seems to make Perl slower is that it is being run through CGI most of the time, and if we're talking about PHP, we nearly always mean PHP as an Apache module. To tease the PHP advocates: Since mod_perl allows more optimization you probably could write way faster perl scripts than php scripts
Where can I learn language X?
Since there are always people who don't know the God of all search engines Google, here's a list of tutorials/interesting sites for each of the major programming languages:
PHP Manual Still unbeatable, not just the best reference for PHP there is, but also contains a nice starters tutorial
PHP Builder Has a lot of interesting PHP articles
Devshed PHP Has some nice tutorials
Perl Contains a lot of articles
Perldoc A very nice reference
Devshed Perl Perl tutorials
Perl tutorial Said to be good
Perl with DBs
A pretty good DBI (DataBase Interface) tutorial
Python.org Contains articles and tutorials
Devshed Python Python tutorials
Introductory Material on Python
The official python tutorial (written by Guido van Rossum himself).
Dive into python an advanced tutorial (as the name indicates) for people with programming experience.
python.faqts frequently asked questions
Global Module Index don't code python without it
Python quick reference needs a little updating
The Vaults of Parnassus Python Resources
Python library reference
The python cookbook
The "daily" python url if you want to know what's happening
Python performance tips
More python links
Java Tutorials Learn the Java Basics
Devshed Java Java tutorials
JavaWorld The best source for all kinds of Java articles
Nice (perl)regex tutorial
Perl regex examples
I'm looking for a script that can do X
Before you ask, make sure you first checked out the following script archives:
Google (just search )
Which editor should I use?
1st page 2000
Check out one of these topics: click click click click click click
Phpide (now registrations required)
PHP edit (registraton required)
Zend Studio Personal
DZ Soft Perl Editor (commercial)
Perl Code Editor (free)
Xemacs + Cperl-Mode (especially in the Cygwin version for Windows and the native version for Linux a great editor - yes it can do other things to)
Jedit (java based and many plugins)
Ed for Windows (commercial)
EditPad Pro (commercial)
BBEdit (lite version is free)
Omnipad written by Josh (and he forced me to put it here, honestly )
and not to forget
Notepad - (bundled with Windows)
How to test my scripts locally?
A excelent guide on installing the Apache web server locally can be found here: Apache Win32 Install Guide. Or this exelent one, or this one, if you want to setup PHP on IIS, check this tutorial out. Bundles that do this automatically for you:
Where can I learn regular expressions
Check these sites out:
With many thanks to Chris_s, Dagur, Paolo, -Justin-, wehttham, rct2dotcom and all others
Source: IPB Coding and Scripting Chat