Here some books I read and that I recommand:
  • The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities
    (by Mark Dowd, John McDonald, Justin Schuh)

  • The Tangled Web: A Guide to Securing Modern Web Applications
    (by Michal Zalewski)

  • The Pragmatic Programmer: From Journeyman to Master
    (by Andrew Hunt and David Thomas)

  • Team Geek: A Software Developer's Guide to Working Well with Others
    by Brian W. Fitzpatrick and Ben Collins-Sussman

  • Introduction to Algorithms
    (by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein)
  • Design Patterns: Elements of Reusable Object-Oriented Software
    (by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)