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.