As I am trying to use python to build a rather large software solution for use in bioinformatics, I am slowly realizing that there are lots of concepts I really need, that were never taught in my CS courses. Among them:
- What is functional programming and how it is different from object-oriented programming
- What is lambda calculus
- That Python is a functional programming language and that trying to use it for OO will be painful and frustrating
- How do you do to program a large software solution you would like to reuse or at least maintain later on
- What are closures are and how useful they are