Giter VIP home page Giter VIP logo

handbook's Introduction

Suncoast Developers Guild Handbook

License: CC BY-SA 4.0

A guide for students of the Suncoast Developers Guild.

πŸš€ Quick start for contributors

  1. Enter the web directory.

    cd web
  2. Install dependencies.

    We use the yarn package manager.

    yarn install
  3. Start developing.

    Navigate into the site’s directory and start it up.

    cd web
    yarn start
  4. Open the source code and start editing!

    The handbook is now running at http://localhost:8000!

    Note: You'll also see a second link: http://localhost:8000/___graphql. This is a tool you can use to experiment with querying data. Learn more about using this tool in the Gatsby tutorial.

🧐 What's inside?

A quick look at the some of the files and directories you'll see.

.
β”œβ”€β”€ assignments
β”œβ”€β”€ lessons
β”œβ”€β”€ meta
β”œβ”€β”€ programs
β”œβ”€β”€ warm-ups
β”œβ”€β”€ web
β”œβ”€β”€ .prettierrc.json
β”œβ”€β”€ LICENSE
β”œβ”€β”€ README.md
  1. /assignments: This directory contains markdown formatted Assignments referenced by Lessons.

  2. /lessons: This directory contains Lesson definitions. Each lessons contains markdown-formatted reading, lecture notes and associated presentations.

  3. /meta: Legacy content and some other things like writing style guides, work-in-progress lessons, etc.

  4. /programs: YAML definitions of the Programs offered by SDG. This is where a Program is associated with Lessons (via Modules).

  5. /warm-ups: A sort-of miniature lesson/assignment used as a warm-up or practice outside of lecture time.

  6. /web: This directory contains the actual Gatsby project the powers our Handbook.

  7. .prettierrc.json: This is a configuration file for Prettier. Prettier is a tool to help keep the formatting of code consistent. All contributions to this repository should be formatted according to these rules.

  8. LICENSE: Our Handbook's content is licened up a Creative Commons (CC BY-SA 4.0) license. The web application is MIT.

  9. README.md: You're looking at it!

πŸŽ“ Learning Gatsby

Looking for more guidance? Full documentation for Gatsby lives on the website.

handbook's People

Contributors

alsleaders avatar ambethia avatar amheisern avatar andregce avatar angelmurchison avatar biggspidey avatar bradl3yc avatar breadkenty avatar chicken-teriyaki-cup-rice avatar dantezinfern0 avatar dubistdu avatar elro1118 avatar evan-gilbert-1212 avatar gitbook-bot avatar gstark avatar jbryan382 avatar jeana-g avatar jessicahoward avatar jonathonchilds avatar ktrammell95 avatar lizthrilla avatar magnusquest avatar mandyw0312 avatar mdewey avatar nickryanweber avatar perseusripple avatar pgd77 avatar philkrause avatar taarts avatar taydunworth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

handbook's Issues

Quick Refeference Guide: Typical primitive algorithm steps

This one is a bit tricky, but here is how I think it can go:

  1. Review all the codewars we tend to assign students during a cohort
  2. Break each one down into a technique used to solve it. e.g.:
  • Splitting a string
  • Filtering an array
  • Mapping an array
  • Summing data
  • Conditional ("if")
  • Switch statements
  • Even vs odd
  • etc.
  1. Then for each of those write that as an algorithm step and a brief statement about:
    a. How to determine an algorithm might need that approach
    b. How to implement it in an algorithm (give an example)

Add to Curriculum: Design Patterns

As a student, one of my biggest points of confusion was in my lack of understanding of entity framework itself (still need to figure that one out) but also common architectural and design patterns in general.

Therefore I suggest taking at least a day to talk about:

  • specific design patterns: big picture view of what we're building
  • common design patterns: things to look out for in other code and techniques to incorporate into new code

Homework assignments can be:

  • (no code) design an application
  • pick a design pattern and build out a proof
  • (presentation?) explain what patterns someone else used in their code

Quick Reference Guide: Add example of supporting Date field types in C# APIs

dotnet only has a DateTime and sometimes we want fields to just report a date.

Try this code to see if we can demonstrate how to format on both send and receive of api data as just a date:

[DataType(DataType.Date)]
[JsonConverter(typeof(JsonDateConverter))]
public DateTime InstallationDate { get; set; }

Also define this class:

class JsonDateConverter : JsonConverter<DateTime>
    {
        public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
       => DateTime.ParseExact(reader.GetString(),
                    "yyyy-MM-dd", CultureInfo.InvariantCulture);
        public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
       => writer.WriteStringValue(value.ToString(
                    "yyyy-MM-dd", CultureInfo.InvariantCulture));
    }

Add Moving information

Add some sort of information about moving to Tampa Bay

  • resources for housing
  • places to go
  • etc

Quick Reference GUide: Common C# List methods

Review the MSDN documentation on List and produce a set of descriptions and examples for many of the common methods a student would use in their assignments and codewars. We have somethign similar for LINQ but there are many useful List methods outside of LINQ

Week 13 Track

Problem: After a student graduates the program, they are just getting into the swing of learning, creating and developing software. But after 12 weeks, they are no longer working a set curriculum or program and it's up to the student to maintain that momentum.

Proposed solution: Create something that incorporates the job hunt as well as continues to learning to be a developer to help students continue to grow at an achievable and measurable pace.

Quick Reference Guide: Use of Insomnia

lessons/misc-quick-reference/insomnia.md

Show how to:

  • Create a new project to work with a new API
  • Send a simple GET request
  • View the results
    • Processed data
    • Raw data
    • Headers
  • Show how to send a POST request that requires a JSON body
  • Show how to send other requests (DELETE, etc)

A good API to use as an example might be: https://one-list-api.herokuapp.com/

Add to Curriculum: Unit Testing

If you want to solve a problem, you have to understand it first. Writing unit tests is a powerful way of ensuring that you really understand both what your code does but especially the problem you're trying to solve.

My favorite takeaways from my cohort were the habits I learned but there were so many more that I wish I would've been exposed to. I'm still struggling with writing my own unit tests because I didn't start with them.

Topics:

  • What is a unit test
  • Test driven development
  • Preventing confusion in teams working on big projects by implementing safeguards

Potential assignments:

  • write a unit test for a simple function
  • purposefully break a test
  • design an application around a series of unit tests
  • hard mode: write a unit test for someone else's code

Quick Reference Guide: Basic JSON

Write a guide to understanding JSON lessons/misc-quick-reference/json.md

This should include:

  • Syntax
  • Examples from APIs
  • Descriptions of how to parse JSON in C# and JavaScript
  • Descriptions of how to use JSON in code
    • Show examples of looping through JSON results that are an array
    • Show examples of using JSON results that is a root object with nested elements. See https://sdg-octodex.herokuapp.com/ as a very simple example (where there is a data key that has the data to process)

Remove Prework

Per discussion with @mdewey, I think prework should exist as it's own repo/document.

Also, do we want to think of a new name for it? Or stick with "prework". Let's have that discussion here.

Fix up app-app

@ambethia will work on getting app-app ready as the project boiler-plate generating tool for Unit I

Clean up homework assignents

Expand the current Homework assignments
Including, but not limited to:

  • Cleaning and betterment of exists assignments
  • Create Wireframes, HTML, and CSS to give to students
  • flushing out requirements
  • Create answer keys
  • Creation of new alternate homework assignments

Quick Reference Guide: CSS Colors

See the color-picker assignment for a light intro to color theory

But this should also cover rgb, rgba, and hexadecimal colors (and explain hexadecimal itself -- OR refer to another guide that explains hex)

Quick Reference Guide: Explain what a "pager" is

Students will come up against a "pager" in pgcli if they ever get more than a page of results.

Explain a pager tool like more or less, how it shows a page of data at a time and uses keyboard keys to move forward and backwards and exit.

Perhaps use pgcli as an example

Quick Reference Guide: The General Guide to Building a React App

Describe:

  • Hard code the UI including duplication of data

  • Extract one hard coded example to a component

  • Replace the use of that component with driving from props

  • Use static data in a JSON file or variable by copying from the API

  • Turn this into a map of data using our component

  • Remove the JSON file/variable and use state with an empty data set (empty array or object, etc.)

  • Render from state instead of the JSON file/varaible

  • Use fetch/axios to load data and set state.

  • See that the app renders from the data from the API

  • Creating a form to edit data

  • Track the form's data in state

  • form submit action

  • Use fetch/axios to send data to api

  • Using React Router to render different pages

  • Using useParams to get routing params

  • Using useHistory to force navigation

Quick Reference Guide: Regular Expressions

Explain:

  • Regular Expressions is a mini language
  • Used to match data that follows a pattern
  • Uses symbols to represent data
  • Is complex and a deep subject
  • The use of simple regular expressions can go a long way
  • Give simple examples in:
    • C#
    • JavaScript
  • Show helpful sites like: https://rubular.com/ - even though is Ruby regexp, can be helpful to understand/test regexp.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.