Thanks for the advice! Much appreciated. I've thought about making mods but i felt that was the same base as using an engine in that it wouldn't be learning to develop fully due to using a base and editing programs.
Although this is a specific subject: mods, and of course you are right, making a mod is not the same as making a game from scratch, I should point out there is some danger in your way of thinking.
To be honest what it comes down to is: don't do extra work for the sake of work, its a mistake all beginners make and I made myself, everyone does it. But what I really mean is, if you can make a game that you picture, with an engine, then use the engine.
It's often a new developer pitfall that they feel they need to create everything from scratch, to be able to prove they know every bit of the game development process, but let me put that in perspective.
If you're a carpenter, would you build a house from scratch as a novice? Of course not, you wouldn't pull out trees and saw them and build an entire frame and make a roof out of wood and everything, it would take you forever and probably end up terrible! So don't do it with a game either.
Do you know why I choose not to use an engine usually? The reason is: and I'm pretty sure that this is true with most people that choose to not use a full on game engine. Is that it is -faster-. Now you may scoff at that idea at first but the reality is that once you begin to learn the process of game dev, even from working on small games, you'll figure out one thing: that big engines are just that, BIG. These engines are powerhouses and made to do things vastly different from what you want to do, in fact they try to be good at everything. That's one consideration, it may take much -longer- to take an engine like unity and make it do what you want then it would be to take something like SFML and make it do what you want.
Another part of it is learning, people can pretend all they want but learning a new engine is like learning a new language, it takes time and practice and has many nuances and best practices to learn, there is a big difference between someone that has used unity for a year and someone that is a good coder and has never touched it. Is that a bad thing? No, in fact learning that engine means you have it available as a tool in the future, but it is certainly a point to be made.
So what I'm really trying to say when it comes down to it is that you should start at the simplest level you can to finish a game, my advice is to either start with a windowing library like SFML/SDL if you're using C++, or something like Pygame if you're using python, it doesn't really matter, game libraries are a plenty in most mainstream languages.
Of course you can use an engine as well, thats a seperate path, learning to use an engine is usually less about learning to code and more about learning how the engine works by working with it, and -that- is why people often suggest an engine. An engine lets you both get something up and running quickly and also you begin to understand the architecture behind how it works, so when you roll your own code out you have ideas and methodologies to work off of.
Anyway, ending my little rant, I would just say that you should make your goal to be to finish each project and not worry about performance or tool or not being "impressive" enough, learn bits and bobs when you feel it will be beneficial.