Motivation, passion, time and stability. You must like sitting for hours in front of your computer, if you are mostly like the average person getting tired and bored after a few hours and even without using brain's battery at all, it's not for you...
The most important thing is you have to like it, you can't just develop software just for money, the result will be the No Man's Sky Internet Marketing version.