Saturday, 15 August 2015

How browsers work

Last week I held a workshop in Dublin regarding "how browsers work", a general overview aimed at web developers that focuses on gotchas and counter-intuitive parts.

I'm sharing the slides and the lecturer's notes.
I hope you will find this useful. Please let me know if you find any error.

Open presentation in new tab

Open notes in new tab

Monday, 22 December 2014

Augmented Learning: boosting your brain

Being able to study and learn effectively is an important skill for whoever works in an ever-improving field like the computer science is. There's always something new to learn that can improve your skills.

So why not leveraging modern tools and technologies to boost your learning and long-term memory effectiveness?

These are tools I found useful.

1) Writing my own private wiki

I feel that writing in my own words all the things I learn really helps me understand clearly the concepts. You can never say you grasped a concept until you can explain it in your own words.
Indeed I think that when you strive to express the concept with your own words, what you are actually doing is organizing your own mental model. It works great.

While it's quite a time-consuming job, maintaining my own wiki is something I found very amusing and being the wiki private I could use all the material (images, videos, etc.) I found useful without any copyright problems.

When you will read again your own explanations in a couple of years you will find it a lot easier to re-learn the concepts and -- last but not least -- maintaining your own wiki can help you improve your own writing and expressiveness skills. It seems that your writing skills reflect on your programming skills.

2) Spaced repetition

The spaced repetition technique consists in using flashcards and a spaced repetition tool (I use Anki.)

The technique leverages the spacing effect to your advantage.
[From Wikipedia] The spacing effect is the phenomenon whereby animals (including humans) more easily remember or learn items when they are studied a few times spaced over a long time span ("spaced presentation") rather than repeatedly studied in a short span of time ("massed presentation").
So what you do is:
[From Wikipedia] incorporating increasing intervals of time between subsequent review of previously learned material in order to exploit the psychological spacing effect. 
I found the spaced repetition technique to be very effective: it just requires you about half an hour of your time each day (your mileage may vary depending on the number of flashcards) and if you keep practicing it every day you can really store a lot of data into your long-term memory. ;-)

On the other hand not every piece of information is suitable for a flashcard and learning how to write effective flashcards can require quite a lot of practice! So I write flashcards only for the concepts that easily fit it.

3) Mind maps

Mind maps are diagrams that you use to visually organize information. You can get an idea about them by looking at some examples.

When you are studying you don't have to express everything you learn in the mind map: just express the correlations among the various concepts.
After that, you can use the mind map to help you repeat all you have learned and to be sure you don't forget any important part. After a while you won't need the mind map anymore as you will remember all the relations. Here your eidetic memory may help.

There are various tools you can use to create your own mind maps.

Please share any suggestion or tool you found useful to enhance your learning and brain effectiveness. I will keep this page updated.

Saturday, 29 June 2013

Best ways to learn a foreign language

Being a person who gets bored quite easily I always looked for the most interactive, engaging, entertaining ways to learn something.

When it comes to learning a foreign language, I always started yawning after a few pages of any book or on-line course. Not a fault of their authors of course, indeed their texts were really good and well-thought: nice and clear explanations with lots of examples.
What bores me is the lack of engagement of my senses. Probably modern era technology-pervaded world has raised our bar for attention. Or probably it is just me :-). Anyway I wrote down this list of the ways I found most entertaining (and efficient) to study a foreign language.

Duolingo is fun and easy. The process of learning is turned in a game, with dictation, translation and reading exercises. It is good for both beginner and more advanced users.
It uses spaced-repetition, a learning technique that increases memorization efficiency by repeating words at the right intervals of time.
In addition, immersion provides real-world texts to translate in a cooperative manner.
At the moment it supports Spanish, German, French, Portuguese, Italian and English.
Try Duolingo

Anki is an open-source spaced-repetition software based on flashcards. As the site says, it "makes remembering things easy" and "because it's a lot more efficient than traditional study methods, you can either greatly decrease your time spent studying, or greatly increase the amount you learn".
It is to be used with other learning tools. While you are studying the language, create your own deck of flashcards, the way you prefer. Or just use one of the many decks shared by others. I suggest making your own customized deck. I also suggest to give context to the words by adding example phrases. You can read this nice article by Benny Lewis about it.
Try Anki

To be able to understand the spoken language and write it down correctly is a very important skill to learn. Not for nothing we were used to do a lot of dictation exercises in our primary schools.
There are various sites to exercise your comprehension of the spoken language with dictations. Some I used for English were Listen and writeEnglish club dictation and Dictations online.

Audio-books with text
There's nothing better than a nice voice telling you a good fable or reading you a good book. Fortunately on-line there are many audio-books with both audio and text to follow.
One good site to find audio-books is Books should be free. There you will find books in almost 30 different languages.
Let's say, for example, you'd like to hear the fable of Pinocchio, in English. Just open the text and press 'play'. Enjoy!

Talking with natives and non-natives
One of the best ways to improve your expressing skills is to talk with natives. But also exercising with other students like you is very useful. Fortunately you don't need to go abroad to find someone to talk with. You may find local speakers or you can join Shared Talk, enter the voice chat and pick a partner to talk to.

Movies and series with subtitles
Another way to have a good time and improve your skills at the same time is watching your preferred movies, series and TV-shows using the language you want to learn both for audio and subtitles. Fun and usefulness combined.

I hope you will find this list useful.
Please let me know the way you prefer to study foreign languages.
You can find further suggestions in both the comments of this post and the Hacker News thread here.