No one can become a ‘perfect’ software engineer because we are still human. But you can certainly become a ‘better’ software engineer if:
- You understand the requirements first before starting to code (ask necessary questions)
- Code properly (with indention, comments, following best practices, etc.)
- Do code review and get peer code review done
- Do unit testing thoroughly
- Test your code in a near-production environment
- Find out and implement coding best practices
- Learn from your mistakes
- Code, Code, Code as much as you can.