Categorías
Python

Enhebrar en Python

 

Esta semana, nuestra entrevista comunidad Python es nada menos que Michael Kennedy de Talk to Me Python fama.

Usted puede conocer su voz con autoridad, pero es lo que conocer su historia Python? Siga leyendo para averiguar acerca de su viaje con Python, lo que piensa cuando se ve atrapado en el tráfico, y su amor por las dos ruedas.

Ricky: Bienvenido al Real Python! Si no recuerdo mal, que comenzó como un desarrollador de .NET, y usted era incluso un instructor certificado de Microsoft. Así que estoy curioso en cuanto a cómo llegó a Python y lo que hizo quedaré por aquí?

Michael: Gracias por invitarme. Oh, esto trae recuerdos. Sí, yo estaba haciendo pleno desarrollo .NET con C # tiempo para probablemente 10 años. Es un lenguaje que todavía hoy respeto.

he encontrado mi camino a Python después de querer diversificarse en áreas fuera del espacio de Microsoft. Creo que esto fue probablemente de 2012 o alrededor de entonces. Yo no había estado haciendo mucho fuera de C ++ y C # antes de esa fecha por algún momento que no sea JavaScript. (Nadie escapa JavaScript!) Miré los lenguajes populares, y esto fue justo en la época de Python fue haciendo popular y cada vez más.

Pasé un par de semanas aprendiendo Python y era más o menos enganchado, pero no lo sabía.

Estudié el idioma y el ecosistema y nos pareció ser muy agradable, mucho mejor de lo que esperaba. Pero he sufrido el problema de que todos los que conocen algo de lenguaje hace muy bien cuando intentan algo diferente. Todo lo que sabía de memoria era un reto nuevo. ¿Cómo se crea una aplicación web? ¿Cómo puedo alojarlo? ¿Cómo puedo consultar una base de datos? Y así sucesivamente.

yo estaba dispuesto a aprender y lo hice. Pero fue sólo que la inquietud de que alguien pudiera tener, renunciar al camino conocido. Sin embargo, sabía que iba a ser enganchado cuando volví a escribir algo de código C # y lo encontró de manera menos elegante de lo que tenía sólo unas pocas semanas antes.

Esto no es para golpear a ese idioma. Pero como todos los lenguajes basados ​​en C, que tenía una gran cantidad de ruido símbolo, digamos. ¿Por qué necesitamos un punto y coma otra vez? ¿Por qué el amor masiva de paréntesis y corchetes, incluso cuando está (ahora) claro que son innecesarios, etc. He aquí un ejemplo:

class Thing {

public int TotalSales {
get
{
int total = 0;
foreach (var b in items)
{
total += b.value;
}
return total;
}
}
}
class Thing:

@property
def total_sales(self):
total = 0
for b in items:
total += b.value
return total

hace que uno se pregunte por qué has estado escribiendo todos esos símbolos, todos esos años.

Desde entonces, como he aprendido más y más populares de los paquetes y módulos de la biblioteca estándar, acabo disfrutado más cada día. Ahora ejecutar toda mi negocio en una pila de Python, y todavía tiene que me ha defraudado.

Ricky: Usted está, por supuesto, el anfitrión de los más populares podcast de Python Python-Talk to Me, que ahora tiene más de 180 episodios. También eres un co-anfitrión en el podcast Python Bytes con Brian Okken. Esa es una gran cantidad de contenido! ¿Cómo seguir siendo tan consistente cada semana, y mantener los programas pertinentes y de interés periodístico? Tiene que ser un montón de trabajo?

Michael: Eso es definitivamente una gran cantidad de contenido. Pero es un proyecto muy gratificante que es en su cuarto año de Talk Python a mí y tercer año de Python Bytes .

Cómo estoy siendo consistente? Buena pregunta. Empecé el podcast porque otros fueron inconsistentes. Ha habido podcasts basados ​​en Python antes que la mía. Pero todos ellos dejaron de producir episodios de largo antes de llegar en el juego. De hecho, es por eso que sentía que podía empezar, porque había una falta de contenido tales.

Soy constante por varias razones. En primer lugar, cuando empecé el podcast, me prometí que lo haría cada semana durante seis meses y luego decidir si la comunidad y me gustó mucho. Después de que gran parte de creación de contenidos coherentes, que son bastante profunda dentro del hábito de hacerlo.

En segundo lugar, para entonces ya tenía varias empresas patrocinadoras del podcast. Pensé que tal vez, sólo tal vez, no pude encontrar una manera de utilizar el podcast para convertirse en independiente de mi trabajo del día. Yo no odio a mi trabajo del día, pero no se puede comparar a hacer lo que cree que es verdaderamente valioso para la comunidad y el mundo. Una vez que acepte dinero para producir una cosa durante un largo período de tiempo, la consistencia es sólo una parte del acuerdo.

Por último, los oyentes fueron un gran apoyo de mi trabajo. Es realmente se sentía muy bien producir el contenido para todos. Tenía ganas de que cada episodio creé. Después de todo, yo estaba aprendiendo mucho de cada uno y seguir haciéndolo hasta nuestros días.

cuanto a mantener el programa relevante y de interés periodístico, que es fácil. Para Python Bytes , que es, literalmente, el tema (noticias semanales), y tenemos toneladas de ayuda de los oyentes todos los grandes artículos que sugieren nuevos cada semana.

Para Talk Python a mí , esto es más difícil. Cada episodio cava hondo en un tema. Durante los primeros 20 episodios más o menos, eso fue lo suficientemente fácil para mí. Que había utilizado SQLAlchemy por ejemplo, por lo que pide Mike Bayer en ello estaba pensando de nuevo en mi experiencia. Pero rápidamente se convirtió en espacios que tenía poca experiencia con. Ahora paso un poco de tiempo investigando temas para cubrir cada semana. Cualquier episodio dado tiene entre 4-8 horas de investigación antes de que incluso grabar prensa.

que lleva en la parte final de su pregunta: Si, es un montón de trabajo. He tenido la gente me pregunta cuánto tiempo que paso en el programa cada semana. Incluso han dicho, “Tienes un reparto tan dulce. ¿Qué es lo que pasa en el podcast por episodio? ¿Unas pocas horas?» Bueno, eso sería algo! Probablemente paso cerca de 2 días por episodio entre la investigación, la extensión a los clientes, correspondencia por correo electrónico, desarrollo de sitios web, las relaciones de patrocinio, y mucho más.

Eso es mucho tiempo, pero también es, literalmente, la base de mi negocio. Las podcasts y los cursos sólo funcionan si son ambos bien conocidos y de alta calidad. Es muy afortunado que he sido capaz de hacer la transición de mi tiempo parcial de podcast en un trabajo a tiempo completo (podcast y cursos). Me permite realmente mantener la concentración y ser coherente.

Ricky: Si nuestros lectores no te conocen desde el podcast, que seguramente se sabrá por sus excelentes cursos de Formación Python Talk. Uno de los primeros cursos que hice cuando empecé a aprender Python era su enlace personalizado Python Edificio 10 Aplicaciones supuesto-que es excelente por cierto. Y que ha acaba de lanzar un nuevo curso llamado Técnicas y ejemplos asíncronas. ¿Nos un poco más sobre ella y decirle por qué decidió concentrarse en asíncrono, específicamente?

Michael: Gracias! Los cursos han sido un verdadero proyecto de pasión para mí. He querido crear la mejor biblioteca en línea para los cursos de Python por ahí durante mucho tiempo.

Cuando empecé el podcast, yo también quería empezar los cursos. Los vi como ir de la mano, con cada uno apoyando al otro. Sin embargo, en el momento en que trabajé para una empresa que hizo los cursos de cada persona y de formación en línea para los desarrolladores.

Me dio mucha libertad y flexibilidad. Pero lo que no volaría es mi manera efectiva la creación de una empresa de la competencia en mi tiempo libre. Así que empecé con el podcast, y luego una vez que podía ir a tiempo completo de forma independiente, Mi primera acción fue el lanzamiento de la empresa de formación y Jumpstart Python Edificio 10 Aplicaciones en Kickstarter. Esa fue una experiencia muy divertida y un gran éxito.

El nuevo asíncrono curso es super divertido y algo que me sentí realmente se necesita para existir para la comunidad. Tiene que existir por varias razones. La historia de programación Python asíncrono / concurrente es un poco difícil de entender y dar sentido, para muchas personas. Tenemos el GIL, que en realidad está cubierto muy bien en real Python. Este medio de rosca normal fue sólo es eficaz para IO obligados trabajo. CPU obligado trabajo requiere otra API, multiprocesamiento con sus propias peculiaridades y técnicas.

Ahora, a partir de Python 3.5, tenemos la asíncrono increíble y palabras clave están esperando. Son poderosos y limpio, pero añaden más opciones y más niebla a la situación. Esto no toma en cuenta la asíncrono cuenta de Cython y su palabra clave nogil.

Así que la primera razón es que había una gran cantidad de confusión en torno asíncrono y Python. Se oye de personas que salen de Python para Go explícitamente debido a la concurrencia de Go “mejor”. Por lo general, el tipo de personas están buscando concurrencia está obligado IO, que funciona muy bien en Python de todos modos.

La siguiente razón es que asíncrono y programación concurrente es enseñado por extraño en el orden equivocado. Lo que quiero decir con esto es que por lo general una gran cantidad de confundir, detalle de bajo nivel se presenta en la delantera. Entonces, finalmente, se trata de poner juntos en ejemplos que son útiles y convincente. Sin embargo, el estudiante tiene que llegar tan lejos para que pueda pagar. Esto también es a menudo vinculados con advertencias de seguridad de los subprocesos y lo difícil que son las condiciones de carrera. Todo esto es verdadera y exacta. Pero ¿por qué empezar por ahí?

quería un curso que muestra cómo productiva, la diversión, y realmente fácil asíncrono es para muchos casos. Una vez que el estudiante ve el valor, entonces se puede bucear en cosas como hilo de seguridad y así sucesivamente.

Por último, en realidad no son muchos cursos asincrónicos para Python por ahí. Sólo sé de uno otro, y es detrás de una pared de suscripción.

Ricky: No es ningún secreto que eres un gran fan de MongoDB. ¿Qué es lo que más atrae de ella? Y si alguien nunca ha usado antes, ¿por qué podrían considerar el uso de ellos con su próximo proyecto Python?

Michael: Soy un gran fan de MongoDB. Hace mucho tiempo, me quejaba a un amigo acerca de lo doloroso que despliegan aplicaciones de bases de datos relacionales era. Acerca de la forma en que es un dolor para aplicar los scripts de migración sin tiempo de inactividad y cosas por el estilo. El dijo: “Bueno, ¿por qué no sólo tiene que utilizar MongoDB, y usted no tendrá ese problema?”.

Seguí su consejo, y tenía razón! Desde entonces, me he lanzado 4 o 5 grandes proyectos en MongoDB. Mis dos sitios de podcast (talkpython.fm y pythonbytes.fm) y el sitio del curso ejecutar en MongoDB.

Sé que algunas personas han tenido malas experiencias con MongoDB. Había unos pocos “mejores prácticas” que no eran el defecto en MongoDB en los primeros días, y hay un montón de historias sobre estos. La mayoría de ellos se han fijado, y si usted sabe evitarlos, usted está en buena forma. El uno de gotcha importante todavía por ahí es que MongoDB ejecuta sin autenticación a menos que cree una cuenta de forma explícita.

Dicho esto, MongoDB ha sido totalmente a prueba de balas para mí y mis proyectos. Ha sido capaz de alimentar estos sitios mencionados anteriormente durante años sin ningún tiempo de inactividad. Yo, literalmente, nunca he ejecutar una migración o el script de actualización para implementar un nuevo modelo de esquema o de datos. modelo de esquema flexible

Mongo y ODM basado en clases de MongoEngine (ORM para pensar MongoDB) son los adecuados para mis proyectos. Los sitios web funcionan con baja latencia súper. Es bastante común para obtener 10-20 ms tiempo de respuesta para las páginas no triviales (de solicitud de respuesta fuera del servidor).

Yo personalmente puedo recomendar completamente MongoDB para sus proyectos. También creé un curso gratuito si la gente está interesada en freemongodbcourse.com.

Ricky: Ahora el Python es fuera del camino, es el momento para hablar de las cosas divertidas … Matemáticas! Tiene una maestría en Matemáticas, y qué empezar su Ph.D. ¿Hay planes para terminarlo en el futuro, o ha navegado esa nave? Me imagino que todavía tiene una pasión por ella. Cómo se llega a rayar que pican sobre una base diaria?

Michael: de Navegó, en el horizonte, ya mitad de camino a la Antártida! Hice matemáticas estudio y todavía aprecio mucho la belleza de todo lo relacionado con ella. Estaba pensando acerca de los diferentes tipos de infinito, los diferentes tamaños de infinito, sólo en el número de línea simple entre [0, 1], mientras que en un atasco semana pasada.

Pero que no funciona en matemáticas, día a día. Creo que el desarrollo de software es mi verdadera vocación. Me encanta hacerlo todos los días. Lo que aprendí en matemáticas era excelente preparación para el desarrollo. Las reglas de las matemáticas y las “reglas” (lenguaje, APIs, algoritmos, big-S, etc.) de software son sorprendentemente similares. Los tipos de pensamiento y resolución de problemas también son bastante comparables.

La oportunidad de carrera en el software y el espíritu empresarial frente a las matemáticas no es comparable. Es simplemente mejor a las cosas de generación gente puede utilizar (software) en lugar de teorías sólo 5-20 personas en el mundo conocen bien y se preocupan por (matemáticas en estos días).

Así lo amo y sigo leyendo libros sobre el tema, pero yo no estoy haciendo nada práctico con las matemáticas en estos días.

Ricky: ¿Tienes otras aficiones o intereses, aparte de Python?

Michael: he tenido muchos pasatiempos divertidos en los últimos años. Yo creo que es importante tener un equilibrio entre el tiempo de ordenador y otras cosas en su vida.

estoy bastante suerte de que yo, básicamente, tiene 3 aspectos muy interesantes para los mi trabajo que iba a considerar casi aficiones. Corro el podcast y estoy realmente en la mejora de esa nave y la conexión con los oyentes. Estoy haciendo el desarrollo de software sigue siendo casi a diario. Y el funcionamiento de mi negocio y todo el lado empresarial de las cosas es increíble y divertido.

En cuanto a aficiones reales, Me encanta correr y cualquier cosa con dos ruedas! Crecí bicicletas de carreras de BMX en los grados 1-5, luego de motocross través de la escuela media y secundaria, y, finalmente, bicicletas de montaña en la universidad. Mis hermanos y yo construimos una pista de motocross en nuestro patio trasero, y era bastante común para volver a casa desde la escuela, dejar las mochilas, y pasar una o dos horas se desafían entre sí para despejar esta serie de saltos o simplemente tener un momento de diversión.

En estos días, yo sólo miro motocross y también soy un gran fan de la IndyCar. Todavía viaje, pero lo guardo para suavizar aventuras con mi esposa en nuestras motos de carretera alrededor de las montañas aquí en Portland, Oregón. Es genial poder compartir esa experiencia de montar con ella y mis hijas, que saltan en la parte posterior de una de nuestras bicicletas.

Ricky: ¿qué tenemos que esperar en el futuro a partir de Talk Python? Cualquier proyectos secretos que le gustaría decirnos sobre o cualquier cosa que le gustaría compartir y / o el enchufe?

Michael: que tienen algunos proyectos de cursos interesantes que salen. Yo realmente como para estar más próxima con lo que estoy trabajando allí, pero hay una cantidad sorprendente de la “copia” mis cursos populares digamos.

Tenemos al menos 4 cursos en desarrollo activo en este momento y una enorme lista de cosas que nos gustaría construir. Así que en términos de cursos, sólo nos esperan seguir trabajando en los nuevos que vemos la necesidad de que en la comunidad. También se puede esperar un poco más autores de clase mundial existe la creación de contenido. Estoy muy honrado de ser capaz de trabajar en los cursos para todos y hacer mi sueño de este recurso y de negocios en una realidad.

en términos del podcast, sin ralentizar allí. Tenemos Talk Python y Python Bytes , y ambos son fuertes. Sólo espero para llevar mejor y más profundas historias de la comunidad en Talk Python y estar al tanto del lenguaje de programación más emocionante por ahí con actualizaciones semanales sobre Python Bytes con mi co-anfitrión Brian Okken.

Gracias a todos por tenerme aquí en real Python. Soy un gran fan de los recursos que todos ustedes han creado. Si los lectores están interesados ​​en mis proyectos, por favor suscribirse a los podcasts en talkpython.fm y pythonbytes.fm. Si tienen aspectos de Python que les gustaría aprender, ya sea personalmente o por su equipo, echa un vistazo a nuestros más de 100 horas de cursos en training.talkpython.fm.

Gracias, Michael, por acompañarme en la entrevista de esta semana. Ha sido genial tener que en el otro lado del micrófono entrevista.

Como siempre, si hay alguien que le gustaría que yo entrevisto en el futuro, llegar a mí en los comentarios, o bien, enviando un mensaje en Twitter.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *