You may want to do both. The pre-programming so you'll be ready to roll quickly (and have a base load as a start). Get the software as well so you can make changes as your needs/wants change or the agencies in your area make changes. It might be a good idea to have the person doing the programming not only program it for you, but also show you how it's done so you'll have a good base of knowledge to start off with.
Programming isn't really all that hard, but there's a learning curve that you must master (like many other things in life). Software makes it much easier, especially when you add a RR premium membership so you can save the time consuming (and error prone) typing in the frequencies, talkgroups, tones, etc.
Make your first start the RR database (the Database tab on the RR menu bar). Move to your state then county and then find the system(s) in your area you might want to monitor. Do this prior to getting your scanner so you can make sure it will pick up what you want to monitor! Then cross reference that data with the RR WIKI on radio models (
Category:Radio Models - The RadioReference Wiki) to validate that your chosen scanner will work on your desired systems. A digital scanner will pick up analog systems so don't worry that if you get a digital scanner to pick up one P-25 digital system and think you'll need a different scanner to pick up an older EDACS or Motorola trunking system, the digital scanner will work on both.
There are types of systems that no scanner will pick up. These are MotoTRBO, ProVoice Digital, OpenSKY, and a few others. Scanners will also not decode encrypted transmissions (marked with an "E" in the database).
Good luck and welcome to the hobby!