Skill Of Software Engineer
- Read Code
The ability to understand an existing code base in order to analyze its behavior and make fixes or enhancements to it.
- Write Code
This does not include any significant amount of design – just the basics of coding. An example is being able to write a method given the desired behavior (inputs, outputs, pre-conditions and post-conditions).
- Use of Integrated Development Environments
The ability to effectively use modern IDEs and an understanding of their strengths and weaknesses.
- Use of Version Control
This skill includes basic use of a version control tool as well as a general understanding of software configuration management.
- Use of Libraries and Frameworks
This skill could also be called “Reuse Existing Code”. This skill includes the ability to search for and evaluate libraries and frameworks based on how effectively they meet your needs and the ability to integrate the chosen package into the software you are writing.
- Debugging
The ability to analyze the behavior of code to diagnose a problem and find the underlying cause. This includes but is not limited to using a debugger.
- Research and self learning
The ability to upgrade level and get more knowledge by yourself
- Design Software
The ability to determine what code is necessary to achieve some specified functionality, particularly the higher-level structure or organization of the code.
- Awareness of the Software Development Life Cycle
This is an awareness of the ‘big picture’ of software development beyond just writing code - how the other life cycle stages (requirements, design, testing, and maintenance) impact coding and vice-versa. This includes an understanding of the types of methodologies (e.g. Agile or Waterfall) that can be used to progress through this cycle.
- Automated Unit Testing
This is the ability to unit test code by writing automated tests.
- Refactoring
The ability to revise existing code without impacting its functional behavior.
Beside that, please also pay attention to the soft skill: Teamwork, Management and Communication