- Contact @krp or @mechatroNick for Zoom & Discord links.
- Class runs from 10AM-3PM Mon-Fri. August 29th - November 18th 2022.
Student Expectations: ~5 hours of lectures and ~3 hours of homework per day.
- Python Programming
- Career
- Cloud Foundations
- Linux
- Networking
- Databases
- AWS
- Exam Preparation
Note: Github Student Pack requires you to have a student email @myunitec.ac.nz
- Github Student Pack
- Frontend master - good place to learn Frontend Javascripts React/Vue/Angular
- Markdown guide
- JetBrains PyCharm IDE - can be free if registered with a student email
- VSCode IDE - free
- Install Python for Window - always tick Add Python to PATH option
- Install Python for Mac - best option is to use Homebrew aka
brew
command line
- freeCodeCamp.org
- Computerphile
- Socratica
- Harvard CS50
- Adrian Cantrill
- Theo Browne
- David Bombal
- Programming with Mosh
- TechWorld with Nana
- The Coding Train
- devaslife
- Fireship
- IppSec
- NahamSec
- JohnHammond
- BillBuchanan
- LiveOverflow
- MarcusHutchins
- STĂ–K
- Programming & Tool basics
- Setting up & browsing GitHub
- Setting up & using Discord
- Markdown & Markdown Tutorial
- Installing VSCode
- Installing Python
- Python primitive data types:
int
,float
,str
- Output with
print()
- Input with
input()
- Getting
type
of variable withtype(var)
- Interpreted vs Compiled Programming Languages
- Python REPL / Shell
- AREPL VSCode Extension
- Some string functions: .upper(), .lower(), .capitalize(), .split(), etc
- Lists: Creating, accessing elements,
.append()
,.pop()
,.extend()
,.sort()
(in-place) vssorted(my_list)
(copy) - Reading code (basics): aws-cli - Comments, multi-line comments & docstrings,
import
,class
(as a concept) - Functions (
def
andreturn
), function parameters/arguments - "Scope" (variable names can be reused in different functions)
- Loop basics:
while
,break
and common gotchas - Refactoring (rewriting your code to simplify things)
- @krp/python-examples
- Supplementary: The Coding Train - What was coding like 40 years ago?
- Reading and writing files by creating file handles with
open("filename.txt")
in Python - New-line characters and line endings.
- Python's
random
module,seed()
,random()
,randint()
,choice()
and randomness with Pseudo-random number generators (PRNGs) - Notable mention: Debian PRNG bug, Dual_EC_DRBG Backdoor, Eddie Tipton Hot Lotto RNG Backdoor
- Python's
time
module and understanding Unix Time (time.time()
andtime.sleep(5)
. - Installing libraries with
pip
and the Python Package Index - Using the
requests
module (installed withpip install requests
) to make web requests using Python. - Python Module Of The Week - PyMOTW
- GitHub: @vinta/awesome-python
- Directory navigation with
pwd
,cd
,ls
and gotchas around it. - Pyxel library - Great for learning Python
- @kris-classes/pyxel-snippets - Collection of simple snippets for learning to code with Python & pyxel
- Python String Formatting
- More looping
- Debugging in VSCode
- Dictionaries, Sets, Tuples
- PyQt Examples for Graphical User Interfaces (GUIs)
- More Python examples
- AWS Console Basics & EC2 instance types
- Regions, Availability Zones, Data Centers, Latency
- Different pricing models for EC2: on-demand, spot, reserve
- AWS Pricing Calculator
- More Looping &
in
keyword - Stack & Queue concepts
- More Git
- More Looping, Lists, Dictionaries, Iterators (concept)
- CSV files
- Project group exercises
- Sets -
union &
,intersection |
- More functions - no variable, default value, *arg, **kwargs
- Hardware: CPU, RAM/Memory, Storage, GPUs, Cores, Threads
- CPU-Z (Windows)
- Supplementary: UserBenchmark.com)
- Linux
- LinuxJourney.com
- Linux Filesystem Hierarchy Standard
- ssh
- Windows 11 permission issues with SSH private keys
- Symmetric vs Asymmetric Key Cryptography (basics)
- More Linux
- Building programs from source code
- Permissions
- Supplemental: History of Unix
- Shells (configuring, aliases, differences, some history, different shells)
- Creating our own with Python's
os
module. - Directory & File permissions.
- Hashbang:
#!
- PATH
strace
- DistroWatch, GNU, FSF
- More on OS internals (protected mode, drivers, monolithic vs microkernel, kernelspace/userspace (ring0/ring3 on Linux)
- stdin, stdout, stderr & file redirection
- Piping,
env
& environment variables sl
,cowsay
,jq
,grep
,wc
,tr
,sort
- Interacting with APIs using
curl
- Modern Unix Utilities
- Bash scripting basics & automating installation
sudo amazon-linux-extras install epel
- Supplementary: Some other utils/tools/libs mentioned by learners:
gtop
,sherlock
,gping
,tldr
,chalk
,fig
,zsh-autosuggestions
, Scott Hanselman - Microsoft Terminal,neofetch
,pi-hole
,hoppscotch
,jsonhero-web
,shellcheck
,click
,beets
,n8n
,bubbletea
,fork-cleaner
,spicetify-cli
,social-analyzer
- Art of Command Line
- Job Control:
Ctrl-Z
,jobs
,bg
,fg
,&
,kill
,head
, `tail - Logging & /var/log/secure (SSH log on Amazon Linux)
- try/except & error handling basics in Python
- Managing Users Basics:
adduser
,passwd
,chown
,chgrp
- Python: classes: (methods, self) yield, generators
w
,curl ifconfig.me
- Basics of HTTPs, CAs, Chain of Trust
- Endianness (concept)
- Programming Paradigms
- Concurrency Basics
- Regular Expressions
- Navigating StackOverflow & StackExchange platform
- Group exercise: Complete overview of Linux filesystem & important files across it
- Networking Basics: IPv4, Ports, DNS (A and CNAME records)
dig
,whois
,nc
- Supplementary: Spreeder - Improving reading speed, KeyBR - Improving typing speed, Illegal Numbers, Regional Internet Registry
- Python modules, JSON basics
- Exceptions
- Python's
with
keyword (context manager concept) fastapi
anduvicorn
basics- Basics of project scoping, requirements gathering, data modeling basics
- Supplementary: Billion laughs attack - Bug with deserialization
- Architecture of Open Source Applications (AOSA Books)
- Python's
http.server
andpydoc
modules - Interfaces & interacting with APIs
- User Agents, robots.txt,
Host:
header - Using Python decorators with
fastapi
- Public vs Private IP addresses, Loopback Interface/Localhost, Port Scanning
- TCP, UDP
- RFC's
- Wireless Networking & WiFi
- Network Topology
- OSI Model, TCP/IP Model
- Ethernet, MAC Addresses, MAC Spoofing
- Wireshark basics
- Hexadecimal basics
- Revision & More on Python Classes
- Hashing Basics
- VirusTotal
- Brute-forcing & probabilities
- CRUD applications
- Cybersecurity: ExploitDB, GHDB, ATT&CK, D3FEND, OWASP Top 10
- Scraping
- Binary, Hexadecimal
- ASCII
- Hex editors & other instances where you encounter hex
- TryHackMe.com
- Blockchain technical details
- Reading other programming languages (Rust/Go)
- Subnetting
- Subnet Calculator 1
- Subnet Calculator 2
- More EC2, some VPC
- IaaS, PaaS, SaaS, etc
- More networking labs
- More EC2
- More Cryptography Basics
- IAM Basics
- EBS (Elastic Block Store) & File system basics
- RDS
- SQL Basics
- More RDS
- Docker
- Single-Page Application Basics
- Base64 Encoding
- Cookie vs JWT Basics
- More Docker
- redis
- More Docker
awscli
boto3
- S3 (Simple Storage Service)
- AWS SDK Examples
- Revision
- AWS SkillBuilder - Cloud Practitioner Essentials
- AWS SkillBuilder - Cloud Quest
- Faker
- ElastiCache w/ Redis
- Redis-Py
- SQLite Sample Database - Sakila Rental
- SQLite Browser
- More SQL
- Industry Meeting
- Python's sqlite3 Module
- Unit Testing with
pytest
- Basics of Algorithms & Data Structures
- Working with SQLite databases with Python's
sqlite3
module.
- Learning platforms: CodeWars & HackTheBox
- More Databases (Labs 268-273)
- Certification Pathways
- Exam Vouchers
- Frontend & NodeJS
- Assignment Help
- System Design
- Troubleshooting/Debugging the Deployment Script Lab Challenge
- CloudFront & CDNs
- CAP Theorem basics
- Agile
- Application & Network Load Balancers
- Load Balancer Lab
- Scott Hanselman talk
- Domain name registration
- Elastic Load Balancing (ELB) & Load Balancer types
- Auto-Scaling Groups & Lab
- netcat (
nc
) basics - Cost Estimation with the Pricing Calculator
- docker compose
- awesome-compose
- Some React & Next.jsBasics
- Cloudflare & nginx' Architectural issues
- DevOps Exercises
- Latency Numbers that Programmers Should Know
- LinkedIn Skill Assessment Quizzes - Only use to learn what you don't know.
- Next.js Conference - Future of the Web / Edge computing
- Lambda
- More SNS
- More S3
- More Lambda, S3 & SNS
- LibHunt
- Thoughtworks Tech Radar
- Amazon Lex
- Code review of several Lambda blueprints
- Python Revision & Datetime objects
- SQS
- ChatOps Basics (coding a simple Discord bot that uses boto3 and DynamoDB)
- DynamoDB Basics
- Preventing RSI / back pain / etc in tech jobs
- S3 Storage Classes
- More software licensing & software patents
- Terraform (Basics)
- Python typing basics & pydantic
- More DNS Record Types (AAAA, NS, MX, TXT) Pic
- CloudFront
- CloudTrail & Athena
- Revision: Docker, Databases, Subnetting, Shell scripting,
hashlib
- VPC, Subnets, Gateways
- FastAPI revision
fetch()
- Hashing & Checksums Revision
- Hex, File formats
- Unicode / utf-8
- Remote Procedure Call
- Machine Learning Basics (with Huggingface's Transformers library)
- Subnetting Revision
- Socket programming
- Concurrency (using Threads) with Python
- Revision
- Test practice & assignment Help
- More test practice & assignment help
- Test
- Assignment deadline
- Presentations
- Congratulations!
Domain | Topic | Items | Note | Lab | Covered |
---|---|---|---|---|---|
Cloud Concepts | AWS Cloud value proposition | Benefits | Most important: o Security, o Reliability, o High Availability, o Elasticity, o Agility, o Pay-as-you go pricing, o Scalability, o Global Reach, o Economy of scale, | covered | |
Focus shift | Shifting technical resources to revenue-generating activities as opposed to managing infrastructure | covered | |||
AWS Economics | What is total cost of ownership | OpEx, CapEx, Operational Cost, Software Licencing of selft maintain infrastructure | covered | ||
How the cloud can help lowering cost | Right sizing and scale (Elasticity + Pay as you go), many automation available (Agility) | See billing break down | covered | ||
Design principle for Architecture | Design principles | o Fail proof, o Decoupling, o Make use of elasticity, o Think parallel | |||
Security and Compliance | Shared responsiblity model | Shared responsibility model | o Customer responsibility (configuration, software security), o AWS responsibility (hardware availability, accepted failure rate...) | covered | |
Security & Compliance concepts | o Industry compliance (HIPPA, SOCs, PCIs), basically security standards, o Encryption (at rest, in transit), o Least privilege access and Identity Access Management | See an IAM policy | covered | ||
Identity Access Management | User & Identity management | o Access keys & password, o MFA, o IAM Service (Group/User/Role/Policies) | Login to root account, Tour of IAM | covered | |
Security Support | Network Security | o For later when finished Networking part | |||
Technologgy | Deploy & Operate | Methods | o AWS Console, o APIs, o SDKs, o Cloudformation (create/delete/modify but not operate) o CDK/Pulumi/Terraform | Login to AWS console | covered |
Deployment model | o Cloud native, o Hybrid, o On-premises | Show an architecture design with Hybrid Connectivity | |||
Connectivity options | o VPN, o Direct Connect, o Public internet | Show an architecture design with Hybrid Connectivity | |||
Global infrastructure | Concepts | o Regions, o AZs, o Edge Location | covered | ||
Why use regions | o Disaster recovery/business continuity, o Low latency for end user o Data compliance | covered | |||
Edge Location benefits | o Quick for download from CDN (CloudFront), o Quick for S3 Upload Accelerator, o AWS Global Accelerator (speed up connection) | covered | |||
Core Services | Compute family 1 | o VM based compute EC2, o Container based compute ECS/EKS, o Serverless Lambda, o Load Balancer (L7 for HTTP, L4 for ENI), o Health Check Alarm, o Autoscaling group and how autoscaling works | Lambda function lab, EC2 lab, ASG lab tour | covered | |
Compute family 2 | o Types of EC2 o Types of EC2 billing (Reserve, On-demand, Spot) | Visit pricing calculator | covered | ||
Storage family 1 | o S3 o Glacier o Snowball o Storage Gateway | S3 Bucket host objects, S3 Bucket versioning, S3 Static website hosting, S3 Bucket policy, S3 Life cycle policy | covered | ||
Storage family 2 | o EBS, o EFS | EC2 attach EBS, encrypt un-encrypted EBS drive | covered | ||
Networking 1 | o VPC, subnets, o Internet Gateway, o Security Group, NACL, o NAT gateway, Bastion Host o Revisit Load Balancer | Create VPC with NAT gateway, Bastion Host lab | covered | ||
Networking 2 | o CloudFront o Route53 o API Gateway | S3 Static website hosting + CloudFront CDN | covered | ||
Database | o RDS o Aurora o DynamoDB o RedShift (OLTP vs. OLTA) | Aurora RDS Lab + Bastion Host to connect, DynamoDB Lab | covered | ||
Integration | o SQS o SNS o StepFunctions | Go see some working example of StepFunctions, play with SQS and SNS | covered | ||
Management 1 | o CloudWatch Logs (Lambda example), o CloudTrail, o CloudWatch Event/Eventbridge, o System Manager, o Parameter Store, o Config, o Secrets Manager | See CloudWatch Logs, CloudTrail, and different services | covered | ||
Management 2 | o Concept of IaC (Infrastructure as Code) o Cloudformation o Pulumi/Terraform | Pulumi/Terraform introduction | covered | ||
Support | Resource | o AWS Trusted Advisor o Support tier o Professional services | Go see the AWS Console | ||
Billing | Bills | o Billing console o Billing alarm o Free quota o Services limits o Pricing calculator | Go see some bills + DynamoDB vs. RDS cost study | covered | |
Organization | o Organization Units, o Ways to structure OU, o Consolidated billing | Go see the AWS Console | covered |
By whom | Ideas | Links | Difficulty | Time estimated to prepare | Tools | Notes |
---|---|---|---|---|---|---|
Kawana | Create and Manage a Nonrelational Database | https://go.aws/3UGYd2M | Internmediate | 1-2 hours | AWS DynamoDB | Don't use Cloud9, just get Sandbox environment keys |
Raemon | Extract video metadata | https://go.aws/3NNtw9L | Easy | 1 hour max | AWS Rekognition | Do this in AWS Console, add more context if you can |
Prerana | Analyze text context and sentiment | https://go.aws/3DTiuLG | Easy | 1 hour max | AWS Comprehend | Do this in AWS Console, add more context if you can |
Will | Translate between languages | https://go.aws/3teZrq1 | Very easy | 1 hour max | AWS Translate | Do this in AWS Console, add more context if you can |
Tia | Demonstrate SNS Fanout to SQS architecture | https://go.aws/3DUR5Zw | Intermediate | 1-2 hours | AWS SNS,SQS | Do this in AWS Console, add more context if you can |
Luke | Use SQS in real application | https://go.aws/3TkTzpY | Intermediate | 2-3 hours | AWS SQS | Additionally, you need to get Sandbox keys, and use boto3 to consume SQS queue messages |
Ryan | Demonstrate building application with Lambda | https://go.aws/3DOKznj | Intermediate | 1-2 hours | AWS Lambda | Do this in AWS Console, demonstrate any kind of code that you write yourself |
Anuj | Use Textract to scan text out of images | https://go.aws/3tcN3qz | Very easy | 1 hour max | AWS Textract | Do this in AWS Console, add more context if you can |
Stacey | Detect and analyze faces | https://go.aws/3WPVnKK | Very easy | 1 hour max | AWS Rekognition | Do this in AWS Console, add more context if you can |
Kura | Filter messages using SNS Topic | https://go.aws/3WLihml | Intermediate | 1-2 hours | AWS SNS | Do this in AWS Console, add more context if you can |
Benke | Add audio transcript | https://go.aws/3Upb89G | Very easy | 1 hour max | AWS Transcribe | Do this in AWS Console, add more context if you can |
Marcelle | Protect your S3 data | https://go.aws/3Tkm8Uo | Intermediate | 1-2 hours | AWS S3 | Do this in AWS Console, add more context if you can |
Gracie | Using Docker volume | https://bit.ly/3DUUkAa | Intermediate | 1-2 hours | Docker | |
Benke | Getting started with Kubernetes | https://bit.ly/3A0xo1z | Harder | 2-4 hours | Kubernetes | |
Brandon | S3 Data Integrity with Checksum | https://go.aws/3TH7C9G | Intermediate | 1-2 hours | AWS S3 | |
Sisi | Create and Query a NoSQL Table with Amazon DynamoDB | [https://go.aws/3X0NC4E ] | Very Easy | 1 hours | Amazon DynamoDB | |
Xavier | SageMaker demonstration | https://go.aws/3UANlDZ | Intermediate | 1-2 hours | AWS SageMaker | |
Jayam | Getting started with Athena | https://go.aws/3Oax463 | Intermediate | 1-2 hours | Amazon Athena | |
Victoria | Getting started with Elastic Transcoder | https://bit.ly/3hwtdnB | Easy | 1 hour max | AWS Elastic Transcoder | |
Quentin | Comprehend demonstration | V3ry-easy | 1 hour max | AWS Comprehend | ||
Levi | Filter Messages Published to Topics with Amazon SNS and Amazon SQS | https://go.aws/3ga9euO | Intermedaite | 1-2 hours | AWS SNS, SQS | |
Ben W | Navigating AWS RDS | https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html | Easy | 1 hour | AWS RDS |
- Your name: Topic/Service goes here
- Another name: Another topic/service goes here
- VMs vs. Containerization
- Globally Unique IDs
- Process vs. Thread
- Software deployment strategies
- Design secure APIs
- DB Caching