In a small saucepan (I always use heavy-bottomed one to prevent burning) combine flour, sugar, salt and milk. Cook over medium-high heat, stirring constantly with a whisk until it thickens and bubbles appear on the surface. This can take about 15 minutes.
Once it's done, strain it through a fine mesh sieve into a shallow plate to get rid of any lumps. Put a cling film over it touching the surface to prevent "skin" forming and let it cool to room temperature. This is your pudding base. You can do this in a fridge, but before using it let it come to room temperature.
Using a stand mixer fitted with the paddle attachment, beat the butter for at least 5 minutes until it's pale and fluffy. Then add spoonful by spoonful of previously made pudding. Mix until it's all nicely incorporated and with no lumps. Add vanilla extract and mix until everything is combined.
If you don't have a stand mixer, you can use a hand mixer.
If you still don't own one, I advise you to buy a kitchen scale - they're cheap and easy to use, and always guarantee the same results in baking!