--- 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)