Week 0 — Ground Work
🎯 TL;DR — Week 0 is your launchpad: configure your environment, mindset, and professional presence BEFORE writing a single line of AI code so you never waste momentum on setup friction later.
🧠 Mental Model
Think of Week 0 like a chef's mise en place — every tool sharpened, every ingredient in its place — because once the cooking (coding) starts, stopping to find your knife kills the flow.
📋 Core Concepts — Quick Reference Table
| Concept | What It Is | Why It Matters |
|---|---|---|
| Growth Mindset | Treating bugs and confusion as data, not failure | AI has a steep curve — quitters leave, learners stay |
| Spaced Repetition | Reviewing material at increasing intervals | Moves facts from working memory to long-term recall |
| Public Learning | Posting your progress on LinkedIn weekly | Builds portfolio AND accountability simultaneously |
| Conda Environment | Isolated Python environment per project | Prevents library version conflicts across projects |
| Jupyter Notebook | Browser-based interactive Python REPL | Industry standard for data exploration and prototyping |
| Git Portfolio | Version-controlled project history on GitHub | Recruiters judge AI engineers by their GitHub, not resumes |
| Cornell Note Method | Cues / Notes / Summary layout per lecture | Forces active recall, not passive re-reading |
🔢 Key Steps / Process
- Install Anaconda (or miniconda) — gives Python, Jupyter, and 200+ scientific packages in one shot
- Create a dedicated conda environment for this course (
conda create -n hopeai python=3.11) - Install all AI libraries in one command (see cheatsheet below)
- Configure VS Code with Python + Jupyter extensions
- Set up Git globally and create your AI portfolio repo on GitHub
- Update your LinkedIn profile with AI keywords before Week 1 (recruiters search now, not later)
- Establish your daily study schedule — block calendar time like a meeting
- Set up your note-taking system (Cornell method or Notion pages like this one)
- Post your "Starting my AI journey" LinkedIn update to create public accountability
💻 Code Cheatsheet
# ================================================================
# WEEK 0 — COMPLETE SETUP CHEATSHEET
# ================================================================
# ── 1. VERIFY INSTALLATION ──────────────────────────────────────
import sys
import numpy as np
import pandas as pd
import sklearn
import matplotlib
print(f"Python : {sys.version}")
print(f"NumPy : {np.__version__}")
print(f"Pandas : {pd.__version__}")
print(f"Sklearn : {sklearn.__version__}")
print(f"Matplotlib: {matplotlib.__version__}")
# Expected: Python 3.10+, NumPy 1.24+, Pandas 2.0+
# ── 2. JUPYTER MAGIC COMMANDS ───────────────────────────────────
# Run these inside a Jupyter cell:
# %time model.fit(X_train, y_train) → time a single statement
# %timeit np.dot(A, B) → benchmark (runs many times)
# %matplotlib inline → render plots in notebook
# %who → list all variables in scope
# %history → show command history
# %%time → time the ENTIRE cell
# !pip install xgboost → run shell commands from notebook
# ?pd.DataFrame → show docstring for any object
# ── 3. JUPYTER KEYBOARD SHORTCUTS ───────────────────────────────
# (Command mode = press Esc first)
# Shift+Enter → Run cell, move to next
# Ctrl+Enter → Run cell, stay in cell
# A → Insert cell Above
# B → Insert cell Below
# DD → Delete cell (press D twice)
# M → Convert cell to Markdown
# Y → Convert cell to Code
# Ctrl+/ → Toggle comment on selected lines
# Tab → Autocomplete
# Shift+Tab → Show function signature / docstring
# ── 4. CONDA ENVIRONMENT SETUP ──────────────────────────────────
# (Run in terminal, not Python)
"""
# Create isolated environment
conda create -n hopeai python=3.11 -y
conda activate hopeai
# Install all AI/ML libraries at once
pip install numpy pandas matplotlib seaborn scikit-learn \
xgboost lightgbm scipy \
jupyter jupyterlab \
tensorflow torch torchvision \
transformers \
fastapi uvicorn \
joblib
# Verify core installs
python -c "import numpy, pandas, sklearn, matplotlib; print('All systems go!')"
# Save environment (so teammates can reproduce it)
conda env export > environment.yml
# Recreate from file on another machine
conda env create -f environment.yml
"""
# ── 5. GIT PORTFOLIO SETUP ──────────────────────────────────────
"""
# One-time global config
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
# Create AI portfolio repo
mkdir hope-ai-portfolio && cd hope-ai-portfolio
git init
echo "# Hope AI — ML & DS Portfolio" > README.md
git add . && git commit -m "Initial commit"
# Connect to GitHub (create repo on github.com first)
git remote add origin https://github.com/USERNAME/hope-ai-portfolio.git
git branch -M main
git push -u origin main
# Daily workflow
git add .
git commit -m "Week 2: NumPy array operations and broadcasting"
git push
# .gitignore for AI projects
cat > .gitignore << EOF
*.pkl
*.h5
*.pt
.env
__pycache__/
.ipynb_checkpoints/
venv/
*.csv
*.xlsx
data/
EOF
"""
# ── 6. PROJECT FOLDER STRUCTURE ─────────────────────────────────
"""
hope-ai-portfolio/
├── week01_foundations/
│ └── ai_basics.ipynb
├── week02_python/
│ └── numpy_pandas.ipynb
├── week03_regression/
│ ├── linear_regression.ipynb
│ └── models/
│ ├── model.pkl
│ └── scaler.pkl
├── datasets/
├── environment.yml
└── README.md
"""
# ── 7. NORMALIZE + STANDARDIZE (preview of Week 3 concepts) ─────
import numpy as np
def min_max_normalize(arr):
"""Scale values to [0, 1] range"""
return (arr - arr.min()) / (arr.max() - arr.min())
def z_score_standardize(arr):
"""Scale to mean=0, std=1"""
return (arr - arr.mean()) / arr.std()
scores = np.array([45, 67, 89, 23, 91, 55, 78])
print("Original :", scores)
print("Normalized:", np.round(min_max_normalize(scores), 3))
print("Std-scored:", np.round(z_score_standardize(scores), 3))
⚙️ Key Parameters / Hyperparameters
| Parameter | What It Does | Typical Values |
|---|---|---|
python=3.11 | Python version in conda env | 3.10 or 3.11 (stable for AI libs) |
test_size=0.2 | Fraction of data held out for testing | 0.2 (80/20 split) |
random_state=42 | Seed for reproducibility | Any integer; 42 is convention |
n_jobs=-1 | Use all CPU cores for parallel work | -1 = all cores |
| Jupyter kernel | Python environment a notebook runs in | Select your hopeai conda env |
🎤 Top Interview Q&A
Q1: Why use conda instead of plain pip/venv?
A: Conda manages both Python versions AND non-Python C/C++ dependencies (like those needed by TensorFlow and SciPy), making environment reproduction across machines far more reliable.
Q2: What is the difference between fit_transform and transform?
A: fit_transform computes statistics (mean, std, min, max) from the data AND applies the transformation — use on training data only. transform applies previously computed statistics — use on test/new data to prevent data leakage.
Q3: Why is random_state=42 everywhere in ML code?
A: It seeds the random number generator so experiments are reproducible. Any fixed integer works; 42 is a community convention.
Q4: What is the AI Engineer role vs Data Scientist vs ML Engineer?
A: Data Scientist focuses on analysis and insights; ML Engineer focuses on training and optimizing models; AI Engineer focuses on integrating models into production systems and building AI-powered products (often using APIs like OpenAI/Anthropic).
Q5: Why post on LinkedIn during the learning phase?
A: Public documentation builds a portfolio of timestamps showing consistent learning, signals seriousness to recruiters, and forces you to explain concepts clearly — which deepens your own understanding (the Feynman Technique).
Q6: What does git commit -m mean and why should every project have commits?
A: Each commit is a snapshot of your project at a point in time. Recruiters and hiring managers read commit histories to assess how you think, how incrementally you work, and how seriously you treat your projects.
Q7: What is Jupyter's %timeit used for in AI?
A: Benchmarking code performance — especially important when choosing between NumPy operations, comparing vectorized vs loop-based code, or profiling model training speed.
⚠️ Common Mistakes
- Installing packages globally instead of in a project-specific environment — causes version conflicts that are hell to debug weeks later
- Skipping the LinkedIn update until "the project is done" — recruiters search keywords continuously; being invisible costs opportunities
- Copy-pasting code from lectures instead of typing it — muscle memory and debugging intuition only come from writing code yourself
- Not committing to Git regularly — a single push at the end of the week loses the incremental story of your learning
- Using
fit_transformon test data — this leaks information from test set into the scaler and inflates your evaluation metrics - Not using a virtual environment — system Python packages conflict with project requirements as the course progresses
- Watching lecture videos without a Jupyter notebook open — passive watching retains ~10% vs active typing retaining ~70%
🚀 Quick Reference — When to Use What
| Situation | Use This |
|---|---|
| Starting a new AI project | conda create -n projectname python=3.11 |
| Installing many packages at once | pip install numpy pandas scikit-learn ... |
| Sharing environment with teammate | conda env export > environment.yml |
| Running Python interactively | Jupyter Lab (jupyter lab) |
| Writing production scripts | VS Code with Python extension |
| Saving model progress | git add . && git commit -m "..." |
| Timing a slow cell | %%time at top of cell |
| Seeing what variables exist | %who or %whos for details |
📋 Completion Checklist
- Anaconda/Miniconda installed and
condacommand works in terminal hopeaiconda environment created and activated- All core libraries installed: numpy, pandas, sklearn, matplotlib, jupyter
- Jupyter Lab opens and runs a Python cell successfully
- VS Code installed with Python and Jupyter extensions
- Git configured globally with name and email
- GitHub portfolio repo created and first commit pushed
- LinkedIn headline updated with AI/ML/Python keywords
- Daily study schedule blocked in calendar
- First LinkedIn post published: "Starting my AI engineering journey"