how to transition into software engineering