An independent reference for people learning to program from scratch. Not affiliated with the former site on this domain, with companies or with schools; we do not sell courses or promise employment.

Comparisons

Comparisons

Beginners often spend weeks hunting for the "best" language and the "right" way to learn, when what matters more is simply getting started. Languages solve different problems, and ways of learning suit different people: one needs a strict plan, another a real task, a third someone nearby to give a hint. We do not publish rankings. Instead, we offer questions worth asking yourself and a comparison of learning methods by their strengths and weaknesses. For reference: Python was first released in 1991 and JavaScript appeared in 1995, and both have built large communities since then.

A second language comes noticeably easier than the first, so a wrong choice costs less than it seems.

— Editor's note

How this section works: we compare criteria and methods, not specific languages, schools or platforms. Assessments are given in general terms, with no prices, timeframes or promised results.

First language: how to choose

CriterionWhat to look atQuestion to ask
GoalWhat problems you want to solve: automating routine tasks, websites, data analysis, games, software for devicesWhat do I want to build with my own hands in the coming months?
CommunityWhether there are forums, groups and open projects where beginners get friendly answers, and how many questions have already been answeredWill I find an answer if I get stuck on a weekend evening?
DocumentationWhether there is official documentation with a tutorial section and clear examples, and whether it is available in a language you readCan I understand the official description of a simple function?
Where it runsWhere the program will run: in a browser, on a server, on a computer, on a phone, on a small boardWhere should my first project run?

Ways to learn

MethodProsCons
BookStructured progression, well-designed exercises, you can return to any chapterNo feedback; some examples may become outdated along with the language version
Online courseA ready-made plan, assignments with checks, sometimes contact with other learnersEasy to watch lessons without writing code; quality varies widely and the pace is set for you
Your own projectReal motivation and genuine problems, a result you can showEasy to get stuck without a hint or to take on a task beyond your current level
MentorQuick feedback, help working through errors and choosing the next stepYou need to find the right person and agree on times; you depend on someone else's schedule
  • Guides

    Step-by-step guides: setting up, a first script, a first repository, error messages, asking the community. The article catalogue is here too.

  • Questions

    Answers about this reference, learning from scratch and your first hands-on projects.

  • Glossary

    A plain-language glossary: coding terms, developer tools and working together on a project.

Sources

  • Python documentation

Dates and definitions are taken from official documentation and specifications as of the preparation date. Languages and tools keep evolving, so check the details in current primary sources.