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 How to learn SQL from scratch

    SQL is the query language of relational databases. Developers, analysts, testers and managers who want to pull numbers themselves all need it. Basic queries take a few weeks to learn; working confidently with complex reports takes two or three months of practice. Below is the order of topics and ways to train on a real database.

  • Programming and IT How to learn Python from scratch

    Python is a good first programming language: code reads almost like text, and the standard library covers most everyday tasks. This plan takes you from installing the interpreter to your own scripts covered by tests in about four months, at roughly an hour a day.

  • Programming and IT How to learn machine learning from scratch

    Machine learning means building models that find patterns in data and make predictions from them. Starting with neural networks is tempting, but it is safer to go from the bottom up — from Python and math to classic algorithms, honest evaluation and only then deep learning. Without a technical background, expect six months to a year of regular study.

  • Programming and IT How to learn Linux from scratch

    Linux runs most servers, containers and countless devices, so developers, testers, analysts and system administrators all need the command line. The easiest way to learn it is not by reading lists of commands but by working in the terminal every day and solving small practical tasks. Below is a sequence of topics for two to three months.

  • Programming and IT How to learn JavaScript from scratch

    JavaScript runs in every browser and, through Node.js, on the server too. It is easy to start — you can run code right in the browser console — but it has plenty of surprising corners, from type coercion to asynchronous code. The plan below takes three to four months and assumes you already know basic HTML and CSS or are learning them alongside.

  • Programming and IT How to learn Java from scratch

    Java is a strictly typed language behind banking systems, the servers of large services and Android apps. The strictness slows you down at first, but the compiler catches many mistakes before the program ever runs. This plan takes about six months at an hour a day and leads from your first program to a small backend application.

  • Programming and IT How to learn HTML and CSS from scratch

    HTML describes what a page is made of, CSS describes how it looks. They are not programming languages in the strict sense, but no website does without them, and they are a convenient first step into frontend work. You can learn the basics of layout in two or three months if you build real pages from the first week instead of only reading the reference.

  • Programming and IT C++ from scratch

    C++ is a compiled language used wherever speed and direct access to memory matter — game engines, browsers, databases, firmware. It is harder to get into than Python, but you can build your first working program on the very first evening.

  • Programming and IT How to undo a commit

    The question "how do I undo a commit" actually hides four different ones: fix the last commit, take it back and redo it, erase several, or cancel an old commit in the middle of history. The answer depends above all on one thing — whether anyone besides you has seen that commit.

  • Programming and IT How to create a repository from scratch

    A repository is your project folder plus a hidden `.git` folder that stores the whole history. One command creates it, but between that command and your first meaningful commit there are a few steps that are hard to redo later — the branch name, the list of ignored files and the link to a server.

  • Programming and IT How to become a software tester from scratch

    Software testing is a common way into IT without deep programming at the start. But a tester's job is not "clicking buttons": you need to understand how the application works, design checks using test design techniques and describe defects clearly. Below is the order to study things in and practice assignments you can show an employer.

  • Programming and IT How to become a data analyst from scratch

    A data analyst answers business questions with numbers — why sales dropped, which version of a page works better, where customers drop off. The tools of the job are simple and well documented in the open: spreadsheets, SQL, Python and a bit of statistics. Below is the order to learn them in and how to build a portfolio from your own studies.

  • Programming and IT The .gitignore file

    Every project has files that do not belong in the repository — caches, build folders, editor settings, local passwords. You keep the list of such files in .gitignore, and Git stops offering to add them.

  • Programming and IT git stash

    The stash is a temporary shelf for unfinished edits. You put everything you have done there, get a clean working copy, deal with the urgent thing and then bring the work back. The shelf is shared by the whole repository and works like a stack: the last thing you put on it sits on top.

  • Programming and IT git reset

    git reset moves the current branch pointer to another commit. How much your work suffers depends on one flag — `--soft` touches nothing but history, `--mixed` clears the index, `--hard` rewrites the files on disk. The third mode is the one Git command that destroys unsaved work for good.

  • Programming and IT git rebase

    git rebase moves the commits of your branch as if you had started work not from an old state but from the current one. History becomes linear, but the commits are created anew — with new hashes. That leads to the main rule: you can only rebase what nobody else is using.

  • Programming and IT git push

    Until you run git push, your commits exist only on your own disk. The command sends them to a remote repository and moves the branch pointer there — which is also why it is the command that most often refuses, when someone else got their work in first.

  • Programming and IT git pull

    git pull brings other people's commits from a remote repository and immediately merges them into your current branch. It is two operations in a row, and almost every problem with pull comes from the second one — how it joins the two histories.

  • Programming and IT How to resolve a merge conflict

    A conflict is not a breakage, it is a question. Git merges changes automatically as long as they are in different parts of a file; when two branches edit the same lines, only a person can choose the right version. Your job is to read both versions, build working code out of them and tell Git the question is settled.

  • Programming and IT git merge

    Merging brings work from one branch into another. git merge takes the branch you name and joins its history with the current one — sometimes by just moving a pointer, sometimes by creating a separate commit, and sometimes by stopping and asking for help.