Si bien me siento halagado por esta pregunta, no creo que sea tan bueno. Hay muchos programadores (de Python) que son mucho mejores que yo. La mayoría de las cosas que he construido con Python ha sido relativamente pequeña y relativamente simple, en comparación con algunos de los grandes proyectos que existen. Mi comprensión de la OO avanzada, como lo que necesitarías para construir un ORM (metaclases, etc.), por ejemplo, todavía es bastante limitada (tengo cierta comprensión de ellas, pero no siempre las uso correctamente). No sé que falten muchos patrones de diseño y mi conocimiento de algoritmos y estructuras de datos. En otras palabras, todavía tengo un largo camino por recorrer.
Habiendo dicho todo esto, tengo cierta fluidez en Python específicamente porque uso mucho el idioma. Tengo toneladas de trabajos cron que uso para automatizar virtualmente todo. Automatizo muchas cosas a través de la línea de comandos.
- Recibo un correo electrónico sobre el mejor momento del día para salir a pasear con mi perro (es decir, el momento más seco y cálido del día). Si el clima es malo durante todo el día, recibo un correo electrónico que me dice que solo vaya a dar un paseo.
- Escribí un sitio web relativamente pequeño que escanea diferentes sitios web de viviendas, los clasifica según nuestros propios criterios (precio, año de construcción, distancia a los lugares a los que vamos, etc.), luego mi novia y yo los juzgamos personalmente y si a ambos nos gusta , se envía automáticamente un correo electrónico para una cita y cualquier pregunta que podamos tener (sobre la información que no se completó).
- Odiaba el horario de mi universidad, así que escribí mi propio raspador y creé mi propia API (podría, y debería, hacerlo público y crear una interfaz y quizás algunas aplicaciones para el próximo año, pero eso es otra cuestión).
El punto es: Python hace que todo sea tan fácil. Cada vez que tengo que hacer algo, pienso: ¿puedo potencialmente escribir algo para hacer mi vida más fácil? En muchos casos, Python es la herramienta adecuada para el trabajo y por eso lo uso mucho. El código de Python es corto y el ecosistema es enorme. Para proyectos pequeños, rara vez uso algo que no sea Python. User-9240879859637020943 dijo que trabajo duro, y aunque eso es parcialmente cierto, realmente lo uso mucho y lo disfruto. La fluidez viene a través de la escritura de código y no tener miedo de cometer errores. Realmente no me gusta la connotación de la palabra estudiar en este contexto, ya que parece implicar (quizás de manera incorrecta) que estás leyendo libros polvorientos y no haciendo nada, mientras que para mí, el aprendizaje siempre ha sido, desde el principio. , sobre construir cosas.
Dicho esto, Python no es realmente un lenguaje fácil por sí mismo. Es un lenguaje no intimidante. Es fácil empezar con. Es fácil escribir cosas pequeñas. Pero a veces es más complicado de lo que piensas escribir un código confiable. Python no tiene la comprobación de tipos como Java, por ejemplo. Sin embargo, Python tiene la habilidad de escribir para lidiar con este problema y, en cierto modo, es mucho más elegante que la verificación de tipo “formal”, pero en otras formas, también es un poco engañoso. Entonces, si bien se podría decir que Python es un lenguaje fácil de aprender, no estoy seguro de que sea tan fácil de dominar. Ciertamente no es C ++, pero es mucho menos trivial de lo que muchos programadores (incluso experimentados) pensarían.
- Cómo desarrollar habilidades para la superación personal.
- He estado siguiendo las instrucciones que me han dado a lo largo de mi vida. Pero ahora quiero cambiarme, tomar decisiones sin la ayuda de otros. ¿Cómo puedo?
- ¿Por qué dejaron de hacer autos donde las puertas de los pasajeros se abrían al revés?
- ¿Cuáles son las mejores KRA (áreas de resultados clave) para un gerente de atención al cliente?
- Soy muy malo en la escritura, ¿cómo puedo mejorar?
El principal error que cometí fue mantener demasiado código para mí. Cuando escribes un código que compartes con otros, intentas mejorarlo automáticamente, ya que sabes que los demás deben leerlo y que se debe mantener, y recibes comentarios y puedes discutir diferentes opciones. Definitivamente no tengas miedo de poner tu código ahí fuera. Trabaje en proyectos en Github y use sitios como Exercism y Code Review Stack Exchange para obtener comentarios.
Intento leer un código fuente Pythonic escrito por gente como Charles Leifer y Armin Ronacher, por ejemplo, e incorporar los ejemplos que veo en mi propio trabajo. Aprender con el ejemplo y luego jugar con él es mucho más poderoso que leer un libro (teórico). Prefiero los ‘libros de cocina’ que tienen recetas pequeñas con las que puedo intentar jugar inmediatamente.
Me gustaría señalar, sin embargo, que el enfoque de aprender a programar no es sobre el lenguaje, sino sobre los conceptos generales. Definitivamente, debe tratar de aprender muchos idiomas, y preferiblemente idiomas que introduzcan diferentes paradigmas (funcional, lógico, …). Es por esto que también estoy particularmente interesado en Haskell y Scala. Esto no solo te hará un mejor programador en general, sino también un mejor programador de Python.
¡Gracias por preguntar!