← Back to Home

Module 1: Learn and Be Curious Kickoff!

Learning Objectives

About This Module

In this module, you'll be introduced to the Learn and Be Curious unit, where you'll develop the critical skill of learning new technologies independently. This is one of the most important skills you can acquire as a developer, as technology is constantly evolving.

You'll learn about the project structure, expectations, and how to approach working with ambiguity - a key skill in real-world software development. The most successful engineers aren't those who know everything, but those who can confidently learn what they need when faced with new challenges.

Key Learning Outcomes

  • Self-directed learning: Develop techniques for learning new technologies with minimal assistance
  • Problem identification: Learn to identify the right questions to ask before seeking solutions
  • Team collaboration: Practice effective team dynamics for software development
  • Project planning: Create realistic plans for what can be accomplished in a sprint

Course Syllabus

Description

The most important skills you can leave BloomTech with are the confidence and the ability to learn new technologies. Technology is constantly evolving and every team uses a slightly different set of technologies. From day one of joining a new team, you will need to start learning with minimum assistance.

Our primary goal with this unit is for you to practice learning and working through issues with new technologies. During this unit, reflect on what worked well for you, how to identify times where you should seek help, and how to problem solve. Not only will these techniques serve you well on teams, but through the remainder of BloomTech as well.

Increased Ambiguity

Toward this goal, your requirements for this project will be very open-ended. We will require you to incorporate some specific technical elements in your implementation tied to the lessons taught during the unit. However, the product you build is largely up to the members of your team.

This unit will be a dramatic step up in ambiguity for you relative to the units thus far. Expect to spend time trying to first figure out the right questions to ask, before even starting to figure out how to answer them. Through this process, you'll build your ability to start with an ambiguous problem or opportunity, and figure out what needs doing to act on it.

Design & Build

You can choose to work as a team of one or in a team of up to 4 people. Each team will brainstorm a problem they would like to solve. Every idea must require a front end (website) calling an API Gateway/Lambda service that stores data in DynamoDB (the rubric will contain more specific requirements).

You will build both the front end and back end of this system. But don't worry, you're not starting from scratch! We'll be providing you a starter project with placeholder code. This placeholder code will have examples you can modify and mimic the patterns this package uses to build your own project.

Teams will write a design for what they want to build and define the scope of work they believe they can complete in two weeks. Instructors may review the designs for both correctness and feasibility. You will work in week-long sprints during this unit. At the end of the unit, teams will present their prototype and write a reflection on their experiences. What you learn from this unit is far more important than what your team creates.

Project Repository

Your team will have one repository that holds both your code and your team documents. Your project will be built off of a very small template project. This project has some code in it to ensure your project runs (build.gradle, etc) as well as some very basic sample code. The project repository also includes team documents that you will need to read through and fill out as you go along.

It's important that all team members work on a single repository.

Template Repo

Learning Outcomes

Upon completing this unit, you should be able to:

You will also be expected to demonstrate specific technical skills:

Deliverables

You will complete a rubric from a template in the "Rubric" folder in your Project repository. This rubric contains the a set of suggested due dates for your deliverables and we will use this to verify that these expectations have been achieved through the course of your project. You'll be asked to provide specific examples that show you have demonstrated the expected outcomes. The rubric does not specify the functionality that your project will include. Rather, it specifies which skills we expect you to learn and demonstrate through your project. This should leave plenty of room for ambiguity (and creativity!) within your chosen product space.

Project Timeline

  1. Kickoff and Project Ideas (Sprint 17): Brainstorm and select a project idea. By the end of the second day, submit the "problem statement" portion of your design document.
  2. Design Reviews (Sprint 17): Complete your design document, including sketches of front-end, API endpoints, and DynamoDB table design.
  3. API Endpoints (Sprint 17-18): Create your API endpoints based on your design.
  4. DynamoDB Tables (Sprint 17-18): Create your DynamoDB tables using cloud formation.
  5. Scrum Training (Sprint 18): Learn the work management processes that most teams at Amazon use.
  6. Sprint Planning (Sprint 18-19): Schedule time each sprint for planning.
  7. Standup (Daily): Discuss what you worked on yesterday, your plan for today, and any blockers.
  8. Retrospective (End of Sprint): Reflect on what went well and what can be improved.
  9. Project Presentation (Sprint 19): Present your prototype and discuss what you learned.

Additional Resources

AWS CLI Setup

Instructions for setting up the AWS Command Line Interface

AWS IAM Account Setup

Instructions for setting up your AWS IAM account

How to Pass The Sprints

Guidelines for successfully passing the sprints in this unit