Etiquetas
…y quizás tampoco las soportan los demás programadores.
En mi ordenador funciona
Si el código no funciona en un ordenador con toda las dependencias adecuadas instaladas es un error de tu programa, sin dudas, no hay excusas. Nunca digas esta frase, sólo demuestra que todavía no estás preparado ni para asumir la responsabilidad de tu propio código. Si eres alumno demuestra que no te interesa aprender sólo aprobar con el menor esfuerzo posible… además de tomar como tonto al profesor, como si nunca hubiese oído esta excusa (la oímos decenas de veces cada vez que se presentan prácticas).
El programa peta/se cuelga/no funciona ¿qué es?
Otro error típico, sobre todo de alumnos y jóvenes que preguntan al profesor o a un compañero. Si tú que conoces bien tu código no puedes encontrar el error, ¿cómo pretendes que otro te lo arregle sin conocer el mínimo detalle? Siempre tienes que ir con el código en cuestión, indicando la función o la línea donde falla y en qué condiciones. Si no lo haces así demuestra que todavía eres incapaz de analizar tu propio código. Un buen programador es capaz de analizar y estudiar cualquier código, algunos les puede costar minutos, otros muchas horas, pero es esencial saber hacerlo. Se aprende con mucha práctica, pero hay que comenzar con el código de uno mismo.
Pero si pasa los tests
Desde que se empezó a hablar de test units parece que algunos lo toman con el resultado de los dioses. Pero no, un test sólo verifica los bugs ya detectados o los que se imaginó el que los programó. Seguramente no consideró todos los posibles fallos con las diferentes condiciones que se pueden dar en el código que verifica. Sobre todo si es de un código que todavía no existe y que debe ser programado por otras personas. Por ello no es excusa que pase el test, en todo caso hay que pedir que se mejore el test con el caso descubierto en tu código. Mejor aún si tú mismo lo haces.
Eso no me lo enseñaron
No puedes ser espectador pasivo de tu aprendizaje ni esperar que los demás sean los responsables de enseñarte todo lo que necesitas aprender para cada una de tus tareas como programador. Además es imposible que en unos pocos años de estudio puedas aprender todas las cosas que necesitarás durantes las décadas futuras en tu profesión. Es cierto que muchas cosas que deberían darse no se estudian (y que también critico, a veces chillando por la universidad) pero una respuesta así indica que no asumes responsabilidad de tus conocimientos. Quizás peor, que no te enteraste qué es lo que debes aprender, un psicólogo te explicaría que es «deficiencia meta cognitiva». En todo caso sólo di «no lo conocía» o «no se me ocurrió, ahora mismo me pongo».
Pero el código funciona
Esta es una respuesta también muy habitual entre estudiantes y programadores novatos. Es como si un novelista respondiese a la mala crítica con un «pero si al final el mayordomo era el asesino, se entiende». Se da en dos situaciones diferentes:
- El código es ilegible: Hay programadores que todavía piensan que los lenguajes de alto nivel se hacen para los ordenadores no para los humanos. Pero no es así, llevamos 70 años diseñando y desarrollando lenguajes de alto nivel principalmente para facilitar el trabajo a las personas, y no sólo al programador original, sobre todo a los demás que tienen que entender o modificar el programa. Una de las condiciones fundamentales de todo programador es que su programa se legible, que sea «fácil y agradable de leer». Hay novelas que son fáciles de leer, otras que son complejas, hay cortas y otras largas y pesadas, pero todas respetan normas básicas: sintaxis, gramática, oraciones con sustantivo verbo y objeto, limitaciones de adjetivos, puntuación, párrafos, separación entre palabras, líneas, párrafos y bordes de la página. El código fuente de un programa debe ser similar, hay normas generales (por ejemplo espaciado, sangrado, nombres de funciones variables, ficheros, etc.) y otras que son «idiomáticas» de cada lenguaje o de programadores.Lo fundamental es aprender esas normas, respetar tantos las generales como las particulares. Si no lo haces no sólo demuestra la incapacidad como programador, también una falta de respeto a los que tendrán que analizar tu código (sean estos los colegas o los profesores que te tienen que poner una nota).
- La solución es inadecuada: Muchas veces recurren a soluciones que no sólo no son óptimas, también las peores de su clase. Por ejemplo re-implementar un ordenamiento de burbuja cuando tienen la función qsort(), o una búsqueda secuencial cuando el array está ordenado (los dos últimos son problemas de no recurrir a la menor complejidad de ejecución bien conocidas), o hacer una espera activa cuando tienen primitivas sencillas con bloqueo, etc. En la «ciencias de la computación» se estudian estos temas, algunos de ellos son fundamentales y de conocimiento obligatorio. No sirve que el programa funcione para un caso concreto, debe funcionar para todos los casos previstos y con la eficiencia «formal» bien conocida en el área. Conocer esos temas es parte del proceso de aprendizaje de un programador, si alguien te indica que la solución es errónea quizás pueda estar equivocado, pero nunca la excusa puede ser «pero funciona».
Vaya mierda de código, debería estar programado con ponga_aquí_las_últimas_tecnologías_o_frameworks
Es el típico error que hemos cometido todos. Normalmente se hace sin tener en cuenta las condiciones del momento en que comenzó a desarrollarse, los requerimientos iniciales, la tecnología y recursos disponible, ni la multitud de limitaciones que tienen todos los proyectos. Además, el estado actual de un proyecto es la evolución durante años de programadores, tecnologías y objetivos cambiantes. Cada uno de estos elementos aporta a la deuda tecnológica, tú también generarás la misma deuda, todos los hacemos.
Así que nunca sueltes esta frase ligeramente, sobre todo si vas a una empresa, solo demostrarás que además de ignorante no tienes respeto por el trabajo de tus colegas. Quizás el código realmente sea malo, pero antes de decir una palabra espera un tiempo, aprende de su historia, y si aún así piensas que puede mejorarse propón la solución, o mejor, envía el parche.
Un secreto: cuando los programadores oímos a otro soltar esta frase de un código que ni conoce pensamos «no podía faltar el gilipollas». No hagas de gilipollas.
Yo hubiese usado ponga_aquí_la_librería_de_moda
Si dices esto es porque alguien te preguntó que te parece lo que implementó. Decirle que hubieses usado otra librería ya no ayuda y quizás estés equivocado o no conoces todos los detalles. Es mejor analizar antes, proponer cambios concretos y reservar esta frase sólo si no hay una solución adecuada (aunque muy raro que no haya soluciones). Nunca nunca nunca sueltes esta frase sólo por ver las primeras líneas de «include» o «package».
Yo hubiese desarrollado un nivel intermedio de servicios ponga_aquí_el_formato_de_moda
Es el típico ejemplo del programador entusiasmado que tiende a la «sobre ingeniería» y aplicar en un proyecto todas las técnicas y palabros que aprendió o leyó. Pero una una ingeniería se basa en hacer las cosas en su justa simplicidad, agregar servicios y capas intermedias con formatos de intercambio (que requieren conversiones y serializaciones/deserializaciones, antes de ayer era binario, ayer era XML, hoy es JSON, mañana quién sabe) muy pocas veces está justificado y casi nunca elimina complejidad, todo lo contrario. Lo que suelen añadir es complejidad, latencias, consumo, necesidad de recursos y más administración.
Depende del tipo de proyecto sí que es necesario desarrollar una capa de traducción de este tipo, por ejemplo cuando haces el backend/API de servidor para apps móviles. En estos casos la capa es casi un objetivo y requerimiento inicial del desarrollo, no una idea creativa para aumentar la simplicidad de desarrollo y mantenimiento.
Intenta mantener el programa lo suficientemente simple para que se cumplan los plazos y la complejidad esté controlada, si el proyecto crece y necesita agregar capas y servicios se hará en su momento. En todo caso deberías preocuparte más de la estructura de datos: que sean simples y flexibles para expandirlas y usarla de otras maneras. Y si aún así te parece que una capa intermedia con traducción es formatos es necesaria, consúltalo antes con los programadores más expertos. Nunca lo plantees como primera opción, suele generar unos 🙄 importantes.
La universidad debería enseñar ponga_aquí_la_última_moda
De este tema ya escribí varias veces, la última en Lo que se aprende, o debería, en la carrera de informática, pero insisto, el tiempo es limitado, no se pueden aprender todas las tecnologías que podrías encontrarte en tu carrera profesional. Antes eran cinco años, ahora cuatro, y ya hay una ley para que sea de tres. Ni en las mejores universidades del mundo podrán enseñarte todo lo que cree importante cada uno de los «actores del mercado», si fuese tan sencillo las currículas no serían tema de debate y cambios continuos hasta en la ACM.
Por otro lado las «tecnologías de programación» no cambian tan radicalmente, muchas veces se usan ideas que ya se estudiaron y desarrollaron antes. Por ejemplo el tema de concurrencia tan estudiado en sistemas operativos y mainframes hoy vuelve a estar de moda por los procesadores de múltiples núcleos, sí ha avanzado pero los principios son los mismos que hace 40 años. Otro ejemplo, NoSQL, las mismas técnicas de los años 70 pero usadas para tener bases de datos distribuidas mucho más limitadas que las relacionales, ¿hace falta tener una asignatura para saber cómo funcionan los hashes y su almacenamiento en fichero que viste en estructuras de datos o «algoritmia» (signifique lo que signifique)?.
¿Realmente hacen falta asignaturas obligatorias específicas sólo para «desarrollo de apps» cuando hoy lo más raro que te encuentras es que tienes que tener un thread para conectarte a un servidor o mostrar imágenes o listados largos? (ojo, sí que deben ser parte de prácticas o laboratorios, que ya se hacen en la mayoría de universidades).
¿Por qué no usaste el framework X?
Qué pesadilla, no hace falta seguir, ¿no?
Ninguno de los frameworks se ajusta a lo que necesitamos, vamos a desarrollar uno mejor
🙄 🙄 🙄
lo de picar código es una mierda, después de más de 20 años en esto tengo que decir que nadie lo valora, total pulsar teclas lo hace cualquiera.
Es el primer artículo de los que escribes que no me gusta porque en este mundillo hay mucho mantenimiento de cosas que han evolucionado con los años y que tienes que tocar para ayer, sin documentación ni nada y que se sujeta con hilos. Lo de la ingeniería del sw es ahí os las ingeniéis los del chogüer…
@macmore
Lo que hablas está relacionado pero no es lo mismo, ni lo estoy justificando. De hecho todo lo contrario, lee el apartado «El código es ilegible» (por ejemplo).
Tampoco defendí nunca lo de poner demasiadas medallas de ingeniería a la «ingeniería del software», te equivocas si crees que todos pensamos así. De hecho ni hablo de «ingenieros», digo «programadores».
Será lo mas complicado que haces tu, porque en móviles se pueden desarrollar auténticas virguerias, véase GPU Image
@sorc
¿Eh? Si te refieres a lo de imágenes de cámaras y shaders se hace desde finales de los 80 con las GL de Silicon Graphics (SGI), las antecesoras de las openGL. Y lo sé porque programé un módulo de cámara en tiempo real más modelo 3D mezclado en tiempo real sobre una SGI Onix con placa Sirius que fue demostrado en la feria mundial de TV en Ámsterdam en 1994 (Proyecto MONALISA). Y esa técnica ya era conocida.,de hecho se estudia (o estudiaba) en las asignaturas de informática gráfica hace casi 20 años en la UIB.
Hay que conocer más la historia.
Jo mira que me caes un poco mal, pero este articulo esta clavao, tienes más razon que un santo 🙂
Está interesante. Le faltó la otra parte. Profesores o doctores universitarios, que les hacen memorizar un lenguaje de programación para ponerles un parcial y un final, sobre un folio en blanco, sin máquina, donde tiene que soltar de memoria código, ante un problema. Sin documentación, ni posibilidad de compilación o interpretación. Pasa mucho.
Me fastidia lo mismo, aunque en empresa hay una escusa más que justifica el fallo
«es la primera vez que hago algo así» suele ir acompañando a «eso no me lo enseñaron».
***
Como anecdota comento que empecé a programar en 1981 en un ordenador personal minusculo y limitado. A los pocos días la única forma de hacer algo era escribiendo en ensamblador en un papel y sacando el código binario a mano.
Por mi cuenta aprendí varios lenguajes y sistemas operativos. En el 85 no se podía estudiar informática, y la única asignatura que tuve relacionado con informática era programación en pascal sin utilizar ordenador, todo en papel, hasta las prácticas (había un ordenador olivetti M80 compartido).
Durante los siguientes veinte años segui programando, y cada vez que se ponía algo de moda creí que había descubierto la polvora y me empeñaba en usarlo. Ya por hobby decidí estudiar la carrera de informática formalmente en mis ratos libres y sin dejar de trabajar (sin pedirlo me convalidaron asignaturas que tenía intención de volver hacer porque no me acordaba de nada).
Lo que más me llamó la atención constantemente durante toda la carrera ( y sigue llamandome) es el hecho de que muchas técnicas o algoritmos tienen casi más años que yo.
Veo que no tienes ni idea de mobiles, pero bueno, no se puede saber de todo. Despreciando la programación mobil de esa manera, asi luego tenemos meneame app… uy! perdon que no hay app oficial.
A ver Ricardo, muy en desacuerdo del primer punto. Lo de en mi ordenador funciona lo he dicho en el trabajo recientemente. Si yo despliego un WAR en la misma versión del jboss en una máquina distinta y algo no funciona igual, es porque algo falla, pero no en mi código. Que había diferente? la base de datos. El responsable de la base de datos no había hecho los cambios requeridos, y claro, no funcionaba igual. Así que eso de «demuestra que todavía no estás preparado ni para asumir la responsabilidad de tu propio código» es una chorrada. Yo asumo mi responsabilidad, mi código. Lo que no puedo es asumir la responsabilidad de otros, yo hago mi trabajo, los demás tienen que hacer el suyo.
Gallir, respecto a los frameworks, con los emoticonos no me queda del todo claro tu recomendación, sobre todo por lo que comentas antes de aquellos frameworks tan complejos que luego actualizar se imposibilita… o se hace muy difícil.
Respecto al tema de los frameworks,¿Qué opinas (en modo texto) 😉 ?
Gracias!
Estáis escribiendo de verdad o venís a criticar por criticar? Si llevas 20 años picando tecla deberías levantar un poco la cabeza del teclado y ver un poco más allá. Picar código es una cosa y programar es otra.
Hay que tener en cuenta que la finalidad de las «ingenierías», tal como la misma palabra dice, es enseñar a usar el «ingenio». Los lenguajes y tecnologías que se usan son simplemente herramientas. Eso es lo que gran parte del alumnado no comprende (y algún que otro profesor).
El colmo de los colmos. Después de crear semejante aberración de código como es menéame, el tío se permite el lujo de dar lecciones al resto de programadores en tono prepotente… typical spanish.
Si alguien dice cualquiera de las cosas que has dicho no se podrá considerar programador.
SorC, revisa la ortografía que móvil es con v, como para dar lecciones.
La programación móvil puede tener alguna peculiaridad como programar para interfaces de entrada táctiles pero en muchos casos no tiene nada nuevo que no se haya usado antes en escritorio, web o servidor.
@Sorc
Todavía no aclaraste a qué te refieres con lo de «GPU image».
Y no, no tengo idea de cómo programar móviles: https://github.com/gallir/SpokenPic (lo hice todo en dos meses partiendo de cero, sin haber programado Java ni móviles antes). Qué manera de soltar tonterías en vez de argumentar y dar información.
@elpaisdelosciegos
Lo que tú digas, pero ni has leído «Vaya mierda de código, debería estar programado con ponga_aquí_las_últimas_tecnologías_o_frameworks». Tu nivel de trol es mediocre, visto lo visto tu nivel de programador será peor, pero es fácil soltar bilis desde el anonimato sin mostrar nada de código. Uno de esos pseudo programadores despreciables, por ejemplo porque ni se le ocurre pensar que el código de Menéame cumple 10 años en unos meses, comenzó con PHP4 y no existían frameworks, ni siquiera sistemas de templates razonables. Pero ser un burro es fácil.
En fin, como dije pienso que una persona que diga cualquiera de las cosas que ha comentado Gallir en el post no se podría considerar un programador o al menos un buen programador, un programador entusiasta.
Y respecto al resto de comentarios es muy fácil criticar y hablar. Pero creo que Gallir tanto por su recorrido profesional (profesor, programador, divulgador ciéntífico) como por su éxito con plataformas como méneame se merece un respeto además de que es de los pocos profesionales que valora, respeta y ama el mundo del desarrollo de software gracias al que muchos comemos.
Otros simplemente se dedican a desprestigiar porque el día de mañana quieren ser pms.
A ver quien la tiene más larga…
Totalmente en desacuerdo con la mayoría de cosas (por no decir todo) que comentas… Si dependiera de mí, no te contrataría como programador en mi equipo… que hayas tenido una magnifica idea como es Menéame no significa (como has demostrado con este artículo) que tengas ni la más remota idea de programar y muchísimo menos de dar «consejitos» al resto de la prole… no te olvides nunca de eso…
Madre! Ricardo que repaso te están dando… Mira que normalmente tienes trolls por aquí, pero lo de hoy es desproporcionado.
Estoy de acuerdo en casi todo lo que comentas, aunque quizás hay algunos casos en particular dentro de lo que es el mundo empresarial real donde al programador no se le dan las herramientas o formación adecuadas y como consecuencia de esto si que se puede dar el caso de que el código se comporte diferente según en que sitios.
Por supuesto que hay una diferencia entre cruzarse de brazos diciendo «en mi computadora funciona» y aportar información eficaz para ayudar al resto de equipos a trabajar mejor…
A veces me da la sensación de que la gente de la academia estáis muy separados del mundo laboral real. Tu probablemente gestionas bien Meneame, pero hay mucho director de desarrollo por ahí que han ascendido a base de favoritismos y mamandurrias y que no sabe que su responsabilidad es velar por que al menos la gente esté informada de como son los entornos donde se despliega el software en el que trabajan. Y no puedes decir nada porque si te quejas vas a la calle.
Y sí, ya me lo has dicho otras veces, que sigue siendo culpa del programador… Pero alguna gente tiene que comer…
@jorge
No sé quién eres pero visto lo visto (ni siquiera te atreves a poner tu email) tampoco querría ir a trabajar contigo, así que no te preocupes, no me gustan nada los charlatanes de internet que se esconden en el [presunto] anonimato. Mucho menos si lo hacen para hablar de su profesión o de sus colegas, es de lo más repugnante que puede haber.
Osea que le profesor al final no está para nada. Genial, así va la educación en este país.
Por otra parte, resulta curioso que se diga que si los códigos no funcionan es culpa del programador, cuando la mayoría de empresas que tenemos en España quieren el código rapidito y luego ya si acaso vendrán los parches.
Como siempre, Ricardo dando lecciones al mundo.
@anonymous
Ya ves, parece que están molestos, normal, deben ser los que más dicen esas frases que critico 😉
¿Me dices a mí que estoy alejado del mundo real? Joder, lo que le espera a un profesor que nunca tuvo una empresa, exigís demasiado «mundo real» 😉
Independientemente de la cualidad de los jefes (no los defiendo, soy más crítico con los jefecillos que con los programadores), hay frases ya muy cansinas e injustificadas.
Los programadores sois unos soberbios. Entiendo que uno quiera creerse el rey del mambo después de tanto esfuerzo invertido, pero siempre deberéis mucho más que todo lo que seáis capaces de aportar, por mucho que sea. Se recomienda respeto y humildad.
@mangrar, creo que tu caso refleja un claro problema en como realizáis las subidas a producción.
No obstante, estoy de acuerdo contigo, el «a mi me funciona» puede ser una excusa perfectamente valida en algunos casos 🙂 (Y posiblemente lo sea en tu caso si no tienes posibilidad de cambiar el proceso de puesta en producción)
En mi trabajo tenemos un entorno de producción normal y otro superseguro para un cliente especialito. De este segundo yo no puedo saber nada porque no estoy autorizado.
Alguna vez ha fallado algo en dicho entorno, yo poco más podía decir aparte de «en mi maquina funciona, en qc también y en producción ‘normal’ también».
(Normalmente el problema suele ser diferentes configuraciones de red, dns, routing, firewalls, etc)
Despues de 14 años trabajando en el sector estoy de acuerdo con practicamente todos los puntos admitiendo además que en mis inicios yo tambien soltaba perlas de ese tipo.
Repito para @Gallir, que creo que se le ha pasado por alto mi mensaje anterior:
Gallir, respecto a los frameworks, con los emoticonos no me queda del todo claro tu recomendación, sobre todo por lo que comentas antes de aquellos frameworks tan complejos que luego actualizar se imposibilita… o se hace muy difícil.
Respecto al tema de los frameworks,¿Qué opinas (en modo texto) 😉 ?
Gracias!
La mayoría de las cosas que comenta son casi obvias en cualquier entorno de trabajo, son más propias de alumnos que de desarrolladores con experiencia.
Sobre frameworks y nuevas tecnologías me permito apuntar que no siempre lo más nuevo es lo mejor. Si los sistemas críticos se usan con software antiguo pero muy probado es por una razón. Quizá que tu propia empresa sea un laboratorio de tecnologías punteras sea una buena idea porque arriesgas tu dinero. Cuando juegas con el dinero de los demás tienes que ver qué necesitan los demás, no qué te parece a ti más guay ahora mismo.
Sobre los trolls, normalmente la gente que critica el software antiguo de esa manera nunca ha tenido que responsabilizarse de una aplicación grande en su vida. El movimiento se demuestra andando. Si no hubiera visto esos argumentos en mil gallitos que se cagan las bragas en cuanto tienen que bajar al ruedo, y después salir llorando, hasta me indignaría un poco.
Querido Gallir, primero decirte que meneame es un portal excelente y me permite hojear notícias a diario. Grande! he leido los comentarios a esta notícia y algunos tinen un tono un tanto absurdo (lo achaco a la envídia). El artículo es un poco flojo, pero no por los puntos que comentas, sinó porque faltan algunos (y porque, bueno, has escrito cosas mucho más interesantes!).
Aprovecho por tanto este comentario para transmitirte lo que hace mucho tiempo que pienso: grácias!
AD.
@jesusda
Está el enlace a https://gallir.wordpress.com/2015/01/19/que-tecnologia-utilizarias/ Por supuesto que estoy a favor de usar frameworks (cuando toca), sólo ironizaba con que todo el mundo cree que su preferido es la «bala de plata» 😉
Ricardo, no te quito la razón en lo que cuentas y como bien dices en distintos puntos hay quien da excusas que no valen… el cliente necesita una solución y lo demás son tonterías. Yo por donde voy es por el lado de que esto de picar código, copy/paste o como se quiera llamar es muy desagradecido, no se valora y por eso digo que no me ha gustado el artículo. Es como ponerse a hablar del cáncer, pues no es un tema que me agrade después de haberlo sufrido muy de cerca, salvo que sea por una terapia o un medicamento que podría curar a mucha gente… pero la vida no es tan bonita. Me he encontrado con problemas que uno no se imagina, por ejemplo… ¿qué una MFC tenga un bug? ¿Qué un sqlserver pierda memoria? Eso es lo último que te imaginas… y primero piensas que has sido tú… que algo se te ha escapado… pero cuando aíslas el problema tras horas y horas de pruebas, trazas… y ves la realidad entiendes que esto de programar o como se quiera llamar no compensa. De todo esto lo que he aprendido es que no quiero que mis hijos se dediquen a esto y si puedo evitarlo cuando sean mayores les diré que se dediquen a otra cosa, por ahora lo de ser consejero tiene todas la papeletas, sin responsabilidad y cobrando un pastón… a lo más que sea aburrido, pero es que no todo es perfecto.
Nos leemos.
Lo unico que te digo @gallir, es que no argumentes de un mundo que desconoces, no digas que en moviles se juega con hilos y ya esta, porque no es verdad y demuestra que no has trabajado con mobiles.
En mi opinion , y viendo los numeros del mercado, la programacion en dispositivos moviles es muy amplia. GPU Image, es un framework , que si te lees el codigo, veras que es bastante complicado. No te digo que no hayas hecho , o dejado de hacer, cosas en Programacion, lo que quiero que se aclare, es que en moviles hay mucho por hacer, y programacion multi hilo es el 1% de lo que un programador necesita saber para desarrollar en las actuales plataformas.
Dicho esto, en la universidad, que de poco sirve para ser programador, se deberia dar mas importancia y estudiarse mas afondo. Pues gracias al movil se pueden salvar muchas vidas, y eso es lo mejor que se puede decir de una herramienta.
He leido tu codigo , al menos has tenido la decendia de usar 9patch, no esta mal ( sino lo has copiado)
@sorc
Y no digo que las apps no sean un desafío, pero por ahora no hay nada que viole los principios fundamentales de informática como para decir que «no sé programar apps porque no me lo enseñaron en la universidad». Eso es lo que critico.
Y lo que me dices el framework GPU Image, si no me equivoco es de iOS y están haciendo algo similar con openGL en Android. No sé qué tiene de especial, un framework (o librería o toolkit, no lo sé) para hacer cosas con la GPU, algo que se hace desde hace años (hasta para minería de bitcoins, que eso sí es otro uso diferente) mediante transformaciones 3D y texturas. Esto se estudia en informática gráfica y es conocido desde hace años. Es decir, no encuentro la excusa de «no nos los enseñan». Otra cosa diferente es que no estés «entrenado» suficientemente y que te cueste algo más arrancar, pero eso es otro debate y no tiene nada que ver con «es algo totalmente nuevo e inexplorado».
Por otro lado y quizás más importante, en vez de explicar de qué iba el tema y argumentar los problemas que te encuentras que no se hayan visto antes te dedicaste a decir cosas como «no tienes idea de móviles».
A mi nadie me enseño a Programar Aplicaciones. Cualquier programador que diga que no sabe hacer algo porque no se lo han enseñado, mejor que se dedique a la Jardinería, se gana lo mismo o mas y se vivi mas tranquilo.
Quizá, mis maneras no hayan sido las correctas, y me disculpo por ello, pero es que me toca la fibra (respondes en caliente) cuando alguien habla de apps, como si fueran caramelos. Hacer una app cuesta y mucho, y luego hay que mantenerla (sin hablar de videojuegos, es otro mundo)
pd: Please, haz una app decente para meneame, sino te la hago yo.
Si en lugar de coger chavales de practicas por cero euros para trabajar de verdad, se contratase a alguien con experiencia, no nos encontraríamos con estas frases en una labor seria, pero como queremos duros a dos pesetas, es lo que hay.
@sorc
No tenemos ninguna app de Menéame, ni creo que la tengamos si no se gana nada sobre lo que hay ya en web. Aunque miento, sí tengo una simple con WebView y que estoy probando con cargas parciales (la puedes ver en peta.meneame.net) pero tenemos problemas con AdSense que al sexto empieza a fallar.
y no dije que costase «poco», también cualquier programa de escritorio cuesta mucho, hablaba de «conocimientos nuevos» que dicen que hay que enseñar. Y no lo veo, todavía.
Gracias Gallir por la respuesta y perdona por la insistencia. 😉
Un saludo!
@MrX, tu comentario en un mundo en el que el software es el principal activo intangible me parece denigrante.
Por lo demás, estoy de acuerdo en casi todos estos puntos. Soy informático y creo que todos hemos soltado esas perlas alguna vez. Mi experiencia es principalmente en Java y estoy harto de las capas, de los jefecillos que creen que arquitectura es igual a capas y más capas y que conocen una tecnología y la quieren aplicar cuando no es la óptima porque no conocen otra cosa. Hay mucho que cambiar en como se crea software en España y cada día que paso en Finlandia lo veo más y mejor.
@mosquitikon cuando estas acostumbrado a trabajar con moviles en un entrono en el que todo el mundo habla ingles, mobil pasa a formar parte de tu vocabulario.
en mobiles 😉 he visto cosas que aun no he visto en Desktop o Web, por ejemplo el tema de los pagos mobiles , aunque parezca una tontería, ni te imaginas la cantidad de variables que se dan, el testing de campo que tienes que hacer para soportar por ejemplo pago en 54 paises en gasolineras.
el tema de la localización en interiores, por mucho que quieras , es un campo destinado a los mobiles.
Y es que la gente se olvida que un mobil sirve para mas que para lanzar pájaros, y fuera de la apple store ( debido a restricciones por parte de apple) se realizan proyectos de millones de euros, que no es por el dinero, sino por la complejidad. Y si no hemos roto los principios fundamentales de la Informatica, pero no tiene nada que ver desarrollar para Desktop o web que para moviles, es mas, no tiene nada que ver desarrollar para iOS para Android o para Blackberry. todo requiere un estudio y un desarrollo diferente, sino quieres acabar haciendo clones y pasandote por el forro la experiencia de usuario de cada plataforma.
Pues yo lo veo de otra forma:
En mi ordenador funciona. Lo que quieras, pero reconocerás que es un buen comienzo que al menos funcione en uno.
El programa peta/se cuelga/no funciona ¿qué es? Sin duda esto es un síntoma de tener una mente lógica… para qué voy a buscar el error si el de al lado o el profesor saben por qué me falla?… sin duda, quien actúa así será bueno sacando contraseñas por ingeniería social, que siempre es más efectivo que por fuerza bruta.
Pero si pasa los test, pueg hay dos opciones y sin duda, mejor será que los pase que que no.
Eso no me lo enseñaron. Efectivamente, el nivel de enseñanza en este país es una puta mierda.
Pero el código funciona. Dí que sí. Esto es lo importante.Y sSi está mal optimizado que se compre un I7 y suba memoria, que para los putos juegos no le duele hacer eso.
Vaya mierda de código, debería estar programado con ponga_aquí_las_últimas_tecnologías_o_frameworks.
Pues aunque sólo sea para joder un poco a quien lo ha estado programando, me parece bien. Que se entere de lo desactualizado que está, restríegaselo.
La universidad debería enseñar ponga_aquí_la_última_moda (¿pantalones de pitillo?)
Yo tengo 15 años de experiencia programando en múltiples tecnologías (empecé con C++, luego pasé por Java y ahora estoy con PHP y Objective-C, hay que formarse continuamente y reciclarse con lo que demanda el marcado), y múltiples campos (empecé de asalariado, luego de freelance, y ahora estoy metido en una startup) y estoy de acuerdo con todo lo que se dice en el artículo. De hecho, sé conscientemente que al principio caí en muchos de esos errores que se comentan, por lo que leyendo algunos comentarios al artículo, creo que el problema está en la falta de experiencia de alguno de los que comentan. Con el tiempo te vas dando cuenta que no eres el rey del mambo como te pensabas, que todos los frameworks/lenguajes/tecnologías tienen sus pros y sus contras, y no hay ninguno mejor que otro, y que la ingeniería del software está muy bien (yo soy Ingeniero Informático), pero cuando estás en un proyecto en lo que lo importante es el «time to market», por ejemplo, toda la teoría se va al garete.
Pues qué quereis que os diga, yo estoy algo más deacuerdo con gallir.
Porqué?
Pues por que no soy programador, aunque me gusta pensar que estoy en proceso de serlo.
Soy autodidacta y aunque sin universidad también estudiante de programador. Hago webs por encargo y ,como me apasiona el mundillo, si que me he escuchado a mi mismo criticar alguna web, empresa o estudio de diseño por «no utilizar bootstrap» o «que paletos, podrian haber utilizado magento».
Ahora soy lo suficientemente novato para reconocerme en alguno de estos errores pero también algo más veterano para recordar proyectos de hace 6 años atrás que ahora algún listillo (como yo) podria criticar de mala manera después de 6 años de avances.
Y porsupuesto como autodidacta con recursos del 2015 no podría entender nunca que un ingeniero informático me soltara «eso no me lo han enseñado» porque le soltaba una colleja de 4gb en toda la tocha.
Por supuesto se pueden encontrar «peros» y casos especiales pero creo el concepto estaba claro.
Aunque si quereis seguir midiendo el tamaño de vuestros falos, ahí vosotros…
saludos.
He leído tanto el artículo como los comentarios de los usuarios y tengo que decir que el punto de vista de Ricardo es bastante acertado, pero quizás mal enfocado. Hace poco tuve la suerte de encontrarme un libro que se titula «El libro negro del programador» de Rafael Gómez Blanes. Una lectura muy interesante sobre los errores que se pueden cometer en el desarrollo de software. Recomiendo su lectura.
La mayoría de los puntos de los que se habla en el artículo se responde con algo tan simple como la deuda tecnológica. Es algo que sufren todos los proyectos y que, si no disponen de una revisión continua, nunca se paga. Cuando se diseña un proyecto se tiene que tener en cuenta que en el futuro pueden no valer las soluciones y hay que hacer una evaluación de riesgos y siempre, siempre tener en mente que las mejoras de código tienen que ser parte de nuestro trabajo diario. Los test y las pruebas son importantes pero un código que implementas hoy, es mejorable mañana y se debe mejorar.
Yo soy programador, quizás no tenga tanta experiencia como otros, pero no me va mal. Me he podido permitir rechazar cargos de dirección en importantes empresas por seguir siendo programador. La programación requiere un ejercicio de abstracción y creatividad comparable a otras actividades artísticas. Es imposible ser bueno si no se estudia a los grandes, se aprende de ellos y se les imita para llegar encontrar tu propio estilo buscando la perfección en lo que haces. Lo llamaría arte, sin duda.
Por último, me lo he pasado pipa leyendo el artículo y los comentarios… incluidos los de meneame :),
Tiempo atrás… un código complejo en C de mi AMD (totalmente compatible con el Pentium de la época según el fabricante) no funcionó en el Pentium de la Universidad.
Yo argumenté el tan manido «En mi ordenador funciona» y el profesor dijo que eso no le valía. Yo le contesté «perfecto, si me dices donde está el error me suspendes» y se puso echo una furia. El trabajo era en grupo y los compañeros pusieron paz y nos dejó volver a presentarlo.
Fuí a casa, lo recompilé (sí en el AMD, con dos cojones), lo volvimos a presentar y funcionó de perlas. No había tocado ni una coma. ¿Misterios de la informática?
@fidelbf
Si era C estándar lo más probable es que sea un problema de punteros o alineación/padding diferente. Me encuentro con estas cosas muy a menudo, y en todos es culpa del programador por no saber esos detalles (sí, una putada, pero hay que saberlos).
Si me pasas el código lo miro.
No me puedo creer cómo hay tanto crítico que no es capaz de comprender que el 99% del post es para enmarcarlo y no perderlo nunca de vista…
Llevo en mi curro 16 años, y continuamente estoy haciendo cosas que no me han enseñado, que no he hecho antes… Ahora estoy en dos proyectos como freelance y ambos son temas que nunca he tocado: lo más apasionante que puede hacer uno, cosas nuevas.
Cuando me preguntan qué me parece hacer algo que nunca he hecho o que desconozco lo advierto, no como queja, sino como valoración: no puedo dar estimación de tiempo si es un área totalmente nueva. Nunca ha supuesto para mi un impedimento el desconocimiento, es más, para mi el desconocimiento supone el aliciente de hacer algo distinto, de salir de la rutina.
«En mi ordenador funciona», o funciona de manera distinta, si no es dicho como excusa sirve como partida de la solución: buscas las diferencias entre los entornos y ahí está el problema.
Lo de mierda de código puede que lo haya dicho… pero después de pasarme al menos un día leyéndolo y analizándolo… llevo programando desde los 9 años… ahora con 40 tengo bastante perspectiva de mi evolución, por lo que he podido deducir el nivel de experiencia de los programadores de ciertas aplicaciones leyendo el código y diciéndome a mi mismo que estoy viendo los errores que yo tenía hace 10 años.
Lo de utilizar X ó Y (ya sean lenguajes, librerías, frameworks, tecnologías…) desde hace por lo menos 10 años tengo por cierto que lo mejor es distinto para cada momento y lugar, por lo que para cada proyecto hay que analizar al menos un poco qué herramientas se adaptan mejor para la faena… y a veces se utilizan herramientas que sin ser las más adecuadas aseguran terminar la tarea con éxito en el plazo convenido y por tanto son las herramientas adecuadas para dicho proyecto.
Chapó