Experience: I have been bulking for 1.5 years starting June 2017. Starting weight was 165 and current weight is 230. (I am 6'6" tall so keep that in mind). I have gained 65 lbs in total. Size 30 waist to size 36.
Calories: If you want to gain 1 lb a week you want to make sure you are eating at least 500 calories over your maintenance caloric intake a day and nothing less. If you want to gain 2 lbs (which will include 50% fat you will want to eat 1000 calorie over). Do not go over 1000 calories over or you will be putting on way too much fat. I was on a 2 lb per week dirty bulk for the first 4 months of my bulk last year because I wanted to put some fat on. Eventually I swapped over to gaining 1 lb per week for about 6 months (was hit with the flu for a few weeks which halted my progress by 6 weeks). Now I am doing .5 lbs per week (last 4 months).
Supplements: I have done many things over the last year and a half to bulk up but it is just a lot of the same things over and over. If you arent on a weight gainer then get on one. You do not need a preworkout. (weightgainers are protein shakes with multi-vitamins in them) I have been doing 2 weight gainer shakes a day for over a year. When I wanted muscle and fat I was on Optimum Serious Mass. I am now on Optimum Pro Gainer for lean muscle mass (3x more protein and a lot less carbs).
Workout: I spend 3 days in the gym per week with each workout lasting 1 hour to 1 hour and 20 minutes. The first hour of my workout is on the primary muscle I am training (chest, back, or legs) while the last 20 minutes are always abs and calves (tall guy problems). Each workout I do between 18-22 sets for the primary muscle of that day (3-4 sets per exercise). Try to stick with a 12-10-8-8 combo of reps per set on most things (benching is excluded from this due to obvious reasons; never go below 4). I spend 1 day out of the week doing light cardio (usually a sport) like Volleyball, Racquetball, Frisbee, Hiking, etc. Limit cardio to light stuff if you are serious about bulking up!
Food: Salmon (INSANE calories and protein per oz), Chicken, Beef, Rice, Nuts (900 calories per cup!), Juice, Tuna, Cottage Cheese (before bed for casein protein), Yogurt (MUST before bed due to casein protein), Peanut Butter, Milk, Steak, OLIVE OIL (PUT THIS IN ALL YOUR SHAKES = 200 calories per 1.5 Tbsp; I do 3 Tbsp of olive oil a day!), Pasta, Omelettes, AVOCADO (seriously a must at 250 calories per regular avocado), Potatoes, Turkey (bland to me but healthy). DONT FORGET SMALL FRUIT SERVINGS AND VEGETABLES for the needed FIBER! Always mix onions, peppers, and/or tomatoes into your meat when you cook it. It adds great nutrients and fiber and makes food taste better.
Make sure to be committed to your calorie goal each day. You can cheat on some unhealthy foods on the weekends. I never deny myself a good night of drinking with friends. Just remember that unhealthy and fattier foods require less calories than healthy foods to bulk. That is, unhealthy foods have higher sodium and fat and your body requires less of them per day to gain weight. When I swapped from a dirty bulk to a clean bulk I had to INCREASE my daily calories because of this even though I am now gaining less.
If you have any specific questions feel free to let me know. This is just a semi-quick summary.