10 must-have software engineering skills:
1. The ability to code in at least one programming language - it doesn’t matter which.
2. How to effectively search, be it Google, or grepping through a codebase.
3. An understanding of the core computer science algorithms.
4. The ability to dig into, understand and solve problems.
5. An understanding of time and space complexity.
6. The ability to work effectively in a team.
7. Effective written communication skills.
8. An understanding of data-structures.
9. Be able to debug effectively.
10 The ability to learn.