study tips for software engineering