# Recommended Courses

{% hint style="warning" %}
Before getting started on the courses below, please request access to the gadget business Udemy account from your manager.
{% endhint %}

## 🔚 Back-End

If you are starting with a front-end project, skip and move to the front-end courses.

### 🐍 Python

Python basics and object-oriented features.

{% embed url="<https://www.udemy.com/share/101W8Q3@Zc2EBGaVyMMIfVKtNh4U8ZJzuuK_mHOJzj0R5zY6qj-xCSDAxU7B-gugBHFlyMHY/>" %}
Note: It's not mandatory to complete the whole course but knowledge up to the section of Generators and Decorators in Python is required. Also, an advanced Python Modules section is needed.
{% endembed %}

### 🔬 Data Science Libraries

{% embed url="<https://www.udemy.com/course/python-for-data-science-and-machine-learning-bootcamp/>" %}
Upto the section Pandas Built -n Data Visualization
{% endembed %}

### 💨 Restful API: FastAPI

Get familiar with Restful API services and some databases frameworks, API Method testing. The below course will help you a lot. If you are a complete noob, then go through all the courses below otherwise at least it is wise to get familiar with FastAPI, MongoDB/DynamoDB (NoSQL)/(MySQL).

{% embed url="<https://www.udemy.com/course/fastapi-the-complete-course/>" %}
Complete the course. Note: This course also covers basics of Git version control and Github repositories which is enough to upskill.
{% endembed %}

## ➬ Front-End

If you are working on a back-end project, skip this section and go to the Back-End courses.

### ⎘ Javascript

{% embed url="<https://www.udemy.com/course/the-complete-javascript-course/>" %}

### ♽ Learn React with Projects

{% embed url="<https://www.udemy.com/course/react-tutorial-and-projects-course/>" %}

### ☁️ React with AWS

{% hint style="warning" %}
**Prerequisite Courses:** [Amazon Web Services (AWS)](#architecture-aws)
{% endhint %}

{% embed url="<https://www.udemy.com/course/aws-amplify/>" %}
Implementing React with AWS to Build a Serverless Application
{% endembed %}

## ☁ Amazon Web Services (AWS)

Now Begin learning AWS Basics: (It is possible to learn the basics of cloud computing from various resources such as Youtube, GeeksforGeeks, and other online resources). If you are familiar with AWS/ any cloud basics then jump to AWS Serverless.

### 🏃‍♀️ Fundamentals

{% hint style="danger" %}
Your EC2 instances are configured with Arm64 architecture! Be sure that when using SAM CLI examples from the internet that you are changing the configuration of Lambda functions to deploy into the arm64 architecture.

Example:

```yaml
Properties:
  CodeUri: hello_world/
  Handler: app.lambda_handler
  Runtime: python3.9
  Architectures:
    - arm64 # this must say arm64!
```

{% endhint %}

#### Lambda Functions (with Python runtime)

There are many ways and languages that anyone can take for learning AWS serverless application model and its underlying services but Python is the most recommended one. An easy introductory course to serverless concepts is lambda functions.

{% embed url="<https://www.udemy.com/share/104hyi3@Fbeqqpp4sxZb0jOc4FI8AbEwrkpaSTz6E99w6XHvvXi8pemolnRgma5KkTqPi5LB/>" %}

#### Event-Driven Architecture Bootcamp

This course uses JS runtime but is still a great overview of important services commonly used to build an event-driven architecture. Don't get caught up in the runtime, focus on the features of each AWS service and how they might be used in various use-cases.

{% embed url="<https://www.udemy.com/course/aws-lambda-serverless-architecture/>" %}

#### SAM CLI (Build, Test, and Deploy Cloud Formation Stacks)

This is by far one of the most critical concepts to understand in the deployment architecture at Gadget Engineering. SAM CLI is the heart of the development, deployment, and testing for serverless architecture.

{% embed url="<https://gadget.udemy.com/course/aws-sam-framework-and-aws-lambda/>" %}

### 🗳 Electives

#### Boto3

Python Library for AWS Services Automation. Study this if you plan on executing automations in runtime (for example, invoking a lambda function or state machine directly from another lamba function).

{% embed url="<https://www.udemy.com/share/101wfc3@6UG8He4hMG90-Oez6FOdxbkW5OPKUBzaE6_t2jTIvlNqItxu9-Zh3oY0IMQgY2sq/>" %}

#### State Machines & Step Functions

State Machines help to orchestrate workflows through a series of Step Functions, each containing state (before and after execution). Each Step Function represents an AWS service (lambda, SQS, S3, DynamoDB) or a transform using AWS State Machine syntax.

{% hint style="info" %}
Skip to learning SAM CLI and SAM templates if you have not already learned those fundamentals. This Step Functions course is for those that have a project that will make use of or is making use of step functions. It is a highly powerful concept worth studying if your project involves this concept.
{% endhint %}

{% embed url="<https://www.udemy.com/share/101GKE3@3SuaW_sb6l3N8eDrefeYZZ9gyk658szlvBZpd3l3pcKN9J8R0XCozQSdc72Nz9Jr/>" %}

#### DynamoDB

A simple, powerful document database native to AWS and easily constructed within the SAM templating language.

{% embed url="<https://gadget.udemy.com/course/dynamodb/>" %}

#### DevOps

For those getting into the DevOps team, the basics of DevOps with AWS.

{% embed url="<https://www.udemy.com/share/101WpU3@en-pm8_D8teEHGlSj1a32szNRWZaxQCoSCiYpRJsr5zItSt6q3sFX303xu_pHRDk/>" %}

#### AWS Certified Developer Associate

Now buckle up or pull up your socks for AWS Developer:- (You need to have all the basics knowledge until now of all the above courses, including all electives, in order to move forward):-

{% embed url="<https://www.udemy.com/share/101WgC3@PD2wTchqXhkS5XrzVBqSlIDh1kEiaWYlNKnkyDJ6u1YBJwzEDGUfXBgIOJ0FDSFy/>" %}

## ⌥ Other Useful Concepts (optional)

The topics listed below are not yet concepts integrated directly into any active repositories or are abstracted from the serverless models being implemented. Nonetheless, they might be useful if you are curious to know more and expand your knowledgebase as a developer.

#### Docker + Kubernetes

The AWS SAM model essentially handles all of the features of Docker and Kubernetes under the hood; but if you are curious to dig into these concepts, take a look at this course.

{% embed url="<https://www.udemy.com/share/101Wek3@ieApsVgzcDoBZnsjT7qUw98qvV2K4E-Wf3eFWzjZW_x6jkq3xhnoZsH1c0EUWb73/>" %}

#### SQL

For those that have a love for normalized databases and punishment, take a look at this SQL course! While we primarily deploy document-based persistence, SQL still has a place and time and is worth exploring if you are unfamiliar with the concepts of relational databases.

{% embed url="<https://www.udemy.com/share/101Whk3@H1ahh0RyWRTerG-4lzsXSIuN1Y71MiH2Dyp_FRJapwN1ZcDUIXNeCzCTkxmibNb9/>" %}
Complete the course if you are not familiar with SQL databases.
{% endembed %}

## 😎 Awesome Resources

Check out these pages for some great additional content and documentation for AWS and python.

{% content-ref url="/pages/lSjyhQbUStxAZAuvKmk6" %}
[Awesome AWS](/dev-bible/getting-started/awesome-aws.md)
{% endcontent-ref %}

{% content-ref url="/pages/CtRbZmFtMkEAqTmwl3KE" %}
[Awesome Python](/dev-bible/getting-started/awesome-python.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://permitzip.gitbook.io/dev-bible/getting-started/recommended-courses.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
