I honestly don't know the extent of your programming skills, but my recommendations are as follows:
1) Listen to TerryJ.
2) Find as much information about the specific card/chipset you're interested in writing a driver for, datasheets, other open source drivers.
3) Use existing drivers in the FreeBSD source tree, as a template.. they may give you information on API's useful for the task, you will need to dig deep into the kernel source to find what you'll need. (
None may exist, look at the other BSD derivatives, ueagle(4)).
4) Patience, read books... and perhaps a friendly developer willing to hold your hand.
That's all.