Skip to content

matthewharrilal/BEW-2.5-Patterns-Practices-Strongly-Typed-Ecosystems

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BEW2.5: Patterns & Practices in Strongly Typed Ecosystems

Guide Slack Office Hours Shortlink Tracker Request 1-on-1
@droxey #bew2-5-go M/T/Th 1:00 - 1:30pm (Golden Gate)
T/Th 3:30 - 4:30pm (Tea Tree)
make.sc/bew2.5 Link Link

Table of Contents

  1. Course Description
  2. Course Specifics
  3. Prerequisites
  4. Learning Objectives
  5. Schedule
  6. Class Assignments
  7. Evaluation
  8. Attendance
  9. Make School Course Policies

Course Description

In this course, students discover the value of strongly typed languages in server-side architectures, and dive deep into performant, concurrent programming paradigms present in Go. Known best for it's ability to blend the expressive features of dynamic languages (Python, JavaScript) with the performance capabilities of compiled languages (C, C++), students will gain the syntactic diversity required in today's large-scale platform engineering pursuits. Throughout the course, students will learn and implement the design patterns and best practices that make Go a top choice at high-velocity startups like Lyft, Heroku, Docker, Medium, and more!

Course Specifics

Weeks to Completion: 7
Total Seat Hours: 37.5 hours
Total Out-of-Class Hours: 75 hours
Total Hours: 112.5 hours
Units: 3 units
Delivery Method: Residential
Class Sessions: 13 classes, 7 labs

Prerequisites

Learning Objectives

  1. Identify the strengths of Go, and describe the architectures where Go could be best utilized.
  2. Design, implement, and deploy command line interfaces, APIs, and bots in Go.
  3. Compare and contrast different design patterns and the use cases in which they best fit.

Schedule

Course Dates: Tuesday, January 22 – Thursday, March 7, 2019 (7 weeks)
Class Times: Tuesday and Thursday at 1:30–3:20pm (12 class sessions)

Class Date Topics
1 Tuesday, January 22 Lesson 1: Intro to Go
2 Thursday, January 24 Lesson 2: Anatomy & Architecture of Well Crafted Go Apps
3 Tuesday, January 29 Lesson 3: Command Line Applications in Go
4 Thursday, January 31 Lesson 4: Solving Problems with Go
5 Tuesday, February 5 Lesson 5: APIs in Go
6 Thursday, February 7 Lesson 6: Concurrency and Goroutines
7 Tuesday, February 12 Lesson 7: Go Design Patterns
8 Thursday, February 14 Lesson 8: Integrations and Bots
- Tuesday, February 19 President's Day (Observed)
9 Thursday, February 21 Lesson 9: Benchmarking, Testing, & Documentation
10 Tuesday, February 26 Lesson 10: Go Microservice Deployment Strategies
11 Thursday, February 28 Lesson 11: TBA
12 Tuesday, March 5 Lesson 12: TBA
13 Thursday, March 7 Final Exam

Class Assignments

  • List (with links) of all course-level assignments (i.e. tutorials, challenge sets, contractor project, custom projects, etc)
  • Under each assignment link the rubric used to evaluate it or describe how it is evaluated.
  • Projects should be linked to a project page which has a description & requirements.

Tutorials

Tutorials are to help you get started in a topic. They are graded on completion only.

Projects

All projects will require a minimum of 10 commits, and must take place throughout the entirety of the course.

  • Good Example: 40+ commits throughout the length of the course, looking for a healthy spattering of commits each week (such as 3-5 per day).
  • Bad Example: 10 commits on one day during the course and no others. Students who do this will be at severe risk of not passing the class.
  • Unacceptable Example: 2 commits the day before a project is due. Students who do this should not expect to pass the class.

Commit Early and Often

We want to encourage best practices that you will see working as a professional software engineer. Breaking up a project by doing a large amount of commits helps engineers in the following ways:

  • It's much easier to retrace your steps if you break your project/product/code up into smaller pieces
  • It helps with being able to comprehend the larger problem, and also will help with debugging (i.e. finding exactly when you pushed that piece of broken code)
  • It allows for more streamlined, iterative communication in your team, as it's much easier to hand off a small change to someone (updating a function) than a huge one (changed the architecture of the project)

Through this requirement, we encourage you to think about projects with an iterative, modular mindset. Doing so will allow you to break projects down into smaller milestones that come together to make your fully-realized solution.

Projects are a chance to build and ship code based on class concepts. Many are open ended allowing you to be creative and to have individual work for your portfolio.

Evaluation

To pass this course you must meet the following requirements:

  • Complete all required tutorials
  • Pass all projects according to the associated project rubric
  • Pass the final summative assessment >=75%
  • Actively participate in class and abide by the attendance policy
  • Make up all classwork from all absences

Attendance

Just like any job, attendance at Make School is required and a key component of your success. Attendance is being onsite from 9:30 to 5:30 each day, attending all scheduled sessions including classes, huddles, coaching and school meetings, and working in the study labs when not in a scheduled session. Working onsite allows you to learn with your peers, have access to support from TAs, instructors and others, and is vital to your learning.

Attendance requirements for scheduled sessions are:

  • No more than two no call no shows per term in any scheduled session.
  • No more than four excused absences per term in any scheduled session.

Failure to meet these requirements will result in a PIP (Participation Improvement Plan). Failure to improve after the PIP is cause for not being allowed to continue at Make School.

Make School Course Policies

Academic Honesty
Accommodations for Students
Attendance Policy
Diversity and Inclusion Policy
Grading System
Title IX Policy
Program Learning Outcomes

About

💪 Learn and implement the design patterns and best practices that make Go a top choice at high-velocity startups like Lyft, Heroku, Docker, Medium, and more!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published