Competitive Programmer's Handbook is a modern introduction to competitive programming. The book discusses programming tricks and algorithm design techniques relevant in competitive programming.
The CSES Problem Set contains a collection of competitive programming problems. You can practice the techniques presented in the book by solving the problems.
The license of the book is Creative Commons BY-NC-SA.
Guide to Competitive Programming is a printed book, published by Springer, based on Competitive Programmer's Handbook. There is also a Russian edition Олимпиадное программирование (Olympiad Programming).