cheat sheets / programming languages
Python, JavaScript & Go Cheat Sheets
Five references for the languages you switch between, plus the thing syntax sheets never mention: the differences that actually cause bugs when you move from one language to another.
Every developer juggles several languages, and nobody remembers the exact slice syntax in Python and Go and JavaScript at the same time. That is what cheat sheets are for, and the ones below are the best free options: two collections that cover almost anything, and three deeper single-language references. Syntax, though, is the easy part of switching languages. The expensive part is the assumptions you carry across without noticing, which is what the later sections are about.
01 · COVER EVERYTHING
Meta-collections
One bookmark, almost every language. These two answer different questions: Devhints is for refreshing something you know, and Learn X in Y Minutes is for meeting a language you have never used.
02 · SINGLE LANGUAGE
Per-language quick refs
Deep, well-formatted references for the most-used languages.
- Python Cheat Sheet ↗Data types, comprehensions, slicing, and standard-library one-liners in a clean QuickRef layout.quickref.me
- JavaScript Cheat Sheet ↗Modern JS essentials — array methods, destructuring, promises, and ES features — at a glance.quickref.me
- Go Cheat Sheet ↗Goroutines, channels, structs, and error handling — the Go syntax you'll want beside you.quickref.me
03 · SWITCHING COSTS
What actually differs between languages
Syntax is the shallowest difference and the one a cheat sheet fixes in seconds. The differences that produce real bugs are semantic, and they are invisible precisely because they feel like universal truths rather than choices a language made.
How errors travel
Python and JavaScript raise exceptions that propagate up the call stack until something catches them, so unhandled failures are loud. Go returns errors as ordinary values and expects you to check them at each call, which makes failure paths explicit and means an ignored return value silently swallows a problem. Someone arriving in Go from an exception language tends to under-check; someone going the other way tends to over-catch.
What equality means
JavaScript has two equality operators with genuinely different behavior, and the loose one performs type coercion in ways that surprise almost everyone. Python distinguishes equality of value from identity of object, which matters for mutable types. Carrying either language's habits into the other produces comparisons that pass tests and fail in production.
Mutability and what gets copied
Whether assigning a value copies it or creates another reference to the same thing varies, and it is the source of the classic bug where modifying one list changes another. Python's mutable default arguments are a well-known instance: a default value is created once when the function is defined, not on each call, so a mutable default accumulates state across calls.
How concurrency is expressed
JavaScript runs a single-threaded event loop where asynchronous work interleaves but never runs in parallel within one thread. Go's goroutines and channels are built for genuine concurrency with communication between them. Python sits in a more nuanced position, with threading, multiprocessing, and asynchronous programming each suiting different workloads. Assuming one language's concurrency model applies to another is a reliable way to write code that is subtly wrong under load.
04 · LEARNING A NEW ONE
A sensible order for picking up a language
Read a Learn X in Y Minutes page first. Fifteen minutes gives you enough to read the language, which is usually the immediate need when you have inherited unfamiliar code, and it is a different skill from writing it well.
Then find the language's idioms rather than translating your previous language into it. Every language has a community consensus about how things are done, and code that ignores it works but reads as foreign to everyone else on the team. Most languages have a widely accepted style guide and an automatic formatter, and adopting both immediately removes a whole category of review comments.
Finally, learn the standard library before reaching for dependencies. Newcomers routinely install a package for something already built in, adding a dependency, a supply-chain risk, and a maintenance obligation for no benefit. Skimming the standard library's contents once pays back repeatedly.
05 · FAQ
Frequently asked questions
Are these programming language cheat sheets free?
Yes. All five are free with no account required, and Devhints and Learn X in Y Minutes are open-source community projects.
What is the fastest way to pick up a new programming language?
Read a Learn X in Y Minutes page for it, which presents the whole syntax as one commented file and takes about fifteen minutes. That gets you reading the language quickly, which is usually the immediate need, and writing it well comes afterwards from learning its idioms.
Which language should I learn first?
Python is the common recommendation because its syntax stays out of the way while you learn programming concepts. JavaScript is the practical answer if you want to build things for the browser, since it is the only language that runs there natively.
Why does my code behave differently after switching languages?
Usually because of a semantic difference rather than syntax. Error propagation, what equality means, whether assignment copies or references, and how concurrency works all vary between languages, and those assumptions travel with you invisibly because they feel like universal rules.
Should I learn multiple languages at once?
Generally no. Reaching working competence in one first gives you a reference point that makes every later language easier, since most concepts transfer and only the differences need learning. Studying two unfamiliar languages simultaneously tends to blur which rule belongs to which.