From a python beginner
to a django developer
in 6 months*
*The python eco system for beginners
Hannes Hapke
PyCon Uruguay, November 2nd, 2013

De principiante en python a desarrollador de Django en 6 meses*
Friday, 8 November 13
Who is that guy?

¿Quién es este tipo?
Friday, 8 November 13
Hannes Hapke
@hanneshapke

Python developer and co-founder of renooble.com
Electrical engineer with business experience
German living in Santiago, Chile at the moment
Absolute python beginner in 2010
Languages: Pascal, Delphi, Java, PHP, Python
Principiante total de Python en 2010 | Alemán
Friday, 8 November 13
What does he want?

¿Qué es lo que quiere?
Friday, 8 November 13
Speed up
the learning process
for beginners

Acelerar el proceso de aprendizaje para principiantes
Friday, 8 November 13
Compile best learning
practices

Compilar las mejores técnicas de aprendizaje
Friday, 8 November 13
But why should I worry
about beginners learning?

¿Por qué debería preocuparme?
Friday, 8 November 13
Let it not become the next Latin (or Basic)
Que no se convierta en el próximo Latin
Friday, 8 November 13
User conversion*
* Jacob Kaplan-Moss
StarTechConf, 25/10/13

Conversión de usuarios*
Friday, 8 November 13
Tweet to
@hanneshapke
Your thoughts will be added
to this presentation
Envíe sus ideas y las añadiremos
Friday, 8 November 13
Vamos ...

Let’s start ...
Friday, 8 November 13
In 2010 ...

En 2010 ...
Friday, 8 November 13
Python was ...

Python era ...
Friday, 8 November 13
Friday, 8 November 13
Django was ...

Django era ...
Friday, 8 November 13
Source: http://upload.wikimedia.org/wikipedia/commons/f/f5/Django_Reinhardt_(Gottlieb_07301).jpg
Friday, 8 November 13
and Celery was ...

y apio era ...
Friday, 8 November 13
Friday, 8 November 13
One night, @alphydan and I were dreaming
about building a search engine
for renewable energy ...

Estábamos soñando con montar el google de la energía renovable ...
Friday, 8 November 13
While envisioning renooble, he told me
“Hey, I have heard about
something much better
than PHP ...”

Hey, hay algo mejor que PHP ...
Friday, 8 November 13
Friday, 8 November 13
And so we had a goal ...

Y así que nos fijamos una meta ...
Friday, 8 November 13
But now we had to learn
Python, Django, tools, etc.

Pero ahora teníamos que aprender Python, Django, herramientas, etc.
Friday, 8 November 13
deployment
strategies

fabric

django-extensions
Friday, 8 November 13
We wanted to get to this ...

Queríamos llegar aqui...
Friday, 8 November 13
Friday, 8 November 13
3301 SE Belmont St
Commercial Building
Solar: save $200/month
Insulation: $150/month
3305 SE Belmont St
Commercial Building
Solar: save $120/month
Insulation: $100/month
914 SE 33rd St
Residential Building
2 Apartments
Income level known
Solar: save $150/month
Insulation: $100/month
Lighting: $30/months

Friday, 8 November 13
A long way starts with
a small step ...

El camino se hace al andar, caminante ...
Friday, 8 November 13
Friday, 8 November 13
Wohoo, our first Django app

Wohoo, nuestra primera aplicación con Django
Friday, 8 November 13
Documentation
First Django App

datetime(2010,9,12,1,0)

datetime.now()
Learning Curve

Documentación > nuestra primera aplicación Django
Friday, 8 November 13
Offline tools: Books

Libros
Friday, 8 November 13
Django Practices, Pro Django, Two Scoops for Django,
Python Geospatial Development
Friday, 8 November 13
Books
PostgreSQL

datetime(2010,9,12,1,0)

datetime.now()
Learning Curve
Libros > PostgreSQL

Friday, 8 November 13
Online tools: Websites

Paginas web
Friday, 8 November 13
planet.python.org

planetdjango.org

b-list.org

godjango.com

Friday, 8 November 13
Websites/Blogs
GeoDjango,
South, Fabric

datetime(2010,9,12,1,0)

datetime.now()
Learning Curve

Paginas web/Blogs > GeoDjango, South, Fabric
Friday, 8 November 13
Online tools: Stackoverflow

Stackoverflow
Friday, 8 November 13
Friday, 8 November 13
Stackoverflow
Django cities

datetime(2010,9,12,1,0)

datetime.now()
Learning Curve
Stackoverflow > Django cities

Friday, 8 November 13
Online tools:
Learning from other projects

Aprender de otros proyectos
Friday, 8 November 13
github.com

pinaxproject.com

Friday, 8 November 13
Other projects
Folder structures

datetime(2010,9,12,1,0)

datetime.now()
Learning Curve

Otros proyectos > estructuras de carpetas
Friday, 8 November 13
Offline tools: Meetups events

Eventos de Meetups / Encuentros
Friday, 8 November 13
Melbourne Python User Group

Source: https://pbs.twimg.com/media/Af4tnnzCMAIbyLR.jpg

Grupo de Usuarios de Melbourne Python
Friday, 8 November 13
Python Meetups >
The Zen of Python

datetime(2010,9,12,1,0)

datetime.now()
Learning Curve
Python Meetups > import this

Friday, 8 November 13
Offline tools: Interact with other
Developers

Interactuar con otros desarrolladores
Friday, 8 November 13
Django shop:
Common Code

Friday, 8 November 13
Code shop
Programming styles

datetime(2010,9,12,1,0)

datetime.now()
Learning Curve

Code shop > estilos de programación
Friday, 8 November 13
Django meetup at Startup Chile

Santiago, August 2013
Django meetup en Startup Chile
Friday, 8 November 13
Talks with devs >
Django Packages

datetime(2010,9,12,1,0)

datetime.now()
Learning Curve

Conversaciones con los desarrolladores > paquetes de django
Friday, 8 November 13
Meet other developers at PyCons

PyCon Australia, Hobart, 2012
Conoce a otros desarrolladores en PyCons
Friday, 8 November 13
PyCons >
Implementation Ideas

datetime(2010,9,12,1,0)

datetime.now()
Learning Curve

PyCons > como implementar ideas nuevas
Friday, 8 November 13
That was one story,
but how did the pros learn?

¿Cómo aprenden los profesionales?
Friday, 8 November 13
I interviewed

Selena
@selenamarie

Michelle
@pythonchelle

Eric
@ericholscher

Yo entrevisté ...
Friday, 8 November 13

Javier
@candeira

Jacob
@jacobian
I asked 4 questions ...

Hice 4 preguntas ...
Friday, 8 November 13
1) How did you get started with Python?
¿Cómo empezaste con Python?

2) What on/offline resources
are you using to stay up-to-date?
¿Cómo te mantienes al día?

3) Your recommendation for a beginner?
¿Qué recomendaciones tienes para un principiante?

4) How can an advanced beginner
contribute to the community?
¿Cómo puede contribuir a la comunidad un principiante avanzado?

Friday, 8 November 13
Selena Deckelmann
Contributor to PostgreSQL, organizer of Postgres Open and PyLadiesPDX
@selenamarie

Started > Long-time contributor to PostgreSQL, got introduced to
Python in 2010, develops with Python at Mozilla since 2012
Resouces
Online > email, phone
Offline > PyCons, PyLadies, dev network
Recommendation > Start with a online programming class, seek a
one-to-one mentor relationship, don’t be shy and ask questions
Contribute > Selena recommends women to join PyLadies, and
everyone join their local Python group
Empieza con una clase de programación online, busca un mentor y no temas hacer preguntas
Friday, 8 November 13
Michelle Rowley
Founder of CodeScouts, organizer of PDXPython
@pythonchelle

Started > Got introduced to Python/Django in 2007 by a friend
Resources
Online > email, planet python
Offline > Meetups, CodeScounts.org, PyCons, dev network, Two
scoops ...
Recommendation > Key is the mentorship or personal interaction
with other users/beginners. Learn the programming language your
friend is using/learning.
Contribute > Share your experience as volunteer at codescouts.org
Clave es la mentoría y contacto con otros principiantes: escoje el programa que tus amigos usan
Friday, 8 November 13
Eric Holscher
Key person behind readthedocs.org, worked for the Lawrence Journal
@ericholscher

Started > Started with Perl (2000) to cheat video games, trained by
mentor, stumbled upon Python and Django
Resources
Online > b-list.org, pycoders.com, django-round-up, Planet Python
Offline > PyCons, meetups (Boston Python meetup), dev network
Recommendation > Seek active feedback, find a mentor
(pythonmentors.com), respect their time, read the FAQs, learn bestpractices from Two Scoops for Django
Contribute > Contributing to a projects documentation isn’t easy, but
valuable; Also submit an app fix through github
Busca feedback sobre proyectos (solo leer es demasiado pasivo), respeta el tiempo del mentor
Friday, 8 November 13
Javier Candeira
Teaches at Monash University, helps organize Melbourne PUG
@candeira

Started > Taught himself Python after becoming interested in Semantic
Web and after he met Python programmers
First project: Score screen for a pinball emulator
Resources
Online > reddit (/r/python), @raymondh, pymotw.com, wordaligned.org
Offline > Meetups, PyCons, dev network, Python Standard Library By
Example (book by Doug Hellmann)
Recommendation > Find a project that is small enough to finish, but
challenging enough (e.g. cataloguing your DVDs)
Contribute > PUGs are awesome and the culture is great, join them
Empieza un proyecto tan pequeño que lo puedas terminar, pero que sea un reto
Friday, 8 November 13
Jacob Kaplan-Moss
Django core developer, Heroku Director of Security
@jacobian

Started > Worked with Python since 1998, joined the Django dev
team in 2004, proud to make Django open-source
Resources
Online > IRC, mailinglists, pyvideo.org, stackoverflow.com
Offline > PyCons, dev network, books (two scoops for Django)
Recommendation > Have a project/problem, which is meaningful to
you and solve it with Python
Contribute > Support a 3rd party app or put your work open-source

Busca un proyecto/problema que te importe a ti y resuelveló con Python
Friday, 8 November 13
Recommendations
from the
community

Friday, 8 November 13
• Books
Two Scoops of Django (2scoops.org),
Pro Django (prodjango.com),
The Python Standard Library by Example (thanks @candeira)
• Websites
pymotw.com (thanks @candeira)
wordaligned.org (thanks @candeira)
• Newsletters
Pycoder’s Weekly pycoders.com (thanks @ericholscher)
• Blogs
Collection of Python blogs planet.python.org
Collection of Django blogs planetdjango.org
James Bennett’s blog b-list.org

Friday, 8 November 13
• Podcasts
Django Round Up bit.ly/13tRbwg (thanks @ericholscher)
• Twitter + Reddit
reddit (/r/python)
@raymondh (thanks @candeira)
• Videos
pyvideo.org (thanks @jacobian)
godjango.com
learnpythonthehardway.org (thanks @alphydan)
MIT Programming class bit.ly/Dkk11 (thanks @alphydan)

Friday, 8 November 13
Resources
in Spanish

Friday, 8 November 13
• Python
Python Argentina python.org.ar
Guía Python www.maestrosdelweb.com/guias/#guia-python
Cursos de Programación cursos.eugeniabahit.com/curso-python
(thanks @visigoten)
• Django
Curso Django www.maestrosdelweb.com/guias/#guias-django
(thanks @visigoten)

Friday, 8 November 13
Conclusions

Conclusión
Friday, 8 November 13
Have a challenging project

Contar con un proyecto desafiante
Friday, 8 November 13
Learn with/from a friend

Aprenda con un/a amig@
Friday, 8 November 13
Don’t be shy

No sea tímido
Friday, 8 November 13
Read the docs

Lea la documentación
Friday, 8 November 13
Join a Python group early

Únase a un grupo Python pronto
Friday, 8 November 13
Groups

Grupos

mailinglists

PyCons

IRC

Python Meetups

stackoverflow

PyLadies

Online
En-Línea

Desconectado

blogs
books

planet python
pythonvideo

Individual
Individual

Friday, 8 November 13

Offline
Thanks to ...
@jacobian @pythonchelle @selenamarie
@ericholscher @candeira @commoncode
@srikanth_chikoo @timdegraw @alphydan
The Python community
The Django community
Gracias a ...
Friday, 8 November 13
Gracias!
hannes@renooble.com
@hanneshapke
Tweet your thoughts!

Thank you!
Friday, 8 November 13

Python Ecosystem for Beginners - PyCon Uruguay 2013