Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Activity/ProficiencyFundamental AwarenessNoviceIntermediateAdvanced
Code managementFetching code samples and other material from a code repository prepared by others, and being aware of the flow.Basic commands for committing, pushing and pulling, and understanding what merge conflicts are and how to handle them.Versions, tagging and branching and merging. Forking and updating.Deployment and releases.
Code qualityUsing tools for automatic formatting and simple refactoring.Use tools for defining coding style and formatting code accordingly, have basic refactoring skills and run code quality checking tools locally or as part of CI.

Code analysis like null analysis and code metrics.

Introduction of static and dynamic code analysis methods and tools

Verification of safety and mission critical systems

Introduction of model checking and formal methods

(Regression) testingRunning pre-made tests on their code and understanding the fundamental idea of testing code behavior.Writing and running their own unit tests (not necessarily TDD).Writing integration tests according to the test pyramid; using mocking frameworks.

Regression testing

Model-based testing

Continuous integrationUsing tools for automising the process of building, testing, and deploying software.Using a build system for assembling a runnable application.Unit and integration testing, driven by build system.CI automation using a server.
Issue trackingUse issues tracking system to report bugs (to some system they are using).Use issues to manage requirements that drive development.Kansan-like management 
Code reviewGoing through code with others, to improve/ensure quality.Pull requests, for contributing fixes to other system.Using code review within own process, to close issues. 
Agile MethodsKnowing about Scrum etc.Experience with some tools/meetings E.g. Scrum Master

Similar approaches found online:

Programmer Competency Matrix - https://sijinjoseph.com/programmer-competency-matrix/

Staged introduction (proficiency mapped to semester)

...