Which programming techniques we have to learn?