Programming

Programming is the art of commanding. The problem: if you tell the computer to jump into the well, it jumps. That's why it's very important to give the right command in the right way. And this can be cruelly complicated sometimes. That's the beauty of it.
Web development
One of the most spectacular areas of programming, where everything is about appearance. Since I’ve been programming, web development has always
come to me and always brings something new technology with it. When you hear this word, you probably think of HTML and CSS, but in reality we use
much more techniques. JavaScript, to make the interface interactive (and now much more), PHP, to store all information in the right place in the
background and I could go on. That’s why developing websites is always an exciting challenge. The result is this website, which is a completely
unique piece.

Minecraft
Minecraft is one of the most famous games in the world, where every geek can find its own world.
One of its biggest advantages is that it can be played on servers, which can be easily customized with different plugins.
These are programs written in Java (or Kotlin) that can modify the gameplay or even the server itself.
For example: you can connect the chat to Discord servers, or even control the game from there; log in and out admins;
teleport players, or even introduce new security systems.
Recently, I’m trying to build a security system for the Minecraft server of my Scout team, as many have tried to abuse the
open nature of the server lately.

Embedded programming
Embedded programming is one of the most interesting areas of programming. Here we write programs for devices that are not computers, but have a small
processor. These are smart home devices, robots, space probes, or even our mice. In everyday life, these are controlled by microcontrollers, such as
Arduino or Raspberry Pi Pico. These small devices can perform a wide variety of tasks, and their programming can be very diverse. Programs are usually
written in C, C++ or Rust, as these languages are very close to machine code, so they can efficiently control processors. Writing such programs is often
quite tricky, as most higher-level operations (displays, sounds, lights) must be implemented by the programmer with limited resources. For me, this area
is always a great challenge, but I am always happy to start every new project, as here you really learn something new every day. My projects include
the module for the BME Hunity satellite (the Celeritas module), which will measure cosmic radiation, a digitalized terrain table, or even a custom photo lamp.

Desktop applications
Desktop applications are in many ways a mix of web development and embedded programming. These applications run normal on computers,
but can use much more resources than websites or microcontrollers, but appearance is also important. These include media players,
text editors, and games. Practically any language can be used to write them, depending on what kind of application you want to write.
I’m currently experimenting with the Rust language, as it is a very secure and fast language that is also very well suited for desktop applications.
A challenge of desktop applications, however, is that most applications need to be written in different ways on different platforms,
as Windows, macOS, and Linux systems can be very different.
I’m currently working on a video player written in Rust that will be used in various lectures.

Mobile apps
Programming mobile apps is perhaps one of the most rewarding tasks. They can be easily developed, quickly made beautiful, and can be delivered to
many people. They have all the advantages and disadvantages of desktop applications (fortunately there are only two platforms here), but they are
much more intuitive and easier to navigate. Apps are written in Koltin or Swift, but it is also possible to write C++ code if performance really matters
(or the first two languages do not support what we want to do). Unfortunately, I don’t have much opportunity to work on such projects lately, but I have
several ideas that I would like to implement.
