This really depends where you are in your life as a games programmer. If you want to really set yourself up for the future, learn C++. There is a reason that it is more complicated; it is also very much more powerful. (C++ really isn’t all that hard to learn either.)
Unreal is more powerful, and thus, more complicated. In my opinion, Unity free is little more than a broken toy. They rip out very important features and call it “free”. This has already been mentioned above, but $20 is nothing to learn the same engine that made the Batman games, Mass Effect, Bioshock and more. A proficiency with Unreal will get you a job much faster than Unity.
One of the big turn offs for Unreal is the 5% royalty fee you must pay on your games if you sell them, but let’s be realistic here for a moment about that. The Unreal 3 engine, the same one that made all those fantastic games, cost 6-7 digits. That means you would need to make 12-24 million dollars with your game to bypass the worth of this engine. That’s insane! Unreal is the all around better deal, and you are not going to waste your money on a pointless costly fee or risk not having access to your project due to Unity’s DRM.
With all of this, you get the SOURCE CODE to this blockbuster system. THE SOURCE CODE. To most people this would be useless, but it really changes the game. You are getting the AAA treatment, for $20.
There are tons of great tutorials provided by Unreal. Just lay down a whopping $20 and dig into their YouTube channel.