Articles
Programming and IT
Self-study plans for getting into programming and neighbouring IT fields — what to install, which tasks to start with, which projects to build and how to check your code without a mentor.
One framework for any direction#
Whatever language or career you choose, the path is made of the same parts. First, a working environment: a code editor, an interpreter or compiler, a terminal. Then the basics: variables, conditions, loops, functions, data structures. Next, small programs you write yourself rather than copy from a lesson. Only after that come frameworks, libraries and portfolio projects.
The second shared part is a developer's habits: keeping code in a Git repository, making small meaningful commits, writing tests for your functions, reading the official documentation before retellings in blogs. A tester, an analyst and a machine learning engineer need these habits just as much as a backend developer.
How to use the articles#
Each article is a separate plan: what to install, first programs, stages by weeks and months, project ideas and ways to check yourself. If you have not chosen a direction yet, start with the general article on programming from scratch — it explains how to choose a first language. SQL and Linux basics are useful in almost any IT career, so it is convenient to learn them alongside your main direction.
- Programming and IT
What is Docker
Docker packages a program together with everything it needs to run into a single image — and that image starts the same way on a developer's laptop and on a server. Below — what an image is, how it differs from a container, how to write your first Dockerfile and where the technology is overkill.
- Programming and IT
What is an API
An API is an agreed way for one program to ask another for something. No screens and no buttons — the request travels as text over the network, and the answer comes back in a machine-readable form. Once you understand the four parts of an HTTP request, you can read the documentation of any service.
- Programming and IT
SQL queries: examples explained
An SQL query describes which rows you need, not how to find them. Below, the same two tables go through all the main constructs of the language — from simple filtering to joins and subqueries — and every query comes with its result down to the last row.
- Programming and IT
Regular expressions
A regular expression is a compact description of a set of strings. The same syntax works in grep, in your code editor, in JavaScript, PHP, Java and Python, so you only need to learn it once. This page covers the pattern language itself, not the library of any particular language.
- Programming and IT
Python: strings
A string in Python is an immutable sequence of characters. Almost all of its quirks follow from that: methods do not change a string but return a new one, and fast text building goes through join, not through adding strings in a loop. Below is the working minimum with examples and output.
- Programming and IT
Python: slicing
A slice cuts a piece out of a sequence by the rule "from which index, up to which, with what step". The notation is compact, but it has two places where almost everyone slips: the right bound is not included, and with a negative step the bounds swap places. Let us go through both.
- Programming and IT
Python: regular expressions
A regular expression is a pattern that describes a set of strings. In Python you work with them through the `re` module from the standard library. You write the pattern as a string with an `r` prefix, search with `re.search` and pull the result out of a match object. Everything else is details of the pattern language.
- Programming and IT
Python: reading a file
Working with a file takes three steps: open it, read or write, close it. You are better off not closing it by hand — that is what the `with` statement is for. And the parameter people forget most is the encoding: without it, the same code reads a file differently on different machines.
- Programming and IT
Python: practice problems with solutions
A set of problems in order of difficulty — from reversing a string to a generator and a call-counting decorator. Solve each one yourself first and only then open the walkthrough: comparing your code with someone else's teaches more than reading a finished answer. All solutions are tested on Python 3.
- Programming and IT
Python: OOP
Object-oriented programming is a way of describing a problem through objects that have state and behaviour. In Python its usual four building blocks are simpler than in Java or C++: inheritance exists, private does not, and type compatibility is checked by behaviour, not by ancestry.
- Programming and IT
Python: lists
A list is a mutable, ordered collection of values of any type. It is also the main source of surprises for beginners: assignment does not copy a list, sort returns nothing, and removing items inside a loop skips half of them. Let us go through it in order.
- Programming and IT
Python: generators
A generator hands out values one at a time, and only when someone asks for them. It does not keep the whole sequence in memory, so it suits large files and endless streams. The price is that a generator is single-use: you cannot loop over it twice.
- Programming and IT
Python: functions
A function is a named piece of code that takes values and returns a result. In Python a definition takes one line, but arguments have subtleties: defaults are evaluated once, positional and keyword arguments mix by rules, and a function without return still returns something.
- Programming and IT
Python: exceptions
An exception is a signal that execution went differently from what the code expected. By default it stops the program and prints a traceback. A `try/except` block lets you catch only the error you anticipated and carry on, without hiding real breakages.
- Programming and IT
Python: dictionaries
A dictionary stores key–value pairs and finds a value by its key in constant time, however large it grows. It is the workhorse for counting, grouping and settings. Below: creating dictionaries, safe access, iteration and the places where a dictionary does not behave the way people expect.
- Programming and IT
Python: decorators
A decorator is a function that takes another function and returns a new one with extra behaviour. The `@` sign above a definition is just a shorthand for an assignment. Keep that in mind and the whole topic takes one evening.
- Programming and IT
Python: classes
A class describes what data an object is made of and what it can do. The `__init__` constructor fills in a new object, and `self` is a reference to the object itself. Below: a minimal working class, the difference between class and instance attributes, and ways to make the code shorter.
- Programming and IT
Markdown tables
A Markdown table is built from pipes and a separator line under the header. Below is the table syntax with column alignment, plus a short cheat sheet for the rest of the markup — headings, lists, links, images, code, quotes and task lists.
- Programming and IT
Linux commands
The Linux terminal works the same way in every distribution: command name, options, arguments. Below are six tables by area of work, each with one line per command and an example you can type to see the result straight away.
- Programming and IT
How to learn to code from scratch
You can teach yourself programming without a technical degree if you write code with your own hands from the first week instead of only watching lessons. Below is how to choose a first language, what to install, which order to take topics in and how to tell that you are really making progress.