Concerning what to learn first, I believe both Unity and C# should be learnt simultaneously. Since C# simply helps you script the behavior of objects in your game, there are other parts of Unity to learn alongside e.g the UI system, use of components such as Rigidbody and Collision boxes, particle effects, Physics and a lot of other things like the Animator. These days, you can even learn Augmented Reality without the need for scripting but as it is, everything becomes interesting once you get some programming skills.
HOW DIFFICULT IS PROGRAMMING?
Yeah, programming is tough, especially for those of us without the background. But then, its not as difficult that it becomes unlearnable. For starters, you should aim at learning the basic principles which you can easily grasp in less than a week (for folks new to programming). What you will be learning include the basis of programming, variables (types and declaration), Loops, methods, classes, Arrays, If Statements, Switch Statements. These will be enough to get you through most tutorials while you keep learning advanced concepts as you go. It is always better to learn through one or two pure C# tutorials, then followed with project based tutorials to see how programming concepts are applied. If you are looking for the best free C# resources to get you started in little time, here are my top 4;
TOP 4 RESOURCES TO LEARN C# FOR UNITY
C# for beginners – Bob Tabor : This is one of the best intro to C# you can get anywhere. Hosted on the Microsoft Developers Network. Bob’s C# and even JS lessons will ease your entry into the world of programming. It’s almost the best out there, but then, it’s purely designed for .NET developers but don’t worry, it works for Unity developers too, just get your Visual Studio set up.
C# tutorials – Brackeys : This was my first C# for Unity tutorial guide and it made things clearer. You can find Brackeys on Youtube teaching Unity.
C# tutorials – Charger Games : This series by a channel called Charger Games is more comprehensive than Brackeys’ (C# wise). While brackeys’ explained the basis of programming using C#, Charger games goes deeper into the implementation of C# for Unity and introduces you to Unity’s API better.
C# Tutorials – RayWenderlich : This website teaches IOS Game development and Unity among other things, but its C# tutorial series for Unity is also detailed and good but you have to be patient with this one.
For beginners, focus might be a good virtue when starting, (focus and patience). There are hundreds of resources out there but picking one or two of the above and focusing on them will see you progress faster than jumping courses and most importantly, they are all free and probably more valuable than courses you will pay for.
Once you start learning some C#, its good time to start getting project based tutorials, I suggest you go with Unity’s official tutorials and also you can check out a few books that could be useful in your training.