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.
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.
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.
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.
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.
Upon completing this unit, you should be able to:
You will also be expected to demonstrate specific technical skills:
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.
Instructions for setting up the AWS Command Line Interface
Instructions for setting up your AWS IAM account
Guidelines for successfully passing the sprints in this unit