How do the pros code up a WordPress theme? Locally? Through FTP?

  1. Local web server is a must, it’s pretty much generic web server stack (Apache, MySQL, PHP plus other bits) only running on your local computer.

  2. Deployment depends on how you manage your code:

    • just resides on your computer – you will need to sync it to remote server in some way (FTP, SFTP, etc), any decent software for such is smart enough to transfer changed files only;
    • resides in version control – you commit local code to repository, then you can either pull to remote site from that repository (or simply make commits and uploads independently).

See Software for WordPress Theme and Plugin Development? for specific software titles.