Learning how to program is pretty much the same a learning to bake.
You start with some good books or tutorials that hows you show you examples giving you an idea how to interpret recipes and how stuff works, which you can experiment by mixing and matching.
Then you perhaps know how to make your own programs, but that doesn't mean you are an expert. Like baking is all about understanding the chemistry, making easy to maintain programs are using the correct level of abstraction and the right abstractions. That will not come easy and after being a professional programmer for 17 years I'm still learning. When I see code I wrote one year ago I usually acknowledge that I would have written it differently today.
Common Lisp resources:
Land of Lisp (I love this one, but it's not free)
Practical Common Lisp (Love this one too, use the loop chapter as reference)
The roots of lisp (I love this essay by Paul Graham, but it might be best to read after you know a little)
Scheme
SICP videos (for older version, but still good way to learn the fundamentals)
SICP book (newer edition than the video, but not the latest. Still good though)
How to design programs (actually for Racket)
The little Schemer (not free)