> What are the keywords I can use to start learning about this?
It's really comes down to personal choices (see the discussions about vi vs emacs), and for this reason, it's hard to track down quality advice -esp. keywords.
Instead, try Googling what you'd like to achieve (eg. "use ftp as local drive"), and be amazed by the variety of tools available :)
> What are the programs and technologies that you use yourself and that you would recommend?
Taking care of the whole webdev site of our web-based startup, here's what my current configuration looks like.
Assuming: Windows as the dev machine, Debian/ubuntu, or shared web hosting on the server side
* Total commander: is my file navigator of choice -shows 2 tabs of filelist side-by-side, can bookmark any number of directories, many awesomeness included.
* Webdrive: mounts a remote FTP / SFTP / SSH account as a local drive. Check the "support for FTP" requirement off of your texteditor of choice.
* Putty: if you've got shell access to the remote machine, running two of these parallel:
tail -f ./access.log
tail -f ./errors.log
will give you a realtime view of what's happening of your web server, and what error messages did you generated
-the later isn't always readily available, esp. if you start getting into ajax
* Notepad++ : has a nice syntax highlighting, an awful lot of shortcuts, support for unix-encoding (on windows), amongst many features.
* Git: you will need to do version control.
Here's how this works together:
* Have 2 machines, 1 for dev, 1 for live, both using a dedicated machine, and a database of it's own. (quick intro how to set up a staging server: [1] )
* Webdrive mounts dev machine's web directory via SSH. All changes are securly transmitted to the server.
* REPL[2] cycle: navigate to the target of interest in Total commander, hit F4 (opens it in Notepad++), do some changes, hit CTRL+S (Webdrive automagically uploads the file), ALT+TAB (chrome), F5 (page refresh), observe changes / errors, ALT+TAB (back to notepad++), bang away. Added bonus: you'll see what you'll get while being deployed on a linux server (the differences between a WAMP, and a LAMP server can be quite a pain)
This allows for a REPL-cycles clocking <2sec, which I found hard to beat for remote-based REPLs :)
* Once the features are tested, and pre-deploy checklist is done, git add ./ , and git commit will push this into local git repo. Then, on the live-server's side, do a git pull ssh://[staging-server] ,and it's live. If you're having "a learning experience", you can always git reset to a previous version.
> What are the absolute nonos, that expose an absolute amateur?
Standard FTP-based transfer is malleable to Man-in-the-middle attacks[3]. Notepad usually does \r\n instead of \n, which caused me some headaches with older versions of readline/writelines. Putting together design in notepad is possible, but massively sub-optimal: try sketching it with photoshop, generate some skeletons, and use this as a starting point. Local development (requesting from 127.0.0.1) allows using several javascript capabilities, which aren't available for public deployed sites.
I think this should you a good headstart, comment below if you have any questions :)
[1] http://www.kalzumeus.com/2010/12/12/staging-servers-source-c...
[2] http://en.wikipedia.org/wiki/REPL
[3] http://en.wikipedia.org/wiki/Man-in-the-middle_attack