I started with Learn to Code by Making Games - Complete C# Unity Developer in udemy.com
it is not only 2d but it really got me going. And you don't need anything else, just follow the course.
for the first project please don't do anything too complex, you can add complexity and features later. Tim Ruswick has some great videos on this subject, browse his youtube channel. And he is spot on. Now regret i started too big. My project is not very complex, but it takes so much time and for a starter you shouldn't start something that would take you a year. I would say a month is long enough. If its too long you will face too much dark work with little reward for long periods. It will not be fun, you will try to do tasks quickly and it will affect code quality and create a mess in which you yourself will struggle to find what is what. Love yourself and don't do too big. The simplest game can be very fun. And it is so much easier to make a simple game fun.
You said you already have an idea. If you think it is hard to do, simplify it, strip it down, trim it. You wanna have fun not a struggle. As you learn you will realize things you don't have a clue about now and these things will enable you to take on more complex projects.