Skip to content

What to skip

~6 min

In short

Beginners spend a lot of time on things that feel useful and are not, at least not yet. This page lists them, gives the reason each one can wait, and says what to do with the time instead. None of these things is bad. They are only early. You can come back to any of them once you have written programs that work.

Learning several languages at once

Learning a second and third language before the first is solid means each one stays shallow. You will know the syntax of three languages and the logic of none of them. Pick one language, get through the first half of the Python course, and only then look at another.

Watching long courses without writing code

Watching a course from start to end can feel like progress, but it is hard to tell how much you took in. Watch in short sessions and stop to write the code yourself. A rule that works: after every ten minutes of video, close the video and write one example from memory.

Memorising algorithm patterns before you understand the basics

Lists of problem patterns are useful later, when you know what a loop and a list are. Before that, they become a set of answers you cannot reproduce. Start with the data section of the Python course and do the exercises before you learn named patterns, such as the ones in the Codeforces patterns part.

Competitive programming as the main activity

Timed contest problems train speed and pattern recognition. Those skills are useful, but they are a different skill from building and maintaining a program. Leave contest practice until you can solve a basic exercise without help, and keep most of your time for projects.

Certificates as a goal

A certificate shows you finished something. It does not show that you can do the work the certificate covers. If you take a course that issues one, spend the time on the exercises, not on the certificate. Write down what you can now do that you could not do before.

Frameworks before the language

Learning a web framework before you know functions, classes, and files means the framework's rules become magic. Learn the language first. The backend part of the Python course comes after the core parts for this reason.

Your perfect setup

Customising an editor, a terminal theme, or a Linux distribution can take days, and none of it changes what your code does. Use one editor and one terminal with their defaults. Change a setting only when a specific problem makes you want to.

Predictions about jobs, salaries, and rankings

Articles about which skill will pay the most next year, or which college is best, are hard to check and change often. They are not useful for the next semester. The roadmap and the track page cover what you need to plan, and they do not promise results.

Machine learning before Python and probability

Machine learning models are built on programming and probability. Starting with a model library and copying code gives you outputs you cannot explain. Do the Python course and the discrete mathematics and probability material first. The reason is practical, not a judgement about the field.

Advanced infrastructure too early

Container orchestration, distributed databases, and large-scale streaming are real subjects. They assume you know how a single program, a single database, and a single network connection work. The systems engineering pillars are for later, once the basics feel routine.

Trusting the feeling of progress

Reading a lot, or using a tool that writes code for you, can feel like learning. The METR study found that experienced developers using AI tools took longer to finish tasks than those without, while estimating that they had gone faster (arXiv:2507.09089). Measure your progress by what you can do alone. The AI and you section explains how to check this.

What to do instead

  • Write a small program every day, even if it is five lines.
  • Finish one exercise before you start another.
  • Once a week, do the check in using AI to learn without any tool open.
  • Keep a short notes file. Date each entry.

Sources