-
1
Place the beans in a large bowl and pick through them, removing and discarding any broken beans or stones.
-
2
Cover them with at least 3 inches of cold water.
-
3
Allow to soak uncovered and at room temperature at least 8 hours or overnight.
-
4
Drain in a colander and set aside.
-
5
Place the measured water and ham bone or hocks in a Dutch oven or a large, heavy-bottomed pot and bring to a boil over medium-high heat.
-
6
Reduce the heat to medium and simmer uncovered for 1 hour.
-
7
Add the soaked beans and thyme, stir to combine (leave the bone or hocks in the pot), and return to a simmer, skimming the surface with a spoon as necessary to remove any scum.
-
8
Cook, stirring occasionally, until the beans are almost completely tender but still a little underdone in the center, about 1 hour (the beans should not be completely cooked because they will cook more later).
-
9
Meanwhile, peel and cut the carrots into medium dice and place in a medium bowl.
-
10
Cut the celery and onion into medium dice and add them to the bowl with the carrots.
-
11
Add the diced vegetables and measured salt to the pot, stir to combine, and bring to a simmer.
-
12
Cook, stirring occasionally, until the beans and vegetables are tender and the meat is falling off the bone, about 40 minutes more.
-
13
Turn off the heat.
-
14
Remove the ham bone or hocks to a cutting board and let sit until cool enough to handle.
-
15
Remove the meat from the bones and set it aside (discard the skin and bones).
-
16
Using a potato masher, lightly mash half of the beans and vegetables, leaving the remaining half intact.
-
17
Stir in the diced and reserved ham.
-
18
Taste and season with salt and pepper as needed.