Ruslan Odintsov

Ruslan Odintsov

Mentor
Rising Codementor
US$8.00
For every 15 mins
free badge
First 15 mins free for your first session
ABOUT ME
Programming tutor
Programming tutor

I've been teaching programming since 2018 to people of different ages. I'm specialized mostly in teaching how to start programming from scratch: basics of programming languages + basics of computer science. But I always have in mind a long-term perspective for my students and try to develop useful skills just from the start of our work.

Tbilisi (+04:00)
Joined June 2022
EXPERTISE
16 years experience
I started working with JavaScript around 2006. At that time JS was used as a lightweight scripting language for the Web. There was no Rea...
I started working with JavaScript around 2006. At that time JS was used as a lightweight scripting language for the Web. There was no React/Vue/Svelte and so on, so programmers around the world used pure JavaScript aka vanilla JavaScript as it is called today. But over time the language was developing and so was the ecosystem around it. I like modern JavaScript because it is a relatively small language, despite years of evolution. So one can quickly learn it. Another, practical advantage is a very strong, optimizing virtual machines. You may hear a lot of criticism of the language but half of the problems are easily solved by a good discipline of a programmer, which is required in any case and in any language.
16 years experience
I recommend everyone to study the basics of compiler construction, interpretation, or language virtual machines to better understand why ...
I recommend everyone to study the basics of compiler construction, interpretation, or language virtual machines to better understand why our technologies are built the way they are, what are limitations of different approaches, and what are motivations of various design decisions in the programming languages we use every day. I'm myself an author of several experimental programming languages and have developed several processors and parsers for existing languages.
12 years experience
I first started to seriously use C when I became involved in embedded development. C is a compact and very powerful language. I recommend...
I first started to seriously use C when I became involved in embedded development. C is a compact and very powerful language. I recommend everyone to study it at least to better understand how computer systems work at lower levels. Also, C allows one to write highly optimized programs. So I personally used C for (sub)projects where speed was an important factor, for example in my data compression experiments, or in my university project about software ray-tracing. Also C I implemented several embedded projects in C and once even wrote a Windows driver in it.
5 years experience
2D and 3D computer graphics is the thing that fascinated me for my whole life. It's one of the reasons I became a programmer. I'm especi...
2D and 3D computer graphics is the thing that fascinated me for my whole life. It's one of the reasons I became a programmer. I'm especially interested in software rendering, although I've also implemented a 3d physics engine and some other engine-related code. In the field of software rendering, I always was a believer in the ray-tracing approach as a future-proof way to go. Today it started to be supported at the hardware level. But hardware makes you a little bit more constrained in your approaches. So, although I have some experience with OpenGL and Direct3D, my own fully software ray tracer was much more interesting for me to create from scratch. This reimplementation of a known-how-to-do thing is important in my opinion to gather the full understanding of what's going on.
22 years experience
Assembly is a language of a computer. So studying assembly gives one a deep understanding of computer microarchitecture. I have used Asse...
Assembly is a language of a computer. So studying assembly gives one a deep understanding of computer microarchitecture. I have used Assembly for different parts of different projects writing critical functions in it for speed. It is the way Assembly is used today too. We write the most critical code in it or we write in it the code if it can not be written in any other language - this happened in operating systems development or in embedded programming, for example. Another cool project I've once written is an on-the-fly translator of mathematical notation formula to a sequence of assembly instructions which the program then could execute instead of reinterpretation the formula every time. This gave 10x-100x speedup for the program. In essence, this was a small specialized JIT compiler for mathematical expressions. I couldn't have done it without my knowledge of assembly language.
Data compression
20 years experience
RLE, statistics, Huffman encoding, arithmetic/entropy encoding, dictionary/LZ compression, n-order models, PPM, DMC, PAQ, BPE, word vecto...
RLE, statistics, Huffman encoding, arithmetic/entropy encoding, dictionary/LZ compression, n-order models, PPM, DMC, PAQ, BPE, word vectors, lossless compression using neural networks, online learning, JPEG format, images optimization, source-to-source minification.
View more
View more
4 years experience
I used Python as a cross-platform language to build desktop applications, to write various scripts, and lately to do tutoring and experim...
I used Python as a cross-platform language to build desktop applications, to write various scripts, and lately to do tutoring and experiments with machine learning.

REVIEWS FROM CLIENTS

Ruslan's profile has been carefully vetted and approved as a Codementor. Connect with Ruslan now, and leave a review for them once you're done!
SOCIAL PRESENCE
GitHub
ta-macro
Simple macro recording and playback module for Textadept 7.9+
Lua
7
0
ungz
Readable implementation of gunzip
C
2
0
Stack Overflow
379 Reputation
0
4
10