diff --git a/.gitbook/assets/gems.jpeg b/.gitbook/assets/gems.jpeg new file mode 100644 index 0000000..90b901f Binary files /dev/null and b/.gitbook/assets/gems.jpeg differ diff --git a/.gitbook/assets/inthelab.jpg b/.gitbook/assets/inthelab.jpg new file mode 100644 index 0000000..d15a890 Binary files /dev/null and b/.gitbook/assets/inthelab.jpg differ diff --git a/.gitbook/assets/screen-shot-2020-03-29-at-3.00.05-pm.png b/.gitbook/assets/screen-shot-2020-03-29-at-3.00.05-pm.png new file mode 100644 index 0000000..8536cf5 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-29-at-3.00.05-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-29-at-3.06.54-pm.png b/.gitbook/assets/screen-shot-2020-03-29-at-3.06.54-pm.png new file mode 100644 index 0000000..47279de Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-29-at-3.06.54-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-29-at-7.41.39-pm.png b/.gitbook/assets/screen-shot-2020-03-29-at-7.41.39-pm.png new file mode 100644 index 0000000..f115a9e Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-29-at-7.41.39-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-30-at-1.40.58-pm.png b/.gitbook/assets/screen-shot-2020-03-30-at-1.40.58-pm.png new file mode 100644 index 0000000..6ab1d94 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-30-at-1.40.58-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-30-at-11.11.57-am.png b/.gitbook/assets/screen-shot-2020-03-30-at-11.11.57-am.png new file mode 100644 index 0000000..9aaeea0 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-30-at-11.11.57-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-30-at-8.51.29-pm.png b/.gitbook/assets/screen-shot-2020-03-30-at-8.51.29-pm.png new file mode 100644 index 0000000..d09b17b Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-30-at-8.51.29-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-30-at-9.47.31-am.png b/.gitbook/assets/screen-shot-2020-03-30-at-9.47.31-am.png new file mode 100644 index 0000000..6f58bec Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-30-at-9.47.31-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-30-at-9.48.40-am.png b/.gitbook/assets/screen-shot-2020-03-30-at-9.48.40-am.png new file mode 100644 index 0000000..3bc80cf Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-30-at-9.48.40-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-30-at-9.54.54-pm.png b/.gitbook/assets/screen-shot-2020-03-30-at-9.54.54-pm.png new file mode 100644 index 0000000..83f4cee Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-30-at-9.54.54-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.22.12-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.22.12-am.png new file mode 100644 index 0000000..07024b0 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.22.12-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.23.04-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.23.04-am.png new file mode 100644 index 0000000..b2f7c7c Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.23.04-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.24.48-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.24.48-am.png new file mode 100644 index 0000000..5da59ba Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.24.48-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.26.07-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.26.07-am.png new file mode 100644 index 0000000..fc24006 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.26.07-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.26.13-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.26.13-am.png new file mode 100644 index 0000000..3804b90 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.26.13-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.29.15-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.29.15-am.png new file mode 100644 index 0000000..9bd77c9 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.29.15-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.29.49-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.29.49-am.png new file mode 100644 index 0000000..269a476 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.29.49-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.35.03-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.35.03-am.png new file mode 100644 index 0000000..633facf Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.35.03-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.36.37-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.36.37-am.png new file mode 100644 index 0000000..94de591 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.36.37-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.36.54-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.36.54-am.png new file mode 100644 index 0000000..a3789f8 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.36.54-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.37.02-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.37.02-am.png new file mode 100644 index 0000000..d87f9d4 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.37.02-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.39.06-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.39.06-am.png new file mode 100644 index 0000000..6b38bb2 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.39.06-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.39.38-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.39.38-am.png new file mode 100644 index 0000000..6f5eec4 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.39.38-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-1.40.52-am.png b/.gitbook/assets/screen-shot-2020-03-31-at-1.40.52-am.png new file mode 100644 index 0000000..2e6d08c Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-1.40.52-am.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-8.11.01-pm.png b/.gitbook/assets/screen-shot-2020-03-31-at-8.11.01-pm.png new file mode 100644 index 0000000..35bd1cd Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-8.11.01-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-8.11.56-pm.png b/.gitbook/assets/screen-shot-2020-03-31-at-8.11.56-pm.png new file mode 100644 index 0000000..4d043a4 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-8.11.56-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-8.13.14-pm.png b/.gitbook/assets/screen-shot-2020-03-31-at-8.13.14-pm.png new file mode 100644 index 0000000..79b4f0e Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-8.13.14-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-8.15.52-pm.png b/.gitbook/assets/screen-shot-2020-03-31-at-8.15.52-pm.png new file mode 100644 index 0000000..ec8f357 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-8.15.52-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-8.17.01-pm.png b/.gitbook/assets/screen-shot-2020-03-31-at-8.17.01-pm.png new file mode 100644 index 0000000..12ff3e9 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-8.17.01-pm.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-8.18.12-pm-1.png b/.gitbook/assets/screen-shot-2020-03-31-at-8.18.12-pm-1.png new file mode 100644 index 0000000..31bc2e6 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-8.18.12-pm-1.png differ diff --git a/.gitbook/assets/screen-shot-2020-03-31-at-8.20.23-pm.png b/.gitbook/assets/screen-shot-2020-03-31-at-8.20.23-pm.png new file mode 100644 index 0000000..83cedb6 Binary files /dev/null and b/.gitbook/assets/screen-shot-2020-03-31-at-8.20.23-pm.png differ diff --git a/.gitbook/assets/smalltobig.jpeg b/.gitbook/assets/smalltobig.jpeg new file mode 100644 index 0000000..64721a4 Binary files /dev/null and b/.gitbook/assets/smalltobig.jpeg differ diff --git a/.github/ISSUE_TEMPLATE/daily-checklist--director-of-devrel.md b/.github/ISSUE_TEMPLATE/daily-checklist--director-of-devrel.md new file mode 100644 index 0000000..513a93c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/daily-checklist--director-of-devrel.md @@ -0,0 +1,60 @@ +--- +name: 'Daily Checklist: Director of DevRel' +about: Describe this issue template's purpose here. +title: 'Daily Checklist: *insert date here*' +labels: daily +assignees: kavuong + +--- + +### Date +*insert date here* + +### Daily List to Do +- [ ] Follow-up with collaborators on all active issues +- [ ] Meeting notes for upcoming meetings +- [ ] Clean-up all of today's meetings + - [ ] Update and push meeting notes to bitprj/meetings + - [ ] Update issues pertaining to meetings +- [ ] Update Table: status of 1-1s and all-manager meeting +- [ ] Later in week: ensure all PRs are met; update Table +- [ ] Plan upcoming issues + - [ ] Start active issues +- [ ] Be proactive and generate new issues, if applicable! +- [ ] Update today's activity below + +* End of day + - [ ] Update all issues' progress in the appropriate project + - [ ] Update active issues + - [ ] Update completed issues + +### Summary of today's activity + +* +* + +### All active issues +* +* +### All completed issues +* + +### Manager Table +Manager Name | 1-1 Scheduled? | Meeting Notes Made? | Meeting Completed? | Dev PRs in (by Fri) | Manager PRs in (by Sun) | One dev -> manager PR audited +----|-------------|----------|------|-|-|- +Sarah | | | | | | +Jason | | | | | | +Michelle | | | | | | +Owen | | | | | | +Ismail | | | | | | +Jeff | | | | | | +All-Managers | | | | | | + +Manager Name | Team Milestone set-up? | Team Meeting on Google? +-|-|- +Sarah | | | +Jason | | | +Michelle | | | +Owen | | | +Ismail | | | +Jeff | | | diff --git a/README.md b/README.md index 2483de8..6109b6d 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ We make software engineering and computer science education accessible to studen [Communication](organization/communication.md) -[Culture](organization/culture.md) +[Culture]() [Style Guide](organization/style-guides/) @@ -52,10 +52,10 @@ We make software engineering and computer science education accessible to studen ## Marketing -[Community Relations](teams/community-relations/) +[Community Relations]() -* [First-Time Contributors Program](teams/community-relations/first-time-contributors-program.md) -* [Starting a Branch](teams/community-relations/starting-a-branch/) +* [First-Time Contributors Program]() +* [Starting a Branch]() * High School * Collegiate * Hackathons @@ -65,7 +65,7 @@ We make software engineering and computer science education accessible to studen [Talent Acquisition](teams/people/talent-acquisition.md) -[Inclusion & Diversity](organization/values/inclusion-and-diversity.md) +[Inclusion & Diversity](organization/values/inclusion-and-diversity/) [On-Boarding](teams/people/onboarding-guides.md) diff --git a/SUMMARY.md b/SUMMARY.md index ab6a8a2..b66c9f2 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,33 +1,30 @@ # Table of contents * [Bit Project](README.md) +* [Join Bit Project](join.md) ## Organization * [Mission Statement](organization/mission-statement.md) * [Values](organization/values/README.md) * [Code of Conduct](organization/values/code-of-conduct.md) - * [Inclusion & Diversity](organization/values/inclusion-and-diversity.md) + * [Inclusion & Diversity](organization/values/inclusion-and-diversity/README.md) + * [Guide to Inclusive Language](organization/values/inclusion-and-diversity/guide-to-inclusive-language.md) * [Organizational Structure](organization/organizational-structure/README.md) - * [Untitled](organization/organizational-structure/untitled.md) + * [Directory](organization/organizational-structure/untitled.md) * [Communication](organization/communication.md) -* [Culture](organization/culture.md) * [Style Guides](organization/style-guides/README.md) + * [Writing Style Guides](organization/style-guides/writing-style-guides.md) * [Brand Guidelines](organization/style-guides/brand-guidelines.md) * [Markdown Style Guide](organization/style-guides/markdown-style-guide.md) ## Teams -* [Community Relations](teams/community-relations/README.md) - * [First Time Contributors Program](teams/community-relations/first-time-contributors-program.md) - * [Starting a Branch](teams/community-relations/starting-a-branch/README.md) - * [High School](teams/community-relations/starting-a-branch/high-school.md) - * [Collegiate](teams/community-relations/starting-a-branch/collegiate.md) - * [Hobbyist Meetups](teams/community-relations/starting-a-branch/hobbyist-meetups.md) * [Developer Relations](teams/developer-relations/README.md) * [Guide to Development](teams/developer-relations/guide-to-development/README.md) * [Writing Style](teams/developer-relations/guide-to-development/writing-style.md) * [Sync Meeting Guide](teams/developer-relations/sync-meeting-guide.md) + * [Joining Developer Relations](teams/developer-relations/joining-the-core-team.md) * [Joining as an Organization](teams/developer-relations/joining-as-an-organization/README.md) * [Workshop: Marketing and Presentation Tips](teams/developer-relations/joining-as-an-organization/workshop-marketing-and-presentation-tips.md) * [West Valley College Workshop](teams/developer-relations/joining-as-an-organization/west-valley-college-workshop.md) @@ -67,8 +64,16 @@ * [People](teams/people/README.md) * [Onboarding Guides](teams/people/onboarding-guides.md) * [Talent Acquisition](teams/people/talent-acquisition.md) - * [Recruitment](teams/people/recruitment.md) + * [Primary Ed](teams/people/recruitment/README.md) + * [How to Be a Volunteer Lead](teams/people/recruitment/how-to-be-a-volunteer-lead.md) + * [General Event Volunteer Training](teams/people/recruitment/general-event-volunteer-training.md) * [Engineering](teams/engineering/README.md) + * [Roles](teams/engineering/roles/README.md) + * [Director of Engineering](teams/engineering/roles/untitled.md) + * [Frontend Architect](teams/engineering/roles/frontend-architect.md) + * [React.js Developer](teams/engineering/roles/react.js-developer.md) + * [Backend Developer](teams/engineering/roles/backend-developer.md) * [README Formats](teams/engineering/readme-formats.md) * [Curriculum Folder Structure](teams/engineering/curriculum-folder-structure.md) +* [How to use the Checklist](teams/how-to-use-the-checklist.md) diff --git a/join.md b/join.md new file mode 100644 index 0000000..411b1af --- /dev/null +++ b/join.md @@ -0,0 +1,6 @@ +# Join Bit Project + +{% page-ref page="teams/developer-relations/joining-the-core-team.md" %} + + + diff --git a/organization/communication.md b/organization/communication.md index d740f1d..97ce9a8 100644 --- a/organization/communication.md +++ b/organization/communication.md @@ -1,9 +1,12 @@ # Communication -## What is Communication? +{% embed url="https://www.youtube.com/watch?v=2f9TkttynIk&feature=youtu.be" %} + +**Effective Communication Webinar**, Becca Tran -Communication is the exchange and sharing of ideas and information between two or more persons. Our organization is built upon **transparency** and learning different ways to **improve our communication skills. I**t is crucial for us to practice clear communication in ways that will help stay connected and work efficiently! +## What is Communication? +Communication is the exchange and sharing of ideas and information between two or more persons. Our organization is built upon **transparency** and learning different ways to **improve our communication skills. I**t is crucial for us to practice clear communication in ways that will help stay connected and work efficiently! ## Effective and Responsible Communication Guidelines @@ -42,7 +45,13 @@ Template: * A notetaker will be responsible to write in important points discussed into the notes * Other attendees are encouraged to help the notetaker to participate by taking notes when they speak -### +### The Meeting Notes Template + + + +![](../.gitbook/assets/screen-shot-2020-03-31-at-1.26.07-am.png) + +![](../.gitbook/assets/screen-shot-2020-03-31-at-1.26.13-am.png) ## Slack @@ -88,6 +97,18 @@ Before making an account, you must download slack onto both your computer and mo 9. As an admin of the Slack workspace, if given the option to _"Disable future attachments from this website"_ when removing an attachment from a message **this will blacklist the link/domain from** [**unfurling**](https://about.gitlab.com/handbook/tools-and-tips/#unfurling-links-in-messages) **in the entire Slack workspace**. Be careful and deliberate when choosing this option as it will impact every user in the workspace. 10. When selecting your Slack display name, please do not have your name in all capital letters as this is often [associated as shouting](https://en.wikipedia.org/wiki/All_caps#Association_with_shouting) in written communications. +![Example of people just a thread in a public channel ](../.gitbook/assets/screen-shot-2020-03-31-at-8.11.01-pm.png) + +![A good example of when to send a message through private DM versus Public Channels ](../.gitbook/assets/screen-shot-2020-03-31-at-8.11.56-pm.png) + + + +### Hey Taco! + +Hey Taco is an application that is integrated with Slack. It is a way to give shoutouts and appreciation to people in your organization! What’s the point of all this taco giving? To put it simply: unity, recognition and gratitude. You name it and someone has probably given out a taco for it. Team member appreciation, a birthday, gratitude for leadership, or welcoming a new team member are all just a few of the reasons we give out tacos. You get 5 tacos a day! + +![Example of one of colleague giving appreciation to other members for their hard work! ](../.gitbook/assets/screen-shot-2020-03-31-at-8.13.14-pm.png) + ## Zoom [Zoom](https://zoom.us/) is a cloud-based video conferencing platform that can be used for video conferencing meetings, audio conferencing, webinars, meeting recordings, and live chat. This video conferencing will allow us to meet and work together productively "face-to-face" when meeting in-person isn't possible. This makes meeting remotely much more human, which essential in order to help users feel and stay connected. @@ -101,6 +122,8 @@ Before making an account, you must download slack onto both your computer and mo 5. We expect you to be in an appropriate setting and wearing appropriate clothing. If you are in a loud environment, please go ahead and mute yourself. 6. It is your own responsibly to remember what was discussed in the meeting. So takes notes if needed. +![](../.gitbook/assets/screen-shot-2020-03-31-at-8.15.52-pm.png) + ### How Your First Meeting Will Generally Go 1. Make a round of introductions @@ -113,30 +136,9 @@ Before making an account, you must download slack onto both your computer and mo ## Calendly -[**Calendly**](https://calendly.com/) **is a simple calendar setting app.** One person makes a list of dates and times they are available, and other people go there and self-select their time. [**Calendly**](https://calendly.com/) **allows us to find the best time for 1:1 meetings.** - -### **How to Use it** - -1. Set up your Calendly account -2. Create a “15 Minute Meeting” on your [Calendly account page](https://calendly.com/event_types/user/me) - * Your new event should show up under Event Types -3. Click the event to edit settings -4. Edit settings to match the following image: - * Include your name in the event name - * Location: Zoom \(add free integration\) - * Save & Close when complete - * Date range: indefinitely - * Advanced settings: as per your preference - * Add your availabilities at the bottom - * Tip: you can add the same availabilities to multiple days by clicking and dragging over the days - * Save & Close - * Add two Invitee Questions: - * Team Name - * Supervisor - * And make them both required fields. - * Save & Close - -\*\*\*Refer to the Bit Project Webinar \#1's deck for further instructions +[**Calendly**](https://calendly.com/) **is a simple calendar setting app.** One person makes a list of dates and times they are available, and other people go there and self-select their time. [**Calendly**](https://calendly.com/) **allows us to find the best time for 1:1 meetings. Only supervisors need Calendly and their links will be in their Slack profile.** + +![Supervisor's Calendly links are in their profile ](../.gitbook/assets/screen-shot-2020-03-31-at-8.18.12-pm-1.png) ## Google Calendar @@ -146,7 +148,11 @@ Google Calendar is a time-management and scheduling calendar service. Google Cal * All Calendly events will be linked to the Calendar * All virtual socials will be updated on the Calendar -**If you are invited to any Google Calendar event, please RSVP as soon as possible** +**If you are invited to any Google Calendar event, please RSVP as soon as possible.** + +![](../.gitbook/assets/screen-shot-2020-03-31-at-8.20.23-pm.png) + +**If you do not have access to our Google Calendar please tell your supervisor!** ### How to Use it diff --git a/organization/mission-statement.md b/organization/mission-statement.md index d677bbb..5e8f3eb 100644 --- a/organization/mission-statement.md +++ b/organization/mission-statement.md @@ -1,2 +1,84 @@ # Mission Statement +## Our Vision for Open Source Education + +Open-source and the related workflows are one of the most successful models for collaboration that have ever been applied. Combining open-source with a [distributed version control](http://en.wikipedia.org/wiki/Distributed_revision_control) such as Git allows for a true peer-to-peer approach to collaboration that is unlike anything that came before. + +Applying the same principles and workflows to education is one of the best ways to create a sustainable proliferation of high-quality curriculum spread across the world. Leveraging many of these principles will ensure quality and integrity of the experience is maintained as the content is reproduced and propogated. + +### **What is open-source as a model?** + +Open-source software is software whose source code is published and made available to everyone, enabling anyone to copy, modify and redistribute the source code without paying royalties or fees. Open-source code can evolve through community cooperation. These communities are composed of individual people as well as large organizations. Some of the individual people who start an open-source project may end up establishing companies offering products or services incorporating open-source programs. + +### **How do people collaborate in open-source?** + +Open-source software is developed in cooperation between many different individuals all working together with a specific structured workflow to enable mass collaboration. For example, the [Linux](http://www.linux.com/) project has roughly **10,000** people that have contributed to the core alone. Another 100,000+ have contributed to software built in "user-space" surrounding the Kernel itself. + +When building software or curriculum coordinating even 10 collaborators can be immensely challenging. In order to solve this problem, open-source generally adopts structured solutions to make cooperation much easier. These solutions more recently include the use of a distributed version control system called Git. + +To understand open-source, we have to understand the different roles involved in coordinating collaborators helping on a project: + +1. **Creator** \(a.k.a Benevolent Dictator\) - This is the person that originally created the project or a spiritual successor that has final decision making power on the "official" content repository. +2. **Core Maintainers** - This is the team that can write to the official content repository. The stewards of the project responsible for maintaining the quality and integrity of the project. +3. **Contributors** - These are people interested in contributing to the content repository and they do so by "forking" a personal clone of the repository in which they make changes and then later submit for review by maintainers. +4. **Commenters** - These are people that haven't yet contributed to the content itself but raise issues when they come up, comment on discussions taking place, and actively provide their feedback on the decisions made on the project. + +![](http://git-scm.com/book/en/v2/book/05-distributed-git/images/integration-manager.png) + +The process workflow is generally as follows: + +* The core project maintainers push to a shared public repository \("blessed remote"\). +* A maintainer or a commenter raises an issue for discussion +* A contributor clones the blessed repository and makes changes to their clone. +* The contributor pushes to their own public clone online. +* The contributor sends the maintainer a "pull request" asking them to pull the changes. +* The maintainers, contributors and commenters discuss the changes. +* The maintainer adds the contributor’s repo as a remote repo and merges locally. +* The maintainer pushes merged changes to the main repository after careful review. + +### Education and Open-Source + +Let us attempt to apply the successful open-source model to education and curriculum worldwide. A few key attributes need to be emphasized: + +* **Decentralized** - No single point of failure. Collaboration and propagation is peer-to-peer with "maintainers" and "contributors" working together to ensure quality. +* **Free from Restriction** - Anyone is free to copy, modify and redistribute the source code without paying royalties or fees. People can freely branch off and use the content for any purpose at any time without permission from the maintainers. +* **Transparency** - Open-source allows for high-quality content to thrive not by restricting use but through absolute transparency. Every version of the content is available for all to see. The authors of the content can be viewed as well. Any information relating to the effects or usage of the content is completely visible to everyone. + +Applying open-source to education is a fundamental shift in how the world thinks about learning and teaching. A few examples of how to think about an open-source education model in practice: + +* **Living Textbooks** - All learning materials are entirely free and managed by maintainers world-wide. Maintainers help curate and edit the content and ensure that the quality is as high as possible. Think [Wikipedia](https://en.wikipedia.org/wiki/Main_Page) for every single topic out there. These textbooks can be "branched" out by anyone into new versions or new collaborators can request their changes to be pulled back into the core. +* **Living Courses** - All course structure and materials are entirely free and managed by maintainers world-wide. The maintainers are constantly working together to improve the course materials and structure. Assignments, resources, videos, guides, etc. are all available for online for easy access and modification. +* **Living Tools** - Courses are powered by open-source software tools and frameworks that enable everyone to have a consistent experience. The learning management system itself is completely free and open-source. Any "content modules" developed through collaboration can be easily plugged into the course content tools which provide rich access to the textbooks and course materials. +* **Transparent Analytics** - Open-source education must be paired with transparent analytics around efficacy. This is in part measured by assessments and surveys baked into the course content that are submitted by everyone that participates in a learning module. These analytics help maintainers and collaborators to understand the most effective content modules. +* **Distributed Classrooms** - Since the tools, the courses, and the textbooks are entirely free to access and to redistribute, classroom "peers" will pop-up without any friction. A classroom is defined as a location where there are a number of individuals that would like to learn the material as well as an "instructor" \(or facilitator\) that helps locate a physical venue and create a safe and productive space for interested students to meet and run through the course. + +Imagine a world where this was considered the gold standard for all topics of education. Millions of people working to review and contribute to countless course modules and textbooks. Classroom analytics allowing everyone to focus their efforts where the strongest impact is being made. Students world-wide self-organizing around facilitators and learning together in millions of small distributed peer groups. + +### Open Questions + +* How do we make it easy for different versions to be easily discoverable. For example, highest rated Android curriculum vs highest rated Android curriculum to teach K-12 vs highest rated curriculum to teach k-12 with advanced CS knowledge. I think we need to moderate how curriculum can be described. Calling a curriculum beginner is not specific enough to let instructors know who will do well in the class. +* How do you easily bake measurement into the system while still allowing for flexibility? + +## Our Vision for Expansion + +Our programs can and should expand over time in the following ways but balanced with maintaining quality and outcomes: + +* **Number of Students at a Campus** - Reaching a larger number of students on a campus within a semester. Across the pipline: Higher number of students served, higher number of contributors, higher number completing bootcamps with Bit Project. +* **Number of Campuses Served** - Reaching a larger number of campuses and locations within a semester. Across the pipline: Higher number of total campuses, +* **Types of Campuses Served** - In addition to raw number of campuses, we are dedicated to focusing our efforts on "underserved" campuses and students most in need. This includes expanding our program offerings specifically at state universities, HBCUs, colleges in the Appalachians, and community colleges. +* **Number of Courses Offered** - Offering a larger number of our existing courses on each campus \(or remotely\) within a given semester. +* **Types of Courses Offered** - Offering a larger array of different courses over time including new Special topics across our locations. + +{% hint style="info" %} +Note that expansion is important but as noted, should not come at the cost of sacrificing our program quality and outcomes. We need to find the right balance +{% endhint %} + + + +**References** + +* [http://opensource.com/education/13/10/open-business-model-free-education](http://opensource.com/education/13/10/open-business-model-free-education) +* [http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows\#Dictator-and-Lieutenants-Workflow](http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows#Dictator-and-Lieutenants-Workflow) +* [http://opensource.com/education](http://opensource.com/education) +* [http://www.ted.com/talks/richard\_baraniuk\_on\_open\_source\_learning?language=en](http://www.ted.com/talks/richard_baraniuk_on_open_source_learning?language=en) + diff --git a/organization/organizational-structure/untitled.md b/organization/organizational-structure/untitled.md index d6e6549..d9225e6 100644 --- a/organization/organizational-structure/untitled.md +++ b/organization/organizational-structure/untitled.md @@ -1,11 +1,53 @@ -# Untitled +# Directory -| Level | Example | Peer group | +**President** Daniel Kim + +**People Department \( 1 Vacancy \)** + +| Role | Team | Person | +| :--- | :--- | :--- | +| Director of People | | Shreya Gupta | +| L&D Manager | Learning & Development | Becca Tran | +| People Experience Associate | Learning & Development | Winnie Zhang | +| Inclusion and | Learning & Development | Lily Hem | +| Onboarding Manager | Onboarding | Minh Tu Nguyen | +| Recruiter \(2\) | Onboarding | **VACANT** | + +**Marketing Department \(4 Vacancies\)** + +| Role | Team | Person | | :--- | :--- | :--- | -| Board | President | @board | -| Director | Director of Marketing | @directors | -| Manager | Engineering Manager | @managers | -| Contributors | Developer | @contributors | +| Director of Marketing | \*\*\*\* | **VACANT** | +| Manager of Design | Design | Rochelle Dai | +| Illustrator | Design | Lilly Paglia | +| Manager of Technical Writing | Writing | Victoria Xu | +| Technical Writing Intern \(2\) | Writing | **VACANT** | +| Recruiter | Onboarding | **VACANT** | +**Engineering Department \(4 Vacancies\)** +| Role | Team | Person | +| :--- | :--- | :--- | +| Director of Engineering | \*\*\*\* | Bryan Wong | +| Frontend Architect | Frontend | Bryan Zhang | +| React.js Developer \(2\) | Frontend | **VACANT** | +| Backend Developer | Backend | Jason Livinghouse | +| Backend Developer \(2\) | Backend | **VACANT** | + +**DevRel Department \(29 Vacancies\)** + +| Role | Team | Person | +| :--- | :--- | :--- | +| Director of DevRel | \*\*\*\* | Kevin Vuong | +| Content Development Manager | | Sarah Gerard | +| Content Development Manager | | Owen Gao | +| Content Development Manager | | Ismail | +| Content Development Manager | | Michelle Hu | +| Content Development Manager | | Jeff Chhen | +| Content Development Intern \(4\) | | **VACANT** | +| Content Developer \(5\) | Data Science | **VACANT** | +| Content Developer \(5\) | Block Chain | **VACANT** | +| Content Developer \(5\) | Frontend | **VACANT** | +| Content Developer \(5\) | API Development | **VACANT** | +| Content Developer \(5\) | DevOps | **VACANT** | diff --git a/organization/style-guides/writing-style-guides.md b/organization/style-guides/writing-style-guides.md new file mode 100644 index 0000000..3ec45e6 --- /dev/null +++ b/organization/style-guides/writing-style-guides.md @@ -0,0 +1,346 @@ +# Writing Style Guides + +## Punctuation + +### Case + +Use sentence case for titles, headings, labels, menu items, and buttons. Use title case when referring to [features](https://about.gitlab.com/features/) or [products](https://about.gitlab.com/products/). Note that some features are also objects \(for example, “Merge Requests” and “Merge requests”\). + +| Do | Don’t | +| :--- | :--- | +| Add issues to the Issue Board feature in GitLab Hosted. | Add Issues to the Issue Board Feature in GitLab Hosted. | + +Always capitalize the first word in bulleted lists. This includes sentences that complete an introductory stem. + + + + + + + + + + + + + + +
DoDon’t
+

This is an introductory stem:

+
    +
  • Completed by this capitalized sentence.
  • +
  • Also completed by this capitalized sentence.
  • +
+
+

This is an introductory stem:

+
    +
  • completed by this uncapitalized sentence.
  • +
  • also completed by this uncapitalized sentence.
  • +
+
### Periods + +A period signals to a speaker or reader that a sentence has come to an end, and it assists users in visually breaking up content. Follow these guidelines: + +Place a period after a link that is followed by a sentence. + +| Do | Don’t | +| :--- | :--- | +| Mention someone to notify them. [More information](https://design.gitlab.com/content/punctuation/#). This is another sentence. | Mention someone to notify them. [More information](https://design.gitlab.com/content/punctuation/#). | + +Place periods after sentences that follow a link. + +| Do | Don’t | +| :--- | :--- | +| Mention someone to notify them. [More information](https://design.gitlab.com/content/punctuation/#). This is another sentence. | Mention someone to notify them [More information](https://design.gitlab.com/content/punctuation/#). This is another sentence | + +Use a period after every bullet point that is a sentence. + + + + + + + + + + + + + + +
DoDon’t
+
    +
  • This is a complete sentence.
  • +
  • This is also a complete sentence.
  • +
+
+
    +
  • This is a complete sentence, it needs a period
  • +
  • This is also a complete sentence, it also needs a period
  • +
+
Use a period after every bullet point that completes the introductory stem. + + + + + + + + + + + + + + +
DoDon’t
+

This is an introductory stem:

+
    +
  • Completed by this sentence.
  • +
  • Also completed by this sentence.
  • +
+
+

This is an introductory stem:

+
    +
  • Completed by this sentence
  • +
  • Also completed by this sentence
  • +
+
Use no punctuation after bullets that are not sentences and do not complete the stem. + + + + + + + + + + + + + + +
DoDon’t
+

These are just words in a list:

+
    +
  • One item
  • +
  • Two item
  • +
+
+

These are just words in a list:

+
    +
  • One item.
  • +
  • Two item.
  • +
+
Use all sentences or all fragments in a bulleted list, not a mixture. + + + + + + + + + + + + + + +
DoDon’t
+
    +
  • Consistency is key here.
  • +
  • Item.
  • +
  • Don’t mix sentences and individual items in a list.
  • +
+
+
    +
  • Consistency is key here.
  • +
  • Item
  • +
  • Don’t mix sentences and individual items in a list.
  • +
+
### Contractions + +We encourage the use of contractions to make writing simpler and easier to read. However, don’t make a sentence harder to understand just to follow this rule. For example, “do not” can give more emphasis than “don’t,” when needed. + +| Do | Don’t | +| :--- | :--- | +| it’s, can’t, wouldn’t, you’re, you’ve, haven’t, don’t | it is, cannot, would not, it’ll, should’ve | + +### Numbers + +Use “1, 2, 3” instead of “one, two, three” for numbers. One exception is when mixing uses of numbers, such as “Enter two 3s.” + +| Do | Don’t | +| :--- | :--- | +| 3 new commits | Three new commits | +| Enter two 3s. | Enter 2 3s. | + +### Punctuation overview + +Use punctuation to add clarity or be grammatically correct. + +| Punctuation mark | Copy and paste | HTML entity | Description | +| :--- | :--- | :--- | :--- | +| Period | **.** | | Use in lists or modals with full and multiple sentences, and any sentence followed by a link or inline code. Place inside quotation marks, unless you’re telling the reader what to enter and it’s ambiguous whether to include the period. | +| Comma | **,** | | Place inside quotation marks. Use a [serial comma](https://en.wikipedia.org/wiki/Serial_comma) in lists of three or more terms. | +| Exclamation point | **!** | | Avoid exclamation points, as they tend to come across as shouting. Some exceptions include greetings or congratulatory messages. | +| Colon | **:** | `:` | Omit from form labels. | +| Apostrophe | **’** | `’` | Use for contractions \(I’m, you’re, ’89\) and to show possession. To show possession, add an _’s_ to all singular common nouns and names, even if they already end in an _s_: “Look into this worker process’s log.” For singular proper names ending in _s_, use only an apostrophe: “James’ commits.” For plurals of a single letter, add an _’s_: “Dot your i’s and cross your t’s.” Omit for decades or acronyms: “the 1990s”, “MRs.” | +| Quotation marks | **“** **”** **‘** **’** | `“` `”` `‘` `’` | Use proper quotation marks \(also known as smart quotes, curly quotes, or typographer’s quotes\) for quotes. Single quotation marks are used for quotes inside of quotes. The right single quotation mark symbol is also used for apostrophes. Don’t use primes, straight quotes, or free-standing accents for quotation marks. | +| Straight quotes and accents | **"** **'** **\`** **´** | | Don’t use straight quotes or free-standing accents for primes or quotation marks. Proper typography never uses straight quotes. They are left over from the age of typewriters, and their only modern use is for code. | +| Ellipsis | **…** | `…` | Use to indicate an action in progress \(“Downloading…”\) or incomplete or truncated text. No space before the ellipsis. Omit from menu items or buttons that open a modal or start some other process. | +| Chevrons | **«** **»** **‹** **›** **<** **>** | `«` `»` `‹` `›` `<` `>` | Omit from links or buttons that open another page or move to the next or previous step in a process. Also known as angle brackets, angular quote brackets, or guillemets. We use [icons](https://design.gitlab.com/foundations/iconography) in place of written chevrons. | +| Em dash | **—** | `—` | Avoid using dashes to separate text. If you must use dashes for this purpose — like this — use an em dash surrounded by spaces. | +| En dash | **–** | `–` | Use an en dash without spaces instead of a hyphen to indicate a range of values, such as numbers, times, and dates: “3–5 kg”, “8:00 AM–12:30 PM”, “10–17 Jan” | +| Hyphen | **-** | | Use to represent negative numbers, or to avoid ambiguity in adjective-noun or noun-participle pairs. Example: “anti-inflammatory”; “5-mile walk.” Omit in commonly understood terms and adverbs that end in _ly_: “frontend”, “greatly improved performance.” Omit in the term “open source.” | +| Parentheses | **\( \)** | | Use only to define acronyms or jargon: “Secure web connections are based on a technology called SSL \(the secure sockets layer\).” Avoid other uses, and instead rewrite the text or use dashes or commas to set off the information. If parentheses are required: If the parenthetical is a complete, independent sentence, place the period inside the parentheses; if not, the period goes outside. | + + + +## Voice and tone + +Copy and messaging are meaningful aspects of the GitLab experience and the conversation with our users. + +The copy for GitLab is clear and direct. We strike a balance between professional and friendly. We can empathize with users \(such as celebrating completing all items on the To-Do List\) while remaining respectful to the importance of their work. We are a trusted, friendly, helpful, and understanding coworker. + +### Active voice + +Whenever possible, write in [active voice](https://www.grammarly.com/blog/active-vs-passive-voice/), instead of passive voice. Active voice is easier for users to understand and often results in shorter content. + +Sometimes, using passive voice is appropriate. Make sure it’s an intentional choice that communicates the idea more clearly than active voice would—for example, when the system is the actor, rather than a person. + +| Do | Don’t | +| :--- | :--- | +| **\(Active voice\)** Ask someone with write access to this repository to merge this request. | This request can be merged by someone with write access to this repository. | +| **\(Passive voice\)** The Kubernetes cluster is being created on Google Kubernetes Engine. | We are creating the Kubernetes cluster on Google Kubernetes Engine. | + +### Brevity + +Users will skim content, rather than read text carefully. Copy should be concise and short whenever possible. A long message or label is a red flag hinting at a design that needs improvement. + +When familiar with a web app, users rely on muscle memory and may read even less when moving quickly. A good experience should quickly orient a user, regardless of their experience, to the purpose of the current screen. Understanding should happen without the user having to consciously read long strings of text. + +In general, text is burdensome and adds cognitive load. This load is even more pronounced in a powerful productivity tool such as GitLab. We shouldn’t rely on words as a crutch to explain the purpose of a screen. Instead, the current navigation and composition of on-screen elements should get the user 95% there, with the remaining 5% being specific elements such as text. + +Brevity is especially important for: + +* Headers +* Button text +* Field labels +* Error messages + +For each of these content types, look for ways you might rephrase text that seems too long. Also, eliminate unnecessary phrases like “in order to” and extra articles like “the” when they don’t add clarity. + +| Do | Don’t | +| :--- | :--- | +| To link Sentry to GitLab, enter your Sentry URL and Auth Token. | In order to link Sentry to GitLab, enter your Sentry URL and Auth Token. | +| Use this token to validate received payloads. | Use this token to validate the received payloads. | + +#### Avoid Latin abbreviations + +While we aim to brief, we also avoid Latin abbreviations as they can be easily misinterpreted. + +* Instead of “i.e.”, use “that is.” +* Instead of “e.g.”, use “for example.” +* Instead of “etc.”, either use “and so on” or consider editing it out, since it can be vague. + +### Clear error messages + +When something goes wrong, it’s important for us to be clear about what happened, why it happened, and what the next steps to take may be. Vague messages frustrate users and can even block them from completing their task. + +When writing an error message, leave out extraneous words like _sorry_ and _please_. This makes errors easier to read and understand. + +| Do | Don’t | +| :--- | :--- | +| Unable to complete your request. Enter a valid email address. | 400 Bad Request | +| Enter your email address to sign up with GitLab. | Please enter your email address to sign up with GitLab. | + +### Parallelism + +[Parallel structure](https://writingcenter.gmu.edu/guides/parallel-structure) ensures that related content takes the same grammatical form; for example, all related items in a list are either a noun or a verb, not a mixture of both. Maintaining parallelism is important, because it’s grammatically correct and much easier to read. + + + + + + + + + + + + + + +
DoDon’t
+

A project is where you:

+
    +
  • House your files
  • +
  • Plan your work
  • +
  • Publish your documentation
  • +
+
+

A project is where you:

+
    +
  • House your files
  • +
  • Plan your work
  • +
  • Publishing your documentation
  • +
+
### Objective focused + +When users engage with our product, they’re focused on getting tasks done, thinking first in terms of the problem they’re trying to solve, and then how to solve it. Objective-focused content that starts with the task first and then offers the solution can make it easier for users to quickly find and understand the information they need. + +| Do | Don’t | +| :--- | :--- | +| Monitor your errors by integrating with Sentry | Integrate with Sentry to monitor your errors | +| To see what’s changed, choose a branch or enter a commit. | Choose a branch or enter a commit to see what’s changed. | + +### Point of view + +In most cases, it’s appropriate to use the [second-person](https://www.quickanddirtytips.com/education/grammar/first-second-and-third-person?page=1) point of view, because it’s friendly and easy to understand. + +The words “you,” “your,” and “yours” indicate that you’re writing in second person. It’s important to note that in UI copy, the “you” is often implied rather than stated. For example, instead of “You can track time with quick actions,” you might instruct users to “Track time with quick actions.” + +To write in second person, focus on eliminating words like “can” or “will” from content. + +| Do | Don’t | +| :--- | :--- | +| To get started, link this page to your Jaeger server. | Users can get started by linking this page to their Jaeger server. | + +### Verb tenses + +#### Recent past \(instant feedback\) + +For a status update on something that has just happened in response to a user action or when a user is otherwise watching for an update, use the **present perfect** tense. This is ideal for toast messages and terminal output. + +There are two options: + +* When brevity is the priority, use only the noun and verb \(omitting articles and prepositions\); for example, “Pipeline scheduled.” +* When you want to use a full phrase for a human feel, use a complete sentence; for example, “The pipeline has been scheduled.” + +#### Distant past \(earlier than instant feedback\) + +Use **past tense**. + +| Do | Don’t | +| :--- | :--- | +| The pipeline was last run on October 3. | The pipeline has been run on October 3. | + +#### State + +Use **present tense**. + +| Do | Don’t | +| :--- | :--- | +| The pipeline is scheduled to run on October 3. | The pipeline will be run on October 3. | + +#### Instructions + +Use the **present tense** with an imperative form \(also known as a command\). + +| Do | Don’t | +| :--- | :--- | +| Click the Designs tab. | You will need to click the Designs tab. | +| To see what’s changed, choose a branch or enter a commit. | Choosing a branch or entering a commit will show you what’s changed. | + diff --git a/organization/values/inclusion-and-diversity.md b/organization/values/inclusion-and-diversity/README.md similarity index 63% rename from organization/values/inclusion-and-diversity.md rename to organization/values/inclusion-and-diversity/README.md index ca4356d..ad74330 100644 --- a/organization/values/inclusion-and-diversity.md +++ b/organization/values/inclusion-and-diversity/README.md @@ -4,3 +4,7 @@ description: Promoting Diversity and Inclusion at Bit Project # Inclusion & Diversity +{% page-ref page="guide-to-inclusive-language.md" %} + + + diff --git a/organization/values/inclusion-and-diversity/guide-to-inclusive-language.md b/organization/values/inclusion-and-diversity/guide-to-inclusive-language.md new file mode 100644 index 0000000..8f6a044 --- /dev/null +++ b/organization/values/inclusion-and-diversity/guide-to-inclusive-language.md @@ -0,0 +1,216 @@ +# Guide to Inclusive Language + +Language is one of the most powerful tools we have as humans. It binds us. Instructs us. When used well, it creates a common understanding. + +And it’s essential for creating an environment where everyone feels welcome and included. + +Historically, language has left many out. Individuals and groups have been marginalized and discriminated against because of their culture, race and ethnicity, gender, sexual orientation, age, disability, socioeconomic status, appearance and more. + +We can do better. Inclusive language seeks to treat all people with respect, dignity, and impartiality. It is constructed to bring everyone into the group and exclude no one. + +It does ask something of us. It asks us to try. **To change deeply embedded habits. To consider the implications of words and phrases that have long gone unchallenged. To dig deep into empathy and imagine an experience not our own.** + +Some of these language changes might seem unnecessary or even silly to some. And even if you were to follow every recommendation here, you might still offend someone or say the wrong thing. + +A person can spend a long time on this journey to a more inclusive way of communicating and still make many mistakes. But why not try? Nothing is lost in the process, but so much is gained. + +As my teammate, [Niel](https://twitter.com/nieldlr) shared with me, “Communication is not what you say, but how it’s heard.” Making changes to use more inclusive language offers us a chance to grow and become better communicators while also caring for those we’re communicating with. “It’s been incredibly helpful for me to move away from ‘Oh that’s not what I meant, I meant it in this way, you’re reading too much into it’ straight to ‘You’re right. I apologize for not understanding what that word meant to you. I’m going to work on this and try to be better,’ “ Niel shared. + +If that spirit of self-improvement resonates with you, perhaps this inclusive language guide for startups/tech will help. And if you can think of any words, phrases or examples we didn’t cover here, please share in the comments! + +### 6 overall inclusive language principles + +It’s not always necessary to fret over every word. A few big principles can take you quite far. Here a 6 that many folks involved with diversity and inclusion recommend. + +* **Put people first:** Default to person-first constructions that put the person ahead of their characteristics, e.g., instead of “a blind man” or “a female engineer,” use “a man who is blind” or “a woman on our engineering team.” People-first language keeps the individual as the most essential element; there is more to each of us than our descriptors. Mention characteristics like gender, sexual orientation, religion, racial group or ability only when relevant to the discussion. +* **Avoid idioms, jargons, and acronyms**: Jargon and acronyms can exclude people who may not have specialized knowledge of a particular subject and impede effective communication as a result. Many idioms don’t translate well from country to country, and some are rooted in negative connotations and stereotypes \(“[hold down the fort](http://www.theinclusionsolution.me/words-and-phrases-that-sting-nation-of-immigrants-and-hold-down-the-fort/),” “call a spade a spade” are examples\). +* When speaking about disability, **avoid phrases that suggest victimhood,** e.g. “afflicted by,” “victim of,” “suffers from,” “confined to a wheelchair”. While you’re at it, steer clear of euphemisms like “challenged,” “differently abled,” or “specially-abled,” too. + +[![](https://open.buffer.com/wp-content/uploads/2017/06/AffirmativeTerms.001.jpg)](https://www.forbes.com/sites/kashmirhill/2013/01/30/girls-ladies-folks-heres-a-visual-guide-to-what-you-should-call-that-group-of-individuals/#4827acba6619) + +* **Don’t underplay the impact of mental disabilities.** Terms like “bipolar,” “OCD” and “ADD” are descriptors of real psychiatric disabilities that people actually possess. They are not metaphors for everyday behaviors. Also, avoid derogatory terms that stem from the context of mental health, for example, “crazy,” “mad,“ “schizo,” or “psycho.” +* **“Guys” is not gender neutral.** “The ”universal male” \(i.e., using “guys” to mean “people”\) assumes that the normal, default human being is male. “Although “he” and “man” are said to be neutral, [numerous studies](https://link.springer.com/article/10.1007%2FBF01068252#page-1)show that these words cause people specifically to think of males. + +[![](https://open.buffer.com/wp-content/uploads/2017/06/what-should-you-call-1024x936.png)](https://www.forbes.com/sites/kashmirhill/2013/01/30/girls-ladies-folks-heres-a-visual-guide-to-what-you-should-call-that-group-of-individuals/#4827acba6619) + +* **If you aren’t sure, ask.** Strive to include language that reflects peoples’ choice and style in how they talk about themselves. + +### 37 key phrases for talking about diversity and inclusion in tech + +Our quest to be as inclusive as possible means that quite a few new vocabulary words might pop up from time to time as we learn from each other. Here are some words that can offer a greater entry point into the inclusion conversation. + +**Ableism:** Practices and dominant attitudes in society that assume there is an ideal body and mind that is better than all others. + +**Accessibility:** The practice of designing and developing web sites and web content that provide a [great experience for all web users](https://open.buffer.com/accessibility-at-buffer/). \(Sometimes abbreviated as [_a11y_](http://a11yproject.com/), representing “accessibility” as “a” followed by 11 more letters, followed by “y”.\) + +[![](https://open.buffer.com/wp-content/uploads/2017/06/e6a2665b383f91c0b1a05083f28d5bc8.jpg)](https://www.forbes.com/sites/kashmirhill/2013/01/30/girls-ladies-folks-heres-a-visual-guide-to-what-you-should-call-that-group-of-individuals/#4827acba6619) + +**ADA:** The Americans with Disabilities Act \(ADA\) is a U.S. civil rights law that prohibits discrimination against individuals with disabilities in all areas of public life, including jobs, schools, transportation, and all places that are open to the general public. + +**Ageism:** A system of beliefs, attitudes, and actions that stereotype and discriminate against individuals or groups on the basis of their age. + +**Ally:** Someone who supports a group other than their own \(in terms of racial identity, gender, faith identity, sexual orientation, etc.\) Allies acknowledge disadvantage and oppression of other groups; take risks and action on the behalf of others; and invest in strengthening their own knowledge and awareness of oppression. + +**Affinity groups:** A group of people who choose to meet to explore a shared identity such as race, gender, age, religion, and sexual orientation. These groups can be further broken down into smaller groups within the two major affinities \(i.e. White men, White women, African American men/women, bi/multi-racial, etc.\). At work these are are sometimes called Employee Resource Groups, or ERGs. + +**Amplification:** A technique an ally can use to boost the message of a member of a less dominant group by repeating what that person said and giving them credit for it. For example, [“Laura said to try ‘git rebase -i master’. Give that a try and let her know how it works.”](https://medium.com/@hadrad1000/how-do-i-ally-being-an-ally-to-women-in-technology-73b70fb86a98) + +**Cisgender**: Individuals whose gender identity and expression line up with their birth-assigned sex. + +**Code of conduct:** A set of rules issued by an organization outlining the acceptable and unacceptable behavior of a community or conference. It must have [four complete parts](https://www.ashedryden.com/blog/codes-of-conduct-101-faq): + +* statement of unacceptable behavior +* how the policy will be enforced +* how and whom to make an incident report to +* training and reference materials for organizers, staff, and volunteers on how to respond to incident reports + +_Example:_ [_http://confcodeofconduct.com/_](http://confcodeofconduct.com/) + +**Code switching:** The practice of mixing various languages and speech patterns in conversation –or more broadly, [changing the way you express yourself](http://www.npr.org/sections/codeswitch/2013/04/08/176064688/how-code-switching-explains-the-world) culturally and linguistically based on different parts of your identity and how they are represented in the group you’re with. + +**Culture fit:** The likelihood that a job candidate will be able to conform and adapt to the core values and collective behaviors that make up an organization. \(Alternatives we prefer at Buffer: [cultural contribution, values fit](https://open.buffer.com/culture-fit/)\) + +[![](https://open.buffer.com/wp-content/uploads/2017/04/Culture-Fit-1.png)](https://www.forbes.com/sites/kashmirhill/2013/01/30/girls-ladies-folks-heres-a-visual-guide-to-what-you-should-call-that-group-of-individuals/#4827acba6619) + +**Diversity:** Individual differences \(ability, learning styles, and life experiences\) and group/social differences \(race/ethnicity, class, gender, sexual orientation, country of origin, as well as cultural, political, religious, or other affiliations\) that can be engaged in the service of learning. + +**Dominant culture:** The cultural beliefs, values, and traditions that are centered and dominant in society’s structures and practices. Dominant cultural practices are thought of as “normal” and, therefore, preferred and right. As a result, diverse ways of life are often devalued, marginalized, and associated with low cultural capital. Conversely, in a multicultural society, various cultures are celebrated and respected equally. + +**Equal Employment Opportunity:** \(EEO\) Title VII of the U.S. Civil Rights Act of 1964 that prohibits discrimination in any aspect of employment based on an individual’s race, color, religion, sex, or national origin. + +**FMLA:** The Family and Medical Leave Act of 1993 \(**FMLA**\) is a United States federal law requiring covered employers to provide employees with job-protected and unpaid leave for qualified medical and family reasons. + +**Gender identity:** A person’s perception of their gender, which may or may not correspond with their birth sex. + +[![](https://open.buffer.com/wp-content/uploads/2017/06/Genderbread-Person-3.3.jpg)](https://www.forbes.com/sites/kashmirhill/2013/01/30/girls-ladies-folks-heres-a-visual-guide-to-what-you-should-call-that-group-of-individuals/#4827acba6619) + +**HBCU:** An acronym that stands for “historically black colleges and universities.” These are institutions of higher education in the United States that were established with the intention of primarily serving the black community, though they have always allowed admission to students of all races. Most were created in the aftermath of the American Civil War. + +[**Implicit bias**](https://implicit.harvard.edu/implicit/takeatest.html)**:** The attitudes or stereotypes that affect our understanding, actions, and decisions in an unconscious manner. These biases are activated involuntarily and without an individual’s awareness or intentional control. + +[**Impostor syndrome**](https://open.buffer.com/impostor-syndrome-8-tips-i-wish-i-had-known/)**:** A phenomenon in which high-achieving individuals are unable to internalize their accomplishments and instead constantly fear being exposed as a “fraud.” Some research indicates that members of underrepresented groups are more likely to be affected by it than others. + +**Inclusion:** A dynamic state of operating in which diversity is leveraged to create a fair, healthy, and high-performing organization or community. An inclusive environment ensures equitable access to resources and opportunities for all. It also enables individuals and groups to feel safe, respected, engaged, motivated, and valued, for who they are and for their contributions toward organizational and societal goals. + +**Inclusive design:** The process of making your product intuitive, accessible to, and usable by as many people as reasonably possible without the need for special adaptation or specialized design + +**Inclusive development:** The process of ensuring that all marginalized and excluded groups are stakeholders in development processes. + +**Intersectionality:** The interconnected nature of social categorizations such as race, class, and gender that can create overlapping and interdependent systems of discrimination or disadvantage. The term was [coined by Kimberlé Crenshaw](http://isreview.org/issue/91/black-feminism-and-intersectionality), who used it to describe the experiences of black women – who experience both sexism and racism. + +[![](https://open.buffer.com/wp-content/uploads/2017/06/57dbed3fca092107f05a62834ea59b7b.jpg)](https://www.forbes.com/sites/kashmirhill/2013/01/30/girls-ladies-folks-heres-a-visual-guide-to-what-you-should-call-that-group-of-individuals/#4827acba6619) + +**Latinx:** A gender neutral term often used in lieu of the gendered “Latino” or “Latina” when referring to individuals with cultural ties to Latin America and individuals of Latin American descent. + +[**LGBTQIA**](https://www.socialworkhelper.com/2013/07/25/alphabet-soup-the-story-of-lgbtqia/)**:** Acronym encompassing the diverse groups of lesbian, gay, bisexual, transgender, transsexual, queer, intersex and asexual populations and allies/alliances/associations. + +**Mansplain:** A portmanteau of the word “man” and “explain” used to describe the act of men explaining to someone, typically a woman, in a manner regarded as condescending or patronizing. + +**Microaggression:** This term was coined by psychiatrist and Harvard University professor Chester M. Pierce in 1970 to describe the tiny, casual, almost imperceptible insults and degradation often felt by any marginalized group. + +[**Neurodiversity**](https://hbr.org/2017/05/neurodiversity-as-a-competitive-advantage)**:** The idea that neurological differences like autism and ADHD are the result of normal, natural variation in the human genome. + +[![](https://open.buffer.com/wp-content/uploads/2017/06/whatisnd912.png)](http://isreview.org/issue/91/black-feminism-and-intersectionality) + +**Nonbinary:** Any gender identity that [does not fit the male and female binary](https://www.bustle.com/articles/74316-12-questions-about-non-binary-gender-identity-youve-been-afraid-to-ask-and-real-answers). + +**Pipeline problem:** The belief that the tech industry isn’t diverse because of a scarcity of available talent. The reality is that [the pipeline is only part of the issue](http://www.npr.org/sections/alltechconsidered/2016/07/19/486511816/why-some-diversity-thinkers-arent-buying-the-tech-industrys-excuses) – better recruitment tactics and interview processes, a focus on retention and lots more can help create more diversity. + +**POC:** An acronym standing for “person of color.” This term is used primarily in the United States to describe any person who is not white \(although [racism affects different groups differently](http://everydayfeminism.com/2016/08/poc-not-best-choice-of-words/)\). + +**Privilege:** A right or advantage that only some people have access or availability to because of their social group membership. \(Here’s a well-known [exploration of white privilege](https://www.deanza.edu/faculty/lewisjulie/White%20Priviledge%20Unpacking%20the%20Invisible%20Knapsack.pdf).\) + +[![](https://open.buffer.com/wp-content/uploads/2017/06/privilege.jpg)](https://myusf.usfca.edu/student-life/intercultural-center/check-your-privilege) + +**Pronouns:** Maybe you’ve seen a Twitter bio with a line that says “My pronouns are…” A preferred gender pronoun is a [consciously chosen set of pronouns](https://pronoun.is/) that allow a person to accurately represent their gender identity. A trans person may begin using a gender-neutral pronoun prior to transitioning, or a non-binary person may choose to use a neutral pronoun. + +[![](https://open.buffer.com/wp-content/uploads/2017/06/pronouns.jpg)](https://d2mxuefqeaa7sj.cloudfront.net/s_C401446AA445AEE117575D0B1AC31E4D67258C7E9A7C8716D486FA2D59E0D958_1496340284573_pronouns.jpg) + +**Sponsorship:** An action that allies and those with privilege can take to advance the careers of members of marginalized groups. While mentors offer advice and support as needed, [sponsors use their social capital and credibility](http://larahogan.me/blog/what-sponsorship-looks-like/) to advocate for their protégés by promoting, protecting, preparing, and pushing them. + +**Tokenism:** The practice of including one or a few members of an underrepresented group in a team or company, without their having authority or power equal to that of other group members. This places a burden on an individual to represent all others like them. \(Example: When the lone person in an underrepresented group is consistently asked to speak about [being a member of that group](https://soledadpenades.com/2016/07/20/why-i-wont-talk-about-being-a-woman-in-tech-and-neither-should-you/).\) + +[**Tone policing**](http://everydayfeminism.com/2015/12/tone-policing-and-privilege/)**:** Tone policing is a silencing tactic used in arguments or discussions that focuses on the emotion behind a message rather than the message itself. \(for example, telling someone who is discussing an issue that makes them upset to “calm down” instead of responding to their concerns\). + +**Underrepresented group/underindexed group:** This terms describes any subset of a population that holds a smaller percentage within a significant subgroup than it holds in the general population. Women are often an underrepresented group in science, technology, engineering, and mathematics, for example. + +### 18 phrases it might be better to avoid + +As language evolves and our understanding and empathy increases, it’s often a good practice to dive deeper into specific word choice. Some of these words and phrases are benign, while many carry a fraught history or connotation. In all cases, there’s likely a better and more specific option \(we’ve tried to provide alternatives!\) + +* **Girl/Girls:** For anyone over 18 years old, woman or women is a better choice. +* **Grandfathering/grandfather clause:** A way to exempt some people from a change because of conditions that existed before the change \(e.g. we’ve grandfathered some users on an unlimited data plan.”\) The term “grandfather clause” originated in the American South in the 1890s as a way to defy the 15th Amendment and prevent black Americans from voting. A good alternative might be “legacy” +* **Guys:** When referring to mixed-gender groups. Alternatives: people, folks, teammates +* **Gypped:** [Racial slur](http://www.npr.org/sections/codeswitch/2013/12/30/242429836/why-being-gypped-hurts-the-roma-more-than-it-hurts-you) for being defrauded, swindled or cheated. According to the Oxford English Dictionary, the term is “probably an abbreviation of ‘gypsy,’ a word commonly used to describe the Romani people. +* **Females:** To many English speakers, “females” sounds like a scientific designation one would use for animals or plants. Try “women” instead. +* **Hacker:** In job descriptions, the term ”hacker” can be tough for many to identify with. [Hackbright Academy](http://hackbrightacademy.com/), an engineering fellowship for women, works with many organizations to revisit their job listings in order to paint a clearer picture of what it’s like working there. Alternatives: engineer, developer +* **Handicap:** Some disability advocates believe this term is rooted in a correlation between a disabled individual and a beggar, “who had to beg with a cap in his or her hand because of the inability to maintain employment.” Better alternative: Disabled +* **Housekeeping:** In reference to office work, this language can feel gendered. Suggested alternative: maintenance, cleanup +* **Ladies/gals:** Terms like “ladies”, “gals” or others can feel patronizing to some. Try women instead, or “folks” or “people” for mixed-gender groups. +* **Lame:** Originally used in reference to people with reduced mobility, now often a synonym for “uncool.” Both types of uses are ableist. +* **“**[**Lower the bar**](https://byrslf.co/what-you-re-really-saying-when-you-talk-about-lowering-the-bar-in-hiring-a30d9b12430f)**:”** A phrase based on the erroneous idea that a company has to relax hiring standards in order to add people from different racial/ethnic/gender backgrounds. In fact, in many cases [it’s the opposite](https://medium.com/inclusion-insights/want-to-hire-more-diverse-people-raise-your-bar-b5d30f91cbd9): companies have a poorly designed hiring bar that fails to adequately evaluate highly qualified, and often diverse, candidates. +* **Man:** As a synonym for work – as in “man hours,” “man the inbox,” “man the conference booth,” – this is unnecessarily gendered language. Try using work instead. +* **Master/slave:** Problematic term sometimes used to refer to one machine that has the original copy of data and others that automatically update themselves to match its data. Replacements include [primary/replica](https://github.com/django/django/pull/2692), primary/standby. +* **Meritocracy:** Belief in the flawed idea that hard work and talent alone are all that’s needed to achieve success. Challenges like implicit bias, structural inequality and varying degrees of privilege or disadvantage mean [meritocracy isn’t currently a reality](https://www.wired.com/2013/11/silicon-valley-isnt-a-meritocracy-and-the-cult-of-the-entrepreneur-holds-people-back/). +* **Mom test/girlfriend test:** A sexist term for [putting a product in front of unfamiliar visitors](https://lwn.net/Articles/279895/) to learn more how they would use it. The assumption that if such a person can use a program, anyone can, is both sexist and ageist. Alternatives: user testing +* **Ninja/rockstar:** Words sometimes used in tech job descriptions that can skew towards a gendered interpretation and [discourage some groups](https://storify.com/kissane/job-listings-that-don-t-alienate) from applying. +* **Open the kimono:** Problematic business jargon for disclosing information about the workings of a company. It has [sexist and racist overtones](http://www.npr.org/sections/codeswitch/2014/11/02/360479744/why-corporate-executives-talk-about-opening-their-kimonos). +* **Peanut gallery:** This term for heckling or unwanted disturbance originates in the 1920s when the peanut gallery referred to the back section of theaters, which were the only places that people of color were allowed to sit at the time. The phrase was [meant to poke fun](https://www.youtube.com/watch?v=QhENGl3XviM) at the idea of people of color engaging in intellectualism. + +### Plus 8 quick language substitutions + +Some habits are hard to break! If you’re anything like us, you’ve tried to change a language pattern and fallen back into old habits at least a few times. Here are some quick language substitutions for common situations that might help: + +_More inclusive:_ Folks, people, you all, y’all, teammates +_Less inclusive:_ Guys \(or women\) when referring to people overall + +_More inclusive:_ Women +_Less inclusive:_ Girls \(when referring to adults\) + +_More inclusive:_ Workforce, personnel, workers, team +_Less inclusive:_ Manpower, man hours + +_More inclusive:_ Chairperson, chair, moderator, discussion leader +_Less inclusive:_ Chairman, foreman + +_More inclusive:_ Spouses/partners +_Less inclusive:_ Wives, husbands, boyfriends, girlfriends + +_More inclusive:_ Parenting +_Less inclusive:_ mothering, fathering + +_More inclusive:_ Typical +_Less inclusive:_ Normal +\(There’s bias inherent in using one group as a standard against which others are judged. Use of the word normal as a comparison group can stigmatize people who are different and imply they are abnormal.\) + +_More inclusive:_ Marginalized groups or underrepresented groups +_Less inclusive:_ [Minorities](https://twitter.com/betterallies/status/869642678337536000) +\(Not all marginalized groups are minorities, and a broader term is generally inclusive of more than race and gender\) + +### A special note on the generic “he” in tech + +Particularly in tech conversations and job descriptions, sometimes the pronoun “he” is used to describe technical roles or executive roles by default. Here’s an [example from an old job listing at Buffer](https://open.buffer.com/diversity-mistakes/): + +_“We’re looking for a person who embodies this community spirit and is excited to share his knowledge with the broader web development world.”_ + +**Assuming that the normal, default tech person is a man has real consequences.** In one survey on [what deters women from male-dominated professions](http://www.bustle.com/articles/102805-7-explanations-for-workforce-inequality-that-are-not-lack-of-ability), a popular answer was the wording on job postings. + +[![](https://open.buffer.com/wp-content/uploads/2017/06/tumblr_o9llzcjxpM1qzmsi0o1_1280.jpg)](https://d2mxuefqeaa7sj.cloudfront.net/s_C401446AA445AEE117575D0B1AC31E4D67258C7E9A7C8716D486FA2D59E0D958_1496340284573_pronouns.jpg) + +The American Philosophical Association has some great tips to [**eliminate the generic use of** ‘**he:’**](http://www.apa.udel.edu/apa/publications/texts/nonsexist.html) +• Use plural nouns +• Delete ‘he’, ‘his’, and ‘him’ altogether +• Substitute articles \(‘the’, ‘a’, ‘an’\) for ‘his’ and ‘who’ for ‘he’ +• Substitute ‘one’, ‘we’, or ‘you’ +• Minimize use of indefinite pronouns \(e.g. ‘everybody’, ‘someone’\) +• Use the passive voice \[use sparingly\] +• Substitute nouns for pronouns \[use sparingly\] + +For more information on gender neutral job descriptions, including more lists like the one below, [Textio](https://textio.ai/) is a great resource. + +[![](https://open.buffer.com/wp-content/uploads/2017/06/original.jpg)](https://d2mxuefqeaa7sj.cloudfront.net/s_C401446AA445AEE117575D0B1AC31E4D67258C7E9A7C8716D486FA2D59E0D958_1496340284573_pronouns.jpg) + +### Over to you! + +This guide is definitely imperfect, but with your help it can become more useful! What words did we miss? What definitions here don’t feel quite correct to you? Share any thoughts in the comments and I’ll do my best to keep the post up-to-date for anyone who might want to reference it. + diff --git a/teams/developer-relations/development-roadmap/roadmap-topic-breakdown.md b/teams/developer-relations/development-roadmap/roadmap-topic-breakdown.md index 6697bcd..68c8cfb 100644 --- a/teams/developer-relations/development-roadmap/roadmap-topic-breakdown.md +++ b/teams/developer-relations/development-roadmap/roadmap-topic-breakdown.md @@ -2,16 +2,16 @@ ## Topic: Version Control -**Module: Intro to Version Control** +### **Module: Intro to Version Control** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn the basics of Version Control and its purpose in the context of software development. * Students will be introduced to command line * Students will be introduced to a basic Version Control Systems like Github * Students will learn how to use Github and Github desktop -_**Activities**_ +#### _**Activities**_ * Git through Command Line * You will download git to your computer and set it up through command line as well as learning the basic git command line arguments. @@ -22,18 +22,139 @@ _**Activities**_ * Work in Pairs! * You will work in pairs to discover the usefulness of a Version Control System by collaborating on a sample code by adding files, methods, and variables. -_**Labs**_ +#### _**Labs**_ * Create Your Own Repository * You will create your own Repository and upload your own projects and set up issues that need to be addressed. * Work on an Issue * You will practice working on an issue of a sample repo through GitHub Desktop and make commits locally as well as making a pull request through Github. +## Topic: HTML/CSS + +### Module: HTML/CSS Basics + +#### _**Learning Objectives**_ + +* Students will begin learning the basics of how to utilize HTML/CSS to create a webpage. +* Students will learn what HTML \(Hypertext Markup Language\) is and how CSS \(Cascading Style Sheets\) is used to style an HTML page. +* Students will learn the basic structure of an HTML page that can be used as a boilerplate for any future webpages they create. +* Students will be able to manipulate their webpages live using DevTools that web browers provide. + +#### _**Activities**_ + +* Hello World Webpage + * Create a simple HTML page to display "Hello World" +* Google.com Page + * Replicate Google.com's page with a Google logo, buttons, and links +* Amazon Search Result Page + * Design an Amazon search result page for a search on a piece of furniture +* Simple Potluck Form + * Design an invitation to a potluck as a form to fill about what they want to bring and any other food preferences + +#### _**Labs**_ + +* Favorite Internet Icon/Group Collage + * Create a webpage about an internet icon/group and include what they're about, fun facts, what hobbies they enjoy, and anything else to add +* Recipe Page + * Create a detailed webpage about your favorite recipe for others to follow +* Feedback Topic Survey + * Create a survey for people to give feedback about a specific topic \(e.g. music, food, travel, etc.\) + +### Module: HTML/CSS Advanced + +#### _**Learning Objectives**_ + +* Students will expand on using ids and classes to help stylize specific HTML elements +* Students will understand how CSS selectors and nesting can be utilized to style specific HTML elements +* Students will learn how to create a responsive website for easier readability + +#### _**Activities**_ + +* Bucket List + * Create a bucket list with pictures while utilizing more advanced CSS techniques +* Recreate YouTube + * Recreate YouTube's home page with a selection of videos, video titles underneath each video, and a sidebar with subscriptions +* Coffee Shop Website + * Create a website to show to customers different coffee drinks, where coffee beans are sourced, etc. +* Online Banking + * Create an aesthetically pleasing online banking application + +#### _**Labs**_ + +* App Store + * Create an app store for +* CSS Zen Garden + * Create CSS for the CSS Zen Garden Project +* To-Do List + * Create a colorful to-do list web application to record tasks, check off tasks, and move around tasks using provided JavaScript code + +## Topic: JavaScript + +### Module: JavaScript Basics + +#### _**Learning Objectives**_ + +* Students will learn the basics of JavaScript syntax +* Students will begin learning the basics of how to utilize JavaScript to make an interactive webpage +* Students will understand what the DOM is and learn how to access and manipulate it to change the webpage +* Students will learn how to program various UI events for the mouse and HTML buttons + +#### _**Activities**_ + +* Interactive Hello World Webpage + * Create an interactive Hello World webpage using alerts, prompts, and confirms +* Random Color Website + * Create a simple webpage that generates a random color\(s\) depending on the user's choice +* Simple Guessing Game + * Design a simple game to guess a randomly generated number between a given min and max that will include hints +* Mouse Cursor Game + * Create a mouse cursor game where the cursor is dragged through a maze without touching the walls + +#### _**Labs**_ + +* GPA Calculator + * Create a GPA calculator to help calculate the user's GPA +* howmuch\[insert item\].com + * Create an interactive webpage for a user to calculate how much they need of \[insert item\] to survive the pandemic +* Hangman + * Create a Hangman game for a player to guess a random word + +### Module: JavaScript Advanced + +#### _Learning Objectives_ + +* Students will expand on JavaScript syntax to learn how to select HTML elements using CSS syntax +* Students will learn more in depth of various JavaScript datatypes like objects, array, and maps +* Students will learn how to utilize HTML canvas element for drawing graphics on a webpage +* Students will learn JavaScript scheduling, utilizing setTimeout and setInterval to create timers + +#### _Activities_ + +* Dot Art Wall + * Create a canvas that the user can draw their mouse through to leave a trail of dots +* Simple Timer Game + * Create a simple timer game for the user to complete a series of tasks before stopping a stopwatch +* Find the Invisible Circle + * Generate and randomly place a white circle in a canvas +* Mouse Cursor Game 2.0 + * Build an even bigger mouse cursor game and store user's time and display it on the side +* adarkroom game + * Create a similar game to adarkroom with simple buttons, keeping track of user actions, and generating a monologue + +#### _Labs_ + +* Fifteen Puzzle + * Use an image to create a fifteen puzzle in a 4x4 grid with one square missing, sliding squares into an empty space until the image is reassembled +* App Store + * Recreate an app store for the user to see various apps and display information about each app when clicked on +* Crossword Puzzle + * Pick a theme and create a crossword puzzle out of the words describing the theme + ## **Topic: SQL/SQLAlchemy** -**Module: SQL/SQLAlchemy** +### **Module: SQL/SQLAlchemy** -_**Learning Objectives:**_ +#### _**Learning Objectives:**_ * Students will learn the basics of SQL, its purpose, and how it is different from NoSQL. * Students will learn how to use SQLAlchemy to easily implement an SQL database into their Flask applications. @@ -41,7 +162,7 @@ _**Learning Objectives:**_ * Students will learn how to make models and use Flask-Marshmallow to specify the required format of each field. * Students will learn the concept of ORM \(object-relational mapping\) with SQL as a technique of converting data between relational data bases as objects in code. -_**Activities:**_ +#### _**Activities:**_ * SQL/SQLAlchemy Basics * Students will learn the basics of SQL and SQLAlchemy through this activity to apply these concepts to the other labs and activities in this module. @@ -52,7 +173,7 @@ _**Activities:**_ * Housing Directory: * Now that the student has a school directory, they should create a directory that contains all the information about each person at the school’s housing information; the databases should then be related. -_**Labs:**_ +#### _**Labs:**_ * Flask Election App: * Students should make a simple Flask App that is capable of storing information about different candidates in an election. This application must support the CRUD operations and students will use models and Flask-Marshmallow to specify the type of data being stored. @@ -61,16 +182,16 @@ _**Labs:**_ ## Topic: Node.JS -**Module: Intro to Node.JS** +### **Module: Intro to Node.JS** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn the basics of writing Javascript in the context of a desktop/web app. * Students will get exposure to synchronous and asynchronous functions, which are an integral part of Node.js. * Students will get exposure to modularity\(i.e making functions that will be used in completely different programs\). * Students will learn how to use the Node.js HTTP client and server usage. -_**Activities**_ +#### _**Activities**_ * Search For A Word * You will write a program that reads and parses a file\(both synchronously and asynchronously\) and outputs the line number\(by counting the “\n”\) of a word you pass into the function. @@ -81,7 +202,7 @@ _**Activities**_ * Glorified\(But Polite\) Clock * Use the HTTP client to make a program that outputs \(on the CLI\) when it receives a get request. -_**Labs**_ +#### _**Labs**_ * Random Sentence Generator * You are going to write a program that generates random sentences from the words the user inputs into a file. @@ -90,9 +211,9 @@ _**Labs**_ ## Topic: NoSQL/MongoDB -**Module: Intro to NoSQL/MongoDB** +### **Module: Intro to NoSQL/MongoDB** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn the advantages of using a NoSQL database. * Students will learn how to utilize MongoDB's Stitch and Atlas platforms to their advantage. @@ -100,7 +221,7 @@ _**Learning Objectives**_ * Students will learn how to lookup files/data in their databases. * Students will learn how to manipulate their data in their databases and create relationships in their databases. -_**Activities**_ +#### _**Activities**_ * My Favorite Foods * You will write a Node.js program that creates and populates a MongoDB database with your favorite food’s recipe. Students will also use Stitch to make a alternative verison of the original\(showcasing the time saved if they had used Stitch\). @@ -111,7 +232,7 @@ _**Activities**_ * Too Much Flour * You will write a Node.js program that returns the average amount of flour used in your recipes\(which are in your database\). -_**Labs**_ +#### _**Labs**_ * Tweet Up * You are going to write a program that populates a MongoDB database with the tweets of your favorite user and organizes them into different groups using statistics like how many people retweeted a specific tweet and etc. You must use MongoDB's Atlas\(for cloud support\) and Stitch\(for ease of use\) for this lab. @@ -122,16 +243,16 @@ _**Labs**_ **Topic: Flask** -**Module: Python Flask** +### **Module: Python Flask** -_**Learning Objectives:**_ +#### _**Learning Objectives:**_ * Students will learn the purpose and basics of Python Flask. * Students will learn how to route different pages within their applications using Flask. * Students will gain experience with structuring different CRUD operations. * Students will use Flask-RESTful to structure their routes for RESTful APIs. -_**Activities:**_ +#### _**Activities:**_ * Flask Intro * Since Flask can be difficult to set up, the first activity will cover the basic intro to Flask to get the students going. @@ -142,7 +263,7 @@ _**Activities:**_ * Making Users Active * Students will learn the concept of Flask session by creating simple endpoints that makes a user active, returns JSON data of the active user, and deactivates a user. -_**Labs:**_ +#### _**Labs:**_ * Recipe Application * Students will be provided with a native dictionary of recipes in their application, and use Flask and Flask-RESTful to create endpoints to create, remove, and edit the recipes. @@ -151,16 +272,16 @@ _**Labs:**_ ## Topic: Express.JS -**Module: Intro to Express.JS** +### **Module: Intro to Express.JS** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn how to use Express.js in order to react to and serve client requests. * Students will learn how to supply client requests with HTML web pages. * Students will learn how to supply clients with more dynamic web pages\(using PUG, jQuery, CSS, etc.\) * Students will learn how to supply clients with JSON and data from a MongoDB database. -_**Activities**_ +#### _**Activities**_ * Hello World Around The World * You will write a Node.js program using the Express.js library to create a static HTML webpage that showcases the phrase “Hello World” in different spoken languages. @@ -171,7 +292,7 @@ _**Activities**_ * Your Local Weather Channel * You will write a Node.js program using the Express.js library to create a dynamic webpage that outputs the local weather\(using their own data\) in JSON. -_**Labs**_ +#### _**Labs**_ * Quartz,Parchment,Shears * You are going to write a program that sets up a dynamic website that allows you to play rock,paper,scissors with an AI player! @@ -180,16 +301,16 @@ _**Labs**_ ## Topic: APIs -**Module: API Concepts** +### **Module: API Concepts** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn the basic concepts behind APIs, why they are used, the idea behind their functionality, etc * Students will understand CRUD operations * Students will learn HTTP Methods and Endpoints * Students will understand JSON data -_**Activities**_ +#### _**Activities**_ * Introduction to APIs * Introduce what an API is, possibly ask students to come up with their own possible uses of APIs, introduce vocabulary like client and server, etc. @@ -202,7 +323,7 @@ _**Activities**_ * Security * Students will learn how to use authentication for apis such as API keys -_**Labs**_ +#### _**Labs**_ * Weather Application * students will use a simple weather API to create a weather app. They can use their basic knowledge of HTML/CSS and other backend resources @@ -213,14 +334,14 @@ _\*\*\*\*_ ### Module: Testing APIs with Postman -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn how to use Postman in order to test API requests and why this is useful to developers * Understand Postman Collections and Collection Runner * Understand Postman Mock Servers * Learn Postman Documentation -_**Activities**_ +#### _**Activities**_ * Creating and Testing BitBloxs * Use the bitblox API in order to teach students the basics of how to run requests through postman @@ -233,7 +354,7 @@ _**Activities**_ * Documentation in Postman * Teach students how to make documentation in postman -_**Labs**_ +#### _**Labs**_ * NASA API * Adjust the activity APIs for front end developers in order to create a lab where students create a more indepth website using NASA's API @@ -242,7 +363,7 @@ _**Labs**_ ## Topic: Blockchain -**Overview** +### **Overview** The Blockchain topic is split into five separate modules: @@ -264,16 +385,16 @@ _Advanced Solidity_ is the apex of the _Solidity_ series \(_Fundamental_ and _In _Beyond Blockchain_ borrows knowledge from the _Solidity_ series \(_Fundamental, Intermediate,_ and _Advanced_\) but is focused more towards building off of the _Principles of Blockchain_ module, introducing students to Blockchain-related technologies to create more powerful and capable decentralized applications. -**Module: Principles of Blockchain** +### **Module: Principles of Blockchain** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn about what distinguishes a blockchain from existing technologies * Students will learn about the Bitcoin architecture and its defining success as well as failures * Students will learn about Post-Bitcoin architectures * Students will learn about what Smart Contracts and are and their uses -_**Activities**_ +#### _**Activities**_ * Hash Playground * Experiment with different hashing protocols used in different blockchain architectures @@ -284,22 +405,22 @@ _**Activities**_ * PoS Blockchain * Create a simple Proof of State \(PoS\) based blockchain -_**Labs**_ +#### _**Labs**_ * Your Own PoW Blockchain * Create an upgraded PoW blockchain * Your Own PoS Blockchain * Create a custom staking protocol -**Module: Fundamental Solidity** +### **Module: Fundamental Solidity** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn about the Ethereum Blockchain architecture and how it executes Smart Contracts * Students will learn about the general procedure for developing, deploying, and testing smart contracts * Students will learn about fundamental types and their associated operations in Solidity -_**Activities**_ +#### _**Activities**_ * Ethereum Simulation * Learn to send, receive, and analyze transactions in a simulated environment @@ -310,22 +431,22 @@ _**Activities**_ * Solidity Oddity * Experiment with solidity-specific data types and understand their uses -_**Labs**_ +#### _**Labs**_ * Blockulator * Create a smart contract calculator that can perform simple arithmetic on integers * Cipher * Create a smart contract with an encryption and decryption utility utilizing solidity-specific data types -**Module: Intermediate Solidity** +### **Module: Intermediate Solidity** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will gain mastery of the Ethereum memory layout * Students will be introduce to compound and reference types * Students will learn about the mainstream applications of the Ethereum blockchain -_**Activities**_ +#### _**Activities**_ * Voting * Create a simple voting smart contract where individuals can cast votes which are then tallied @@ -334,22 +455,22 @@ _**Activities**_ * Blind Auction * Create a smart contract for a blind auction on a certain goods -_**Labs**_ +#### _**Labs**_ * Rolodex * Create a smart contract that stores contact information and preferences of individuals * Token 2.0 * Upgrade the original Token implementation for more fine-grained control and advanced features -**Module: Advanced Solidity** +### **Module: Advanced Solidity** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn about using libraries to promote code reusability * Students will learn about how to use multiple contracts together to build more complex applications * Students will learn about unit testing to ensure safe contract design -_**Activities**_ +#### _**Activities**_ * MathLib * Create a library for faster and safer math operations @@ -360,22 +481,22 @@ _**Activities**_ * Test Driven Development * Learn to leverage unit testing to ensure proper smart contract behavior -_**Labs**_ +#### _**Labs**_ * Telephone * Have several contracts relay data to each other, mutating and deciphering data in a predictable fashion * Zeppelin Tokens * Use OpenZeppelin to create Tokens and subject them to unit tests -**Module: Alternative Blockchains** +### **Module: Alternative Blockchains** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn about alternative blockchain platforms that support the Solidity Programming Language * Students will learn about alternative blockchain platforms that use a language other than Solidity * Students will learn about permissioned blockchain platforms as well as the benefits and drawbacks they provide -_**Activities**_ +#### _**Activities**_ * TRON * Deploy and interact with a contract on the TRON platform @@ -384,22 +505,22 @@ _**Activities**_ * HyperLedger * Deploy and interact with a contract on the Hyperledger platform -_**Labs**_ +#### _**Labs**_ * TRON Port * Deploy the previously built calculator app onto the TRON platform * EOS Calculator * Port the calculator you built in Solidity to EOS -**Module: Beyond Blockchain** +### **Module: Beyond Blockchain** -_**Learning Objectives**_ +#### _**Learning Objectives**_ * Students will learn about how to create cross-blockchain applications * Students will learn about decentralized storage protocols and their interface to smart contracts * Students will learn about the applications of Blockchain for Internet-of-Things \(IoT\) devices -_**Activities**_ +#### _**Activities**_ * Aboard the Ark * Create two contracts on two separate blockchain platforms and make them interact with each other @@ -408,19 +529,19 @@ _**Activities**_ * Iota * Experiment with a blockchain for Internet of Things \(IoT\) devices -_**Labs**_ +#### _**Labs**_ * IPFS x Ethereum * Use IPFS with Ethereum to easily store and retrieve arbitrary files -**Module: GraphQL** _**Learning Objectives**_ +### **Module: GraphQL** _**Learning Objectives**_ * Students will have an understanding of GraphQL and how to query/insert/Mutate through data * Students will be able to integrate GraphQL into their applications * Students will be able to use GraphiQL and GraphQL playground * Schema and JSON/SDL formatting -_**Activities**_ +#### _**Activities**_ * Query though a blog entry * Students will query though blog posts that can display various data @@ -430,12 +551,14 @@ _**Activities**_ * Students will be link between various databases * Labs \( Hard to design because GraphQL is not standalone. It needs to be an extension off of existing knowledge\) -_**Labs**_ +#### _**Labs**_ * Use GraphQL in a blog * Use GraphQL to filter through a list in a blog posts -**Module: Static Site Generators** _**Learning Objectives**_ +### **Module: Static Site Generators** + +#### _**Learning Objectives**_ * Students will learn about Static Sites Generators and how they can be useful * Students will learn about GatsbyJS and NextJS and how to use them to generate a website @@ -449,14 +572,151 @@ _**Labs**_ * NextJS functionality * TBD -_**Labs**_ +#### _**Labs**_ * Build a Blog * Students will use a GatsbyJS to build a functional blog * Build a React App with NextJS * TBD -_**Modules Required**_ +### **Module: Mordern CSS & CSS Frameworks** + +#### _**Learning Objectives**_ + +* Students will learn about the emerging trend of css graphs and how it plays into creating resposive websites +* Students will learn about different CSS writing ideologies. Specifically 2 with different core ideas: BEM and Atomic CSS. +* Students will learn about CSS frameworks—one simple and one more complex. Students will learn Skeleton and Bootstrap + +#### _**Activities**_ + +* Create a blog post page + * Create a resposive CSS blog post page using CSS grid. +* User Profile "cards" with BEM + * Create small modularized cards with with the BEM ideology to write and maintain CSS + * "horizontal layout" +* "Pokedex" with Atomic CSS + * Create a page that acts like a Pokedex with Atomic CSS ideology to write and maintain CSS + * "vertical layout" +* Portfolio website with Skeleton + * Students will learn to create a portfolio website using the Skeleton CSS boilerplate +* Mock Twitter interface with Bootstrap + * Students will learn to replicate the Twitter interface with Bootstrap \(no interaction, just placement\) + +#### _**Labs**_ + +* Chain Restaurant Website + * Students will implement the CSS of single page \(but responsive\) website for a restuarant with plenty of pictures, menu, quotes, and Google Maps. +* Fairytales Themed Blog website + * Students will implment the CSS of a simple blog website which writes commentary essays about fairytales. + * 2 tabs: home, contact, all posts + * Posts will be modular, with pictures associated with specific paragraphs +* German Grammar Tables Reference Page + * Students will implment the CSS of a single responsive page website where that shows all the German grammar tables for a quick reference. The only other thing is a menu that allows users to jump to sections of the page. + * Have to transform tables with moderate amounts of information \(which is a pain in the ass, but good practice\) + +### **Module: Intro React** + +#### _**Learning Objectives**_ + +* Students will learn about the Javascript Framework React and about what it can and can't do. +* Students will learn how to code both React class and function components +* Students will learn how to style their components +* Students will learn how to manage their states + +#### _**Activities**_ + +* User profile "cards" + * Create and render editable User profile "cards" +* Build an accordion menu with React + * Create an accordion interactive accordion menu with React where only one subsection can be expanded at a time. +* "Pokedex" Website with React + * Create a site that acts like a Pokedex with React. Pages of the site will be split by generations and routing will be used to switch between these. + +#### _**Labs**_ + +* Chain Restaurant Website \(React ver\) + * Students will implement a single page website for a restuarant with plenty of pictures, menu, quotes, and Google Maps. +* Fairytales Themed Blog website \(React ver\) + * Students will implment a simple blog website which writes commentary essays about fairytales. + * 2 tabs: home, contact, all posts + * Posts will be modular, with pictures associated with specific paragraphs +* German Grammar reference site \(React ver\) + * Students will implment a single responsive website where that shows all the German grammar tables for a quick reference. Pages will be comprised of parts of speech. Each page will have an explanation section and then the associated grammar tables + * Students will have to create these table containers themselves + +### **Module: Advanced React** + +#### _**Learning Objectives**_ + +* Students will learn about calling APIs with React +* Students will learn how to implement dynamic forms with React +* Students will learn how to use other APIs +* Students will learn how to deplot their website that is built with React + +#### _**Activities**_ + +* User profile "cards" + * Create and render editable User profile "cards" + * But this time with a lot more information that will be in each card, and an editing form \(no db\) + * Front-end only form validation with React +* Build an accordion menu with React I + * Create an accordion interactive accordion menu with React where only one subsection can be expanded at a time. You can change the name of the foods, ingredients, or description. + * Editting form. db used +* Build an accordion menu with React II + * Convert the menu into a site + * Use the Google Maps API on the site + * Use the Algolia API to do a search by ingredient \(in case of allergies\) +* "Pokedex" Website with React + * Create a site that acts like a Pokedex with React. Pages of the site will be split by generations and routing will be used to switch between these + * Switch to using db \(review\) & then deploy + +#### _**Labs**_ + +* Fantasy Boy/Girl Group Creation Application + * Students will implement the CRUD operations of forming a fantasy boy/girl group with databases and forms + * Then deploy it with heroku +* Pantry + Shopping List Tracker Application + * Students will implement the CRUD of an application to keep track of what is in their pantry. Pantry will have foods, its quantities, and their expiration dates. + * They will use Algolia's search API + * They can also have the option to add things into their shopping list so that \(from either the pantry or a new item altogether\) + * Shopping List Functionality: when an item has been bought then automatically add it to the pantry + +### **Module: Redux** & Alternatives + +#### _**Learning Objectives**_ + +* Students will learn about handling global states with Redux +* Students will learn how to use Redux in general outside of a React environment +* Students will learn how to integrate Redux and React +* Students will learn how to create normal and admin views +* Students will learn about Redux Alternatives: Context API and React Hooks + +#### _**Activities**_ + +* Getting acquainted with Redux Store, Reducer, & Dispatch + * Just going over the words, what they mean and how they are meant to be used + * This is a guided walkthrough +* Build an accordion menu with React III \(Redux\) + * Create a log in for owners so that they are the only people allowed to change the menu offerings with Redux +* Build an accordion menu with React III \(Context API\) + * Create a log in for owners so that they are the only people allowed to change the menu offerings with Context API +* Build an accordion menu with React III \(React HooksI\) + * Create a log in for owners so that they are the only people allowed to change the menu offerings with Context API + +#### _**Labs**_ + +* Fantasy Boy/Girl Group Creation Application \(with User types\) + * Students will implement the CRUD operations of forming a fantasy boy/girl group with databases and forms + * Then deploy it with heroku + * Create a login for a boss persona so that they are the only people allowed to add and remove members, but anyone can edit the user profiles +* Pantry + Shopping List Tracker Application \(with User types\) + * Students will implement the CRUD of an application to keep track of what is in their pantry. Pantry will have foods, its quantities, and their expiration dates. + * They will use Algolia's search API + * They can also have the option to add things into their shopping list so that \(from either the pantry or a new item altogether\) + * Shopping List Functionality: when an item has been bought then automatically add it to the pantry + * Create a login for a kid and mother persona so that when kid users try to make a request to add something to the shopping list, it can be approved or rejected the mother. So there is a "pre-shopping list limbo" for foods. + +#### _**Modules Required**_ * React * GraphQL diff --git a/teams/developer-relations/guide-to-being-a-manager/README.md b/teams/developer-relations/guide-to-being-a-manager/README.md index fe23e38..7f683aa 100644 --- a/teams/developer-relations/guide-to-being-a-manager/README.md +++ b/teams/developer-relations/guide-to-being-a-manager/README.md @@ -29,6 +29,56 @@ All reviewers will be assigned an issue in the **bitproject** repository, to be This checklist will be posted within the issue and should all be completed within 3 days of assignment. +### Pre-approval: What To Do + +* [ ] For each module,create a document that outlines the planned curriculum\(make sure to format it properly and according to the example\) + * [ ] Make sure learning objectives are written and formatted properly + * [ ] Make sure activity titles and descriptions written and formatted properly + * [ ] Make sure lab titles and descriptions written and formatted properly + +### Role of Epics + Assigning Epic Points + +Epics represent long-term \(in the form of GitHub issues\) that will keep you on track to finish weekly assignment,activities & labs, and entire modules. These epics should be assigned points not based on how long they will take to complete but the overall, implementation based difficulty. Activity,Lab ,and workshop epics are assigned different points and they add up to represent the total weight/points of an entire module. + +### Explanation of Role of Issues \(curriculum issues\) + +Issues are assigned weekly to developers and represent a week's work that will help you reach your epics. These issues should help you push yourself further down your Epics. They should be succinct enough\(and must also follow the given format on GitHub\) for developers to understand but not get overwhelmed by too many details or work. + +### Explanation of Role of Milestones + +Milestones represent a person's and a team's weekly goals. They are comprised of curriculum issues and represent how much progress a team or person has made during a week. They will help you keep track of everyone's weekly work quota and your own work. + +### Adding Issues to Epics \(Modules + Activities + Labs\) + +Issues\(GitHub\) should be added to Epics. On a higher level, they represent what things need to be down in order to take down an Epic and will help you breakdown your goals into more tangible ideas and tasks. Module,activities, and lab Epics will be given smaller issues that break them into more ,as previously stated, bit-sized chunks that you can further break down into weekly issues and Milestones. + +### Long-term Plan + +A long-term plan should be clear for not only yourself but outsiders who might view it as well. It should follow a set format\(as shown below\) and should outline both major points that need to worked on and the time frame on when these issues will be dealt with. It should be realistic and extra care should be taken into considering that deadlines that you set might need to be adjusted\(so give yourself some "wiggle room"\) + +`Overview of things to do:` + +* `Create section on Python Class and other OOP concepts` +* `...` +* `Recycle older tutorials into new sections for the current module` +* `Add more descriptive visuals to currently-made activities` + +`Weekly Goals:` + +`Week of April 23th: Start outlining foundation cards` + +`Week of April 30th: Start recycling older cards for the new Python tutorial module` + +`...` + +### ZenHub Calender + +You should use ZenHub as a visual deadline guide and reminder. You will create Epics that will represent blocks on ZenHub. You will then adjust their size according to their perceived start date and deadline. You will also create sub-epics\(i.e activity,workshop labs, etc.\) that will also have their own deadlines\(that will build up the main module epic\). + + + + + ## Weekly Manager Checklist * [ ] Review developers' work and provide a review according to the Pull Request Checklist @@ -39,20 +89,22 @@ This checklist will be posted within the issue and should all be completed withi * [ ] Designate two issues _not being solved_ to be "first timer only" issues * [ ] Milestone should be set-up * [ ] Adjust long-term plan and epic points for each module epic based on feedback and progress + * [ ] Ensure General Review Checklist is being updated based on the developers' progress * [ ] Adjust timeline in Zenhub Calendar ## Pull Request Checklist -Every week, there are a couple essential things that every manager should take care in pull requests. This checklist applies to both pull requests from developers' branches to managers' branches and from managers' branches to `master`. +Every week, there are a couple essential things that every manager should take care in pull requests. This checklist applies to both pull requests from developers' branches to managers' branches and from managers' branches to `master`. * [ ] **Branch updated from `master`** * [ ] Spelling and grammar errors fixed -* [ ] Markdown Formatting +* [ ] Correct Markdown Formatting +* [ ] Adjust timeline in Zenhub Calendar * [ ] Correctly spaced code snippets * [ ] Code style followed * [ ] Local images with <img> NOT Markdown * [ ] Splitting Up Cards \(no more than one scroll a card\) -* [ ] Readability Test: Automated Readability Index result of 9th grade or under \([https://readabilityformulas.com/free-readability-formula-tests.php](https://readabilityformulas.com/free-readability-formula-tests.php)\) +* [ ] Readability Test: Automated Readability Index result of _9th grade or under_ \([https://readabilityformulas.com/free-readability-formula-tests.php](https://readabilityformulas.com/free-readability-formula-tests.php)\) * [ ] Visuals make sense * [ ] Alternate text for visuals * [ ] Specific micro-issues addressed in pull request @@ -66,19 +118,19 @@ Every week, there are a couple essential things that every manager should take c This checklist should be pasted into each review, and checked off completely by Sunday. -## General Development Review Checklist +## General Development Review Checklist The following checklist must be fully completed before an Epic deadline, and also serve as a general guide to development. -This checklist should be maintained and updated +This checklist should be maintained and updated -#### Checklist for Devs +#### The General Checklist for Devs Developers should be developing curriculum with all of those requirements in mind. Each issue they are assigned should address items on this checklist directly. Additionally, each pull request should have stage labels corresponding to the four stages. Please apply as many labels as applicable, for every item addressed in a stage, there should be that corresponding stage label applied. -#### Checklist for Reviewers +#### The General Checklist for Reviewers With regards to this checklist, reviewers should do the following: @@ -88,22 +140,27 @@ With regards to this checklist, reviewers should do the following: * Ensure that stage labels are being properly marked * When entire checklist is checked off for an Epic, then that Epic should be completed and linked within a pull request to `master` to indicate completion -#### Stage 1 - Starting Content +### General Checklist + +#### General Items \(Apply to All Stages\) * [ ] High-schooler friendly writing style, easy to understand * [ ] Correct numbering * [ ] Every card has code\* * [ ] 1 scroll per card\*\* -* [ ] Content of cards make sense * [ ] Proper grammar, punctuation, capitalization, etc. -* [ ] Micro to Macro Principle -* [ ] Titles for Concepts associated with each Card -* [ ] Acceptable Styling per the Manager Checklist +* [ ] Acceptable Styling per the Pull Request Checklist \*Exception being hard and medium cards in labs as well as activity cards that just introduce concepts \*\* If you have to scroll more than once to view the whole card, the card is too long +#### Stage 1 - Starting Content + +* [ ] Content of cards is more accessible to beginners +* [ ] Micro to Macro Principle +* [ ] Titles for Concepts associated with each Card + #### Stage 1 - Lab Addendum * [ ] Hard cards provide enough guidance for the student to finish task @@ -120,7 +177,6 @@ With regards to this checklist, reviewers should do the following: * [ ] \(For activities\) Fleshed-out, real-life scenarios * [ ] 2-3 Checkpoints \(Types: Short Answer, Image, Multiple Choice, Video, Autograder/Code\) * [ ] All concepts fleshed out -* [ ] Acceptable Styling per the Manager Checklist #### Stage 2 - Lab Addendum @@ -137,14 +193,12 @@ With regards to this checklist, reviewers should do the following: * [ ] Hints \(Medium + Easy Cards\) * [ ] Concepts * [ ] Checkpoints - * [ ] With test cases if applicable + * [ ] With test cases for checkpoints if applicable * [ ] Concepts for each card completely finalized, with correct README formatting -* [ ] Acceptable Styling per the Manager Checklist -#### Stage 3 - Lab Addendum +**Stage 3 - Lab Addendum** * [ ] 5-10 test cases, correctly formatted according to READMEs -* [ ] Badge Gem Amounts correctly calculated using John’s code \(no diagram for activities\) #### Stage 4 - For Reviewers Only @@ -154,3 +208,14 @@ With regards to this checklist, reviewers should do the following: * Activities: Predetermined amounts * [ ] Have curriculum proofread by writing team \(currently Victoria Xu @vkxu657\) +## Revision by Head of Developer Relations and President +Here at Bit, we place heavy emphasis that all content and material developed by Bit is up to our standards. In addition to material being reviewed by respective managers, the material will undergo further review by the head of Develop Relations, Kevin Vvuong, as well as the President of Bit Project, Daniel Kim. We have many developer teams at Bit and this process is necessary to ensure all material is synchronous and consistent. +Kevin will occasionally audit a random Pull request from a developer to a manager and ensure proper feedback is being provided. While Kevin is auditing, he will be looking to ensure the content matches Bit Project's long term goals and is consistent with the other material. +Daneil, as president, will also audit Kevin's pull requests to ensure quality is consistent through all curriculum by Bit Project. It will conducted in a similiar process to Code Reviews performed by managers. + +In order for curriculum to have a level of quality expected of Bit Project, we have implemented 3 checks. + 1. Approval by Manager + 2. Approval by Kevin Vvoung + 3. Approval by Daniel Kim + + diff --git a/teams/developer-relations/guide-to-being-a-manager/raising-issues.md b/teams/developer-relations/guide-to-being-a-manager/raising-issues.md index 66f0cbd..d116787 100644 --- a/teams/developer-relations/guide-to-being-a-manager/raising-issues.md +++ b/teams/developer-relations/guide-to-being-a-manager/raising-issues.md @@ -1,6 +1,94 @@ +--- +description: Reflexive clauses are your friends +--- + # Raising Issues -Checklist +## **Content** + +It is each individual's job to make sure that their own code snippets are formatted and commented correctly—this is in terms of the functionality of the code. If the code works, but the spacing is off, this must be fixed by the developer themselves most likely during their second revision, but **before** merging. + +1. [ ] The code is functional and devoid of runtime errors + * [ ] If you can think of a case where the code fails, this must be addressed +2. [ ] The code uses the correct implementation + * [ ] If the lab is about DFS, the solution should involve DFS + * [ ] Adheres to DRY principle +3. [ ] The code uses syntax that is correct and does not contain too many "shortcuts" + * [ ] If shortcuts are used, please make sure that this has proper syntax + * [ ] No extraneous punctuation marks. Ex: a lot of people code primarily in C/C++/Java for school where semicolons are mandatory, if some of these show up in Python, they should be removed +4. [ ] Aesthetic and easy to read + * [ ] Semantically named variables + * [ ] Comments are preceded by a space. Ex: `// this is a correct comment` + * [ ] Spaces between operators. Ex: `snake = 'Voldemort'` + * [ ] Not `snake='Voldemort'`, `snake ='Voldemort'`, or `snake= 'Voldemort'` + * [ ] Has proper language selected so that there is helpful highlighting + +## **Context** + +### Reminders + +* [ ] Are reminders given when necessary? At times we have to remind students of how an algorithm works + * [ ] Usually at the beginning of the **first** mention in activities + * [ ] Usually in the **medium** cards of labs + +### Clear and Comprehensive Explanations + +#### Methods \(overview\) + +* [ ] Arguments + * [ ] Why are those our arguments? + * [ ] What is the expected type and data of each argument + * [ ] Pass by reference or pass by value +* [ ] Returns + * [ ] \(Base\) Cases + * [ ] Explain the condition + * [ ] Explain the return + * [ ] Mention how we are going to return the correct value—switch cases, if else statements, recursion, etc + +#### Methods \(body\) + +* [ ] Conditionals + * [ ] Explain why we check against the values that we do—is it mandated by the algorithm, the length of a list, etc + * [ ] Explain the purpose of each conditional—is it to return the correct value, change a value, simply finding an element in a linked list, etc + * [ ] Explain all temporary variables if used + +#### Language + +* [ ] Use technical terms when possible + * [ ] The **first instances** of these in each lab/activity are bolded and followed by a reminder or an explanation + * [ ] **Reflexive clauses** are your friends + * [ ] If you use non technical terms \(ex: left or right\), please have them be accompanied by **more** technical terms \(ex: less than, greater than\) + * [ ] Be careful that your tone does not become too dry—we still want to sound personable and engaging +* [ ] Adding more adjectives and adverbs do not make your explanations more clear. Just because an explanation is prefaced by "simply" or any other similar word, it does not mean that the explanation is that. +* [ ] Adding more exclamation points is borderline patronizing—babying almost. Engaging and simple introductions can be written without more than 2 exclamation points. + +## **Ordering** + +* [ ] Is the order of the cards relevant? You want to minimize the usage of the words "this will be discussed later" +* [ ] Is it discussed in a way where each topic builds upon on the next one? +* [ ] Is this the most common way for this thing to be explained? Can rearranging the order better explain this thing? +* [ ] Does a new card need to be created? + * [ ] Break the card into multiple is need be + * [ ] Break the card into more discrete steps + +## **Styling** + +* [ ] Markdown formatting correctly used? + * [ ] Does it comply to the parsing requirements? + * [ ] Are titles, bolded, code segments, code snippets, etc properly used? +* [ ] The `` tag used? +* [ ] Writing is grammatically correct +* [ ] Writing is not especially wordy +* [ ] Writing can be read and understood by a 9th grader + +## **Visuals** + +* [ ] Images are placed in the "images" folder associated with the activity/lab/module/topic +* [ ] Images are the correct size +* [ ] Images are not copyrighted; use either stock images or custom visuals +* [ ] Visuals are not off topic and provide contextual value +* [ ] Is a screenshot of the expected format informative for students to make sure that they are on track? +* [ ] Images have a description/alternative text -Documentation for each item on the checklist +\*\*\*\* diff --git a/teams/developer-relations/guide-to-development/README.md b/teams/developer-relations/guide-to-development/README.md index 065c4d0..e0e8c9f 100644 --- a/teams/developer-relations/guide-to-development/README.md +++ b/teams/developer-relations/guide-to-development/README.md @@ -2,5 +2,3 @@ {% page-ref page="writing-style.md" %} - - diff --git a/teams/developer-relations/guide-to-development/writing-style.md b/teams/developer-relations/guide-to-development/writing-style.md index 4ca8f43..10d86ef 100644 --- a/teams/developer-relations/guide-to-development/writing-style.md +++ b/teams/developer-relations/guide-to-development/writing-style.md @@ -28,7 +28,7 @@ Here’s an example of a paragraph with good writing style from the activity Tim “Now that we have an understanding of time complexity and space complexity and how to express them as functions of time, we can elaborate on the way we express these functions. Big-O Notation is a common way to express these functions. -Instead of using terms like Linear Time, Quadratic Time, Logarithmic Time, etc., we can write these terms in Big-O Notation. Depending on what time the function increases by, we assign it a Big-O value. Big-O notation is incredibly important because it allows us to take a more mathematical and calculated approach to understanding the way functions and algorithms grow. Let’s take a look at how we can find and use the Big-O value.” +Instead of using terms like Linear Time, Quadratic Time, Logarithmic Time, etc., we can write these terms in Big-O Notation. Depending on what time the function increases by, we assign it a Big-O value. Big-O notation is incredibly important because it allows us to take a more mathematical and calculated approach to understanding the way functions and algorithms grow. Let’s take a look at how we can find and use the Big-O value.” * Notice that it flows nicely from the previously discussed concepts, and is clear and concise in what it is going to be talked about. diff --git a/teams/developer-relations/joining-as-an-organization/README.md b/teams/developer-relations/joining-as-an-organization/README.md index 5c74e82..9d8f20c 100644 --- a/teams/developer-relations/joining-as-an-organization/README.md +++ b/teams/developer-relations/joining-as-an-organization/README.md @@ -1,3 +1,7 @@ +--- +description: How to join Bit Project as an organization +--- + # Joining as an Organization ## Why Workshops? @@ -32,26 +36,6 @@ Creating these technical workshops provides students with exposure to programs t ### Stage 2: Slides and Component -* [ ] Step 1: Presentation Slides Outline - * [ ] Clear Workflow - * [ ] Provide us with Link - * [ ] Review with Dev -* [ ] Step 2: Completing Slides and Interactive Component - * [ ] Completed Slides with Presentation Notes - * [ ] Peer Reviews - * [ ] Complete Presentation Check List - * [ ] Limited Text on Each Slide - * [ ] Attractive Visuals - * [ ] Slide Templates Used Appropriately - * [ ] Interactive Component Fully Integrated - * [ ] Grammar Check - * [ ] Completed and Working Interactive Component - * [ ] **Game on Github Repository** - * [ ] README - * [ ] Replication Instructions - * [ ] Script of Presentation - * [ ] Place is with slide links and GitHub Link - * [ ] Review with Dev * [ ] Step 1: Presentation Slides Outline * [ ] Clear Workflow * [ ] Provide us with Link diff --git a/teams/developer-relations/joining-the-core-team.md b/teams/developer-relations/joining-the-core-team.md new file mode 100644 index 0000000..a60f37b --- /dev/null +++ b/teams/developer-relations/joining-the-core-team.md @@ -0,0 +1,213 @@ +--- +description: The process of joining the core team. +--- + +# Joining Developer Relations + +## Introduction + +In our efforts to go remote, we have established a very streamlined recruitment process for students to join our cause. Students from all over will be able to join as the onboarding process no longer requires an in-person meeting. It will utilize the following applications heavily: Zoom and GitHub. + +This process involves multiple people: the applicant\(s\), managers, mentors, and more. It is expected to last about two weeks to ensure that you are smoothly integrated into one of the developer relations teams. The following list below is our breakdown of the onboarding process, assigning various tasks to certain individuals on specified dates. + +## Contributor Onboarding Checklist + +Contributor Name: + +Manager Name: + +Mentor Name: + +### Pre-Interview Tasks: + +* [ ] Contact Applicant\(s\) through Email +* [ ] Create Zoom +* [ ] Set-up Google Calendar Invite + * [ ] Invite applicant\(s\), Daniel, Manager, and Mentor +* [ ] Inform Daniel, Manager, and Mentor + +### Manager Tasks: + +Cover topics within next two weeks to ensure that the contributor is onboarded properly: + +#### Day 1: + +* [ ] Confirm all applicants are in team Slack +* [ ] Send greeting message to contributor\(s\) through Slack + * Include: + * Name + * Team name + * Position + * How contributor can contact you \(Slack, email, Calendly\) + * Who the contributor's mentor is +* [ ] Set up team meeting to discuss the following: + * Breakdown of the Week \(expectations\) + * Onboarding Presentation + * Bit Project Introduction + * Introduction to the team + * How contributor's tasks fit into the bigger picture + * GitHub/GitDesktop set-up + * Activities/Labs intro + * Slack set-up + * Assign **First-Timer Task** based on team + +#### Day 2-5: + +* [ ] Review tasks & note feedback + * Communicate any major issues in tasks directly through Slack + +#### Day 6: + +* [ ] Confirm Calendly Meeting + * Schedule it by Day 14 + +#### Day 7-14: + +* [ ] One-on-one: + * Team introduction + * Go over the task and how it could be improved + * Receive feedback on first lab process + +### Contributor Tasks: + +#### Day 0 \(Thursday\): + +* [ ] Complete welcome webinar \(link will be provided\) +* After webinar + * [ ] Join Slack + * [ ] Create GitHub account + +#### Day 1 \(Friday\): + +* [ ] Receive team assignment + * Join team channel on Slack + * You will receive a message from your manager +* [ ] Receive mentor assignment + * Contact mentor +* [ ] Manager will schedule a meeting to discuss the following items + * Breakdown of the Week \(expectations\) + * Onboarding Presentation + * Bit Project Introduction + * Introduction to the team + * How your tasks fit into the bigger picture + * GitHub/GitDesktop set-up + * Activities/Labs intro + * Slack set-up + * Receive **First-Timer Task** based on team assignment + +#### Day 2-3: \(Saturday - Sunday\) + +* [ ] Complete First-Timer Task + * Issue Breakdown + * Issues labelled “first-timers-only” + * Wait for Manager Response +* [ ] Watch Webinars + +#### Day 4 \(Monday\): + +* [ ] Schedule meeting with Manager + * Schedule a 1:1 meeting through Calendly for Day 8-9 + +#### Day 5 \(Tuesday\): + +* [ ] Catch up +* [ ] Lab/Activity Breakdown: +* [ ] Complete 1-1 meeting with manager + * Prepare feedback for first lab experience +* [ ] Send greeting message to Slack \[channel name\] + +#### Day 8-9: + +* [ ] Complete 1:1 with Manager +* [ ] Schedule meeting with Onboarding +* [ ] Take meeting notes on GitHub during/after meeting +* [ ] Set up meeting with onboarding for Day 12-14 +* [ ] Set up follow up 1:1 with manager for Day 12-14 + +#### Day 12-14: + +* [ ] Complete 1:1 with Onboarding + +## Checklist Breakdown + +### Pre-Interview Tasks: + +These are tasks for the manager in charge of onboarding. They are required to contact the applicant\(s\) through email once the applications are received. A zoom link is sent to them with a time and date for the Welcome Webinar. The manager is also in charge of notifying the president of Bit Project, and the applicants' prospective manager and mentor. + +### Manager Tasks: + +The manager is essentially the team leader of the applicant's potential team. They are in charge of making sure that you are caught up to speed with their current work and have a strong foundational understanding of the general curriculum. + +#### Day 1: + +The manager would first confirm that all applicants are on Slack as Slack is our main form of communication. Having everyone on one platform that has multiple communication accessories make the remote process much simpler for everyone. + +An introduction is necessary so applicants are aware of who is the person they should turn to. The manager would send a greeting to the applicants, providing the following information: name, team name, position, ways to contact the manager, and the mentor. The mentor is a member of the team that is familiar with working with the manager and is comfortable with the work given. Applicants can contact the mentor whenever they are struggling and are in need of help. Mentors are essentially another source of reference that is available. + +An info session will be scheduled. For now, this will be administered by another member of Bit Project until managers get settled with the new onboarding process. A more detailed explanation of the info session is provided in the Contributor Task Breakdown. + +Managers will assign the member a first-timer task after the info session. These tasks vary based off of each individual team's current project. It is catered towards the project's focus. + +#### Day 2-5: + +Throughout these few days, the manager and mentor will be helping contributors with their first-timer task whenever needed. They would review the task once it is officially submitted and take note of any major or minor mistakes. If there are major issues, these will be communicated through Slack soon after the task is submitted. It is best to review these as soon as possible to avoid the same mistakes from reoccurring in the future. + +#### Day 6: + +The manager should confirm the 1:1 meeting with each applicant. This should happen before Day 14 \(the end of the onboarding process\). + +#### Day 7-14: + +During the scheduled one-on-one above, it will consist of a team introduction and going over the interview task and how it could be improved. The applicants may \(or may not\) go through a lab process so that they experience the structure of a lab first-hand, and at the one-on-one, they would provide feedback on the lab process. + +### Contributor Tasks: + +#### Day 0 \(Thursday\): + +Applicants are contacted via email and are invited to attend the welcome webinar. A zoom link will already be provided within the email with a set date and time. It is important to notify us whether or not you are able to attend by responding to the email with a confirmation of attendance. + +During the welcome webinar, the president of Bit Project will present to you an introduction to Bit Project and the various teams \(developer relations, engineering, people, and marketing\). Then the next step of the process is introduced where every applicant is required to join slack and create a GitHub account. Managers and mentors will give a brief introduction about themselves and welcome the applicants. + +The info session time for the next day will be scheduled at the end of the webinar. + +#### Day 1 \(Friday\): + +On this day, applicants will attend the info session. The info session will cover the following listed topics: general breakdown of the week, onboarding presentation, introduction to the team, task explanations, GitHub/GitHub desktop set-up, activities/lab introduction, complete slack set-up, and first-timer task. + +The breakdown just goes over what to expect in the upcoming week with meeting the team, new tasks, and one-on-one meetings. + +The onboarding presentation will provide a brief introduction to Bit Project \(as the Welcome Webinar should have already presented this information\), GitHub & GitHub desktop tutorial, introduction to what exactly our curriculum entails with activities and labs. + +Towards the end of this info session, the managers will double check that the applicants are all on slack and the team manager will provide the applicants with their first-timer task. This first-timer task is meant to introduce each applicant to the team's project, giving them an insight to how the work of a developer on this specific team. Applicants are able to refer to their mentor and team manager for help in this process. + +#### Day 2-3: \(Saturday - Sunday\) + +Throughout the weekend, applicants are expected to finish their first-timer task and become familiar with the use and format of issues on GitHub. Once the task is complete, the applicant will wait for their manager / reviewer to review their work. + +Applicants are expected to watch the provided webinars that discuss important aspects and values of Bit Project. \(Communication, culture, etc.\) + +#### Day 4 \(Monday\): + +On Slack, every team manager should have a Calendly already set-up. Schedule a one-on-one meeting with your team manager. + +* [ ] Schedule meeting with Manager + * Schedule a 1:1 meeting through Calendly for Day 8-9 + +#### Day 5 \(Tuesday\): + +On this day, applicants should focus more on the breakdown and specifics of labs and activities. + +During the one-on-one, the applicant will give the manager feedback on their activity / lab experience if the applicant is given one. + +Applicants are to send a greeting message into Slack, notifying their team of who they are. + +#### Day 8-12: + +Within these days, the applicant should be meeting with their team manager. The applicant will be taught how to take meeting notes with GitHub, and will practice taking notes throughout or after the meeting. + +They will discuss the onboarding task and the manager will provide feedback. The contributor will then provide feedback on the labs and activities process \(if it is given\). Then the applicant will schedule a one-on-one with a member of onboarding. The link will be provided by the team manager. + +#### Day 12-14: + +The final step of the onboarding process will be completed with a one-on-one meeting between the applicant and with onboarding. Applicant will provide feedback to onboarding about the whole process, and onboarding will ensure that the applicant is ready to be fully integrated into the Bit Project team. + diff --git a/teams/engineering/readme-formats.md b/teams/engineering/readme-formats.md index a6ecfd7..21982d8 100644 --- a/teams/engineering/readme-formats.md +++ b/teams/engineering/readme-formats.md @@ -280,6 +280,8 @@ Each card has a gems field. The gems fields is used to indicate the number of ge **Card Concepts \(Concepts only apply to hard cards, not medium or easy cards\)** +**Note: This fields is NOT required for the Activity README.md** + To give a card concepts, write the word "concepts" in a markdown h3 tag and list out the name of the concepts in \* like below: ```text @@ -472,14 +474,12 @@ To include the md\_content for the step, give the md\_content with a markdown h2 ```text ### md_content ``` +### Hello world in js +This is how you do it +``` +``` -## Hello world in js - -This is how you do **it** - -```text -``` #### Optional Fields @@ -490,11 +490,8 @@ To include the code snippet for the step, give the code snippet with a markdown ```text ### code_snippet ``` - -def pls\_work\(\): return True... maybe - -```text - +def pls_work(): return True... maybe +``` ``` #### Image @@ -519,29 +516,25 @@ Topic1/Module2_test/Activity_7/cards ## 1-2-1 Step 1 ### name -``` - How to install VSCode -```text ### md_content ``` +Hello world in js +This is how you do it +``` -## Hello world in js - -This is how you do **it** - -```text ### code_snippet ``` +def pls_work(): return True... maybe +``` -def pls\_work\(\): return True... maybe - -```text ### image ``` + + ### Concept Format #### Concept Name \(This is required\) @@ -577,11 +570,8 @@ Under the hint name, you have to give the step a name with a markdown h2 tag. ** ```text ## name ``` - How to install VSCode - -```text - +``` ``` #### Md\_content \(You need to include this for each step\) @@ -591,14 +581,12 @@ To include the md\_content for the step, give the md\_content with a markdown h2 ```text ## md_content ``` - ## Hello world in js +This is how you do it +``` +``` -This is how you do **it** - -```text -``` #### Optional Fields @@ -609,11 +597,8 @@ To include the code snippet for the step, give the code snippet with a markdown ```text ## code_snippet ``` - -def pls\_work\(\): return True... maybe - -```text - +def pls_work(): return True... maybe +``` ``` #### Image @@ -640,24 +625,19 @@ Topic1/Module2_test/concepts/ ## name ``` - How to install VSCode +``` -```text ## md_content ``` +Hello world in js +This is how you do it +``` -## Hello world in js - -This is how you do **it** - -```text ## code_snippet ``` - -def pls\_work\(\): return True... maybe - -```text +def pls_work(): return True... maybe +``` ## image ``` diff --git a/teams/engineering/roles/README.md b/teams/engineering/roles/README.md new file mode 100644 index 0000000..373e152 --- /dev/null +++ b/teams/engineering/roles/README.md @@ -0,0 +1,2 @@ +# Roles + diff --git a/teams/engineering/roles/backend-developer.md b/teams/engineering/roles/backend-developer.md new file mode 100644 index 0000000..a220b17 --- /dev/null +++ b/teams/engineering/roles/backend-developer.md @@ -0,0 +1,37 @@ +--- +description: >- + Backend Developers will work on the the backend for the LMS(Learning + Management System). +--- + +# Backend Developer + +## Requirements + +* Previous experience with Python is required +* Experience with a Python Framework \(Flask, Django, Pyramid\) from either personal projects or previous work experience +* Experience working with a SQL Database such as PostgreSQL, MySQL, SQLite +* Experience working with SQLAlchemy or some other Python ORM \(PeeWee, Django ORM, etc.\) +* Able to collaborate with other Backend and Frontend Developers to solve technical and architectural problems +* Effective communication among colleagues +* Comfortable with working in an Agile development life cycle +* Ability to flourish in a remote setting +* Passion for backend development/coding + +## Nice-haves + +* Experience with Postman and its features \(Mock Servers, Collection Runner, etc.\) + +## Responsibilities + +* Developing backend components to improve responsiveness and overall performance for API consumers +* Collaborating with Frontend Developers to design more cohesive code to enhance user experience +* Creating code that fits our style and best practice guidelines +* Updating documentation of routes on Postman and Gitbook + + + + + + + diff --git a/teams/engineering/roles/frontend-architect.md b/teams/engineering/roles/frontend-architect.md new file mode 100644 index 0000000..570f187 --- /dev/null +++ b/teams/engineering/roles/frontend-architect.md @@ -0,0 +1,6 @@ +# Frontend Architect + +## Requirements + + + diff --git a/teams/engineering/roles/react.js-developer.md b/teams/engineering/roles/react.js-developer.md new file mode 100644 index 0000000..9801c2f --- /dev/null +++ b/teams/engineering/roles/react.js-developer.md @@ -0,0 +1,34 @@ +--- +description: >- + React.js Developers will work on the frontend for the LMS (Learning Management + System). +--- + +# React.js Developer + +## Requirements + +* Expertise with React or some other frontend framework \(Inferno.js, Vue, etc.\) +* Previous experience with HTML, CSS and Javascript \(Vanilla\) +* Familiarity with ES6 Javascript syntax/concepts \(Asynchronous programming, Destructuring, etc.\) +* Expertise with CSS styling +* Experience with responsive and adaptive design +* Effective communication among colleagues +* Ability flourish in a remote setting +* Passion for React.js/Coding + +## Nice-haves + +* Experience with Postman to test out API endpoints +* Experience with SQL database + +## Responsibilities + +* Creating reusable React components for future uses +* Implementing the vision of designers through their wireframes +* Optimizing web pages for maximum speed to enhance user experience +* Collaborating with other React.js Developers and Designers to determine the structure and design of components for the LMS +* Collaborating with Backend developers to determine the necessary data needed to implement components + + + diff --git a/teams/engineering/roles/untitled.md b/teams/engineering/roles/untitled.md new file mode 100644 index 0000000..cf49f95 --- /dev/null +++ b/teams/engineering/roles/untitled.md @@ -0,0 +1,2 @@ +# Director of Engineering + diff --git a/teams/how-to-use-the-checklist.md b/teams/how-to-use-the-checklist.md new file mode 100644 index 0000000..474af58 --- /dev/null +++ b/teams/how-to-use-the-checklist.md @@ -0,0 +1,4 @@ +# How to use the Checklist + +Stuff + diff --git a/teams/people/README.md b/teams/people/README.md index c465c42..ede84ce 100644 --- a/teams/people/README.md +++ b/teams/people/README.md @@ -1,2 +1,44 @@ +--- +description: >- + Maximizing members value through talent acquisition, onboarding, management, + total rewards, experience and culture, and internal communications +--- + # People +## What is the People Team? + +The Bit Project has grown quickly, and plans to continue grow while maintaining our culture and remote working, embracing development, and building scalable people-oriented policies. Our team oversees recruiting and learning and development functions. We are responsible for investing in the engagement and development of members, as people, which first benefits the members, and as a result, the organization as a whole. The People team is about designing work so that you want to be there – present, engaged, and proud of what you do in Bit. In this team, we focus providing members proactive learning materials to make operations easier, especially in the times of change management. Moreover, we focus on on-boarding new members from around the United States. Please do not hesitate to reach out to any People members with questions! In the case of a conflict between the organization and a team member, the People Team is always here to assist you. + +## The Core Objectives of the People Team, Are to: + +Shift from task-based management to objective-based management \(MBO\) – **Higher productivity, measurable performance results** + +Encourage feedback – **Feeder for new insights** + +Carry out data-infused decision making – **Better, more predicable decision outcomes** + +Build communities and closer relationships – **Enhance retention** + +Provide autonomy and trust members – **Innovation** + +Improve, remove, and automate – **Eliminate the need for previously redundant and unrewarding work** + +Cross pollination and collaboration – **Build capable managers with fresh ideas from alternate sources** + +## Our Actions and Goals + +As a team, we are always trying to find new ways to improve Bit Project. We want to create a well-rounded for all members. On that notes, we decided to implement webinars for new members in our on-boarding process to allow a smoother transition. We created a training guide on how to be a successful and effective manager at Bit. Additionally, we are constantly creating learning and development guides such as communication, internal feedback, diversity and inclusion, and how to use applications like Github are all provided on this Handbook. Lastly, we try to document as much information to increase our transparency as well as provide you all the materials on how to be successful as Bit Project. + +## Responsibilities + +* Provide an enriching experience for all members by creating materials for learning and development. +* Maintain appropriate level of process, program, and policy knowledge in order to assist team members. +* Intake of feedback, questions and concerns. +* Administration of the Diversity and Inclusion Conduct +* Proactively identify process inefficiencies and inconsistencies and collaborate towards an improved and more productive process that improves the employee and/or manager’s experience. +* Work on onboarding people experience, values alignment during onboarding and improving onboarding through continuous iteration. +* Onboard, mentor, and grow the careers of all team members +* Announcing changes and improvements +* Engagement survey administration & implementation. + diff --git a/teams/people/recruitment.md b/teams/people/recruitment.md deleted file mode 100644 index ee410d7..0000000 --- a/teams/people/recruitment.md +++ /dev/null @@ -1,2 +0,0 @@ -# Recruitment - diff --git a/teams/people/recruitment/README.md b/teams/people/recruitment/README.md new file mode 100644 index 0000000..8fa369d --- /dev/null +++ b/teams/people/recruitment/README.md @@ -0,0 +1,2 @@ +# Primary Ed + diff --git a/teams/people/recruitment/general-event-volunteer-training.md b/teams/people/recruitment/general-event-volunteer-training.md new file mode 100644 index 0000000..62a4f6d --- /dev/null +++ b/teams/people/recruitment/general-event-volunteer-training.md @@ -0,0 +1,93 @@ +# General Event Volunteer Training + + + +\*\*\*\*[**General Event Volunteer Training**](https://www.youtube.com/watch?v=QEdVY4sYBAw&feature=youtu.be) **\(Video\)** + + +## **Introduction** + +Teachers and Volunteers are expecting volunteers to set a model behavioral example for their students. + +Students will always question WHY? WHY IS THE ACTIVITY IMPORTANT? WHY IS IT IMPORTANT TO FOLLOW THE RULES? We need to set the atmosphere that we will patiently listen, we will encourage curiosity, exploration, success, and failure, and we will reward respectful behavior and positive attitudes. + +## **Student Maturity and Developmental Level** + +It is important to understand that students all have different developmental and academic levels. Therefore, we need to be careful with how we approach students as their mentors. + +## **Volunteer Expectations** + +When we first begin leading a group of students, we need to set the expectations. The best way to do that is to have volunteers follow the following three main expectations: + +1. Safety +2. Responsibility +3. Integrity + +It all comes down to these three things. + +* Safety: We don’t want anyone to get hurt. +* Responsibility: We want to be able to trust the students to follow directions and use materials properly. +* Integrity: And we want the students to respect each other in this learning experience. + +## **UC Davis Rules when Working with Minors** + +Since the events are organized by a UC Davis student organization, we are required to abide by certain school policies. For instance: + +1. Minors will be treated with respect at all times: regardless of race, sex, age, or religion +2. Staff and volunteers must avoid showing affection with minors, not use profanity or tell jokes with innuendos that contain racist or indecent commentary. +3. You will not tell of your sexual encounters, not become romantically involved with minors, and not be under the influence of drugs or alcohol when in the presence of minors, +4. You cannot have any secrets with minors, stare or comment on their bodies. +5. Avoid being alone with minors at all times. Always be in the presence of another volunteer. + 1. If students need to go on bathroom breaks, contact your volunteer lead. +6. You must prohibit minors from engaging in inappropriate behavior such as hazing, bullying, + +Example of a Situation: Dodging hugs. + +We expect volunteers to set an example for the students + +## **Method of Control** + +The second thing we need to introduce is a method of control. This involves an action by the adult and a response by the students. This could be ringing a bell and then having students place their hands on their head. It could be calling out a quiet coyote and the students copy the sign. In the end, we want students to stop working and be quiet so we can give instruction for safety and efficiency. Often times, teachers already have this implemented so be sure to ask! + +## **Discipline and Praise** + +The third thing we need to do is establish a fair discipline system. Most teachers have this already implemented in their class and all classrooms are different. Before an activity, ask the teacher how they discipline their students. + +Remember, in order to have effective discipline, the three expectations must be clearly communicated first. Methods of discipline may involve different signals but they are all very similar and typically involves four steps: + +1. Reminding them of the expectations +2. Acknowledging what the student has done +3. Understanding why what the student did was wrong +4. Learning why it is important not to repeat that behavior + +The teacher is responsible for confronting the students. If a teacher is not present, the volunteers are responsible for correcting behavior. + +Another aspect of discipline is praise! Make sure to set aside time to show off a student’s work and allow students to show off to both you and the class what they have done! Children cannot read micro expressions as well as adults do, so make sure your positive emotions are exaggerated! You might feel weird or embarrassed over exaggerating expressions; but a little goes a long way! + +## BitCart Specifics + +The role of a volunteer is to help teachers and students conduct the activity. At events, there are a few important things to keep in mind. + +* Follow the volunteer lead if there is one! A volunteer lead is an experienced Bit Project Volunteer that makes sure the event goes well and is carried out on time. +* Don’t get carried away… Focus on helping students learn and understand various difficult concepts. If you feel there is too much information help make sure key concepts are understood! +* If you feel uncomfortable with any of the concepts, check out the Learn More page at the end of each designated activity. Feel free to ask other volunteers for help. + +Make sure you watch two other videos if you haven’t done so already: + +1. Activity: This video explains the activity to be done at your event! +2. “BitCart Logistics” + +The “BitCart Logistics” will contain information on: + +* Logistics for general events +* Location - transportation options +* Timings of Event +* Signing in/out of school office and getting a volunteer sticker +* Getting set up \(checking materials, collecting missing materials, cart to classroom\) +* What do you do if some materials are unavailable? +* Cleaning up +* Placing cart back +* Signing out +* Transportation back +* Volunteer feedback + diff --git a/teams/people/recruitment/how-to-be-a-volunteer-lead.md b/teams/people/recruitment/how-to-be-a-volunteer-lead.md new file mode 100644 index 0000000..12f5818 --- /dev/null +++ b/teams/people/recruitment/how-to-be-a-volunteer-lead.md @@ -0,0 +1,108 @@ +# How to Be a Volunteer Lead + +[**How to Be a Volunteer Lead Training**](https://www.youtube.com/watch?v=QEdVY4sYBAw&feature=youtu.be) **\(Video\)** + +## **Introduction** + +We rely on our volunteer leads to make sure an event runs smoothly for our teachers, students, and volunteers, so this role is super important but also very rewarding. In this section, we will discuss the roles and responsibilities of a volunteer lead! + +We will cover specifics about BitCart and BitQuest at the very end! Hopefully before watching this video you have watched the General Event Volunteer Training Video. If not, watch it after! + +## **What Volunteer Leads Do** + +Our goal is to have all volunteers, especially the volunteer lead, conduct themselves in a professional manner. Events can be pretty unpredictable with things going wrong, students misbehaving, volunteers being confused or not following instructions, and many other factors. A volunteer lead’s responsibility is many things in these situations. Here is a general list of some of their responsibilities: + +All Events: Volunteer Attendance, Delegating tasks to volunteers during an event, Ensuring the activity starts and ends on a timely manner, Student Discipline, Materials, End of Event Feedback + +BitCart Events: Communicating with the Teachers on Methods of Control, Airtable Form + +BitQuest Events: Creating a method of control and establishing ground rules, Ensuring volunteers are aware of possible troubleshooting during the event and who to contact + +## **Working with Students** + +In any Bit Project Event, there will be students from different academic and social backgrounds. Although it will be difficult to cater to each and every one of them, we do want to try our best to make sure all of them feel safe and have fun. A good way to do that is by always thinking about our mood, language, and delivery. All three are super important during an event in all aspects of presentation, answering questions, and discipline. Below we will go more in depth into all three subjects. + +## **Mood** + +Excitement is contagious. But so is seriousness, anxiety, respect, and many other emotions one can experience in the classroom. Children aren’t experts at reading micro-expressions, so a little exaggeration goes a long way! If you have something important or exciting to say, try whispering dramatically, forcing students to listen. If you want to introduce a plot twist, raise your voice. \(Ex: “Today we are going to work with paint BUT-” \*dramatic pause\* “I need all of you to listen first.”\) + +This is why volunteer leads must always keep their cool. Stay calm, problem solve, move on. Everyone feeds off of each other’s energy so, the more positive vibes you spread, the more will be in the classroom. + +If you need a breather that is totally okay. A classroom setting has a lot of stimuli so it is completely natural to feel overwhelmed, anxious, or suddenly drained. Sensory overload can happen to a lot of individuals, so taking a break and walking outside for a bit when you get frustrated is totally ok. Let other volunteers know it can happen and that if they need anything, to rely on you. And that relationship works vice versa- if you need anything, rely on your volunteers! + +## **Verbal Language** + +Language is a more general category for verbal and body language. Let’s first discuss verbal language. + +Volunteer leads should always speak in a loud, slow, clear tone. This makes it seem like you know what you are doing, you know what you are talking about, and you have the authority in the room. Remember, in the classroom or during an event, you are the adult. Besides speaking loudly, slowly, and clearly, the way you say words is also important. + +Enunciate your words clearly by rounding your vowels, using voice fluctuation, emphasis, and pauses to help students understand and learn certain words. Voice fluctuation is entertaining to listen to. No one likes listening to someone speak in a flat voice. Emphasize words you want students to remember. Pause when you want students to digest what you said, or to catch their attention before you say something important/give instruction. + +Here are some examples you can practice with! \[You can add your own unique emphasis and pauses!\] + +Tonelessly: Precipitation is another word for rain. Precipitation is a big word scientists when talking about weather. + +Emphasis: Precipitation is another word for rain. It is a fancy word scientists use to describe the weather. + +^^/Pauses: Precipitation is another word for rain. \*pause\* It is a fancy word scientists use to describe the weather. + +Word Fun: Try placing the emphasis on different words and placing the spaces in other locations. What delivery sounds the best? Which is the worst? + +## **Body Language** + +Stand tall and proud. Use your height to your advantage. + +When speaking, move your hands to emphasize certain words!! Being dramatic is totally cool and entertaining students follow instructions more than bored ones. It might seem comical to exaggerate everything you do, to dramatically show off the materials being used, being amazed by a student’s artwork and showing it off to the class or your peers… but it boosts their egos and students eat it up. Here are some DRAMATIC hand motions you can try in the classroom: + +1. Raising both hands in the air as you shout, “WAIT!” +2. Raising a hand as you say, “BUT-” +3. Placing both hands in front of you \(like you’re calming an animal or smth\) as you whisper instructions +4. Holding a student’s work in the air and showing it off like the Lion King to the class or other volunteers. +5. “Ripping your hair out” when a student breaks a rule that YOU did NOT emphasize enough. Once you have everyone’s attention with your dramatic display, make an announcement about that rule. + +## **Delivery** + +Children have short attention spans, so it is important to be direct and short in your delivery. Always try to get straight to the point. Rambling makes everyone confused and clear speech can deteriorate into mumbling. If you lose sight of what you want to say, pause. There should be a strong, conscious effort to NOT use filler words such as um, uh, like, etc. There filler words can convey discomfort and anxiety to students making them either feel uncomfortable or overconfident in their ability to compromise their way out of following the rules. Show confidence!!! You got this. + +## **Starting off an Event** + +To do that, there are a few things that a volunteer lead should do when they are given the opportunity to begin an activity with students: + +1. Introductions: First name only, and explain with exaggerated excitement \(or as if you are telling them a secret\) that you have something fun for them to do that day! \(Ex: Hello everyone! My name is \_\_\_\_\_\_\_\_\_\_ and I am here to \_\_\_\_\_\_\_\) + +## **Opening an Activity** + +A great opening to any activity is by asking a question you know EVERYBODY knows the answer to. For instance: What are different types of weather? What are different types of fruit? What is a bridge for? + +It might seem pretty basic, but this is extremely important. Students already perceive whether they will be able to do an activity or not based on our opening introduction, so by asking a question we know they know the answer to, we inadvertently boost their confidence and their belief that they can do this activity. + +## **Activity** + +Troubleshooting: The activity is not going as planned. + +If the activity is too hard, too easy, or progressing too quickly- volunteers will need to improvise. + +* Too Hard: Simplify the activity. Identify a few key words and concepts you want students to learn and don’t worry about the rest. + * Ie: A rocket activity may be too complex with terms like propulsion, thrust, lift, drag, aerodynamics, etc. Instead choose a word to introduce \(like Aerodynamic\) and explain the others qualitatively. \(“Something is pushing the rocket up and down”\) +* Too Easy: Introduce new vocabulary. Make challenges harder. + * Ie: For a plant activity, students might already know what a plant needs to grow: sunlight, water, and soil. Try going more in depth on the subject matter and introducing new things like space, oxygen, competition. +* Progressing too Quickly: Add steps to the activity. + * Ie: Paper Bridge Activity has students test their bridges once using pennies. Instead you could break the activity up into rounds using different materials to measure the strength of the bridge. Preserve the concepts but make the activity longer by introducing new challenges. + * Example: Round 1: 50 pennies. Round 2: 100 crayons. Round 3: Stapler. + +## **Cleaning Up** + +When cleaning up, identify which materials may be used again and which materials are to be thrown away. Place reusable materials back into the BitCart. Throw away other materials. Make sure you keep track of how much you used. + +Try to throw away food in outdoor trash bins. + +Examples of reusable Materials: LED lights, batteries + +## **BitCart** + +* AIRTABLE FORM: On your way back from an event, fill out and submit an airtable form in which you will fill out feedback, record materials used, and other logistical information about the event. + +## **BitQuest** + +* Volunteer leads have a more defined role in the event. The teacher isn’t leading the event. YOU ARE! +