There is nothing preventing you from developing locally with WordPress. I develop locally with WordPress every single day, both for professional projects and personal projects. You might need to do some research to find out what others do, and use that information to develop your own workflow.
Generally I use an *AMP application, like MAMP (Mac), when I need a "quick local setup," or a Vagrant box if I need the dev environment and production environment to match closely, it all depends on the client and project requirements. Code is committed to version control (typically Git, sometimes SVN depending on client requirements). Code can then be checked out on the production server from version control.
Some folks use a deployment system like Capistrano to handle pushing code to production, or even a simple bash script that automates deployment to production could be used. I know a few devs who like using a plugin like WP Migrate DB Pro for syncing the databases and media uploads. There's tons of information about how WordPress devs set up their preferred local dev environments and sync with production if you look around for it.
Here's a page from WPORG that might be a good starting point for you :