hermes

Learn a new language from one you know

Teaches a new programming language by mapping it onto one the learner already knows, covering idioms, false friends, tooling and graded exercises. Use when switching languages for a job or project.

context

An experienced developer does not need to relearn loops and functions. What slows them down in a new language is the different mental model (ownership, goroutines, immutability, prototypes), the false friends that look familiar but behave differently, and writing the old language with new syntax, which reviewers in the new community reject. The fastest path maps what they know onto what is new, spends time where the languages genuinely differ, and practises with exercises built around those differences.

task

Teach to someone fluent in . Only if [FOCUS] is given: Their goal: If the goal is not given, ask what they will build first and how much time they have, then continue with a general backend-and-scripting focus if they prefer not to say.

  1. Mental model. In a short paragraph, the two or three ideas that most change how you think when moving from to (for example memory management, the type system, error handling, the concurrency model, mutability, compilation and deployment).
  2. Concept map. A table that maps concepts the learner knows to their counterpart, marked "same", "similar, but…" or "no equivalent". Cover: types and generics, classes and interfaces or their replacement, error handling, null or absence, collections and iteration, modules and visibility, concurrency, memory and resources, string handling, testing, and packaging. Give a two- to five-line snippet side by side only where the difference matters.
  3. False friends. Things that look the same in both languages and behave differently: equality, integer division and overflow, copying versus references, default mutability, scope and closures, string encoding, exception or panic semantics. For each: what the learner will assume, what really happens, and a snippet that shows it.
  4. Idioms. The patterns a reviewer in the community expects, each next to the -flavoured version they would reject.
  5. Tooling. The standard toolchain: install and version manager, package manager and manifest, formatter, linter, test runner, REPL or playground, debugger, and the documentation sources the community trusts.
  6. Exercises. Five graded exercises, each built around a difference from steps 2 to 4: a short task, what it practises, and a hint. Offer to review the learner's solutions.
  7. Next steps. A short path for the next two weeks matched to the goal.
constraints
  • Correctness over coverage: only state behaviour you are confident of for the stated version. If behaviour changed across versions, say from which version it applies.
  • Do not invent libraries or tools. Name a third-party library only when it is the community's clear default, and say it is third-party.
  • Keep snippets minimal and runnable. Do not explain basics the learner already knows from .
output format

Mental model

One paragraph.

Concept map

Table: concept | counterpart | Same / similar, but… / no equivalent | Note.

False friends

Numbered: the assumption, the reality, a snippet.

Idioms

Pairs of "instead of this" and "write this", with one line on why.

Tooling

Table: Job | Tool | Command.

Exercises

Numbered, easiest first: task, what it practises, hint.

Next steps

A short plan.

2 required values still a placeholder; the assistant will ask for them.

details

kind
Prompt: a task you run by name to get one finished thing back
domain
Software engineering
category
Learning to code
level
Intermediate
made for
Software engineer, Student
risk
read-only
version
v1.0.0 · incubating
reviewed
2026-10-02
works in
Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai

Edit on GitHubReport a problem

use in

Hodios CLI
npx @hermes-hq/hodios install learn-new-programming-language --target claude-code
Agent Skills
npx skills add hermes-hq/hodios-dist --skill learn-new-programming-language -a claude-code
Add the Hodios marketplace (once)
claude plugin marketplace add hermes-hq/hodios-dist
Install the software-engineering plugin
claude plugin install hodios-software-engineering@hodios

The plugin brings every entry in this domain at once.

more in learning to code

All of Learning to code
PromptLearning to code

Explain a codebase

Explains an unfamiliar codebase. Maps its structure, traces one real request end to end and names the concepts and gotchas a newcomer needs. Use when joining a project or reading an unknown repo.

explain-codebase
PromptLearning to code

Explain a concept with code

Explains a programming concept through the problem it solves, a minimal runnable example, a common mistake and a quick self-check, pitched at the learner's level. Use to learn or teach a concept.

explain-concept-with-code
PromptLearning to code

Explain a SQL query

Explains a complex SQL query clause by clause in logical execution order, shows intermediate results on a tiny example, and points out bugs and performance traps. Use when inheriting a query.

explain-sql-query
PromptLearning to code

Plan a learning path for a technology

Builds a week-by-week plan to get productive in a new language, framework or tool, built around hands-on milestones and skipping what the learner already knows. Use when picking up a new stack.

plan-learning-path
PersonaLearning to code

Coding mentor

Acts as a senior developer mentoring a junior, asking what they tried, explaining the why behind fixes and reviewing code to teach. Use for early-career developers who want to grow.

coding-mentor
PromptLearning to code

Create graded coding exercises

Generates a graded set of coding exercises for one concept, each with starter code, automated tests, staged hints and a reference solution. Use for teaching, practice sessions or self-study.

create-coding-exercises