I started giving talks in various user groups and regional conferences last year, I felt I had something to say, and I got a chance do to it.
<sarcasm>now that makes me an expert!!!111</sarcasm>
I believe that every developer should at least once stand in front of an audience and give a talk.
If you have ever considered giving a talk, you have my utmost support, I know it does not mean much to anyone, but hey… If you actually submit your talk to your UG or some conference, and get a chance to stand in front of an audience (and by audience it is any number of people larger than 1) you have my utmost respect. It takes a certain amount of courage to do so, and you made it. Who knows, maybe you’ll like it.
Pick a subject, make some slides, write a script, practice, rinse, repeat. Seems like nothing special, and it usually is not, the tough part comes when you need to deliver it, when you need to stand in front of people and actually try and transfer the knowledge, no matter how anecdotal.
Use the user groups to level up and gain some experience, get used to talking, having a steady rhythm, being interrupted with questions, and then in the end having a good Q&A, which can give an entirely different flavor to your talk. For a great list of tips on speaking, take a look at a blog post by Ross Tuck
Now here comes the tough part that separates the amateurs from professionals (in any and all sense), cover your bases, if you are proposing something that will make people raise an eyebrow, state your use case clearly, when asked a question in front of a larger audience, repeat the question so everyone can hear it.
Say you are talking about some new kind of database, you talk about what it does, why should people consider using it, give some introduction to the subject matter, show some usage examples, and you should also explain how to import data so people can try and work with their datasets.
It really is OK to say that it is a beginner level talk, it is really OK to say you do not know about some advanced subject, or some use case you did not encounter, or do a talk on how to get started on a subject. On the other hand it is really NOT OK to say you do not know on basics, especially if those basics are covered by documentation.
If you get a chance to speak on paying conference, bring your A game, and give it your best shot, you owe it to people who paid for the ticket, and you owe it even more to the conference organizers who took a risk on picking you.
Oh and while we are on the subject of conference organizers, if you are a bit quirky in any way, and we all are, do tell the organizers about it beforehand, it will save everyone a lot of grief/drama afterwards.
If on any of the speakers events you have a problem, tell it to the member of the staff, they are not mind readers, and may not know you, or be able to read you correctly, believe me, they will try to help and accomodate you as much as possible.
Now, please, make an effort, find a subject, and give a talk on it.