Rinse and sort the dried beans. Set aside.
In a large Dutch oven, heat the olive oil over medium-high heat. Add the onion and celery; cook, stirring frequently, until soft, about 5-8 minutes. Add the garlic and cook for 1 more minute, stirring constantly. Add the rinsed beans, ham hock, bay leaf, water, salt, and pepper.
Bring to a boil; reduce the heat slightly just so that it’s at a low boil, and cook for 20 minutes. Reduce the heat again just so that the liquid is simmering. Cover and cook for about 1 ½ hours, or until the beans are tender. Check the beans after 1 hour, because they may be soft enough at that point if you like your beans a bit more firm. If you prefer the beans really soft and broken down, you may prefer to extend the cooking time to 2 hours. While the beans are cooking, check to occasionally make sure that the beans are covered with water (adding more water, if necessary).
Discard the bay leaf, remove the ham hock from the pot, and shred or chop the meat (there likely won’t be too much meat, but just use any that’s there). Return the chopped meat to the pot with the beans. Taste and season with additional salt and pepper, if necessary.
Garnish individual servings with hot sauce and herbs; serve with cornbread.