Introduction to Cloud Computing
Your AI Engineer Learning Roadmap
- Variables, data types, lists, loops, and conditionals
- Dictionaries and data structures
- Working with APIs using the requests library
- Writing reusable functions
Introduction to Python Programming ↗
Python Dictionaries, APIs, and Functions ↗
- Object-oriented programming (basic and intermediate)
- List comprehensions and lambda functions
- Decorators and regular expressions
- Error handling and input validation
- CLI navigation and file management
- Virtual environments and environment variables
- Git basics: clone, branch, commit, merge, pull requests
- Setting up and customizing your IDE
if item in cart:
cart[item]["qty"] += qty
else:
cart[item] = {"price": price, "qty": qty}
total = cart[item]["price"] * cart[item]["qty"]
print(f"Added {qty}x {item} — subtotal: ${total:.2f}")
return cart
- AI chatbot capabilities and limitations
- Tokenization and context windows
- Model families: GPT, Claude, Gemini, Llama, Mistral, DeepSeek
- Choosing the right model for the job
- OpenAI Chat Completions API
- Managing conversation context and token budgets
- Prompting techniques for reliable, high-quality responses
- Structured outputs and validation with Pydantic
- Function calling and agentic tool loops
- Building reusable tool servers with MCP
- Query parameters and data filtering
- Authentication methods and API keys
- Rate limits and pagination strategies
- Building LLM-powered APIs with FastAPI
- Containerizing applications with Docker
- Multi-service architectures with Docker Compose
- Production patterns: health checks, multi-stage builds, non-root users
client = openai.OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is RAG?"}
]
)
print(response.choices[0].message.content)
- NumPy arrays and boolean indexing
- Pandas: exploration, cleaning, aggregation, combining datasets
- String manipulation and handling missing data
- Visualization: line graphs, scatter plots, histograms, distributions
Introduction to Pandas and NumPy ↗
Data Visualization in Python ↗
Data Cleaning and Analysis ↗
- Sampling and frequency distributions
- Central tendency, variability, and z-scores
- Probability rules, permutations, and combinations
- Bayes' theorem and Naive Bayes classifiers
- Hypothesis testing and chi-squared tests
Introduction to Statistics ↗
Intermediate Statistics ↗
Probability in Python ↗
Hypothesis Testing ↗
- Supervised ML: KNN, model evaluation, hyperparameter tuning
- Unsupervised ML: K-means clustering
- Calculus for ML: functions, limits, optimization
- Linear algebra: vectors, matrices, linear systems
Introduction to Supervised ML ↗
Introduction to Unsupervised ML ↗
Calculus for ML ↗
Linear Algebra for ML ↗
- Linear and logistic regression
- Gradient descent optimization
- Decision trees and random forests
- Cross-validation, regularization, and feature engineering
Linear Regression Modeling ↗
Logistic Regression Modeling ↗
Decision Tree and Random Forest ↗
Optimizing ML Models ↗
- Sequence models and time series
- Natural language processing (NLP)
- Computer vision with CNNs
- Building and training a pneumonia detection model
from sklearn.model_selection import cross_val_score
model = RandomForestClassifier(n_estimators=100, random_state=42)
scores = cross_val_score(model, X_train, y_train, cv=5)
print(f"Cross-val accuracy: {scores.mean():.3f} (+/- {scores.std():.3f})")
model.fit(X_train, y_train)
print(f"Test accuracy: {model.score(X_test, y_test):.3f}")
- Generating embeddings with APIs and open models
- Visualizing high-dimensional embeddings
- Similarity metrics: cosine similarity, Euclidean distance, dot product
- Building semantic search systems
- ChromaDB fundamentals and HNSW indexing
- Document chunking strategies
- Metadata filtering and hybrid search
- Production databases: pgvector, Qdrant, Pinecone
- Semantic caching and memory patterns
- RAG architecture: retrieval, context management, grounded generation
- Advanced retrieval: query expansion and reranking
- Diagnosing common failure modes
- Security and prompt injection defense
- Self-RAG and autonomous evaluation
- Foundation metrics and evaluation frameworks
- LLM-as-Judge and automated evaluation
- Production observability and monitoring
- Agent architectures and tool use patterns
- Building agents with function calling
- Memory, state management, and planning strategies
- Multi-agent orchestration
- Agent evaluation and safety
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain.chains import RetrievalQA
vectorstore = Chroma.from_documents(
documents=chunks,
embedding=OpenAIEmbeddings()
)
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4o-mini"),
retriever=vectorstore.as_retriever(search_kwargs={"k": 3})
)
answer = qa_chain.invoke("What is our refund policy?")
print(answer["result"])