imo, of course.
Over the past year, I've felt the best way to learn was to duplicate. Now, this comes with a certain amount of integrity, because you should never copy applications outright for commercial use. But for educational purposes, this technique is great.
Specifically, I've found text was helpful to code certain features for which there was not a video. When I started coding iPhone applications, I did a mix of video tutorials and Google searches to give me the functionality I desired.
When I learned Matlab, my professor told us to duplicate the pictures in the text (this was for Machine Learning and Bishop's text). Since I could not find good video tutorials for Matlab, I resorted to documentation. However, I knew what the end result had to look like, which was helpful.
For web development I code in ASP.Net and C#. I usually have a project definition to fulfill. I have used video tutorials to a certain extent (to see the wealth of features available with MS Visual Studio/Web Developer).
One option, which you did not mention, is to seek the help of others who are experts. If you can get into a community of developers and actively seek their input, you will learn much faster.
So the answer, for me, "YES" ;) A screencast backed up with good documentation.
Hacker techniques however... can only be learned by hacking. Being as they represent the intuitive, "dirty" approach, that's the only way to get them into your system.