Alexandre B A Villares

[sketch-mail] #20-2019 - subscribe here!


sketch_190615a with Processing Python Mode


I can’t remember where I heard it first, but I’ve been using for a long time an analogy between learning to program and learning a foreign language. I will list some points that make sense to me, and some quotes I like. Everyone, with the right motivation and resources, can learn a foreign language, or programming.

- It takes more time than some would make you belive, it can take quite a while for one to feel confortable, fluent, and you will keep learning forever (Norvig: Teach Yourself Programming in Ten Years). But don’t despair, even if you are not fluent, unable to talk much, it can be very useful to know even a bit of a foreign language.

- To read is easier than to write, and as you start it is hard to express yourself, you have to keep on reading, to acquire vocabulary and a repertoire of constructs and idioms.

- Each person will have different motivations and uses for it, and a linguist will learn differently from a traveler, as Faramarz Amiri puts in this article: Programming as Design: The Role of Programming in Interactive Media Curriculum in Art and Design.

- To learn a second foreign language can often be easier than to learn the first one. Some languages are more useful in specific contexts, for a certain specialty, and even in a language you know, you’ll need to learn special vocabulary for a domain.

- Allen Downey in Think Python compares and contrasts formal and natural languages

- Patricia Oakim highlighted a gem by Casey Reas, where he quotes Alan Kay on what it means for an artist to be “software literate”: Code the language of our time.

- And I’d like to end with this great video of Mark Guzdial: 21st Century Literacy includes Computing for Everyone.


Não lembro onde ouvi primeiro, mas faz um bom tempo que uso a analogia entre aprender a programar e aprender uma língua estrangeira. Vou listar alguns pontos que para mim fazem sentido, e algumas citações de que gosto. Todo mundo, com a motivação e os recursos adequados, pode aprender uma língua estrangeira, ou programação.