I have been asked many times over the last year about what I really do at my job. Do I code all day? Am I sitting in front of the computer all day? Does my job involve people at all? Software Engineering is a lot more than coding.
Coding is just one part of the job
Coding is one of the most important skill for a Software Engineer. In my current role I would say I spend like 40% of my time coding. Its not 40% every day. There are days I code all day long and there are other days I don't. So it basically depends on the project I am working on and if I have everything I need to start coding.
Research Research Research!
Researching is a big part of the job. Before approaching any problem we have to understand the project well. Then we have to find the best solution for it. Often times the first solution that comes to your mind isn't the best one. So you need to spend time exploring other alternatives and finally make a decision.
I would say this depends on the kind of team you are working in. For instance if you are a full stack engineer then you are responsible for analyzing requirements of your customer and figuring out the stories/tasks you need to complete. But many teams also have dedicated analysts for this job. If that's the case then you have to communicate with the analyst to understand what you need to work on. This is very important because you cannot produce good code without getting the whole picture.
Meetings and Presentations
Here is where your people skills will come handy. You need to meet with your team, customers, product owners and stake holders from time to time to give them updates, deliver your work, get a better understanding of the task or simply brain storm. As a developer you are the subject matter expert so you are expected to find loop holes that might be over seen by others. You can provide feedback to your product owner or customers and tell them if a certain task is do-able or not.
Learning New Skills
If you're in tech you have signed up for constant learning. Technology is very fast paced and is evolving everyday. And as a developer its your job to keep up with those trends. A good manager understands this and encourages their employees to learn new skills. In my current role I can take 4 hours every week to learn something new. In my opinion, being a rapid learner is the most important skill you can have.
Community Service and Social Events
Most big companies will encourage their employees to take part in different events all through the year. For example in my company we have a lot of volunteering opportunities. Recently I participated in a half day event where I taught young girls how to code. I also frequently go to events like exhibition openings, sport events, team building events.
Being a Software Developer or a Software Engineer is a lot more than just coding. You need to be versatile and up for any challenge. That makes the job so fun. You get to learn and do something new everyday.