What are some skills/tools that early career software engineers should pick up?
The most important skill you can pick up early in your career is the ability to teach yourself new technical concepts. The one constant in software engineering is change . You need to be able to spin up rapidly on new technologies and new or unfamiliar architectures.
The ability to learn is far more important than any specific tool or technology you can pick up.
Learn how to listen reflectively. When you listen to people turn off that stupid little voice in your head and just listen to them. Focus only on what they are saying, not on what you are gonna say next. When they are completely finished speaking, acknowledge what they said by repeating in your own words what you heard them say. Don’t rush through this process. Ask for clarification if you don’t understand something.
I would add two other recommendations:
Develop your skill at reading and understanding other people’s code, and reflecting on the choices that are reflected in the finished product. This will not only help develop your own sense of aesthetics about how code should be structured and presented. It will also develop your mental flexibility to see problems from multiple viewpoints.
Work on your problem-solving skills, starting with debugging and moving up the stack. Learn to develop multiple hypotheses about a problem along with ways to test them, and then learn to prioritize them according to likelihood, benefit, and cost to test and fix. I once worked with a very productive programmer who completely lacked this skill — he would latch onto the first hypothesis that occurred to him and work for days on the assumption that he had identified the problem and all that remained was to fix it. Frequently he would come to me exasperated, and I would find and solve the problem within an hour or two, just by developing hypotheses and asking him whether he had checked them. I seldom had to touch the code. Often there was a dope-slap involved.