Yes, English surnames for the most part with commoners (Nobility was much different) was based on profession.

In the early dark ages, one only had a first or given name. Thus, a village was filled with many Johns, Williams, Roberts, Daniels, Isacs, Ians, etc. In order to differentiate them it became necessary to some how tell which was which. Thus to differentiate between two Johns, one who was a cooper (maker of Barrels), and the other who was a village baker, we had John the Cooper, and John the Baker.

If John the Baker from the villages of Leeds (Making this part up), was visiting in Umbridge, he would not be called John the Baker (as umbridge might already have a baker named John), he would then be called John of Leeds.

Over time a lot of the profession Surnames became the actual Surname, regardless of the person's eventual profession. Part of why in the English Speaking world we have a great many Smiths, Bakers, Archers, Coopers, Wrights, Tanners, etc.

And before one thinks this phenomenon was limited to the English, the Irish and Scots also had this to a degree (I am certain my Surname of Thomson resulted from a bastardization/shortening of Thomas's Son).

But this also happened with the French and Germans as well. For Instance, my mother is French, and her Maiden Surname was Boisvert. Bois is French for Wood, and Vert is French for Green, thus my mother's maiden name was the French form of Greenwood (likely resulting down the ages as From the Green Wood. Other surnames on my Morther's side of the family is Le Compte, or The Counter, so likely an accoutnant in times past.

Some interseting studies.