I am very new to using WordPress and I was wondering what the benefits of using widgets is? Looking here it sounds like they are for people who are not programmers that want to add plugins to their site. Is that correct? or do widgets allow the site to be more robust in some way?
I battled with this very same question. I'm presently developing my own ability to develop WordPress sites. My employer is launching numerous websites on the engine, and is moving me from general PHP work to focused WordPress development. The thing is, these sites will all be managed by other people, and not myself.
Using widgets allows the non-programmers to help develop the site without potential of breaking things. For instance, they can move things around in the sidebar, change up the contents of the footer, and so much more. That being said, I wish I could prevent them from doing some types of editing, but permit them to do others. While they can't break the site (to my knowledge), they could really make it ugly.
I think "widgets are for non-programmers" is terrible description of their purpose.
Widget API purpose is to provide way to package code and expose consistent and convenient controls for it. With decent object oriented approach on top.
Widgets are not there for dumb people. They are there for creating good, convenient and reliable functionality.
I have been subject to creating custom widgets and widget areas for clients for the sake of not breaking websites myself. While it can seem a bit tedious, I can understand the value. I even set out on my own to create a contact form widget that wraps the user-submitted information with microformat classes. I wanted people to be able to simply insert their info without breaking the valid hcard information.
When used effectively, they are good to use.