For building understanding and mental models, I think it can be bad to jump into things that are too much of a struggle.
However the best of both worlds is some kind of tutorial that explains it really well. Like the recent "explaining functional programming to my 6 year old" article. Then you can dive straight in, but get off to a solid start.