Skip to main content

Phase 2: Programming

Author: GPS

How does this phase apply to Cloud?

You'll be using code to automate tasks, deploy infrastructure, and work with services. You don't need to know how to build UIs but you need to know how to work with APIs and other cloud services like storage, databases, etc. Knowing how to program will make you more competitive in the hiring market. In the previous step you were introduced to programming basics and wrote your first Bash script. You can now leverage this knowledge and apply it to your choice of programming language.

What You Need To Learn

There are several programming languages that are popular with Cloud: Python, Go, Rust, .NET, JavaScript. If you know any of these, you can continue using them, if not, since you are a beginner, I would go with Python. It's a very popular language and there are many quality free resources out there to learn it.

Continue adding your projects to your GitHub profile that you created in the past phase.

We also recommend you at this point leverage tools like GitHub Copilot and Prompt Engineering to help you write code more productively.

How to break down this phase

I would suggest spending time on these two topics and this timeline:

OrderTopic
1Learn to Code
2Learn Prompt Engineering

Resources

OrderTitleNotes
1Python Crash CourseA great Python book, also there is an Appendix in there on Git which is great!
1Python for BeginnersA 44 part video series introducing you to Python
17 Days of PythonA 7 day guide to Python
2A Beginner's Guide to Prompt Engineering with GitHub CopilotAn article by Rizèl Scarlett on how to get the most out of GitHub Copilot.

Capstone Project: Serverless Movies API.

Create an API with serverless functions that display movie information.

  1. Create your cloud infrastructure with an SDK, you'll need a NoSQL db, cloud storage and serverless function. Depending on which cloud you use, you might need additional things.
  2. Find movie data or create it and store it in your cloud NoSQL db.
  3. Store movie cover images of each movie in cloud storage.
  4. Create 3 functions:
    1. GetMovies: Returns a JSON list of all movies in your db. Make sure to return a URL for the movie cover.
    2. GetMoviesByYear: Returns a list of movies released in that year. Year is provided by the client.
    3. EXTRA CREDIT: GetMovieSummary: Returns a summary that is generated by AI.

Your movie data model could look like:


{
"title":"title of the movie",
"releaseYear":"when the movie was released",
"genre":"genre of the movie",
"coverUrl":"url-to-image-in-cloud-storage"
}

GetMovies could look like this: yourapi.com/getmovies

[
{
"title": "Inception",
"releaseYear": "2010",
"genre": "Science Fiction, Action",
"coverUrl": "https://example.com/inception.jpg"
},
{
"title": "The Shawshank Redemption",
"releaseYear": "1994",
"genre": "Drama, Crime",
"coverUrl": "https://example.com/shawshank-redemption.jpg"
},
{
"title": "The Dark Knight",
"releaseYear": "2008",
"genre": "Action, Crime, Drama",
"coverUrl": "https://example.com/dark-knight.jpg"
}
]

GetMoviesByYear could look like: yourapi.com/getmoviesbyyear/2010

[
{
"title": "Inception",
"releaseYear": "2010",
"genre": "Science Fiction, Action",
"coverUrl": "https://example.com/inception.jpg"
}
]

GetMovieSummary could look like: yourapi.com/getmoviesummary/inception

[
{
"title": "Inception",
"releaseYear": "2010",
"genre": "Science Fiction, Action",
"coverUrl": "https://example.com/inception.jpg",
"generatedSummary": "A mind-bending sci-fi thriller about dream theft and manipulation."
}
]

Things you should be familiar with at the end of this phase

Programming

  • Variables
  • Data types
  • Comments
  • Functions
  • OOP
  • Lists
  • Modules
  • Dictionaries
  • Loops
  • Control statements
  • Exceptions

Git

  • How to create a Git repo locally
  • How to create a GitHub repo and clone it locally.
  • How to create a git branch
  • How to add changes to a git branch
  • How to merge Git changes
  • How to document code with a README