Minimalism

Got attracted to minimal tools, in a movement of exploration. Started with Visual Studio Code and Windows 10, and gradually made it to using Arch Linux on a 30GB partition, with NeoVim and a suboptimal internet speed of about 4Mbps, for University projects since the third year. It went better at times and worse other times but there was acceptance.

Since autumn 2023, using tools in the style of Unix is comfortable and relaxing. Some of these tools are commonly found in servers even today, such as Vi, tmux, emacs, zsh bash and dash, which is a POSIX compliant shell.

High school

Graduated high school with a 17325/20000 score on 2019. The final exams included algebra, physics, the hardest chemistry exam in a long time, and essay reading and writing. Went to France with the program E-Twinning.

Improvised a proof for the volume of a cone, math for Wolfenstein 3D - style graphics without being taught vectors yet, and watched plenty from the YouTube channels 3blue1brown, Mathologer, Numberphile, Computerphile and Matt Parker.

In the University got interest in ThePrimeagen, Healthy Gamer GG and Ramsey Dewey.

Went to the National and Kapodistrian University of Athens (UoA), to the Department of Informatics (DI). Participated with effort and enthousiasm in thethe open source compiler project of ACM's student chapter, though the knowledge gap didn't allow to contribute much. As of now, Autumn 2023, hasn't worked. Had a tiny internship with Helvia that introduced web development basics.

Languages

There was a span of about 3 weeks in Autumn 2023 with wake ups at 4 or 5 in the morning and warm up exercises. It didn't last very long, as with many experimentations, but it was a feat to be proud of. In those warm ups and in some afternoon exercises, used mostly C, but sometimes also Python, Haskell and Matlab or GNU Octave to be exact. The algorithms were about parallelism, data structures and data manipulation, using TDD, TCR or neither, often in Vi (not referring to Vim).

Outside deliberate pracrice and unfortunately as a painkiller for loneliness, I've got some touch with Rust, Graphviz Dot, AWK, GNU Make, BF, J slightly, lisp and Typescript. Isn't opinionated about Typescript but indeed something is off.

Both from personal motivation and for the University, familiarized with C++, Python, PHP, LaTeX, HTML CSS and Javascript, Java, Bourne and POSIX shell scripting which is similar to bash. The aforementioned warm-ups were also done in languages for the University.

Architecture

Architecture may not be the best term since there is no experience with large systems. There have been however experiences of creations that were used for a long time, with changing requirements. The directory structure that holds projects and images was reorganized five times, similar to the image tagging system and the key bindings framework and command palette. At one point, images were placed in a binary tree of directories, where the user would traverse the directories asking questions in the style of is it or is it not, in order to find or insert a new image. There was also a point where projects were categorized using symlinks, and the key bindings system used to also play the role of a code snippet system, which also allowed the user to manipulate a code snippet, and perhaps execute it if it's a shell script. Before that, the image tagging was done by prepending letters to file names which acted like flags, also the directory structure had chains of shell scripts that lead from an outside directory deeper and deeper into the tree. Generally, flatter hierarchies proved to be the most effective approach.

These relatively simple experiences proved prototyping to be valuable, and they highlighted some positive and negative sides of trees, hierarchies and multi purpose tools. There were also many experimentations with abstract code and code with tiny functions, and because some programs were very slow, there were one or two painful experiments wich caching. Since these programs were used constantly, over time they revealed the messages behind the Manifesto for Agile Software Development.

Friends

Lived lonely and proud until the age of 21, but eventually humbled and started exercising the ability to attend to conversations and gradually made some basic friendships.

Collaborated with various people. On one project we willingly worked next to each other 4 hours a day 4 days a week for 2 months, rounding the numbers below the theoretical maximum. That's 6 per 4 for 3. That was the absolute best experience. The worst project experiences came from resistance to collaborate.

The truth is that with most of the teams I've collaborated with in the University, we don't talk anymore. The adrenaline fuelled, their followers, those who hibernate to survive those who only order and critisize, none of them appreciate calm collaboration. There were a few nice collaborations however. I'm having to understand that if someone uses stress for motivation I can't calm them down, because they'll lose their motivation and they'll perceive that as giving a problem. I can only demonstrate my way of working and let them think about it, which they'll hopefully perceive as a solution to a problem.

Illustration and the piano

Quit the piano after 7/9 steps to the diploma, when the world view changed and didn't line up with the typcial motivations for playing.

Then started illustration, guided by the Draw A Box community and lessons, as well as videos from Stanislav Prokopenko. Quit after being able to draw pleasant looking places figures and faces with some difficulty. That was partly because there was still a disconnection between people and my approach to drawing. Mostly however, drawing didn't tie with programming, and it drained a lot of time.

Arts cultivated respect towards old means of achieving goals, old experienced people's advice, warming up before working and judging work with a fresh pair of eyes.

YouTube

Recorded YouTube videos using ffmpeg piping /dev/video0 to mpv for showing the webcam's output on the screen. The purpose of the YouTube channel is to share stories and demonstrate realizations. The hardest lessons were related to graphs and how to interpret them. There is no direct answer to whether or not the intended audience benefitted, or to how the unintended audience felt.