Aquí os dejo un manual de prácticas de Python pensadas para aprender sin tener ningún conocimiento previo. Pensada para alumnos de bachillerato, pero invitamos a cualquiera que quiera iniciarse a que lo pruebe. Estas cosas que se comparten para el bien de todos tienen un alto coste en tiempo y esfuerzo, así que también se agradece mucho la difusión y aportaciones que queráis hacer.
|
etiquetas: prácticas , python , desde cero , javier fernández panadero
Que sí, que el autor podría hablar de TDD, de inyección de dependencias, y de lo que quieras, pero por lo que he visto en las primeras páginas, es un manual para SUPER PRINCIPIANTES que no han programado en la vida. Es como el manual del BASIC del Spectrum para que alguien haga el típico programa de input("Dime tu nombre") y luego "Hola {}".format(nombre)...
Digo yo que como introducción valdrá, y sin necesidad de explicar inyección de dependencias, o de explicar patrones de diseño, para que un "chaval" se acerque a python y, si le pica la curiosidad, se mire cosas más serias...
Es un tutorial para que gente que no tiene ni idea haga sus primeros prints y fors y vea qué es un programa y qué cosas se pueden hacer. No lo van a enviar en la próxima sonda Voyager como representación de la Raza Humana...
Hay que ver qué registro usar con cada destinatario...
En fin, me rindo.
print ("pos ok tio")
Mira que ponerse en publico
Para aprender a programar y crear una buena base un lenguaje como ADA es bueno. De ahi puedes transicionar a C / Java / Python y lo que quieras, porque vas a tener claros los conceptos. Al final el requisito es que aprendas en un lenguaje procedural, fuertemente tipado y con manejo explicito de memoria.
if edad > 9 or altura > 1.0:
print('pasa')
else:
print('no pasa')
print('texto A')
print('texto B')
¿Cómo sabes ahí si "texto A" va en el else o no? Sin indentación es ambiguo y los ficheros PDF a menudo se la cargan.
En JavaScript la indentación también la pierdes, salvo por un detalle: tienes las llaves y con ellas el código siempre es funcional, y el indentado automático también va a funcionar.
if (edad > 9 or altura > 1.0){… » ver todo el comentario
print('pasa') if edad > 9 or altura > 1.0 else print('no pasa')
Pero hacer eso asi precisamente choca con el dogma de python.
print("pasa" if edad > 9 or altura > 1.0 else "no pasa")
printf("%s", ( edad > 9 || altura > 1.0) ? "pasa" : "no pasa");
En cualquier otro lenguaje es (variando sintaxis):
<condicion>?<resultado if>:<resultado else>
En Python:
<resultado if> if <condicion> else <resultado else>
Que para cualquier programador resulta confuso, ya que no sigue lo que viene a ser un 'standard'
El problema de Python es que un código copiado y pegado desde un PDF es ambiguo, con las llaves de C no ocurre eso.
Entonces, que me vendan ese lenguaje como mejor... pues no.
En cuanto a cual debe ir dentro y cual no, pues tambien habra que dejar que quien esta aprendiendo piense un poco no? Saber donde poner y como un codigo es el 10% del trabajo de un programador, el resto es copiar y pegar de stackoverflow.
www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 (están en inglés pero tienen subtítulos)
Si lo prefieres en español también tienes este Mooc de EDx:
www.edx.org/es/course/programacion-para-todos-2
( Yo lo hice hace tiempo en inglés en Coursera )
Para eso, que aprendan a programar con Excel
Ensamblador se tiene que aprender en la carrera en asignaturas de arquitectura de computadores.
Coñe, voy a haber seguido una buena práctica de chiripa.
Realmente el código máquina no es más que una traducción literal del ensamblador, cuando metes un opcode en ensamblador lo haces porque memotécnicamente es más fácil y mucho más corto a la hora de escribirlo, pero básicamente le estás diciendo al micro, por esta pata te meto un 1, por esta otro 1, por esta un 0 y por esta otro 1 y así sucesivamente pero con letras y de forma abreviada.
Tampoco es cuestión de estudiar C en toda su potencia, pero si para tener una noción básica (estructuras de código, tipos de datos, vectores, matrices, un poco de asignación dinámica de memoria, un poco de formateo, un poco de ficheros...).
De C++ me quedo con su sencillez para entrada y salida de datos (con "los piquitos"), pero para conocer más un ordenador "en… » ver todo el comentario
Si ya es TurboBASIC, QuickBASIC o GWBASIC ya es un tema de sabores. Pero todo el mundo debería conocer GOTO y, opcionalmente, GOSUB.
De verdad, la gente no tiene sentido irónico.
#33 Ni se te ocurra Basic, ni de coña.
Si quieres una sintaxis sencillita Pascal, pero si apuestas fuerte C o Java.
#33 cualquier lenguaje imperativo con el que conocer las estructuras de control y funciones/procedimientos. La sintaxis es irrelevante.
También evitar los lenguajes orientados a objetos, al menos al principio. No se debería hacer OO hasta pasar por Patrones y tener un mínimo de experiencia. Eso descarta Java, Smalltalk y Objective-C.
También descartaría el uso de librerías aunque sean las standard.… » ver todo el comentario
Tuve unos NodeJS y siendo todo código, donde hasta los logs dependen del programador, de lo que le salga de los cojones; lo tenía que administrar yo.
Horrible, soñaba con esa puta mierda. Administrar código, claaaroooo.
Eso con C no era un problema, con JavaScript tampoco. Es un problema que ha introducido Python a lo tonto, porque no era tan difícil seguir la estela de C y añadir solo lo que se quiere añadir.
Que si, que hay que indentar, pero una cosa es forzarlo en mayor o menor medida y otra es confundir la funcionalidad con la legibilidad, que es el problema de Python, que la funcionalidad depende del indentado.
Lo hacen por "nosotros"
Decir que esa es una debilidad de Python es como decir que los demas lenguajes son peores por depender de las llaves, porque ¿y si en tu teclado se te rompe la tecla de la llave { eh, eh, eh? a ver que haces ahora listo????? vas a estar todo el rato copiando y pegando llaves???
A que es una gilipollez? pues eso.
Es cierto que se suelen dar los ficheros en un anexo, pero fíjate que con C eso no es problema.
De todas formas: ¿Te gusta estructurar el código con espacios? Me parece estupendo, pero luego no pretendáis que al resto nos guste así, porque yo he tratado de programar para FreeCAD y en pocas horas terminé odiando Python y lo de programar con espacios.
Pienso que Python está bien para algoritmos sencillos, pero en el momento que acumulas varios niveles de indentación puede ser confuso. Vaya que está bien para los que están aprendiendo a programar, o los que lo necesitan para cosas muy especificas en matemáticas,… » ver todo el comentario
Yo typescript lo uso en dos partes de una aplicación web:
-> Para el cliente en angular (obligatorio typescript, no confundir angular con angularjs) que consume datos del servidor REST
-> Para el servidor REST en nodejs usando express pero con código typescript transpilado a código… » ver todo el comentario
A Python lo podemos criticar por un millon de cosas, pero el que te "impida" (que no lo hace) indentar mucho vendria a ser algo positivo mas que negativo.
El problema de la indentacion es que puede dar lugar a errores inesperados que con llaves no existirian. Por eso en C se recomienda poner siempre llaves incluso si… » ver todo el comentario
if edad > 9 or altura > 1.0:
print('pasa')
else:
print('no pasa')
Así sale en el Bloc de notas, sin indentar, en JavaScript la cosa no iría mejor, salvo por un detalle: en JS al haber llaves el código siempre va a ser funcional y además se puede indentar automáticamente en el editor. Yo no pongo en duda las bondades de Python, pero basar el código en la indentación y no seguir el estilo de C, siempre lo veré como un error o incluso un retroceso tecnológico.
Que si, que está muy bien lo de indentar el código, pero... ¡No basar la funcionalidad del código en la indentación!
Menudo peligro.
Igual se recomienda usar espacios para indentar (en todo caso los editores serios convierten los tabs en espacios para comodidad) y ahí no hay problemas en el copiar pegar.
Edit: ahí entendí, el problema es el trim que está haciendo menéame en los comentarios, bueno, en cualquier foro de programación hay tags para específicar código...
if edad > 9 or altura > 1.0:
print('pasa')
else:
print('no pasa')
Por eso me gusta más JavaScript y C, eso si, bien indentados, pero con sus llaves para separar el código.
Javascript está donde está sólo porque es el único lenguaje que interpretan todos los navegadores, pero como lenguaje de programación es un pastiche que pasará a la historia como la mayor violación del principle of least astonishment (PoLA) de un lenguaje conocido.
Y para muestra... un repo
github.com/denysdovhan/wtfjs (quicir: WTF, JS)
Respecto a Python es precisamente su… » ver todo el comentario
¿Eso en campos de fútbol cuánto es?
Últimamente estaba usando finxter, que te propone muchos problemas de python y tienes que averiguar la solución. Rollo gamification:
app.finxter.com/learn/computer/science/
Pero llegado a un punto ya tienes que pagar una pasta para seguir usandolo. Alguien conoce algo parecido con ejercicios amenos y tal?
www.codewars.com
Yo vengo de JAVA y quiero empezar con python y este manual no me parece un mal punto para comenzar. Ojo, y creo saber patrones de diseño y demás fanfarrias.
Yo paso de pedir recomendaciones, no parece que haya un estandar para aprender, solo puedo echar vistazos a cosas como estas e intetar aprender.
Yo por mi parte he dado las gracias y guardado en lugar seguro.
Me peleo con jython y le viene muy bien, la verdad.
Pd: no soy programador, soy del lado oscuro, sistemas.
Por otro lado, puedes hacer scripts para automatizar tareas que recurran a ciertos servicios, por ejemplo insertar algo en una bbdd. Yo lo tengo para tener control de las vms que tengo.
Es justo lo que buscaba
Salu2
Descargado y almacenado en RAID, seguro que haré buen uso de él.
Si alguien encargado del equipo (jefe de proyecto, CTO, Scrum Máster...) Contrata a alguien así sin pensar en formarlo más... Tiene un problema.
Si, además de contratarlo, no se da cuenta de que no resuelve adecuadamente, tiene 2 problemas.
Tu que quieres enseñar a diseñar a alguien que no sabe lo que es siquiera programar... Tienes varios problemas.
Y es que creo firmemente que lo siguiente que debe enseñarse después del hello world, herencia y polimorfismo, son nociones básicas de buenas practicas.
Sencillamente, no quiero que nadie que no tenga dichas nociones sepa programar.
¿Y el capítulo explicando la importancia de la inyección de dependencias y de que uno no debería programar nada más grande que un script de 500 líneas sin manejarlas?
¿Y el de los unit tests como requisito mínimo para comprobar que tus clases hacen lo que tienen que hacer?
Explicar cómo programar sin dar nociones sobre esos temas es como enseñar a alguien a conducir sin decirles que no se puede conducir borracho o drogado.
Que sí, que el autor podría hablar de TDD, de inyección de dependencias, y de lo que quieras, pero por lo que he visto en las primeras páginas, es un manual para SUPER PRINCIPIANTES que no han programado en la vida. Es como el manual del BASIC del Spectrum para que alguien haga el típico programa de input("Dime tu nombre") y luego "Hola {}".format(nombre)...
Digo yo que como introducción valdrá, y sin necesidad de explicar inyección de dependencias, o de explicar patrones de diseño, para que un "chaval" se acerque a python y, si le pica la curiosidad, se mire cosas más serias...
Por lo menos debería poner un disclaimer diciendo que el tutorial solo es valido para hacerte un script chorra para editar metadatos de ficheros o cosas por el estilo. A la que tienes 2 o 3 clases y no estás utilizando inversión de control y unit tests, lo único que estás haciendo es contaminar el ecosistema.
Es mejor que alguien no sepa programar en un lenguaje orientado a objetos, a que sepa hacerlo y no conozca la importancia de esos conceptos. Vuelvo al ejemplo de enseñar a conducir sin explicar que no se debe conducir borracho.
Es un manual básico para niños. Lo que tú hablas entra del ámbito profesional.
A la que tienes 2 o 3 clases y no estás ya implementando buenas prácticas, eres un peligro, lo hagas a titular personal o profesional.
Menuda mierda de opinión, con acritud. ¿Te recuerdo la opinión de Tanenbaum sobre la primera versión que público Torvalds de su SO? Según tú eso nunca debió haber llegado a ser publicado, porque el tribunal mágico de lo correcto y lo incorrecto debería haberlo parado.
Simplón que eres un simplón.