In NYC, we are working on creating a collaborative community programming environment and trying to segment out software engineers into differing buckets. At present, we are trying to define:
- Experts (and/or Masters)
Similar to an apprenticeship, you would need to demonstrate specific skills to achieve different levels. Right now, we have identified beginner programming skills as:
- Object - method, attributes, inheritance
- Variable - math, string, array, boolean - all are objects
- Basic arithmetic functions - precedence of functions
- String manipulation
- Looping - flow control
- Conditionals - boolean algebra
This is a first attempt, and it is a challenge since we know the natural tension between programming and software engineering.
And so on.