I have no "material" to suggest as I have never used any, but here are some advices.
1- Patterns :
Just look at existing pattern puzzles, and pay attention to the answers. It could be anything from chain of numbers to shapes or repeating logical patterns. The only kind of material that I could imagine helping you would be some that shows you many examples.
2-Cipher :
This is a hard one, some basic knowledge on ciphers would be necessary, but where to start? There is way too many ciphers and most would be way too hard for common folks like us to simply crack by hand in a casual puzzles.
There are a very few simple ciphers that are frequently used in puzzles like ROT or Cesar but the best thing to do is just to look at a few examples on stackexchange and see which ones are frequent.
Any decent cipher puzzle will give subtle hints as to which cipher algorithm is needed and if none are given, the puzzle makers are pretty much just being jerks.
The real challenge is usually finding the password to unlock the cipher. The actual deciphering job should be done by a tool you can easily find online.
3-Lateral thinking
Simply put, thinking outside the box. I doubt any books will help you with that. Some people are better than others to get out of their comfort zone and see things from other perspectives, but mostly these puzzles are accessible to all. Just do like us, read the question over and over and stare at the screen until you get that "AH!" moment.
4-Practice makes perfect.
This is by far the most important thing. No one is good at first when they start puzzling. Puzzles are meant to be clever and most of the time trick you away from the good answer. There is no one way to solve puzzles that can be learned. If there was, it would pretty much break the whole purpose of puzzles. When a puzzle type gets too easy, people will revamp it with twists and such.
Read a lot of examples, practice a lot and train your brain! It is the only way to keep up!