---
# System prepended metadata

title: Friday Challenges Overview
tags: ["2 \U0001F4DD in writing", "3 \U0001F9EA in testing", documentation, "4 \U0001F973 done"]

---

---
title: "Friday Challenges Overview"
tags: 
  - 2 📝 in writing
  - 3 🧪 in testing
  - 4 🥳 done
  - documentation
---
<!-- markdownlint-disable line-length single-h1 no-inline-html -->
<!-- markdownlint-configure-file { "ul-indent": { "indent": 4 }, "link-fragments": {"ignore_case": true} } -->

{%hackmd dJZ5TulxSDKme-3fSY4Lbw %}

# Friday Challenges Overview

## Introduction & Outcomes

Most Fridays, you have the opportunity to earn bonus points by incorporating professional development practices into your codebase. These challenges are designed to help you gradually learn industry-standard practices and tools that you'll need in future assignments. Think of them as a chance to practice and perfect your skills before they become required!

:::info
📝 **Note**: Detailed slides and examples for each Friday Challenge can be found in the lecture materials on Moodle.
:::

## What You'll Learn & Accomplish

1. **Code Style and Documentation:**
    - Master professional code formatting standards
    - Learn to write clear and helpful documentation
    - **Outcomes**: You'll be able to:
        - Write code that follows Google's Java Style Guide
        - Create professional JavaDoc documentation
        - Keep your code style consistent across all your projects

2. **Professional Development Tools:**
    - Get comfortable with IDE tools that make your life easier
    - Learn how to use automated code quality tools
    - **Outcomes**: You'll be able to:
        - Use IntelliJ's formatting shortcuts like a pro
        - Generate and check JavaDoc documentation quickly
        - Understand and fix Checkstyle warnings

3. And more!

# Tips for Success

1. **Build Good Habits Gradually**:
    - Week 02: Focus on getting your formatting right
    - Week 03: Add good documentation habits
    - Week 04: Put it all together
2. **Use Your Tools**:
    - Format your code with ⌘⌥L (Mac) or Ctrl+Alt+L (Windows)
    - Watch for real-time Checkstyle feedback
    - Let IntelliJ help you generate JavaDocs
3. **Watch Out For**:
    - Forgetting to document your public methods
    - Inconsistent brace placement
    - Missing descriptions in your @param tags
    - Wrong order of JavaDoc tags

# Your Challenge Journey (In reverse order so most recent is on top)

## Week 04 - Comprehensive Checkstyle

### What You'll Learn - Week 04

Now you'll combine everything you've learned about style and documentation, preparing for the stricter requirements coming up in future assignments.

### What's Included - Week 04

- More advanced formatting rules
- Complete documentation requirements
- Enhanced type checking
- Professional-level standards

### How to Succeed - Week 04

Your code should have:

- No Checkstyle errors
- Very few style warnings
- Complete JavaDoc documentation
- Professional-quality code organization

## Week 03 - JavaDocs

### What You'll Learn - Week 03

Building on your style skills, you'll learn how to document your code like a professional using JavaDocs. This is a key skill that employers look for!

### What's Included - Week 03

- How to document your methods and classes
- Writing clear parameter descriptions
- Documenting return values properly
- Handling exception documentation
- Adding author and citation information

### How to Succeed - Week 03

Your documentation should have:

- Clear descriptions of what your methods do
- Helpful parameter explanations
- Proper use of all required @tags
- Professional-looking documentation style

## Week 02 - Basic Checkstyle

### What You'll Learn - Week 02

Your first Friday Challenge introduced you to code style standards using Checkstyle. Don't worry - we've configured it to follow Google's Java Style Guide and made all issues show up as warnings while you're learning.

### What's Included - Week 02

- Basic rules for formatting your code
- How to name your variables and methods properly
- Core structure checks to keep your code organized
- A gentle introduction with all issues as warnings

### How to Succeed - Week 02

Make sure your code has:

- Clean indentation (no messy spacing)
- Consistent brace placement (no dangling braces)
- Clear variable names (no single letters or confusing abbreviations)
- Organized structure (easy to read and understand)

# What's Coming Next

Each week's Friday Challenge will introduce new concepts and practices. Some challenges may become ongoing requirements for future assignments, while others will be one-time bonus opportunities. Check the weekly lecture notes on Moodle for:

- Which practices become required
- When new requirements take effect
- Details about bonus point opportunities
- Specific grading criteria

Future challenges could cover topics like:

- Design patterns
- Advanced programming concepts
- Software engineering best practices
- And other professional development skills
- Have something you want to cover?  Let me know!

# Helpful Resources

- Google Java Style Guide (for style rules)
- Oracle's JavaDoc Guide (for documentation examples)
- IntelliJ Documentation (for tool tips)
- Our Course Checkstyle Configuration (in your project)
