Programming Techniques Students Should Learn