Getting Started
Skills Assessment

Skills Self-Assessment

⚠️

Be Brutally Honest

This assessment is for YOUR benefit. Overestimating your skills leads to frustration and abandoned PRs. Underestimating means missed opportunities.

The Skills Assessment Framework

┌─────────────────────────────────────────────────────────────────────────────┐
│                        SKILL LEVEL DEFINITIONS                              │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  LEVEL 0: UNFAMILIAR                                                        │
│  ═══════════════════                                                        │
│  Never used this technology. Would need to learn from scratch.              │
│                                                                             │
│  LEVEL 1: BEGINNER                                                          │
│  ══════════════════                                                         │
│  Completed tutorials. Can read basic code. Can make simple changes.         │
│  Need to Google constantly.                                                 │
│                                                                             │
│  LEVEL 2: INTERMEDIATE                                                      │
│  ═════════════════════                                                      │
│  Built personal projects. Understand core concepts. Can debug issues.       │
│  Google occasionally. Can follow complex code.                              │
│                                                                             │
│  LEVEL 3: ADVANCED                                                          │
│  ══════════════════                                                         │
│  Production experience. Deep understanding. Can architect solutions.        │
│  Rarely need to Google basics. Can explain to others.                       │
│                                                                             │
│  LEVEL 4: EXPERT                                                            │
│  ════════════════                                                           │
│  Years of experience. Community recognition. Published work.                │
│  Others ask YOU questions.                                                  │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Core Technical Skills

Rate yourself 0-4 on each:

Programming Languages

LanguageYour Level (0-4)Notes
JavaScript___Required for web projects
TypeScript___Many modern projects
Python___AI/ML, scripting, backend
Rust___Systems, crypto, performance
Go___Cloud, DevOps, backends
Java___Enterprise, Android
C/C++___Systems, embedded, games

Frontend Technologies

TechnologyYour Level (0-4)Notes
HTML/CSS___Fundamental
React___Most popular framework
Vue___Growing ecosystem
Next.js___React framework
Tailwind CSS___Utility-first CSS

Backend Technologies

TechnologyYour Level (0-4)Notes
Node.js___JS runtime
Express / Fastify___Node frameworks
Django / Flask___Python frameworks
REST APIs___API design
GraphQL___Alternative to REST
Databases (SQL)___PostgreSQL, MySQL
Databases (NoSQL)___MongoDB, Redis

DevOps & Tools

TechnologyYour Level (0-4)Notes
Git___Essential
GitHub___Essential
Docker___Containerization
CI/CD___GitHub Actions, etc
Linux/Terminal___Command line
Testing___Unit, integration

Skill Level Mapping to Projects

┌─────────────────────────────────────────────────────────────────────────────┐
│                   SKILL LEVEL → PROJECT COMPLEXITY                          │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  YOUR SKILLS                 SUITABLE PROJECTS                              │
│  ═══════════                 ════════════════                               │
│                                                                             │
│  Level 1 (Beginner)          • Documentation fixes                          │
│                              • Typo corrections                             │
│                              • Simple static websites                       │
│                              • README improvements                          │
│                                                                             │
│  Level 2 (Intermediate)      • Bug fixes                                    │
│                              • Small features                               │
│                              • Test additions                               │
│                              • Refactoring tasks                            │
│                                                                             │
│  Level 3 (Advanced)          • Complex features                             │
│                              • Performance improvements                     │
│                              • Architecture work                            │
│                              • Security fixes                               │
│                                                                             │
│  Level 4 (Expert)            • Core architecture                            │
│                              • Major features                               │
│                              • Mentoring others                             │
│                              • Release management                           │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

Non-Technical Skills

These matter as much as coding:

Communication

Can you write clear bug reports, PR descriptions, and issue comments? Can you explain technical concepts in writing?

Research

Can you find answers in documentation before asking? Can you search effectively through codebases?

Patience

Can you wait weeks for a review? Can you handle rejection gracefully? Can you persist through confusion?

Time Management

Can you commit consistent time? Can you break down tasks? Can you estimate effort?


Self-Assessment Quiz

Answer honestly:

Coding Ability

  • I can write a complete program from scratch (not just tutorials)
  • I can debug errors without copying from Stack Overflow
  • I can read code written by others and understand it
  • I can write tests for my code
  • I understand version control (branching, merging, conflicts)

0-1 checked: Focus on learning fundamentals first 2-3 checked: Ready for simple contributions 4-5 checked: Ready for moderate contributions

Codebase Navigation

  • I can navigate an unfamiliar project structure
  • I can find where specific functionality lives
  • I understand common patterns (MVC, service layers, etc)
  • I can trace execution flow through a codebase

0-1 checked: Spend more time studying codebases 2-3 checked: Adequate for getting started 4 checked: You're well prepared


Honest Self-Portraits

Portrait A: The Absolute Beginner

┌─────────────────────────────────────────────────────────────────┐
│  Profile: ABSOLUTE BEGINNER                                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Coding:              ▓░░░░░░░░░ (1-2 months experience)       │
│  Git:                 ░░░░░░░░░░ (Never used)                  │
│  Reading others code: ░░░░░░░░░░ (Difficult)                   │
│  Communication:       ▓▓▓░░░░░░░ (Okay)                        │
│                                                                 │
│  RECOMMENDED PATH:                                              │
│  1. Complete a comprehensive tutorial first                     │
│  2. Build 2-3 personal projects                                 │
│  3. Learn Git thoroughly                                        │
│  4. Start with documentation contributions only                 │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Portrait B: The Tutorial Graduate

┌─────────────────────────────────────────────────────────────────┐
│  Profile: TUTORIAL GRADUATE                                     │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Coding:              ▓▓▓░░░░░░░ (6-12 months)                 │
│  Git:                 ▓▓░░░░░░░░ (Basic commands)              │
│  Reading others code: ▓▓░░░░░░░░ (Challenging)                 │
│  Communication:       ▓▓▓░░░░░░░ (Adequate)                    │
│                                                                 │
│  RECOMMENDED PATH:                                              │
│  1. Choose beginner-friendly projects                           │
│  2. Start with "good first issue" labels                        │
│  3. Focus on small, well-defined bugs                           │
│  4. Expect first PR to take 2-3x longer                         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Portrait C: The Junior Developer

┌─────────────────────────────────────────────────────────────────┐
│  Profile: JUNIOR DEVELOPER                                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Coding:              ▓▓▓▓▓░░░░░ (1-2 years)                   │
│  Git:                 ▓▓▓▓░░░░░░ (Regular use)                 │
│  Reading others code: ▓▓▓▓░░░░░░ (Comfortable)                 │
│  Communication:       ▓▓▓▓░░░░░░ (Good)                        │
│                                                                 │
│  RECOMMENDED PATH:                                              │
│  1. Target medium-sized projects                                │
│  2. Take on bug fixes and small features                        │
│  3. Start reviewing others' PRs (for learning)                  │
│  4. Aim to become a regular contributor                         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Portrait D: The Experienced Developer

┌─────────────────────────────────────────────────────────────────┐
│  Profile: EXPERIENCED DEVELOPER                                 │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Coding:              ▓▓▓▓▓▓▓▓░░ (3+ years)                    │
│  Git:                 ▓▓▓▓▓▓▓░░░ (Advanced)                    │
│  Reading others code: ▓▓▓▓▓▓▓░░░ (Easy)                        │
│  Communication:       ▓▓▓▓▓▓░░░░ (Strong)                      │
│                                                                 │
│  RECOMMENDED PATH:                                              │
│  1. Choose projects aligned with career goals                   │
│  2. Take on substantial features                                │
│  3. Consider becoming a regular contributor                     │
│  4. Help mentor newcomers                                       │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Your Skills Summary

After completing this assessment, write down:

  1. Primary Language: _________________ (Level: ___)
  2. Secondary Language: _________________ (Level: ___)
  3. Primary Framework: _________________ (Level: ___)
  4. Git Level: ___
  5. Overall Readiness: Beginner / Intermediate / Advanced
⚠️

If You're Not Ready Yet

It's okay to spend more time learning before contributing. Contributing to open source with weak fundamentals leads to frustration for everyone. Build skills → then contribute.