I learned UDK, Unity, and Source, along with some programming through random online tutorials. On the Unity site there is tons of documentation on code and other features in Unity http://unity3d.com/learn/documentation. http://answers.unity3d.com is also a good place to look if you are having specific problems with a certain aspect of a project that you are working on. juv3nal is right about finding a specific project to work on, tutorials are a good place to start, but when you come up with an idea that you really want to create you will be more motivated to learn skills to complete the project. Hope that helps.