Software Engineering
Data Structures
Algorithms
Design Patterns
Dev Principles
Ruby
Java
Golang
RabbitMQ
Kafka
Sidekiq
Docker
K8S
Microservices
RDBMS
DBMS (NoSQL)
CI/CD
About me
Core
  • Data Structures
  • Algorithms
  • Design Patterns
  • Dev Principles
Programming Languages
  • Ruby
  • Java
  • Golang
Tools
  • RabbitMQ
  • Kafka
  • Sidekiq
  • Docker
  • K8S
Extra
  • Microservices
  • RDBMS
  • DBMS (NoSQL)
  • CI/CD
  1. Back to Ruby
General Information
Setting Things Up
Package Managers
Installers
Version Managers
Gems Management
RubyGems
Bundler
Basics
Data Types
Integer
Float
String
Boolean
Symbol
Array
Hash
Nil
Type Casting
Constants
Variables
Global
Class
Instance
Local
Pseudo
Naming Conventions
Operators
Arithmetic
Comparison
Logical
Assignment
Ranges
Conditional Statements
Statements "if", "else", "elsif", "unless"
Statement "case"
Ternary Operator
Loops & Enumerations
While Loop
Until Loop
Do/While Loop
For Loop
Each Loop
Times Loop
Statements "break", "next", "redo"
Lazy Enumerators
Enumerable Module
Querying
Fetching
Searching & Filtering
Sorting
Iterating
Exceptions
Object-Oriented Programming
Classes & Objects
Modules & Mixins
Encapsulation
Inheritance
Polymorphism
Advanced
Struct
Block
Proc
Lambda
Closure
The Binding Class
Method Lookup
Monkey Patching
Singleton Class / Eigenclass
Garbage Сollection
Metaprogramming
Dynamics of Classes
Dynamics of Modules
Dynamics of Methods
Dynamics of Variables
Concurrency and Parallelism
Common Problems
Concurrency in modern Ruby
Processes
Threads
Thread Safety & GIL
Common Multithread Patterns
Fibers
Ractors
Ready-Made Libraries
Debugging
Testing
Linting & Formatting
Documenting