Programski modem je poceni alternativa standardnemu modemu, ki temelji na strojni opremi. Medtem ko strojni modemi vsebujejo vse dele, potrebne za povezavo z internetom, različica programske opreme prenese del tega dela na procesor računalnika.
Modemi imajo dve glavni komponenti: krmilnik konfigurira in pokliče modem, podatkovna črpalka pa pošilja in sprejema podatke. Glede na vrsto programskega modema lahko krmilnik ali podatkovno črpalko ali oboje nadomesti programska oprema.
Ker ima manj delov, je programski modem običajno veliko cenejši od strojnega modema. Večina sodobnih osebnih računalnikov ima enega vgrajenega. Prav tako zahteva manj energije kot standardni modem, kar je lahko korist za nekoga, ki uporablja prenosni računalnik, ki deluje na baterijo. Prav tako jih je mogoče enostavno nadgraditi z nadgradnjo gonilnika programske opreme. V preteklosti so se ti modemi lahko uporabljali samo za klicne povezave, zdaj pa je na voljo programski modem DSL.
Programski modem pa je bil pogosto kritiziran zaradi njegovih pomanjkljivosti. Ker se pri izvajanju številnih svojih procesov zanaša na računalnik, lahko vleče računalniški procesor, kar vodi do počasnega delovanja ali prekinitev povezave. To je lahko še posebej zaskrbljujoče za ljudi, ki igrajo igre na spletu, saj so računalniški viri lahko preveč razporejeni med igro in internetno povezavo. In zaradi odvisnosti od programske opreme se modem lahko pokvari ali pa je v konfliktu z drugo programsko opremo. Pri starejših računalnikih ali računalnikih, ki niso Windows®, lahko pride tudi do težav z združljivostjo.
Na splošno ni preveč težko prepoznati programskega modema. Če modem posebej zahteva določen operacijski sistem ali procesor, je to verjetno različica programske opreme. Običajno se lahko izvajajo samo z operacijskim sistemom Windows®, zato so imena modemov, ki vsebujejo besedo »Win«, lahko rdeča zastavica.