Emmanuel Odenyire Anyira
4 min readNov 26, 2023

Unlocking the Foundations: A Deep Dive into ALX Africa’s Month 6 Curriculum

Month 6 Overview: Mastering JavaScript, Python, Configuration Management, SSH, Web Servers, and Network Interaction

0x12. JavaScript — Warm Up

Learning Objectives:

  • Understand why JavaScript programming is powerful.
  • Execute JavaScript scripts and comprehend the basics.
  • Grasp variable and constant usage (var, const, let).
  • Explore JavaScript data types.
  • Implement conditional statements and loops.
  • Learn the fundamentals of functions.
  • Understand the scope of variables.
  • Work with arithmetic operators and dictionaries.
  • Master file import in JavaScript.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret files on Ubuntu 20.04 LTS using node (version 14.x).
  • Follow semistandard compliance and adhere to coding rules.
  • Create executable files.
  • Write a README.md file.
  • Ensure length compliance with wc.
  • No use of var.

0x13. JavaScript — Objects, Scopes and Closures

Learning Objectives:

  • Grasp JavaScript object creation.
  • Understand ‘this’ in JavaScript.
  • Define ‘undefined’ in JavaScript.
  • Comprehend variable type and scope importance.
  • Explore closures and prototypes.
  • Inherit objects from one another.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret files on Ubuntu 20.04 LTS using node (version 14.x).
  • Follow semistandard compliance and adhere to coding rules.
  • Create executable files.
  • Write a README.md file.
  • Ensure length compliance with wc.
  • No use of var.

0x0F. Python — Object-relational mapping

Learning Objectives:

  • Understand the awesomeness of Python programming.
  • Connect to a MySQL database from a Python script.
  • Perform SELECT and INSERT operations in MySQL from Python.
  • Grasp the concept of Object-Relational Mapping (ORM).
  • Map a Python class to a MySQL table.
  • Create a Python Virtual Environment.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret/compile files on Ubuntu 20.04 LTS using python3 (version 3.8.5).
  • Execute files with MySQLdb version 2.0.x and SQLAlchemy version 1.4.x.
  • Follow PEP 8 style guide (pycodestyle version 2.8.*).
  • Create executable files.
  • Write a README.md file.
  • Ensure length compliance with wc.
  • Document modules, classes, and functions.

0x02. AirBnB clone — MySQL

Learning Objectives:

  • Understand Unit testing in a large project.
  • Explore *args and **kwargs in Python.
  • Handle named arguments in a function.
  • Create and manage a MySQL database.
  • Implement Object-Relational Mapping (ORM).
  • Use environment variables.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret/compile files on Ubuntu 20.04 LTS using python3 (version 3.8.5).
  • Execute files with MySQL 8.0.
  • Follow PEP 8 style guide (pycodestyle version 2.8.*).
  • Create executable files.
  • Write a README.md file.
  • Ensure length compliance with wc.
  • Document modules, classes, and functions.

0x0A. Configuration management

Background: Explore the importance of configuration management, emphasizing Puppet.

Requirements:

  • Interpret files on Ubuntu 20.04 LTS.
  • Install Puppet 5.5.
  • Install puppet-lint (version 2.1.1).
  • Use allowed editors: vi, vim, emacs.
  • Follow Puppet syntax and conventions.
  • Write a README.md file.

0x0B. SSH

Learning Objectives:

  • Grasp the concept of a server and its location.
  • Understand SSH and create an SSH RSA key pair.
  • Connect to a remote host using an SSH RSA key pair.
  • Explore the advantages of using #!/usr/bin/env bash.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret files on Ubuntu 20.04 LTS.
  • Create executable files.
  • Write a README.md file.
  • Ensure length compliance with wc.
  • Use #!/usr/bin/env bash.

0x0C. Web server

Learning Objectives:

  • Understand the main role of a web server.
  • Comprehend child processes and parent processes.
  • Explore HTTP requests and DNS.
  • Learn about DNS Record Types.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret files on Ubuntu 16.04 LTS.
  • Create executable files.
  • Write a README.md file.
  • Ensure length compliance with wc.
  • Use #!/usr/bin/env bash.

0x0D. Web stack debugging #0

Learning Objectives:

  • Master web stack debugging.
  • Install Docker.
  • Utilize curl for HTTP requests.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret files on Ubuntu 14.04 LTS.
  • Create executable files.
  • Write a README.md file.
  • Ensure length compliance with wc.
  • Use #!/usr/bin/env bash.

0x10. Python — Network #0

Learning Objectives:

  • Understand the fundamentals of URLs and HTTP.
  • Fetch internet resources using urllib.
  • Decode urllib body response.
  • Use the Python package ‘requests’.
  • Make HTTP GET and POST requests.
  • Fetch JSON resources.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret files on Ubuntu 20.04 LTS.
  • Ensure length compliance with wc.
  • Use #!/usr/bin/python3.
  • Follow PEP 8 style guide (pycodestyle version 2.8.*).
  • Document modules, classes, and functions.

0x11. Python — Network #1

Learning Objectives:

  • Fetch internet resources with urllib.
  • Decode urllib body response.
  • Use the Python package ‘requests’.
  • Make HTTP GET and POST requests.
  • Fetch and manipulate JSON resources.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret/compile files on Ubuntu 20.04 LTS using python3 (version 3.8.5).
  • Ensure length compliance with wc.
  • Use #!/usr/bin/python3.
  • Follow PEP 8 style guide (pycodestyle version 2.8.*).
  • Document modules, classes, and functions.

0x0F. Load balancer

Concepts:

  • Load balancer.
  • Web stack debugging.

Background: Improve web stack redundancy using two additional servers.

Requirements:

  • Use allowed editors: vi, vim, emacs.
  • Interpret files on Ubuntu 16.04 LTS.
  • Create executable files.
  • Write a README.md file.
  • Ensure length compliance with wc.
  • Use #!/usr/bin/env bash.
Emmanuel Odenyire Anyira
Emmanuel Odenyire Anyira

Written by Emmanuel Odenyire Anyira

A Senior Data Engineer seeking to leverage 8 years of experience in technology and building data pipelines, designing ETL solutions

No responses yet