Let Magic Be Magic

Makers Week 3

Naz M
codewhale
7 min readApr 2, 2017

--

by Michael George Haddad

Welcome to my blog about learning to code at Makers Academy. If you missed the last post, you can find it here. If you’re hungry for more, here’s the next.

Shout out to my fellow coder Man Vs Code (Nick Rupp)’s daily blog.

It seems I’m going to have to get used to not understanding everything.

On Monday I encountered Capybara, which is a massive hamster, and the selenium-webdriver, which is a part of the Millennium Falcon. We were then told that they were in fact two pieces of software that magically let us give commands to browsers (e.g. Chrome, Firefox, Internet Explorer) and test that websites look like they should. How this happens is beyond me, and digging for answers resulted in increasingly baffling questions.

The perfectionists in our cohort were told they would have to learn not to be. Guru Roi says, “sometimes you just gotta let magic be magic”.

On the topic of not questioning things:

The man who can’t visualise a horse galloping on a tomato is an idiot

— André Breton

Feelings

One unexpected highlight of the week was a group session with Joy officer Dana. All 24 of us sat in a circle and took turns talking about our struggles and successes at Makers. Things like imposter syndrome (feeling like a fraud) and a lack of sleep came up frequently, while the positives included the people on the course, happiness at escaping unhappy careers, and the satisfaction of using our brains every day. Everyone was honest and open, and it came as a soothing realisation that most of the struggles we’re going through are shared.

More magic: Last week I had crap sleep for around 5 nights, and it was really wearing me down. During the group session I was recommended the 4–7–8 breathing technique (in for 4 counts, hold for 7, out for 8). I tried it that night, fell asleep within minutes and woke up the next morning feeling amazing. I’ve done it every night since. They should teach this shit in schools. Genuinely life-changing.

Learning to develop for the internet

Supposedly the easiest week of Makers, there was still a lot of new content to take in. The theme was the web, and how to turn out Ruby code into real viewable websites, using HTML and CSS for styling.

We were introduced to a ton of new software, and learnt about servers and clients and the types of messages they send to each other. Later we found out how make web applications using Sinatra, and got started making our own pokemon-style battle game.

on day 2 we’d made a confused cat

For most of the week I worked on a game with healing hippies, in which we turned the concept on its head by giving each hippie 1HP and letting the player validate their bro until they got to 100HP. There were some other great concepts from my fellow coders, including ‘Z-list celebrity death match (hosted by Mandy Dingle)’, ‘Polar bear vs. Volkswagen’, and ‘Tinder tragedy’.

I didn’t get onto doing any styling, but gained a good grounding of how to make a web app in an Model-View-Controller (MVC) pattern. In an MVC, the model is made up of Ruby files with all the underlying logic, the view is the HTML/CSS files that get rendered, and the controller takes rooting requests and dispatches them to different parts of the programme.

Everyone seemed to have moved down a gear this week. I took long lunches most days, went for lots of walks. The weather was great. Me and my pairing partners took things slow and steady, due partly to preferred learning styles and partly to my insistence to learn Vim.

Vim

Vim is a text-editor first incarnated in 1976. It looks hideous out-of-the-box, you cant use your mouse, the logo looks like it belongs in a gameboy, and it’s ridiculously easy to get stuff like this when you start out:

what does Frank Sinatra have to do with this junk?!

Using it over shiny contenders Atom and Sublime, in a tech world where everything changes every other year, seems like foraging for berries on your lunch break instead of hitting up roast + toast.

But after a little reading, I learnt that Vim can afford huge gains in efficiency, which means a more seamless coding experience and more time for thinking.

Instead of the standard setup of a keyboard for typing, mouse for navigating, Vim does it all on the keyboard. It has a language of commands, in which keystrokes can be chained together to do anything a normal text-editor can do, often way faster, and without reaching for a mouse. A touch-typer with a strong armoury of Vim commands can code at the speed of light.

It’s also massively customisable, meaning you can add new words to the language (via plugins), which can then be combined with existing commands to give you new powers.

In my mind, the fact that I’ll be using my text-editor every day in my working life makes the time invested in learning it hugely worthwhile. However, Makers Academy is not exactly the kind of place where you have much spare time to invest in 40 year old text-editors.

I decided to do it anyway. Reminding myself “this will never be harder than it is today” kind of did the trick in keeping my spirits up. Every day last week was frustrating, feeling like I was doing two coding courses at once, but thanks to some patient pairing partners I got through it without running back to Atom. I’m now happy to say I’m past the point of no return.

For anyone else interested in Vim, I found this and this massively useful, making pages of notes and installing all of the suggested plugins. I now have hundreds of new commands (vimformation) to put into practice.

Vim definitely attracts a certain kind of person, and I think a lot of people on the course wish they’d never heard of it. Atom does the job perfectly well, but something inside me cant know about it’s potential and ignore it. I’m becoming one of those programmers.

Rock paper scissors challenge

I discovered this species of lizard that has mating patterns analogous to a game of rock-paper-scissors and decided to theme my web app around it. And so the ‘lizard mating game’ was born. Github repo here.

I made a web app!

Unfortunately my HTML and CSS skills are pretty non-existent, so inserting a background image, changing the font to something other than Times New Roman, and making buttons with lizards’ faces on them was about the limit of the styling. I tried to mess around with bootstrap (a CSS framework that lets you place things in rows and columns), but no joy.

I’m looking forward to learning more CSS in the next few weeks and making things look sexy.

“Relaxation”

SpaceX became the first guys to launch a used rocket booster earlier in the week, and it was a rare piece of live video that really had my heart beating. Before Thursday their record was 8 rockets out of 13 not blowing up, so there was a fair amount of suspense. In the end everything went without a hitch. Pretty inspiring stuff.

Some people asked me about the below article on AI earlier in the week, so I thought I’d just pop it here. Seriously mind-bending stuff from perhaps my favourite person writing on the web. The Elon Musk series and Fermi Paradox articles are also great.

Stuff I learnt:

  • How the internet works
  • How to deploy a website with Sinatra
  • Vundles of Vim
  • The 4–7–8 breathing technique
  • The candy cane pose
  • Lizards are peculiar souls

Stuff that hasn’t clicked yet:

  • Using binding.pry for gaining visibility when debugging
  • HTML feels weird and wrong
  • I know no CSS, but I don’t think it can be that hard
  • Gotta keep vimming

TODAY’S JAM

THE RADIO SUCKS BALLS

If you read past the tapir, chances are you read the whole thing. If you enjoyed it, please click the little heart below. It’ll help others find this and enjoy it too.

--

--