What skills does an it consultant need?
This is a copy paste of my answer to a short interview from a student Disclaimer: I don’t really know shit, I’ve been a consultant for 18 months.
1. What skills are expected (or most valued/needed) from a person working as a software developer in your company?
Technical experience. Understanding of a techincal area is not expected, but highly valued. But everyone needs some level of understanding about programming, databases etc.
Eagerness about developing. You should be self-propelled: finding solutions and learn on your own. And you better like learning, cause you’re going to keep doing a lot of it.
Be a good communicator. Ask questions. Explain well when others ask you. Be open minded, and ready to be proven wrong, while also argumenting for what you believe in.
2. Why these skills are important?
I work in an consultant agency. We, as a team, create something for someone else, in a limited time frame. We must therefore utilize the best in each other, pulling in the same direction towards the right product.
For every new project, we need to understand what the customer wants. We must challenge and confirm why the customer wants this, and that it’s actually what they need through interaction with the users. If not, we’re like to create the wrong product. Here, commmunication skills and keeping an open mind are the most important; it can be hard to remember that you are not the user, and that what makes sense for you, might not make sense for others.
We also need to explain and argument for what we believe in. We must contribute with our experience and knowledge, letting others learn from us, while also learn from others. If not, we cannot utilize the best from each of us. A discussion often comes after researching the problem (eagnerness), or from experience, and communication skills are needed to find a good solution that everyone is happy with.
Prioritizing correctly. As a team, we must be able to say “no, because…”, and “this first, because…” to requests from the customer. If we don’t prioritize correctly, we can cripple the development speed, or build on assumptions that will hurt us later. We often need technical experience to be able to know of these reasons, and we need communication skills to be able to argue for our opinions without alienating or closing off others.
Implementing the product. We need to be able actually implement the application/system. Technical experience and eagerness to learn are the core ingredients of implementing it, while communication skills are important so multiple developers can implement it without tripping over each others code. We need different kinds of people to make a great team. Some people might be great at explaining and understanding others, while not very technical. Some might have years and years of relevant experience, but not eager to learn new things. People straight from school are typically eager. That’s ok, because we use each others strengths, and we work in teams.
3. Based on your experience, which skill(s) – if any – are typically lacking from students graduating from a University or a College.
I think more practical experience would be benefitial for many. Join a startup, contribute to open source projects, create a django website, deploy an app on heroku, make a React app, create a REST service. Any of these things give valuable experience with practical work that you’ll actually do. This in turn gives you concrete experience to contribute with, along with confidence in your self. That’s the two things I think lack in many students that graduates.