> ## Documentation Index
> Fetch the complete documentation index at: https://usefulai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Best AI Courses in 2026

export const toolCats = [{
  "title": "ChatGPT",
  "href": "/courses/chatgpt",
  "icon": "/images/icons/48/chatgpt.com.png",
  "count": 9
}, {
  "title": "Claude Code",
  "href": "/courses/claude-code",
  "icon": "/images/icons/48/claude.com.png",
  "count": 9
}, {
  "title": "Claude Cowork",
  "href": "/courses/claude-cowork",
  "icon": "/images/icons/48/claude.com.png",
  "count": 8
}, {
  "title": "Cursor",
  "href": "/courses/cursor",
  "icon": "/images/icons/48/cursor.com.png",
  "count": 7
}, {
  "title": "GitHub Copilot",
  "href": "/courses/github-copilot",
  "icon": "/images/icons/48/github.com.png",
  "count": 10
}, {
  "title": "Google Gemini",
  "href": "/courses/google-gemini",
  "icon": "/images/icons/48/gemini.google.png",
  "count": 8
}, {
  "title": "Microsoft Copilot",
  "href": "/courses/microsoft-copilot",
  "icon": "/images/icons/48/copilot.microsoft.com.png",
  "count": 8
}, {
  "title": "Midjourney",
  "href": "/courses/midjourney",
  "icon": "/images/icons/48/midjourney.com.png",
  "count": 5
}, {
  "title": "OpenAI API",
  "href": "/courses/openai-api",
  "icon": "/images/icons/48/openai.com.png",
  "count": 8
}, {
  "title": "Agentforce",
  "href": "/courses/agentforce",
  "icon": "/images/icons/48/salesforce.com.png",
  "count": 7
}];
export const skillCats = [{
  "title": "Introduction to AI",
  "href": "/courses/introduction-to-ai",
  "fa": "brain",
  "count": 9
}, {
  "title": "Prompt Engineering",
  "href": "/courses/prompt-engineering",
  "fa": "wand-magic-sparkles",
  "count": 10
}, {
  "title": "AI Agents",
  "href": "/courses/ai-agents",
  "fa": "robot",
  "count": 10
}];
export const roleCats = [{
  "title": "AI for Teachers",
  "href": "/courses/teachers",
  "fa": "graduation-cap",
  "count": 8
}];

export const Logo = ({c}) => c.icon ? <img src={c.icon} alt="" noZoom className="h-6 w-6 shrink-0 rounded-md border border-zinc-100 object-contain p-0.5 dark:border-white/10" /> : <span className="flex h-6 w-6 shrink-0 items-center justify-center rounded-md border border-zinc-100 text-zinc-500 dark:border-white/10 dark:text-zinc-400"><Icon icon={c.fa} size={12} color="currentColor" /></span>;

export const Row = ({c}) => <a href={c.href} className="group flex items-center gap-2.5 border-b border-zinc-100 py-2.5 no-underline transition-colors hover:bg-zinc-50/60 dark:border-white/5 dark:hover:bg-white/[0.02]">
    <Logo c={c} />
    <h3 className="m-0 min-w-0 flex-1 truncate text-sm font-medium text-zinc-950 dark:text-white">{c.title}</h3>
    <span className="shrink-0 text-[13px] tabular-nums text-zinc-400 dark:text-zinc-500">{c.count}</span>
    <span className="shrink-0 text-zinc-400 transition-colors group-hover:text-zinc-900 dark:text-zinc-500 dark:group-hover:text-white"><Icon icon="chevron-right" size={12} /></span>
  </a>;

export const GroupLabel = ({children}) => <h2 className="not-prose mb-2 mt-9 text-xs font-semibold uppercase tracking-wide text-zinc-400 dark:text-zinc-500">{children}</h2>;
export const rows2 = {
  display: "grid",
  gridTemplateColumns: "repeat(auto-fill, minmax(300px, 1fr))",
  columnGap: "28px"
};

Hand-picked course roundups to learn the top AI tools and skills, ranked by real student reviews.

<GroupLabel>By tool</GroupLabel>

<div className="not-prose" style={rows2}>
  {toolCats.map((c) => <Row key={c.href} c={c} />)}
</div>

<GroupLabel>By skill</GroupLabel>

<div className="not-prose" style={rows2}>
  {skillCats.map((c) => <Row key={c.href} c={c} />)}
</div>

<GroupLabel>By role</GroupLabel>

<div className="not-prose" style={rows2}>
  {roleCats.map((c) => <Row key={c.href} c={c} />)}
</div>
