Personally I think the best way to learn poker is to play cash games. The reason is, you only need to focus on playing each hand the best, you can, and there are no other considerations like payjumps or varying stack sizes to distract from that. The second best way is to play SnGs, which are small and fast tournaments. This can also be fine, especially if you have already decided, that the ultimate goal is to play MTTs and not cash games. Freerolls are a poor way to learn, mainly because you cant play, when you want, but only when the freeroll runs.
As for how much money to invest, cash games generally start at 2NL on most sites, so an intial deposit of 50$ can give a lot of practice already, and maybe its the last deposit, you will ever need to make. And SnGs can be even cheaper depending on the site of choise. And if even that is to much, then play money games are also a better learning tool than freerolls, because even with them you can at least play, when you want, rather than sit and wait for the next freeroll. So to sum it up, freerolls can be fun, and you can win a bit of money in them, but they are not a good way to learn the game.