needmoreeasy EN 한국어
Learn

NME learning guides

88 short guides, written to be read in order. Each one teaches a single idea, ends with something to try and a summary of what it taught, and every piece of code in them passes nme check.

  • 01–04 Your first day. Sentence syntax only — no quotes, no equals signs, no colons.
  • 05–12 Repeating, choosing, randomness, and the command-line tools.
  • 86–88 Stories, the screen, the stopwatch and cooldowns. Still sentence syntax — read these straight after 12, not last. They carry high numbers only because they were written later.
  • 13–22 Files, JSON, small projects, a blockchain, the network. Beginner syntax starts to appear.
  • 23–52 Modules, games, a calculator, data, strings, grids. More than half of it is Python.
  • 53–85 Statistics, search, algorithms, compilers. Effectively Python programs.

Difficulty

  • ★☆☆☆☆ (1/5) — first day, sentence syntax only
  • ★★☆☆☆ (2/5) — getting comfortable with sentence syntax
  • ★★★☆☆ (3/5) — beginner syntax and files mixed in
  • ★★★★☆ (4/5) — more than half Python
  • ★★★★★ (5/5) — essentially Python

The number is the difficulty. Read them in order and no single step is a jump.

Learn in order

  1. 01 — Hello: say your first words
  2. 02 — Ask: have a conversation
  3. 03 — Set: store a value
  4. 04 — Update: change a value
  5. 05 — Repeat: do something many times
  6. 06 — If: make a choice
  7. 07 — While: keep going
  8. 08 — Break: stop a loop
  9. 09 — And / Or: combine conditions
  10. 10 — Random: dice and picks
  11. 11 — Check & Build: see the Python
  12. 12 — Convert: turn Python into NME
  13. 13 — Files: save and read text
  14. 14 — JSON: save and load data
  15. 15 — High score: a tiny project
  16. 16 — Name list: read lines from a file
  17. 17 — Cryptocurrency ledger — state and transactions
  18. 18 — Proof of work — mining transaction blocks
  19. 19 — Transaction proofs — wallet ownership and replay prevention
  20. 20 — Full-chain validation — recompute from genesis
  21. 21 — HTTP — asking a web server
  22. 22 — Terminal menu — a small TUI
  23. 23 — Modules: split your program into files
  24. 24 — Python packages: the standard library and installed libraries
  25. 25 — Native: compile to machine code
  26. 26 — Adventure — a small text game
  27. 27 — Calculator — a command-line project
  28. 28 — Your first compiler — a tiny language
  29. 29 — Bootstrap: NME compiling a tiny language
  30. 30 — Data: statistics on a list
  31. 31 — Records: a small address book
  32. 32 — Weather: reading JSON from the web
  33. 33 — Todo: a growing project
  34. 34 — Self-host: NME running NME
  35. 35 — Diary: notes saved by date
  36. 36 — Word count: how often each word appears
  37. 37 — Word guess: a hidden-word game
  38. 38 — Quiz — questions from a file
  39. 39 — Sorting — putting a list in order
  40. 40 — Report — writing a summary file
  41. 41 — Text stats: letters and words
  42. 42 — Compare: two groups of numbers
  43. 43 — Project: a habit tracker
  44. 44 — Playlist: a random music player
  45. 45 — CSV: rows of data
  46. 46 — Compiler tier: a small expression language
  47. 47 — Progress — a bar in the terminal
  48. 48 — Shop — an inventory store
  49. 49 — Compiler tier: reading tokens
  50. 50 — Strings: slicing and changing text
  51. 51 — Grid: a board of lists
  52. 52 — Game: tic-tac-toe
  53. 53 — Sets: unique values
  54. 54 — Stats: understanding data
  55. 55 — Network: a mini chat
  56. 56 — Log: an event record
  57. 57 — Group: data by category
  58. 58 — Compiler tier: a tiny bytecode runner
  59. 59 — Editor — a tiny text editor
  60. 60 — Search — finding items in JSON
  61. 61 — Project — a mini bank
  62. 62 — Bubble sort — your first algorithm
  63. 63 — ASCII art — drawing with characters
  64. 64 — Binary search — halving the guess
  65. 65 — Files: processing many files
  66. 66 — Top ten: ranking records
  67. 67 — Project — a grade book
  68. 68 — Errors: handling problems
  69. 69 — Patterns: finding matches with regex
  70. 70 — Game: a reaction time test
  71. 71 — Chart: a bar chart in the terminal
  72. 72 — Modules: a project across files
  73. 73 — Capstone: a language that compiles to Python
  74. 74 — Merge: joining two lists
  75. 75 — Game: a simple opponent
  76. 76 — Network: polling a server
  77. 77 — Network: downloading files
  78. 78 — Data: analyzing a month of temperatures
  79. 79 — Compiler tier: functions in the mini language
  80. 80 — Tools: reading command-line arguments
  81. 81 — Testing: checking the functions you wrote
  82. 82 — Compiler tier: expressions as trees
  83. 83 — Game: Mastermind, guessing a secret code
  84. 84 — Web: extracting links from a page
  85. 85 — Compiler tier: from tree to bytecode
  86. 86 — Story: letters arriving one at a time
  87. 87 — Screen: clearing, ruling and boxing
  88. 88 — Time: a stopwatch and cooldowns

Topic lookup

  • first program and output: 01
  • input: 02
  • storing values: 03
  • changing values: 04
  • loops: 05, 08
  • conditions: 06, 09
  • loops and conditions: 07
  • random: 10
  • using the tools: 11, 12
  • files: 13, 35, 40
  • json: 14
  • project: 15
  • files and lists: 16
  • cryptocurrency ledger and transactions: 17
  • proof of work and block linkage: 18
  • transaction proofs and replay prevention: 19
  • chain validation and consensus boundaries: 20
  • networks and HTTP: 21
  • terminal menus: 22
  • modules: 23
  • Python packages: 24
  • native compilation: 25
  • a small project: 26
  • a project: 27, 33, 43, 48, 61
  • compiler: 28, 46, 49, 58
  • bootstrap: 29
  • data: 30, 36, 39, 45, 57
  • records: 31
  • web data: 32
  • self-hosting: 34
  • game: 37, 52
  • game & data: 38
  • text & data: 41
  • data & comparison: 42
  • game & random: 44
  • terminal output: 47
  • strings: 50
  • nested data: 51
  • sets & data: 53
  • statistics: 54
  • network: 55
  • files & logging: 56
  • a terminal app: 59
  • search & data: 60
  • algorithm: 62, 64
  • output & loops: 63
  • files & folders: 65
  • data & ranking: 66
  • a capstone project: 67
  • exceptions: 68
  • regular expressions: 69
  • game & timing: 70
  • visualization: 71
  • modules & structure: 72
  • compiler capstone: 73
  • data & merging: 74
  • game & strategy: 75
  • network & timing: 76
  • network & files: 77
  • data analysis: 78
  • compiler & functions: 79
  • command-line tools: 80
  • testing: 81
  • compiler & AST: 82
  • game & logic: 83
  • web & text: 84
  • compiler & bytecode: 85
  • stories and slow output: 86
  • arranging the screen: 87
  • stopwatch and cooldowns: 88

All guides

#DifficultyTopicTitleResult
01★☆☆☆☆first program and outputHello: say your first wordsa program that prints a message with nme run
02★☆☆☆☆inputAsk: have a conversationa program that asks a name and greets it in a sentence
03★☆☆☆☆storing values and listsSet: store a valuea program that keeps text, numbers and lists in named values
04★☆☆☆☆changing valuesUpdate: change a valuea program that adds to and subtracts from a score
05★★☆☆☆repetition, walking a list, waitingRepeat: do something many timesa program that repeats lines, walks a list, and pauses
06★★☆☆☆conditionsIf: make a choicea program that runs different lines depending on a condition
07★★☆☆☆loops and conditionsWhile: keep goinga block that loops while a condition is true
08★★☆☆☆loopsBreak: stop a loopa program that leaves a loop early
09★★☆☆☆conditionsAnd / Or: combine conditionsa program that judges combined conditions
10★★☆☆☆randomRandom: dice and picksa program that rolls a die and picks a color
11★★☆☆☆using the toolsCheck & Build: see the Pythonthe habit of verifying programs and reading the generated Python
12★★☆☆☆using the toolsConvert: turn Python into NMEa small Python file converted into NME
13★★★☆☆filesFiles: save and read texta program that saves text to a file and reads it back
14★★★☆☆jsonJSON: save and load dataa program that saves a name and a score and loads them back
15★★★☆☆projectHigh score: a tiny projecta dice game that remembers its best score
16★★★☆☆files and listsName list: read lines from a filea program that reads a list of names from a file and picks from it
17★★★☆☆cryptocurrency ledger and transactionsCryptocurrency ledger — state and transactionsa small cryptocurrency ledger with balances, fees, supply, and transaction nonces
18★★★☆☆proof of work and block linkageProof of work — mining transaction blockslink transactions to the previous block and perform SHA-256 proof of work
19★★★☆☆transaction proofs and replay preventionTransaction proofs — wallet ownership and replay preventionvalidate transaction authorization with a public value and reject replay
20★★★☆☆chain validation and consensus boundariesFull-chain validation — recompute from genesisa single-node validator that replays every transaction and block from genesis
21★★★☆☆networks and HTTPHTTP — asking a web serverfetching a page from a local server
22★★★☆☆terminal menusTerminal menu — a small TUIa loop-driven terminal menu
23★★★★☆modulesModules: split your program into filessplitting a program across .nme files
24★★★★☆Python packagesPython packages: the standard library and installed librariesusing the standard library and installed libraries
25★★★★☆native compilationNative: compile to machine coderunning a program as machine code without CPython
26★★★★☆a small projectAdventure — a small text gamea room-by-room text adventure with choices
27★★★★☆a projectCalculator — a command-line projecta repeat-until-quit calculator with functions and a module file
28★★★★☆compilerYour first compiler — a tiny languagea tiny language that reads lines like add 2 3 and prints the answer
29★★★★☆bootstrapBootstrap: NME compiling a tiny languagea tiny compiler written in NME
30★★★★☆dataData: statistics on a listloading numbers from a JSON file and computing mean/median/max with the statistics standard library
31★★★★☆recordsRecords: a small address booka JSON-file address book that adds, lists, and searches contacts
32★★★★☆web dataWeather: reading JSON from the webfetching a local HTTP server's JSON and printing a mini weather report
33★★★★☆a projectTodo: a growing projecta JSON-persisted todo list with add, done, list, and a module file for the storage logic
34★★★★☆self-hostingSelf-host: NME running NMEan NME program that compiles a tiny NME-like subset (say/set/while) to Python
35★★★★☆filesDiary: notes saved by datea diary that saves each day's note to a dated file and can read it back
36★★★★☆dataWord count: how often each word appearsreading a text file and counting how often each word appears, using a dict and collections.Counter
37★★★★☆gameWord guess: a hidden-word gamea hangman-style game where you guess letters of a hidden word with limited tries
38★★★★☆game & dataQuiz — questions from a filea multiple-choice quiz that loads questions from a JSON file, scores answers, and reports the result
39★★★★☆dataSorting — putting a list in orderloading numbers from a JSON file and showing sorted ascending and descending orders with the Python sort method
40★★★★☆filesReport — writing a summary filereading a few JSON data files and writing one text report with file_write
41★★★★☆text & dataText stats: letters and wordsreading a text file and reporting character count, word count, longest word, and most common word (with collections.Counter)
42★★★★☆data & comparisonCompare: two groups of numbersloading two JSON number lists and comparing their means and maxima
43★★★★☆a projectProject: a habit trackera JSON-persisted habit tracker with add, check, streak, list, quit, and a module file for the storage logic
44★★★★☆game & randomPlaylist: a random music playera playlist loaded from JSON with shuffle, next, and a loop of songs
45★★★★☆dataCSV: rows of datareading a comma-separated text file with split(","), computing a column's average, and writing a summary CSV
46★★★★☆compilerCompiler tier: a small expression languagea tiny calculator that evaluates 2 + 3 * 4 respecting precedence, as a step toward a real expression compiler
47★★★★☆terminal outputProgress — a bar in the terminala terminal progress bar that fills a row as a loop runs
48★★★★☆a projectShop — an inventory storea JSON-persisted store with buy/sell/stock/list and a money balance
49★★★★☆compilerCompiler tier: reading tokenssplitting a command line into tokens and dispatching them, a step toward a real tokenizer and parser
50★★★★☆stringsStrings: slicing and changing textslicing text[start:end], .upper()/.lower(), .replace(), and .strip() on a sentence
51★★★★☆nested dataGrid: a board of listsa tic-tac-toe style 3x3 board stored as a list of lists, reading and writing cells with board[row][col]
52★★★★☆gameGame: tic-tac-toea playable two-player tic-tac-toe with a win check
53★★★★★sets & dataSets: unique valuesusing a Python set to find unique words in a text file, then unique letters in a sentence
54★★★★★statisticsStats: understanding dataloading a JSON list and reporting count, mean, median, mode, min, max, and range
55★★★★★networkNetwork: a mini chatfetching messages from a local HTTP server and showing them like a mini chat
56★★★★★files & loggingLog: an event recordappending a dated line to a log file each time the program runs, using datetime and file_write
57★★★★★dataGroup: data by categorygrouping a list of dicts by a category key into a dict of lists, then reporting counts per category
58★★★★★compilerCompiler tier: a tiny bytecode runnercompiling simple instructions into a list of steps and running them one by one like a tiny virtual machine
59★★★★★a terminal appEditor — a tiny text editora line-based editor with a buffer and add, list, remove, save, and quit commands
60★★★★★search & dataSearch — finding items in JSONloading a JSON catalog from a local server or file and searching it by keyword, case-insensitively
61★★★★★a projectProject — a mini banka JSON-persisted bank account with deposit, withdraw, balance, history, and a storage module
62★★★★★algorithmBubble sort — your first algorithmimplementing bubble sort by hand with nested loops and a swap, then comparing the result with Python's built-in sort
63★★★★★output & loopsASCII art — drawing with charactersbuilding a right triangle, an upside-down triangle, and a diamond with nested loops and string multiplication
64★★★★★algorithmBinary search — halving the guessfinding a number in a sorted list by halving the search range each step, showing the step count and the found index
65★★★★★files & foldersFiles: processing many fileslisting the files in a folder with os.listdir, reading each with file_read, and reporting total words and letters across all of them
66★★★★★data & rankingTop ten: ranking recordsloading JSON records, sorting by a numeric score with sorted(..., key=...), and showing the top ten
67★★★★★a capstone projectProject — a grade booka JSON-persisted grade book with add-student, add-grade, report-averages, and a storage module
68★★★★★exceptionsErrors: handling problemsa program that reads a missing file and converts bad input without crashing
69★★★★★regular expressionsPatterns: finding matches with regexa program that finds phone numbers and email addresses in a text file
70★★★★★game & timingGame: a reaction time testa game that measures reaction time with time.time() and reports the best of several rounds
71★★★★★visualizationChart: a bar chart in the terminaldrawing a horizontal bar chart with # blocks from a JSON list, scaled to the largest value
72★★★★★modules & structureModules: a project across filesa small weather-report project split into three .nme modules (fetch, analyze, report) with clear interfaces, imported by a main program
73★★★★★compiler capstoneCapstone: a language that compiles to Pythonan NME program that reads a small custom language (say/set/add/while/end), compiles it to Python source, writes it to a file, and runs it
74★★★★★data & mergingMerge: joining two listsloading two JSON lists and joining records by name key into one report
75★★★★★game & strategyGame: a simple opponenta take-away game where the computer follows a winning strategy
76★★★★★network & timingNetwork: polling a serverrepeatedly fetching a status.json from a local server every few seconds and reporting changes
77★★★★★network & filesNetwork: downloading filesdownloading a file from a local HTTP server and saving it while showing progress
78★★★★★data analysisData: analyzing a month of temperaturesloading a month of temperatures, computing statistics and a histogram, and saving a report file
79★★★★★compiler & functionsCompiler tier: functions in the mini languagea compiler that translates a mini language with def, return, and calls into Python and runs it
80★★★★★command-line toolsTools: reading command-line argumentsa todo tool that takes commands like nme r todo add "buy milk" on the command line
81★★★★★testingTesting: checking the functions you wrotea tiny test runner that calls your own functions, compares each result with the expected value, and reports pass or fail
82★★★★★compiler & ASTCompiler tier: expressions as treesa calculator that parses an expression into a tree and evaluates the tree recursively, respecting precedence
83★★★★★game & logicGame: Mastermind, guessing a secret codea Mastermind-style game that hides a 4-color code and gives black/white feedback for each guess
84★★★★★web & textWeb: extracting links from a pagefetching an HTML page from a local server and listing every link on it as a full URL
85★★★★★compiler & bytecodeCompiler tier: from tree to bytecodea compiler that flattens an expression tree into instruction lines and runs them on a stack machine
86★★☆☆☆stories and slow outputStory: letters arriving one at a timea program whose text appears one letter at a time, the way a novel unfolds
87★★☆☆☆arranging the screenScreen: clearing, ruling and boxinga program that clears the screen, centres a title and draws a box
88★★☆☆☆stopwatch and cooldownsTime: a stopwatch and cooldownsa program that times itself and stops an action from repeating too soon

Where to continue

  • Getting started: the five-minute path from hello to a number game
  • Tutorial: seven projects from Hello World to a compiler
  • Language reference: exact rules for all three levels
  • Syntax list: every accepted spelling, in one table
  • Prompts to hand to an AI: paste one into a chat and the AI can write NME
  • If installing is hard, write and run programs at needmoreeasy.com — it works on a phone.

All 88 guides

88 guides