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.
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.
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.
- 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).
- 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.
- 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.
- Idioms. The patterns a reviewer in the community expects, each next to the -flavoured version they would reject.
- 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.
- 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.
- Next steps. A short path for the next two weeks matched to the goal.
- 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 .
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
use in
npx @hermes-hq/hodios install learn-new-programming-language --target claude-codenpx skills add hermes-hq/hodios-dist --skill learn-new-programming-language -a claude-codeclaude plugin marketplace add hermes-hq/hodios-distclaude plugin install hodios-software-engineering@hodiosThe plugin brings every entry in this domain at once.
more in learning to code
All of Learning to codeExplain 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-codebaseExplain 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-codeExplain 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-queryPlan 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-pathCoding 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-mentorCreate 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