Perhaps take a look here to get started, however there are many other resources as well.
Although you could write an engine in potentially any language, C and C++ tend to be the more common choices, however, I wrote a very simple engine in C# as an experiment. Nothing special but it beat me and was a lot of fun :)
http://www.fam-petzke.de/cp_getstarted_en.shtml
I am a very average chess player who is interested in creating my own engine. I don't expect it to be immensely powerful, but it would be cool to see how it would work. I guess I want to experiment to see if the engine will be a stronger player than me and by how much. Is there any way to do that? I am in no way talented at computer programming, which I think would be an obstacle preventing me from creating an engine. Maybe there's someone who can pitch in their opinion here and also it would be cool to talk to people who have been involved in creating an engine. So if you're one of those people, please comment. Or if you're interested in discussing this type of thing, also comment. Thanks!