Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MorganOnCode/0b9c9f028490ed5da0b004c527f7bc7f to your computer and use it in GitHub Desktop.
Save MorganOnCode/0b9c9f028490ed5da0b004c527f7bc7f to your computer and use it in GitHub Desktop.

Revisions

  1. @graninas graninas revised this gist Nov 12, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -6,7 +6,7 @@ See also [List of materials about Software Design in Haskell](https://github.com
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | **Haskell knowledge scope** | [Learn you a Haskell](http://learnyouahaskell.com/) | [Get programming with Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | Knows several languages from different categories |
    | | [Get programming with Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | [Functional Design and Architecture](https://leanpub.com/functional-design-and-architecture) | |
    | | | | [Other books on Software Architecture in Haskell](https://github.com/graninas/software-design-in-haskell#Books-on-Software-Architecture-in-Haskell) | |
    | | | | [Other books on Software Engineering in Haskell](https://github.com/graninas/software-design-in-haskell#Books-on-Software-Architecture-in-Haskell) | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | FFI | |
  2. @graninas graninas revised this gist Jul 29, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -9,12 +9,12 @@ See also [List of materials about Software Design in Haskell](https://github.com
    | | | | [Other books on Software Architecture in Haskell](https://github.com/graninas/software-design-in-haskell#Books-on-Software-Architecture-in-Haskell) | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | | |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | FFI | |
    | | Main ADTs (Maybe, Bool, Either...) | Basic lenses | Parametrized types | |
    | | Basic IO in the IO monad | Main monads (State, Reader, Writer, List, Either, Maybe) | FRP | |
    | | Lists, tuples | Monad transformers & monad stacks | Concurrency (STM, MVar, threads) | |
    | | ADTs | Advanced IO | Laziness & its implications | |
    | | Pattern Matching | Advanced type classes (Foldable, Traversable...) | FFI | |
    | | Pattern Matching | Advanced type classes (Foldable, Traversable...) | | |
    | | Basic type classes (Show, Eq, Ord) | Higher-kinded types | | |
    | | Recursion | | | |
    | | Base high-order functions (map, filter...) | | | |
  3. @graninas graninas revised this gist Jul 27, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,6 @@
    # Haskeller Competency Matrix

    See also [List of materials about Software Design in Haskell](https://github.com/graninas/software-design-in-haskell)
    | | Junior | Middle | Senior | Architect |
    |- |- |- |- |- |
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
  4. @graninas graninas revised this gist Jul 24, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -3,8 +3,8 @@
    | | Junior | Middle | Senior | Architect |
    |- |- |- |- |- |
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | **Haskell knowledge scope** | [Learn you a Haskell](http://learnyouahaskell.com/) | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | Knows several languages from different categories |
    | | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | [Functional Design and Architecture](https://leanpub.com/functional-design-and-architecture) | |
    | **Haskell knowledge scope** | [Learn you a Haskell](http://learnyouahaskell.com/) | [Get programming with Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | Knows several languages from different categories |
    | | [Get programming with Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | [Functional Design and Architecture](https://leanpub.com/functional-design-and-architecture) | |
    | | | | [Other books on Software Architecture in Haskell](https://github.com/graninas/software-design-in-haskell#Books-on-Software-Architecture-in-Haskell) | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
  5. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -8,7 +8,7 @@
    | | | | [Other books on Software Architecture in Haskell](https://github.com/graninas/software-design-in-haskell#Books-on-Software-Architecture-in-Haskell) | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | Higher-kinded types | |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | | |
    | | Main ADTs (Maybe, Bool, Either...) | Basic lenses | Parametrized types | |
    | | Basic IO in the IO monad | Main monads (State, Reader, Writer, List, Either, Maybe) | FRP | |
    | | Lists, tuples | Monad transformers & monad stacks | Concurrency (STM, MVar, threads) | |
  6. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -45,6 +45,7 @@
    | **Problem solving skills** | Can solve simple, local, small problems | Can solve local problems within the well-established project | Can define project-wide problems and solve them | Can define cross-project problems and solve them |
    | | | | Ability to not fall into perfectionism | |
    | | | | Ability to refrain from playing with Haskell | |
    | | | | Ability to handle uncertainty | |
    | | | | | |
    | **Fancy stuff** | Doesn't know about it | Can recognize it | Knows how to avoid it | |
    | | | Can follow ready patterns of usage | Can use it when unavoidable | |
  7. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,7 @@
    | | Basic IO in the IO monad | Main monads (State, Reader, Writer, List, Either, Maybe) | FRP | |
    | | Lists, tuples | Monad transformers & monad stacks | Concurrency (STM, MVar, threads) | |
    | | ADTs | Advanced IO | Laziness & its implications | |
    | | Pattern Matching | Advanced type classes | FFI | |
    | | Pattern Matching | Advanced type classes (Foldable, Traversable...) | FFI | |
    | | Basic type classes (Show, Eq, Ord) | Higher-kinded types | | |
    | | Recursion | | | |
    | | Base high-order functions (map, filter...) | | | |
  8. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -14,7 +14,7 @@
    | | Lists, tuples | Monad transformers & monad stacks | Concurrency (STM, MVar, threads) | |
    | | ADTs | Advanced IO | Laziness & its implications | |
    | | Pattern Matching | Advanced type classes | FFI | |
    | | Basic type classes (Show, Eq, Ord) | | | |
    | | Basic type classes (Show, Eq, Ord) | Higher-kinded types | | |
    | | Recursion | | | |
    | | Base high-order functions (map, filter...) | | | |
    | | Base collections (List, Map...) | | | |
  9. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -8,7 +8,7 @@
    | | | | [Other books on Software Architecture in Haskell](https://github.com/graninas/software-design-in-haskell#Books-on-Software-Architecture-in-Haskell) | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | High-kinded types | |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | Higher-kinded types | |
    | | Main ADTs (Maybe, Bool, Either...) | Basic lenses | Parametrized types | |
    | | Basic IO in the IO monad | Main monads (State, Reader, Writer, List, Either, Maybe) | FRP | |
    | | Lists, tuples | Monad transformers & monad stacks | Concurrency (STM, MVar, threads) | |
  10. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,7 @@
    | | Basic IO in the IO monad | Main monads (State, Reader, Writer, List, Either, Maybe) | FRP | |
    | | Lists, tuples | Monad transformers & monad stacks | Concurrency (STM, MVar, threads) | |
    | | ADTs | Advanced IO | Laziness & its implications | |
    | | Pattern Matching | Advanced type classes | | |
    | | Pattern Matching | Advanced type classes | FFI | |
    | | Basic type classes (Show, Eq, Ord) | | | |
    | | Recursion | | | |
    | | Base high-order functions (map, filter...) | | | |
  11. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -20,9 +20,9 @@
    | | Base collections (List, Map...) | | | |
    | | | | | |
    | **General knowledge scope** | Basic programming | [Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) / [Code Complete](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) | Domain specific languages | Books on Software Architecture |
    | | | | Domain-Driven Design | |
    | | | Refactoring | Test Driven Development | |
    | | | Data structures and algorithms | Software Development methodologies | |
    | | | [Refactoring](https://martinfowler.com/books/refactoring.html) | Domain-Driven Design | |
    | | | Data structures and algorithms | Test Driven Development | |
    | | | | Software Development methodologies | |
    | | | | Books on Design Patterns | |
    | | | | | |
    | **Main activity** | Learning | Writing code | Requirements gathering | Understanding business problems, strategy and direction |
  12. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -19,8 +19,8 @@
    | | Base high-order functions (map, filter...) | | | |
    | | Base collections (List, Map...) | | | |
    | | | | | |
    | **General knowledge scope** | Basic programming | Clean Code | Domain specific languages | Books on Software Architecture |
    | | | Code Complete | Domain-Driven Design | |
    | **General knowledge scope** | Basic programming | [Clean Code](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) / [Code Complete](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670) | Domain specific languages | Books on Software Architecture |
    | | | | Domain-Driven Design | |
    | | | Refactoring | Test Driven Development | |
    | | | Data structures and algorithms | Software Development methodologies | |
    | | | | Books on Design Patterns | |
  13. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -12,7 +12,7 @@
    | | Main ADTs (Maybe, Bool, Either...) | Basic lenses | Parametrized types | |
    | | Basic IO in the IO monad | Main monads (State, Reader, Writer, List, Either, Maybe) | FRP | |
    | | Lists, tuples | Monad transformers & monad stacks | Concurrency (STM, MVar, threads) | |
    | | ADTs | Advanced IO | | |
    | | ADTs | Advanced IO | Laziness & its implications | |
    | | Pattern Matching | Advanced type classes | | |
    | | Basic type classes (Show, Eq, Ord) | | | |
    | | Recursion | | | |
  14. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -38,7 +38,6 @@
    | **Responsibility** | | Responsible for own code & its quality | Responsible for project, its parts & design | Responsible for multiple projects |
    | | | | Responsible for achieving goals by the team | |
    | | | | | |
    | | | | | |
    | **Teamwork skills** | Working with mentor | Team player, relative independence | Team leading & mentoring | Cross-team leading |
    | | | | Completely independent | |
    | | | | Able to drive the project from start to end | |
  15. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -29,8 +29,8 @@
    | | | Testing | Understanding project tasks | Cross-project communications |
    | | | Writing documentation | Designing the code, interfaces, subsystems, services | Cross-team communications |
    | | | | Managing the complexity | Architecturing cross-project systems, frameworks, foundation libraries |
    | | | | Organizing the project | |
    | | | | Establishing coding standards | |
    | | | | Organizing the project | Communications with stakeholders |
    | | | | Establishing coding standards | Architecture governance |
    | | | | Managing the development process | |
    | | | | Managing the risks | |
    | | | | Communications with stakeholders | |
    @@ -58,6 +58,7 @@
    | | | Functional, integration, unit testing | Application architectures (3-layer cake, onion architecture...) | |
    | | | Performance & load testing | Layering & separation of concerns | |
    | | | | Design Patterns | |
    | | | | Integration patterns (circuit breaker, leaky bucket...) | |
    | | | | Testable architecture | |
    | | | | Accidental & essential complexities | |
    | | | | In-project testing frameworks & environment | |
  16. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,7 @@
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | **Haskell knowledge scope** | [Learn you a Haskell](http://learnyouahaskell.com/) | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | Knows several languages from different categories |
    | | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | [Functional Design and Architecture](https://leanpub.com/functional-design-and-architecture) | |
    | | | | [Thinking with types](https://leanpub.com/functional-design-and-architecture) | |
    | | | | [Other books on Software Architecture in Haskell](https://github.com/graninas/software-design-in-haskell#Books-on-Software-Architecture-in-Haskell) | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | High-kinded types | |
  17. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -5,6 +5,7 @@
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | **Haskell knowledge scope** | [Learn you a Haskell](http://learnyouahaskell.com/) | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | Knows several languages from different categories |
    | | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | [Functional Design and Architecture](https://leanpub.com/functional-design-and-architecture) | |
    | | | | [Thinking with types](https://leanpub.com/functional-design-and-architecture) | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | High-kinded types | |
  18. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,6 @@
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | **Haskell knowledge scope** | [Learn you a Haskell](http://learnyouahaskell.com/) | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | Knows several languages from different categories |
    | | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | [Functional Design and Architecture](https://leanpub.com/functional-design-and-architecture) | |
    | | | | [Thinking with types]() | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | High-kinded types | |
  19. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -4,7 +4,8 @@
    |- |- |- |- |- |
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | **Haskell knowledge scope** | [Learn you a Haskell](http://learnyouahaskell.com/) | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | Knows several languages from different categories |
    | | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | [Functional Design and Architecture](https://graninas.com/functional-design-and-architecture-book/) | |
    | | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | [Functional Design and Architecture](https://leanpub.com/functional-design-and-architecture) | |
    | | | | [Thinking with types]() | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | High-kinded types | |
  20. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,5 @@
    # Haskeller Competency Matrix

    | | Junior | Middle | Senior | Architect |
    |- |- |- |- |- |
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
  21. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -1,8 +1,8 @@
    | | Junior | Middle | Senior | Architect |
    |- |- |- |- |- |
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | **Haskell knowledge scope** | Learn you a Haskell | Get programming in Haskell | Haskell in Depth | Knows several languages from different categories |
    | | Get programming in Haskell | Haskell in Depth | Functional Design and Architecture | |
    | **Haskell knowledge scope** | [Learn you a Haskell](http://learnyouahaskell.com/) | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | Knows several languages from different categories |
    | | [Get programming in Haskell](https://www.manning.com/books/get-programming-with-haskell) | [Haskell in Depth](https://www.manning.com/books/haskell-in-depth) | [Functional Design and Architecture](https://graninas.com/functional-design-and-architecture-book/) | |
    | | | | | |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | High-kinded types | |
  22. @graninas graninas revised this gist Jul 23, 2020. 1 changed file with 10 additions and 10 deletions.
    20 changes: 10 additions & 10 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -1,10 +1,10 @@
    | | Junior | Middle | Senior | Architect |
    |- |- |- |- |- |
    | Haskell level | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | Haskell knowledge scope | Learn you a Haskell | Get programming in Haskell | Haskell in Depth | Knows several languages from different categories |
    | **Haskell level** | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | **Haskell knowledge scope** | Learn you a Haskell | Get programming in Haskell | Haskell in Depth | Knows several languages from different categories |
    | | Get programming in Haskell | Haskell in Depth | Functional Design and Architecture | |
    | | | | | |
    | Haskell | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | **Haskell** | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | High-kinded types | |
    | | Main ADTs (Maybe, Bool, Either...) | Basic lenses | Parametrized types | |
    | | Basic IO in the IO monad | Main monads (State, Reader, Writer, List, Either, Maybe) | FRP | |
    @@ -16,13 +16,13 @@
    | | Base high-order functions (map, filter...) | | | |
    | | Base collections (List, Map...) | | | |
    | | | | | |
    | General knowledge scope | Basic programming | Clean Code | Domain specific languages | Books on Software Architecture |
    | **General knowledge scope** | Basic programming | Clean Code | Domain specific languages | Books on Software Architecture |
    | | | Code Complete | Domain-Driven Design | |
    | | | Refactoring | Test Driven Development | |
    | | | Data structures and algorithms | Software Development methodologies | |
    | | | | Books on Design Patterns | |
    | | | | | |
    | Main activity | Learning | Writing code | Requirements gathering | Understanding business problems, strategy and direction |
    | **Main activity** | Learning | Writing code | Requirements gathering | Understanding business problems, strategy and direction |
    | | | Testing | Understanding project tasks | Cross-project communications |
    | | | Writing documentation | Designing the code, interfaces, subsystems, services | Cross-team communications |
    | | | | Managing the complexity | Architecturing cross-project systems, frameworks, foundation libraries |
    @@ -32,24 +32,24 @@
    | | | | Managing the risks | |
    | | | | Communications with stakeholders | |
    | | | | | |
    | Responsibility | | Responsible for own code & its quality | Responsible for project, its parts & design | Responsible for multiple projects |
    | **Responsibility** | | Responsible for own code & its quality | Responsible for project, its parts & design | Responsible for multiple projects |
    | | | | Responsible for achieving goals by the team | |
    | | | | | |
    | | | | | |
    | Teamwork skills | Working with mentor | Team player, relative independence | Team leading & mentoring | Cross-team leading |
    | **Teamwork skills** | Working with mentor | Team player, relative independence | Team leading & mentoring | Cross-team leading |
    | | | | Completely independent | |
    | | | | Able to drive the project from start to end | |
    | | | | | |
    | Problem solving skills | Can solve simple, local, small problems | Can solve local problems within the well-established project | Can define project-wide problems and solve them | Can define cross-project problems and solve them |
    | **Problem solving skills** | Can solve simple, local, small problems | Can solve local problems within the well-established project | Can define project-wide problems and solve them | Can define cross-project problems and solve them |
    | | | | Ability to not fall into perfectionism | |
    | | | | Ability to refrain from playing with Haskell | |
    | | | | | |
    | Fancy stuff | Doesn't know about it | Can recognize it | Knows how to avoid it | |
    | **Fancy stuff** | Doesn't know about it | Can recognize it | Knows how to avoid it | |
    | | | Can follow ready patterns of usage | Can use it when unavoidable | |
    | | | | Mitigates its impact | |
    | | | | Provides patterns of usage | |
    | | | | | |
    | Code quality, testability and maintainability | | KISS, DRY, YAGNI | SOLID, The Law of Demetr, Rule of Least Power | |
    | **Code quality, testability and maintainability** | | KISS, DRY, YAGNI | SOLID, The Law of Demetr, Rule of Least Power | |
    | | | Testing within a ready testing environment | Low coupling / High cohesion | |
    | | | Property-based testing | IoC & DI approaches | |
    | | | Functional, integration, unit testing | Application architectures (3-layer cake, onion architecture...) | |
  23. @graninas graninas created this gist Jul 23, 2020.
    60 changes: 60 additions & 0 deletions haskeller_competency_matrix.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,60 @@
    | | Junior | Middle | Senior | Architect |
    |- |- |- |- |- |
    | Haskell level | Basic Haskell | Intermediate Haskell | Advanced Haskell | Language-agnostic |
    | Haskell knowledge scope | Learn you a Haskell | Get programming in Haskell | Haskell in Depth | Knows several languages from different categories |
    | | Get programming in Haskell | Haskell in Depth | Functional Design and Architecture | |
    | | | | | |
    | Haskell | Lambdas, functions, composition | Advanced composition (point free, applicatives, functors, monads) | Some type-level Haskell (TH, Generics, GADTs, FunDeps, Type Families, HKDs...) | More focussed on the big picture rather on the language features |
    | | Base types (String, Int, Float...) | General types (Text, ByteString...) | High-kinded types | |
    | | Main ADTs (Maybe, Bool, Either...) | Basic lenses | Parametrized types | |
    | | Basic IO in the IO monad | Main monads (State, Reader, Writer, List, Either, Maybe) | FRP | |
    | | Lists, tuples | Monad transformers & monad stacks | Concurrency (STM, MVar, threads) | |
    | | ADTs | Advanced IO | | |
    | | Pattern Matching | Advanced type classes | | |
    | | Basic type classes (Show, Eq, Ord) | | | |
    | | Recursion | | | |
    | | Base high-order functions (map, filter...) | | | |
    | | Base collections (List, Map...) | | | |
    | | | | | |
    | General knowledge scope | Basic programming | Clean Code | Domain specific languages | Books on Software Architecture |
    | | | Code Complete | Domain-Driven Design | |
    | | | Refactoring | Test Driven Development | |
    | | | Data structures and algorithms | Software Development methodologies | |
    | | | | Books on Design Patterns | |
    | | | | | |
    | Main activity | Learning | Writing code | Requirements gathering | Understanding business problems, strategy and direction |
    | | | Testing | Understanding project tasks | Cross-project communications |
    | | | Writing documentation | Designing the code, interfaces, subsystems, services | Cross-team communications |
    | | | | Managing the complexity | Architecturing cross-project systems, frameworks, foundation libraries |
    | | | | Organizing the project | |
    | | | | Establishing coding standards | |
    | | | | Managing the development process | |
    | | | | Managing the risks | |
    | | | | Communications with stakeholders | |
    | | | | | |
    | Responsibility | | Responsible for own code & its quality | Responsible for project, its parts & design | Responsible for multiple projects |
    | | | | Responsible for achieving goals by the team | |
    | | | | | |
    | | | | | |
    | Teamwork skills | Working with mentor | Team player, relative independence | Team leading & mentoring | Cross-team leading |
    | | | | Completely independent | |
    | | | | Able to drive the project from start to end | |
    | | | | | |
    | Problem solving skills | Can solve simple, local, small problems | Can solve local problems within the well-established project | Can define project-wide problems and solve them | Can define cross-project problems and solve them |
    | | | | Ability to not fall into perfectionism | |
    | | | | Ability to refrain from playing with Haskell | |
    | | | | | |
    | Fancy stuff | Doesn't know about it | Can recognize it | Knows how to avoid it | |
    | | | Can follow ready patterns of usage | Can use it when unavoidable | |
    | | | | Mitigates its impact | |
    | | | | Provides patterns of usage | |
    | | | | | |
    | Code quality, testability and maintainability | | KISS, DRY, YAGNI | SOLID, The Law of Demetr, Rule of Least Power | |
    | | | Testing within a ready testing environment | Low coupling / High cohesion | |
    | | | Property-based testing | IoC & DI approaches | |
    | | | Functional, integration, unit testing | Application architectures (3-layer cake, onion architecture...) | |
    | | | Performance & load testing | Layering & separation of concerns | |
    | | | | Design Patterns | |
    | | | | Testable architecture | |
    | | | | Accidental & essential complexities | |
    | | | | In-project testing frameworks & environment | |