To build a workshop, you usually (but not always) need a dwarf who is set to do the work of the related profession. To build a farmer's workshop, your dwarf must have Plant Processing enabled. You can press 'q' and highlight an unbuilt building to see exactly what is needed; some buildings need architecture before anything can be done, for example.
To explain what's going on with the job/manager menu...
1. The job menu, which appears when you hit 'j', lists everything that your dwarves could conceivably be doing right now, along with a list of which dwarf is actually doing that task if a dwarf is carrying it out. The tasks are NOT listed in any particular order, and you CANNOT change the priority of these tasks. It's merely meant to be informative so you can see, at a glance, what work is being done/remains to be done fortress-wide.
2. The manager menu, which appears when you hit 'm' from either the 'u'nit screen or the 'j'ob screen, is used to queue up mass jobs to be done at workshops for easy management. Normally you can only add 10 tasks to a workshop. The manager lets you add up to 30 of any particular job, and you can add multiples (i.e., you can queue 100 of "build a rock table" by adding 3 "build a table x30" jobs and 1 "build a table x10" job). This allows you to do things like order your mason to make 20 tables, then 20 chairs, then 60 doors, without having to put your cursor over the mason's workshop every time to micromanage the orders.
From the manager menu, you can change the priority of jobs on the manager menu. However, this only changes the order in which jobs for a particular workshop will be added; whether dwarves work at that workshop, or another workshop, or do hauling, is up to the dwarves. For example, you can change the priority to make the "construct tables" jobs show up at the mason's workshop before the "construct doors" jobs, but you cannot use the manager screen to force your mason to stop from going fishing instead; you must select the mason and disable whatever labors you don't want him to do.
3. In general, different jobs have different priorities. For example, burial is very high priority and dwarves will go pick up and inter the bodies of their dead comrades before doing almost anything else. On the other hand, conducting a meeting is a very low priority, and you will almost always have to disable all labor on a dwarf in order to convince him to hold a meeting with someone. For the main part, the best thing to do is just watch your dwarves and see what they are doing; if you want them to do something else, either disable the undesired labor, or eliminate the jobs that they're doing.
So, for your example of "hauling stone instead of doing important stuff", there are 3 things you can do:
1. Select the dwarves you want to do something else and disable "stone hauling" on their 'l'abor screen.
2. OR - From the 'o'rders menu, use the option that Dwarves ignore 's'tones and minerals. Remember to turn it back on when you want them to haul stone again.
3. OR - Delete the stone stockpile so no more hauling jobs are generated. This is the recommended solution, since every fortress has more stone than it could possibly ever need and you usually don't get any benefit from moving it around (unless you're moving valuable mineral ores closer to the smelters).