Software development is particularly hard since as a developer you need to not only tackle technical problems, but also communication ones. Requirements will change, you will be forced to operate on assumptions and you will have many, many discussions. It is important that you become good at communication and are easy to mentor.