How to learn. How to code.

A surprising mind shift for those who had lost all hopes.

“To learn coding do not learn coding.” [not Einstein]

#Act-I: How not to learn.

I’ve been trying to learn how to code forever (4 years) and I constantly failed.

I tried out a number of courses on Coursera, Kahn Academy, Code Academy, Youtube, a number of apps; I have explored Quora answers, Reddit threads, and what have you. No matter what the medium of choice, I failed.

It is not that I haven’t been rigorous in my learning. I have. I have done all of the required exercises for every course, so the mechanics were clear. Nonetheless I never felt further from being able to do anything with the code.

I failed. Over and over again. Frustration diminished my passion and a sense of insecurity pervaded my thoughts. So much so that I ended up down the rabbit hole of googling stuff like “is there a minimum IQ to code”. (don’t try at home).

Until one day — suspensive pause — everything changed.

#Act-II: Serendipity.

That one day is the day I joined a bunch of developers with a real passion for what they do. Specifically, it is the day I joined the Sydney Ethereum group.

Originally I signed up for mere curiosity, as I wanted to understand the potential and limitations of blockchain tech (at a very high level that is). Though I didn’t think that anything could refresh my passion for coding to the level that this great bunch of people have.

Not everything started smoothly though…

During the first meeting — a two hours one — I was overwhelmed. A bunch of unfamiliar words and unheard-of-before acronyms (SSL, DNS, AWS, SUDO, SSH, RPC, …) were spitted out here and there. A zillion file extensions (.XML, .MD, .SOL, TSV, …) and symbols like “~$*/” were being tossed all around the place.

Everyone seemed to be able to follow what to me looked like an esoteric ritual from a steampunkish utopian future, and I felt like I was the only one left behind. Blood was rushing to my head and the monsters from the past — frustration and insecurity — came back all together to assault my thoughts.

My fight-or-flight mechanism (rather flight-or-flight in my case) was activated leaving me with virtually no control over my thoughts. “I have to leave.” — said the voice in my head — “I am failing. Again.”

Though — as one could expect from this Medium story plot point — I didn’t leave. But not because I couldn’t, I didn’t leave because one of the guys said something that, for some reason unknown to me, fired up a big bunch of my synapsis:

“If you don’t understand how it works, you’ll never know what’s going on.” [Sam]

Mamma mia! — the Italian voice in my head resounded— is that it?! Could that have been it?! Do I only need to understand?

#Act-III: The new beginning.

And there it was. I didn’t need to learn, I only need to understand.

With this enlightenment in mind I decided I would try to understand as hard as I could.

Since August, I attended every Tuesday and Thursday 2 hours workshop. During each workshop I wrote down all the words and acronyms I couldn’t pick up, and asked any sort of question, even I though might have been stupid — only minding not to spoil the workshop for everyone.

After coming home, I dedicated 4 hours to decrypt what I originally perceived to be a curious collection of arcane multisyllabic words such as “Securessockets” “decydablellanguage” and many others.

I did this by googling things and trying to explain them to my teddy pear (I couldn’t find the bear) as I understood them. At first in the spirit of Richard Feynman––who once said: “If you can’t explain something in simple terms, you don’t understand it”. And then in the spirit of Bokky PooBah––who more than once did and said: “ask yourself a question and answer yourself the question”. Even better if you do so in an open source space.

I tried out the latter and discovered to my surprise that not only I really needed to understand what’s going on, but I somehow had to ask myself if I was being clear enough, so that anyone reading could actually get what I was trying to express (same thing goes for this post by the way).

Coding is doing the same thing, just that instead of humans, you are talking to machines.

So now, after 3 months and about 80 hours of workshops and research, I feel confident not only that I will deploy two blockchain project by the end of November, but I will be able to apply the same learning techniques for a number of future quests.

–Fin

#Meta-Act: Key insights.

You may or may have not noticed but already by reading this you may — or may not — have absorbed some of what to me is the essence of coding.

As I currently understand it, coding means to put funny symbols such “~$*[]{}()//” before or around sentences to help computers understand what you want them to do. The more complicated the thing you want the computer to do, the more symbols or languages or structures you need to understand.

In this post for example, the hashtag symbol indicates to you, oh dear reader, that what you see is some sort of title, while contextually it can be used to identify the titles by a computer as well.

A language that I found great to get started, in terms understanding by playing around, is the markdown language. Specifically I have been playing around on this site markdownlivepreview.com where I get to see what the code does to text instantaneously.

I then ask myself what sort of funny symbols I need to use to achieve whatever my goal is. Before to google the solution I will try to answer myself.

#Disclaimer.

Everyone is different so it might be that other things work better for you. All I wanted to put in this article are thoughts I discovered that I couldn’t find on the web.

Also, I am not a trained nor a professional programmer, so if you are and you find incongruencies or mistakes or anything worth correcting, please ping me via email at mattiafregola[at]gmail.com.

#Un-Act: Thank you all.

I would like to thank the meetups organiser Bokky PooBah, together with Andy, David (especially for all the notes!), Darryl, Derek, Enrico, Jonny, Mark, Nader, Nick, Sam (responsible for the sentence that prevented me from giving up) and Stephen — as well anyone else I met but who’s name my brain didn’t pick up.

#Love.

The projects that will be launching soon are:

mysoulcoin.market —secure your soul.

A place where you can sell — and safely store your soul for ETH. (personal funny project)

Unicoin — a currency for university students.

This is an open source idea. Read it up on github.com/Matness/Unicoin and join the conversation here, here or even here!