I think learning a new framework or technology is not as much as knowing how to make it work but discovering, finding the joy, and get a sense of confidence before you even start your first line of code.
There are great video tutorials out there. They want you to watch and code along. There are workshops wrapped in technical books. You follow along step by step through chapters until you complete a large exercise. I think of it as a salad of different chapters. And that reminds of a book called Adobe Flex 3:Training from the source. That way of learning is based on following along and at the same time understanding the process of a framework or technology. But for very large subjects you can get trapped and look back and wonder how the project started, how it ended and what happened in the middle. As you can start to feel you have memory loss. You have been thrown in the jungle and you are fighting for survival, and having no clue you depend on a technical master to work your way around and find a way to accomplish the mission.
There are other books such as the ones from O’reilly which are not intended to make large applications, but instead they give you each piece of the puzzle. Every demo is simple and focuses on the chapter you are in. You are in the scope of the chapter and that’s it. Maybe there is a final process in the book about a larger application using most of what you have learned from the rest of the book. I personally think this is a great way of learning. You might not know everything but you understand the basic concepts and be beneficial to follow along a larger demo. I would say that’s the best way I can learn.
In my first years of software development, I started learning C++. I remember very vividly an old friend who was ahead of me. He was intimidating me by telling me his and other classmates stories of failing the first course. That made me very scared. So each time the professor went over the blackboard and wrote the code, I wrote them in my notebook and headed after class to the computer lab. I was there testing her code and seeing what it was doing. I modified it at times to see what else would happen. This process has been great as examples are kept simple and can be used to make changes like if I wrote the code giving a sense of confidence.
It’s possible that if you were to learn an easy subject you are going to just follow along and get it straight forward. That was an experience I just had learning Emmet from Lynda.com. Here you are not working chunks of code but understanding how to write shortcuts so the editor can translate it to html and css. And that can also be the case of learning CSS straight from a video tutorial. No need to write large applications. I was talking to a friend of mine who is learning AngularJS. She was telling me it was a bit hard to just watch and code along. I have already watched the video tutorial. I told her to concentrate more on watching than coding. Better is to understand than break the concentration by following along.
I used to also follow along and test everything I got from books and videos. Until I have realized there are things I will never get to do on that technology. I have felt as it is important and as professional to do the exercises and work on a few external demos. But it has turned out the applications won’t ever require me to do it. The key here is simply know about it. There was once an interview for a job. I remember being asked how well did I know a given technology. I was nervous and didn’t know how to answer as I simply didn’t remember it clearly. The person giving me the interview helped me by telling me you have to answer I don’t know but I can research and figure it out. That’s what is all about know the fundamentals of a technology, read as much and watch demos but until the day comes go back pick on it and apply it in your project.
I am currently learning Android. I am going over a book which has 2600 pages and its name is Commonsware. I think this book is giving me a lot of help as it focuses on the theory and simple exercises. It is quite large and as I already mentioned I don’t need to know everything. I know the first 800 pages were about the fundamentals and I got to read and do each exercise. The rest of the modules are more secondary but important as well. I am reading the book as much as I can. I feel like having a great broad understanding of what is possible to do is important. I cannot continue doing my own demos for each chapter anymore. As this can affect the feeling of fulfilling the understanding of what Android can offer. It’s like going to a concert and waiting in a long line to see a band your friends are telling you is great but you haven’t done your own research. We need to research the technology we are interested. Researching gives you confidence. Research is like reading through a travel book about a new distant city. Once you are there, you would be familiar with culture, and know how to go places of interest. The more you know about it the more you will enjoy your staying and feel more as a local where in technology would be more as a pro.
My case with Android is the same I read each chapter. I test the code and see what is going on. I write notes and graphs. Not only I follow the book blindly, I watch youtube videos regarding chapters and find libraries written by the community which can make the process less tedious. All of this is making me more passionate and getting me out of being intimidated as I can even discuss subjects which are more advanced to what I have done. It’s about a mental image of what you can be capable of doing. For several of those chapters, I know the day will come when I can pull out what is needed to be taken care such as knowing how to encrypt an existing database. I know how it works and I can go back to that chapter but it is not as important right now. So make the learning fun and keeping it simple. if a book is trying you to make a large application on your first time, my advice is keep watching and don’t do anything. Think of it as a movie you are watching instead. You can tell the story but don’t need to be in it. Thereafter you can learn the subject one step at a time.