So right now the guys over at Unity has made their premium learning resources free, until June the 20th!
There is quite a lot of good stuff at just a glance, they offer courses, live classes, tutorials and such. So if you’ve ever wanted to learn how to either program from scratch or use an existing engine, now is probably the time to do it!
Well, if you ask me, writing from scratch is much more fun. Dealing with huge libraries like Unity always introduce strange problems that you would not get using specified engine (most likely of your own creation).
However, writing things from scratch is harder to get started with and generally it takes quite some time before your project gets to the working stage (there is some gameplay). Most of the time you’re programming things that the end user won’t see.
I can totally see the appeal in doing it 100% from scratch, the end product has the potential to work much better with it’s own custom engine, but I feel like you’d need to be already pretty deep into programming at that point to even consider that approach for more involved projects.