Programmer Competency Matrix v1.0
Computer Science (50%)
Programming Generic Skills (70%)
Data Structure
Algorithm
System programming
Hash Table - Collision
Priority queue
B-Tree
Binomial
ALV / Red black tree
Splay Tree
Skip List
Ties
Tree ~
Greedy ~
Divide ~
Graph ~
Space / Time Complexity Calculation
Dynamic programming
Numerical Computation
NP programming
Compiler
Linker
Interpreter
Assembly code
Virtual memory and paging
Kernel model vs. user model
Multithreading vs. Paralleling programming
Synchronisation primitives
Network and network protocol and socket level programming
Static link vs. Dynamic link
Garbage collection
Memory address
Gpu programming
Software Engineering (80%)
Source code version control
Build automation
Test automation
function test
UI test
Load test
Performance test
Problem Decomposition
Avoid duplication
Orthogonal Programming
System decomposition
Code organization
Names for member, function, class, namespace, file, folder, project, solution
Structure logic for class, object, component, library, project, solution
source tree branches structure and logic
Coding readability - style nature, flowing natural, no deep nesting
Defensive coding
IDE
Unit testing in many levels
Error (exception) handling
Assert verification
VS Code
MonoDevelop
VS
Math (20%)
2D Math
3D Math
Arithmetic
Algebra
Geometry
Matrix
Trigonometry
Linear algebra
Statistic and Probability
Precalculus
Domain
Unity3d (50%)
UI
Dynamic Physics
Shader
Geometry
Animation
Networking
Languages
C# / .Net (70%)
Data structure
Delegate
Attribute
Linq
Threading
Unsafe code
Plugin programing
Security
C++ (70%)
Pointer
Memory management
class / struct
security
std data structure
Web Client (40%)
Cloud Computing (0%)
SQL (50%)
FileIO
Memory management
QT (50%)
FileIO (90%)
Web Server (0%)
ASP.NET
HTML (30%)
CSS (60%)
Javascript (30%)
Python (70%)
Java (30%)
Influence Power (10%)
Blog
Answer question
Open source coding
Reading (10%)