Learn C# Alone or Learn C# in Unity?

Background: Many years ago I did a decent amount of programming in Visual Basic. I also did some beginner C++ tutorials and did some modifications to an open source C++ project. After many years of not doing any form of programming, I bought Unity 3.x Game Development Essentials (U3GDE) and I’ve gone through the first two chapters.

Question: I’m wondering if I should continue working through U3GDE or if I should first work through a general C# book? I’d rather work through U3GDE first and then beef up my C# knowledge as needed, but I’m worried that I’d be shooting myself in the foot.

Also, since U3GDE was written for Unity 3.4, should I continue using 3.4 or upgrade to 3.5? My main concern is that the interface will be completely different and I’ll get stuck somewhere.

First of all you can use 3.5 because changes are small and mainly new features are added.

About the main question i should say that if you know OO programming concepts well and programmed much you should not have problems with reading this book and a C# book alongside but it’s not a good idea to only refer to a C# book when you have problems. because there might be language features that you don’t know and they can make your life much easier.
But if you know what is a loop, condition and a function and a class, virtual method and … then go for it parallel.

I don’t think you should worry about version problem. Unity v3.4 should not be all that different than 3.5 from your point of view.
Learning basics of C# through some general C# book would not be a complete waste of time but most of them will teach you things you will probably never use in game development process with Unity.
For example, most books will have some level of introducing the concept of namespaces in first chapters. While this is an essential concept in any serious software design (business applications, building frameworks etc.) in Unity it is redundant because Unity scripts don’t use namespaces (yet?).

I’d say don’t worry too much - just keep working through the Unity book if it’s working for you. Eventually, you should definitely read up on more general programming material if you want to hone up your programming skills in general.