Giter Site home page Giter Site logo

zeroclasswork / bew-2.5-strongly-typed-languages Goto Github PK

View Code? Open in Web Editor NEW

This project forked from make-school-courses/bew-2.5-strongly-typed-languages

0.0 0.0 0.0 14.6 MB

๐Ÿ’ช 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!

Home Page: https://make.sc/bew2.5

License: MIT License

HTML 25.07% CSS 7.17% JavaScript 9.86% Go 57.90%

bew-2.5-strongly-typed-languages's Introduction

gophers

BEW 2.5: Patterns & Practices in Strongly Typed Languages

Table of Contents

  1. Course Description
  2. Prerequisites
  3. Course Specifics
  4. Learning Objectives
  5. Schedule
  6. Course Deliverables
  7. Late Assignment Policy
  8. Evaluation
  9. Additional Resources
  10. Information Resources
  11. 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. In studying Go, which is known for its 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, and Medium.

Prerequisites

Course Specifics

Course Delivery: online | 7 weeks | 14 sessions

Course Credits: 3 units | 37.5 Seat Hours | 75 Total Hours

Learning Objectives

  1. Design and implement command line interfaces, APIs, and bots in Go.
  2. Identify and describe the architectures wherein the features of Golang could be best utilized.
  3. Build data structures that support unmarshalling JSON retrieved from third-party APIs.
  4. Apply Object Relational Mapping techniques to persist data to relational databases in Go.
  5. Examine benchmarks to determine how to improve the speed and readability of a Golang project.
  6. Gain experience deploying APIs and bots to production.

Schedule

Class Date Topics
- Tue, Jan 19 No Class - MLK Day
1 Thu, Jan 21 Intro to Go / Tutorial Launch
๐Ÿ”ฌLab: Tutorial
2 Tue, Jan 26 Static Site Generators
๐Ÿ”ฌLab: SSG MVP
3 Thu, Jan 28 Files & Directories
4 Tue, Feb 2 Introducing Warmups: 1stDaily Drill
๐Ÿ”ฌLab: SSG MVP / SSG v1.1
5 Thu, Feb 4 Fast Functionality via 3rd Party Libraries
6 Tue, Feb 9 ๐Ÿ”ฌLab: SSG v1.2
7 Thu, Feb 11 Scraping the Web
Working With JSON
8 Tue, Feb 16 ๐Ÿ”ฌLab: Web Scraper
9 Thu, Feb 18 Project Kickoff
10 Tue, Feb 23 Concurrency & Goroutines
11 Thu, Feb 25 Benchmarking & Testing
๐Ÿ”ฌLab: Final Project
12 Tue, Mar 2 Documentation & Deployments
๐Ÿ”ฌLab: Final Project
13 Tue, Mar 4 Final Presentations

Course Deliverables

We will be using Gradescope this term, which allows us to provide fast and accurate feedback on your work. All assigned work will be submitted through Gradescope, and assignment and exam grades will be returned through Gradescope. As soon as grades are posted, you will be notified immediately so that you can log in and see your feedback. You may also submit regrade requests if you feel we have made a mistake.

Your Gradescope login is your Make School email, and your password can be changed at https://gradescope.com/reset_password. The same link can be used if you need to set your password for the first time.

Assignments must be submitted to Gradescope by 11:59PM PST on the date due.

๐Ÿ“š Assignment ๐Ÿ”— Criteria ๐Ÿ“† Due Date
Tour of Go Done in Class January 23, 2020 (Thursday)
Static Site Generator MVP
v1.1 / v1.2
MVP: Feb 02, 2020 (Tuesday)
v1.1 / v1.2: Feb 11, 2020 (Thursday)
Web Scraper Requirements Feb 23, 2020 (Tuesday)
Blog Post Rubric March 4, 2020 (Tuesday)
MakeUtility Project
& Presentation
Requirements March 4, 2020 (Tuesday)

Late Assignment Policy

  • Late assignments that are submitted more than 5 days (120 hours) after the deadline will be given a 25% late penalty.
  • The absolute last day to submit any assignment will be Tuesday, March 4 at 11:59 PM.

If you require accommodations or have extenuating circumstances such as prolonged illness, please contact your instructor to request an extension.

Evaluation

To pass this course you must meet the following requirements:

  • Complete the tutorial, deliverables, final project, and final presentation as assigned in class and described in the sections below.
  • Actively participate in class and abide by the attendance policy.
  • Make up all classwork from all absences.

Tutorial

Complete the tutorial assigned in class; assessed via graded warmup during week two.

Blog Post

Demonstrate confidence writing and speaking about Go topics by writing a 500+ blog post on a language feature of your choice.

Your blog post must be accessible to the general public to earn credit; do not submit draft posts.

Your grade will be determined via the Make School Blog Post Rubric. You must earn a score of 2.5 or higher to pass.

Final Project

Complete the final project according to the associated project rubric.

Final Presentation

The delivery of a live or pre-recorded presentation is required to pass this course. Presentations will be delivered on Wednesday, December 9th on our final day of class.

Your three to five minute presentation should focus on the experience you gained and lessons you learned while implementing one of the three Challenges in this course.

Your final presentation will be evaluated based on the Make School Presentation Rubric. You must earn an average of 2.5 on the rubric to pass.

Additional Resources

Update to Latest Version of Go

New version of Go released? No problem! Run the following command to install the latest version of Golang on your Mac or Linux system:

git clone https://github.com/udhos/update-golang
cd update-golang
sudo ./update-golang.sh

Links

Information Resources

Any additional resources you may need (online books, etc.) can be found here. You can also find additional resources through the library linked below:

Make School Course Policies

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.