survey results

advertisement
Because modern software engineering is a highly competitive field, it is becoming increasingly hard
to be a high-performing programmer with nothing but solid technical skills. Therefore, it is necessary
for those wishing to work in this field to have a wide range of skills and personal qualities.
However, it might be challenging to determine exactly which personal qualities need more attention
as most courses and programs offer nothing but hard skills. To find out which areas generally need
more attention, we asked 11 third-year Computer Science students 6 questions about personal
qualities and skills necessary for high-performing software engineers. Most of the results we
received indicate that the students generally have a lot of qualities one would expect to see in a
programmer. However, we’ve been able to find a couple of areas that course designers could focus
on.
One of those areas is problem solving skills. Software engineers deal with various problems and
challenges almost daily, but more than a quarter of respondents don’t consider problem solving
their strong point. While this finding could be caused by a small sample size, it is rather alarming.
Fortunately, things are looking a bit better when it comes to making abstractions and putting in the
hard work. Most of the students consider themselves to be rather good at making abstractions,
which is necessary for building complex systems. We see a similar answer distribution when we ask
about persistence; the majority of respondents consider themselves to be more persistent that
average. This means that their skills will likely improve with as they spend more time programming.
Perhaps somewhat surprisingly, some of the skills that may need more attention are technical. 5 out
of 11 respondents said they are not very comfortable with algorithms, which may be problematic as
finding and implementing the right algorithm for a given situation is an essential skill for any
programmer, be it a web developer, a banking software engineer, or a game developer.
Another crucial skill that might be emphasized by course developers is time management. While
none of the students said they find time management unimportant, more than a quarter of them
was unsure. Perhaps the current system doesn’t properly show the importance of managing time; in
this case, mimicking the workplace environment with its strict deadlines could help.
One of the most interesting findings is related to teamwork. The results show that every respondent
finds at least some benefit of programming in a team. The benefits chosen most often are the ability
to discuss different approaches to a problem, the chance to learn from more experiences colleagues
and the ability to focus on a specific task or a subproblem. This suggests that computer science
students generally prefer to specialize in a specific part of the field but are open to discussions and
new experiences.
Overall, the survey shows that while some improvements should be made, most of the problematic
areas are related to technical skills. This is rather reassuring, as skills of this kind are easier to acquire
in a university program or a course. Additionally, the respondents seem to be open-minded,
persistent people, which means they are likely to improve.
Download