When designing software you will need to talk with other people in order to identify the software requirements (what it must do) so people skills are necessary. Once the design is complete, the actual coding takes place. The coding itself is normally a solitary task where you must embed yourself into the effort (remove distraction and achieve a sharp mental focus/concentration). A one minute interruption can slow you down for 20-30 minutes as you regain your focus.
As for the technical skills... You will need to be competent in one or more computer languages as well as the application, product, and industry that the software will be for. Software can be commercial (banking and business) or technical (robotics, manufacturing, etc) and may or may not require a knowledge of hardware.
It's a lot of fun and very interesting so, if you enjoy software then you will do fine!
Other skills and knowledge that will absolutely support you are logical thinking, math, how networks and computers work, working in a group and note taking.
From a "Programming Language as a skill" perspective, before choosing one, decide between the most common "areas" of Software Engineering: front-end or back-end (understand their concepts and pick the one that resonates best with you). From there, you can search for the currently most used programming language in the market (which generally means more work opportunities) or the most friendly from the most used ones.
But don't forget that programming languages are just tools to get a job done, like a hammer, saw, screwdriver, etc. There are two things that I give more attention to before getting concerned about the programming language:
- WHAT you're trying to build or fix. Ask yourself: “how does this help the world?” I know many people that chose to be engineers just for the money, but the feeling of being helpful to other people is the principal thing that puts a smile on my face every time I wake up to work.
- And HOW you're going to build or fix it. A good infrastructure plan combined with good “programming techniques” (such as design patterns) goes a long way.