At Recurse Center, I decided to leave my iOS comfort zone and plunge headfirst into Android, Javascript, macOS, and Python projects. Since I'm a little too impatient for documentation and tutorials, I came to realize Github is actually an awesome tool to learn quickly with.


I learn best by seeing a simple code sample and figuring out how it works. So when I want an example on how to do something, and the Stack Overflow answers aren't doing it for me, I'll search for a gist of the concept.

For example, I wanted to learn how to make a list view in Android and all the tutorials seemed to be making it a lot more complicated than it needed to be. So instead I searched "android list view gist" and got this, which was exactly what I was looking for.

Repository Search

Another place I got stuck was sometimes not even knowing where to start, like when the documentation isn't detailed enough or doesn't have enough context in the code samples. This came up for me when I was trying to figure out how to create a Safari extension and I couldn't figure out what the project structure was supposed to look like or what code was going to be executed where or how an injection script gets executed and so on.

Rather than try to answer each of these questions from the bottom up, I instead looked for "safari extension" on Github's repository search and found an extension that was similar to what my project idea. That changed my obstacle from figuring out who/what/where/how AND compiling everything to just learning how to compile everything. From there, I was able to take away and reverse-engineer all the other things I needed to know.