Working Gives Experience (3.5e Variant Rule)
From D&D Wiki
 Working Gives Experience
Ever wonder how that shopkeeper can make scrolls and potions for you whenever they need it? How about why soldiers are all level 1? This variant rule makes the D&D game make a lot more sense with just a couple additions to the existing rules for certain skill checks.
|Character Level||Work EXP per week||Number of week's work to get to next level|
A player may attempt to make a skill check DC 20 + their character level in order to gain extra experience. If they pass the skill check, they get an additional 2 experience per character level for the week. If they fail, they get 1 less experience per character level for the week. If they fail by 5 or more, they get 2 less experience per character level for the week. If they fail by 10 or more, they get 3 less experience per character level for the week (minimum 0). If they fail by 15 or more, they get no experience for the skill check and some major disaster occurs that may compromise their employment (DM's discretion).
Any character will also gain less or more experience depending on the following circumstances:
|-5||Slow business week, barely related to work, Less than 4 ranks in skill||Winter for a farmer, building furniture as a siege engine crafter|
|-2||Poor training, bad habits, damaged tools, Half ranks in skill||Mentor/Commander is lower level, plow was broken in a tornado|
|+2||Good Training, good tools, Max ranks in skill||Mentor/Commander is 2 levels higher, tools are masterwork|
|+5||Excellent Training, difficult situation||Mentor/Commander is at least 3 levels higher, your inn is completely booked full|
|+10||Ideal Training, extremely difficult situation||Mentor/Commander is at least 5 levels higher, your soldiers are involved in a war|
These circumstances can stack (except for the bonuses from your Mentor/Commander). For example, 1st level soldiers fighting in a war in a 6th level lieutenant's unit, with masterwork weapons and armor gain 10 + 2 + 10 + 10 = 32 experience per week from their profession soldier checks.
 Non-Human races
Non human races may learn slower from work depending on their maximum age. For every 50 years their Venerable age category (rounded to the nearest fifty) is above 100, they earn 1 less experience per character level (minimum 2 points per character level). For example, dwarves have a Venerable age category of 250 years. This means they gain 3 less experience per character level when working. It takes a dwarf 143 weeks to reach level 2. An elf takes 200 weeks to reach level 2.
This means that with humans, the average young worker will be level 1-2, the average middle aged worker will be level 3-5, and the average senior worker will be level 6-8.
A well trained army will have used their Profession (soldier) skill daily for, say, 50 weeks a year. After 6 years of training, the army will be level 3. If they fight in a long war, they could be level 2 in a year, not counting experienced gained in battles.
A 5th level scroll crafter will also gain 20 exp per week while working another job. This means they can create one 3rd level scroll a week plus have 5 extra exp to spend later.