Getting Help

Learn when and how to ask for help effectively, so you can get unstuck faster and learn more in the process.

What You'll Learn

  • When to ask for help
  • How to ask good questions
  • Where to get help
  • What information to include
  • How to help others
  • Building your support network

When to Ask for Help

The 30-Minute Rule

Try for 30 minutes, then ask.

If you're stuck after 30 minutes of genuine effort:

  • ✅ You've learned from trying
  • ✅ You can explain what you've tried
  • ✅ You won't waste hours on the wrong path

Don't wait days! Asking for help is a skill, not a weakness.

Signs You Should Ask

1. You're completely stuck:

"I've tried 5 different approaches and nothing works."

2. Error message makes no sense:

"I've Googled this error but can't find relevant solutions."

3. It worked, but you don't know why:

"I fixed it by changing X, but I don't understand why that worked."

4. You're going in circles:

"I keep trying the same things hoping for different results."

5. You need confirmation:

"I think this is the right approach, but want to check before proceeding."

When NOT to Ask

Before trying:

❌ "How do I change the homepage text?"
   (Try reading the file first!)

✅ "I found the homepage in app/page.tsx but changing line 25
   doesn't update the page. I've saved and refreshed. What am I missing?"

For simple lookups:

❌ "What's the Tailwind class for blue text?"
   (Check documentation first)

✅ "I'm using text-blue-600 but it's not applying. I've checked
   the Tailwind docs and tried text-blue-500. Here's my code..."

How to Ask Good Questions

The XY Problem

Don't ask about your attempted solution (Y), ask about your actual problem (X).

❌ Bad: "How do I use setInterval in useEffect?"
   (This is Y - your attempted solution)

✅ Good: "I want to update a timer every second. I tried setInterval
   in useEffect but it keeps creating multiple timers. Here's my code..."
   (This is X - your actual goal)

Now helpers can suggest the right approach, which might not involve setInterval at all.

Good Question Template

1. What are you trying to do?

"I'm trying to add a contact form to the /contact page."

2. What have you tried?

"I created app/contact/page.tsx and added a form component.
I followed the Working with Forms guide (Chapter 8)."

3. What happened?

"When I submit the form, I get this error:
[paste exact error message]"

4. What did you expect to happen?

"I expected the form data to be logged to console."

5. Include relevant code:

// app/contact/page.tsx
export default function ContactPage() {
  // ... paste relevant code (not the entire file!)
}

Example Good Question

**Goal**: Add a "Resources" link to the navigation

**What I tried**:
1. Opened components/layout/Navigation.tsx
2. Added this to navItems array:
   { name: "Resources", href: "/resources" }
3. Saved the file and refreshed browser

**Problem**:
The link appears in navigation but clicking it shows 404.

**What I expected**:
Link should go to /resources page.

**Code**:
```tsx
const navItems = [
  { name: "Home", href: "/" },
  { name: "About", href: "/about" },
  { name: "Resources", href: "/resources" }, // Added this
];

What I've checked:

  • File exists at app/resources/page.tsx
  • Page has default export
  • No TypeScript errors
  • Restarted dev server

Any ideas what I'm missing?


**Why this is good**:
- Shows what they tried
- Includes exact error/behavior
- Provides relevant code
- Shows debugging steps taken
- Specific and focused

## What to Include

### Essential Information

**1. Error messages**:

❌ "I'm getting an error" ✅ "Error: Module not found: Can't resolve '@/components/Header'"


Copy the **full error message** from console.

**2. Code snippets**:
```tsx
// Include:
- Relevant function/component
- Imports at the top
- Line numbers if referencing error

// Don't include:
- Entire file (unless very short)
- Unrelated code

3. What you've tried:

"I've tried:
1. Restarting dev server
2. Checking file exists at that path
3. Changing import to relative path: '../components/Header'
4. Running npm install in case of missing dependency"

4. Environment info (if relevant):

- Mac/Windows/Linux
- Node version: 18.17.0
- npm version: 9.6.7
- Browser: Chrome 120

How to Share Code

Option 1: Code blocks (for snippets):

```tsx
function MyComponent() {
  return <div>Hello</div>;
}
```

Option 2: GitHub link (for full files):

Link to file in your branch:
https://github.com/your-username/k12worx-jamboree/blob/your-branch/file.tsx#L25

Option 3: Screenshots:

  • Use for visual issues (layout, styling)
  • Include both browser view and code
  • Circle/highlight the problem area

Screenshots Best Practices

Good screenshots show:

  • The problem clearly
  • Relevant code if applicable
  • Error messages
  • Console output

Take multiple if needed:

  1. Browser view showing the issue
  2. DevTools console showing errors
  3. Code editor showing relevant code

Where to Get Help

K12worX Team

GitHub Issues:

  • Best for bugs or feature requests
  • Searchable by others
  • Tracked and archived

Team Slack/Discord:

  • Quick questions
  • Real-time help
  • Team discussions

Pair Programming:

  • Schedule with mentor
  • Screen share and work together
  • Learn by doing

General Resources

Stack Overflow:

  • Search first! Your question might be answered
  • Ask if genuinely stuck and can't find answer
  • Follow their question guidelines

Next.js Discord:

  • Official Next.js community
  • Help with Next.js-specific issues
  • Active and friendly

React Discord/Forums:

  • React-specific questions
  • Component patterns
  • Best practices

GitHub Issues:

  • For library/framework bugs
  • Check issues before creating new one
  • Provide reproduction if possible

Documentation

Always check first:

Our docs:

  • This learning guide
  • README files in each folder
  • Code comments

Asking in Person vs Online

In Person / Video Call

Best for:

  • Complex issues
  • Pair programming
  • Learning new concepts
  • When you need guidance

Prepare:

  • Have your code ready
  • Know what you want to ask
  • Share screen if remote

Online / Async

Best for:

  • When you can wait for response
  • Creating searchable record
  • Detailed technical questions

Benefits:

  • Others can help when available
  • You can include detailed code/errors
  • Searchable for future reference

How to Help Others

When Someone Asks You

1. Ask clarifying questions:

"Can you show me the error message?"
"What file is this code in?"
"What have you tried so far?"

2. Don't just give the answer:

❌ "Change line 15 to this: [code]"

✅ "The error says the variable is undefined. What does that mean?
   Can you check if the variable exists before using it?"

Help them learn, don't just fix it for them.

3. Point to resources:

"This is covered in Chapter 5 of the learning guide.
Check the section on responsive design."

4. Pair debug:

"Let's look at the error together. What file is it pointing to?
Now let's go to that line..."

Paying It Forward

As you learn, help others learn:

  • Answer questions in Slack/Discord
  • Review pull requests
  • Write documentation
  • Share what you learned

Teaching reinforces your learning!

Getting Unstuck Yourself

Before Asking

Try these first:

  1. Read the error message carefully

    • What file?
    • What line?
    • What's the actual error?
  2. Google the error

    Search: "react [exact error message]"
    Search: "nextjs [what you're trying to do]"
    
  3. Check the docs

    • Next.js, React, Tailwind
    • This learning guide
  4. Use console.log

    • What's the actual value?
    • Is the code even running?
  5. Simplify

    • Remove complexity
    • Get minimal version working
    • Add back piece by piece
  6. Take a break

    • Walk away for 10 minutes
    • Come back with fresh eyes

After 30 minutes → Ask for help!

Response Etiquette

When You Get Help

1. Acknowledge quickly:

"Thanks! I'll try that and report back."

2. Report results:

✅ "That worked! Changing X fixed it. Thanks!"
❌ [silence after getting help]

3. Explain what you learned:

"Oh I see - I was modifying the wrong file. The navigation
is in layout/Navigation.tsx not components/Navigation.tsx."

4. Say thank you:

A simple "Thank you!" goes a long way.

5. Mark as solved (forums/GitHub):

  • Helps others find solutions
  • Shows what worked

Following Up

If the suggestion doesn't work:

"Thanks for the suggestion! I tried [what they suggested] but
still getting [result]. Here's what I did:
[details]

Any other ideas?"

Building Your Network

Find Your People

Study group:

  • Meet regularly
  • Work through problems together
  • Hold each other accountable

Mentor:

  • More experienced developer
  • Can guide your learning
  • Reviews your code

Peers:

  • Others at your level
  • Learn together
  • Motivate each other

Be a Good Community Member

Contribute:

  • Answer questions
  • Share resources
  • Write documentation
  • Help newcomers

Be patient:

  • Everyone was a beginner once
  • Questions help everyone learn

Be respectful:

  • Assume good intent
  • Stay professional
  • Appreciate different perspectives

Quick Reference

When to ask for help:

- Stuck after 30 minutes of trying
- Error message makes no sense
- Going in circles
- Need confirmation on approach

Good question includes:

1. What you're trying to do
2. What you've tried
3. What happened (with errors)
4. Relevant code
5. What you expected

Where to ask:

K12worX team:
- GitHub Issues (bugs/features)
- Slack/Discord (questions)
- Pair programming (complex issues)

General:
- Stack Overflow
- Next.js/React Discord
- Official docs

Before asking:

1. Read error message
2. Google it
3. Check docs
4. Try debugging
5. Simplify problem
6. Take a break
After 30 min → Ask!

What's Next

Congratulations! You've completed Chapter 09 - Troubleshooting. You now have the skills to debug issues and get help when stuck.

Continue to: