Perseus went coding with Ariadne
Published: 2022-11-24 07:27:31

Medusa is one of those ladies you do not want to mess with.

To begin with, she is pissed off, and she has reasons to be. She has been cast to the underworld by her devoted protector, for being pregnant with the offspring of her protector's worst enemy. 

Also, being pregnant kind of broke her vow of chastity, and there is always a price to pay for breaking vows, either intentionally or accidentally (_"it wasn't my fault, I had a bit too much to drink"_ doesn't cut it when it comes to vows).

If things were not bad enough, the one thing she had going for her, her beauty, is taken away from her. Her entire physical appearence starts transforming, following her internal spiritual state (ugly).

So, when your world gets turned upside down, you carry the offspring of your enemies, and are sent to the underworld by your protectors because you broke your own vows, and you turn ugly, you have reasons to be really, really pissed, because life ain't fun.

Medusa had the power of freezing anyone who would set eyes on her. That is a pain in the butt because it very much guarantees nobody is going to accept your social invitations, and the only ones coming to see you possibly want the glory of killing you and returning to the upper-world with your head claiming victory.

So many wannabe heroes showed up, attempting to kill Medusa, and one by one she froze them all with just one look.

Think of the poor hero wannabe: you want to cut her head but suddenly you see seven heads. Have you heard of stack overflow? That is it. No recursive function is going to save you a la `take_head_off(take_head_off)` - It is an impossible problem for the hero wannabe with no base case. You are in a loop.

Believe it or not, I was thinking along these lines yesterday evening, when I realized I have a bit of a Medusa problem with coding.

I go take my prize in the Elixir industry, and seven more doors open: Machine Learning, Phoenix, Liveview, Kubernetes, Linux, Erlang, CSS.

Funny enough I open several doors, because I am a hero wannabe: I go into more Linux, Machine Learning, CSS and Phoenix. If that was not enough, I decide to investigate music coding with Sonic Pi, but then another seven doors open inside of those universes.

The result? Medusa has me: I am frozen. I am not advancing. I am not claiming my victory. She has my head.

So now that I know I have a Medusa problem, I requested a coaching session from the man that defeated her, and see if I can, with enough mentorship, get a win on this one.

## Enter Perseus. Son of the Gods.

Perseus, quite the guy. To begin with, he ain't no hero wannabe. He is the son of Zeus, which gives one certain klout, but he was humble enough to know that he could not defeat Medusa with his own powers.

### Lesson one: accept that you are losing to begin with

This has been my first mistake. I thought I had it within me to learn it all. I thought, in my vanity, that if I could organize myself well enough, and if I could watch the right tutorials and take the right courses, I could take Medusa's head with the unlimited powers of my own brain: BigSpaces against all the tech knowledge in the world. 

Yeah, right.

Perseus first lesson is "no, dude, don't play that game. You need to enter Medusas' house knowing you cannot win. If you go for the win, you will freeze to stone". And I did.

Ok, lesson one is counter-intuitive. Know your limitations. Do not go for the obvious win.

### Lesson two: get help and tools. Arm yourself.

The second thing about Perseus is that he requested help from the gods, and he got it.

> From the Hesperides he received a knapsack (kibisis) to safely contain Medusa's head. Zeus gave him an adamantine sword (a Harpe) and Hades's helm of darkness to hide. Hermes lent Perseus winged sandals to fly, and Athena gave him a polished shield. Perseus then proceeded to the Gorgons' cave.

I have no idea about my kibisis, my Harpe, my helm of darkness, my winged sandals and my polished shield, but if the son of a god needs all of that, I may need that and a bit more. 
I need to ask for help and really see what tools I have, and which others can be given to me.

### Lesson three: know why you want her head

I certainly believe that Perseus got the help of the gods because he was on a noble mission. He wasn't all about glory for himself and the six figure income, but he wanted to defeat the evil in his own home. He eventually did, once he returned with Medusa's head as a super-weapon.

Knowing our purpose and our motivation is crucial to defeating Medusa. Of course we are going to turn to stone by the myriad of shiney new heads that coding and tech have to offer. Didn't you know how cool Phoenix 1.7's new features are? And how amazing the performance of Elixir NX is turning to be for AI? And the amazing music that can be coded in Sonic Pi? Man, wait until you see the new 30 videos in the Elixir YouTube Playlist and THEN you'll be on top of things.

I am still working on this one. I bet many of us are. We need an aim, and a noble one, a pressing one, a non-negotiable one, to focus our mission into a specific point. I believe that, in finding that spot we are aiming at with all of our being, winged sandals and helms of darkness will be granted to us. It is a theory, but Perseus dixit.

Not only Perseus dixit: we are surrounded by countless examples of how we seem to grow superpowers once we are committed and focused, fueled by a purpose that goes beyond ourselves. 

So this is my takeaway: if and when we feel distracted, or frozen to stone, dig deeper into purpose. Why am I watching this YouTube tutorial, really? Which purpose is it serving, really? Where am I advancing towards with the actions I am taking today? What am I aiming at and why? 

I believe there is a correlation between the quality of those answers and our tangible results in the real world.


### Lesson four: be sneaky

My good man Perseus didn't show up at Medusa during office hours. No, he caught her sleeping, and he didn't look at her face, but used her reflection on his shield to locate her and take her head. 

That is: no direct confrontation. Interesting. Many martial arts use the same principle. A lot of what heroes do seem to be counter-intuitive.

I asked Perseus to provide me with a cheat sheet and "five easy steps to use reflections in shields to defeat enemies". I want method. I want systems. I want the guaranteed win.

Perseus looked at me in the eye, took a puff off his cigar, and broke it to me in no uncertain terms: _"you have to become a sneaky motherf***r. There ain't no methods for it. Once you have a method, you are predictible to your enemy. You need to be a surprise to your enemy."_

As coders and engineers, we may like systems, methods, protocols, predictible outcomes. But when it comes to the inner games of distraction, focus, purpose, perseverance, and progress, we can automate a few things but others play a different game: they are always there to catch us on our weak spots, in the unexpected times, in the unexpected ways. Medusa could wake up at any time.

As one of my spiritual teachers says: "Eternal vigilance is the price of freedom".

I like Perseus's preparation: he never looks at her directly, but knows where she is through her reflection. He is shielded. He approaches her while she sleeps. He has a "dark mode" helm and winged sandals so he can become invisible and get the hell out of there should things turn bad. 

He approaches prepared for the worst case scenario and then he sneaks, sneaks, sneaks... He is vigilant, never looks at her, waits for the right moment.


### Food for thought

I am just a guy dealing with a whole deal of new knowledge being thrown at me. The tech industry is not going to stop throwing new knowledge at us, but it is potentially turning us to stone every day.

Each time we show up at the screen to work on our thing, there are a thousand Medusa's heads waiting, and they will have our day turn to stone. This blogpost is possibly part of your medusa, and is certainly part of mine. I should be studying APIs, I'll have you know.

We need to be vigilant. Sneaky. We are not winning Medusa's game, but we can win our game. For that, we need to know our purpose, be humble, be prepared, never think that "we got this". No, we don't. We are very likely to lose. The best we can do is to know our enemy, be humble, sneaky, prepare, and do noble battle.

Never, never look at her directly. How does this translates specifically to my day is part of the adventure. I shall use my winged sandals to run the other way if I sense her waking up.


### Ignoring most things

In conversation with my mentor, we reflected on how one of the skills we can develop is knowing what to ignore. When I studied software development 23 years ago it was all about knowing more and more. 

It seems that one of the keys to success today is knowing what to leave aside, mastering the part of our minds that are curious and want to spend a few hours, weeks, or months on things that we know, deep in our guts, to be distractions: our progress, frozen to stone.

We need to find which Ariadne's thread to follow. Because if Perseus can teach us how to defeat the Medusa of distractions, Ariadne can teach us about navigating the tech maze.

Maybe I will write about Ariadne some other day...

For now, a prayer, or a desire: Let us not get lost, let's have our threads to guide us through the maze, our purpose which provides focus and entice divine help, tools which allow us to approach victory well prepared. Let us defeat our enemies (mine is distraction and dispersion, what's yours?).

And then, let us bring our enemies heads back home so we can do more good. 

The fun bit about the whole Perseus and Medusa drama, is that after the win, Perseus retains the superpower to turn others to stone, and he uses it for noble purposes, out of goodness, not spite.

That'd be good.

And now, API encoding and decoding.

```
git add .
git commit -m "Looking for a junior dev who likes myths? I'm your guy"
```

P.s.: Happy Thanksgiving