I am a programmer by profession but I a hobby artist, so I can combine both worlds in one person.
BUT: doing both means you will end up having half the time for each part (or you end up investing much more time into the whole thing, like in my case often).
Also be aware that if you REALLY want do to something professional, you will have to invest a lot of time into learning the basics and training your skills. That is true for both art and programming.
I might be a pretty decent programmer by now thanks to my CS Degree and having worked in (Business) Software development for over 10 years, but I am still pretty noobish when it comes to art as I a) never had the time to do a formal education apart from some hobby courses on drawing and so on, b) while I draw for as long as I can think back, as most hobby artist I always only drew what I liked so my art definitely is missing versatility, and c) I never had to really do anything in a fixed time thus I am terribly inefficient.
Add to that that 3D Art is still pretty new to me and you can see why I waste most of my dev time trying to get decent 3D Art done, while I can crank out the code I need in a short time.
If you like both programming and art, have the liberty to waste time as it is just a hobby, and like challenges (getting into art is not easy even with some talent), go for it. I reckon starting out with 2D Drawing might be more time efficient (as 3D Modelling has to be done in 6 directions instead of one), but be aware that for most people without artistic talent 3D Art seems to be easier (as the translation from 3D to 2D Space done while drawing is not needed).
If you just want some graphics to make your awesome code also look awesome to the uninitiated (those muggles who couldn't tell C code from Java), then see first what you can grab together in stock or free art. You will find a whole lot of art on the internet that can serve just fine for a prototype.
(see the post above)
Be aware that while some art packages you can buy on the internet are quite cheap, commissioning art is not, as even a trained artist will spend quite some time on a piece of art... especially as for games, 2D Art needs a whole sheet of sprite animations, and 3D Art needs rigging and animations, to make anything move.
For the question about 2D versus 3D you really need to think about your goals. You mention UE4 as Engine of choice for 3D, but this engine is mostly chosen because of the high end visuals its cutting edge components can crank out, supported by what I reckon good performance (not a specialist on UE4 performance, going by UE3 standarts now).
Cutting Edge 3D Visuals need high-end models and textures. Now we are talking about top artist taking months to just build, texture and rig a single character to photorealistic looks and animations.
IF you are going for a non-AAA 3D project, something that will play more nicely into your most probably rather noobish 3D Skills, you should be fine with your 3D Project.
Setting clear limitations for your projects will also help. One limitation could be for example: no rigged characters (for example by only using vehicles / robots). You can scratch rigging and animation of the to-do list with this single constraint. Will certainly save you some time.
Animation can then be done in code, which might be easier for a programmer than learning how to animate anything in 3DS Max.
I have little expierience with 2D Projects, but I reckon its the same there. If you try to do a crappy version of angry birds visually, you will be fine. If you want to recreate the visual glory of the 2D RPGs of days past, prepare to be drawing an endless list of ground-tiles, props and mob sprite-sheets.
Edited by Gian-Reto, 29 July 2014 - 11:39 AM.