Diez señales de que no eres tan buen programador como piensas
Como es verano, hay mucho tiempo para pensar, me hizo gracia Diez señales de que no eres tan listo como piensas, y tenía ganas de provocar un poquillo elaboro la misma lista pero para programadores.
Estás convencido que eres “muy buen programador”.
En general los buenos programadores interactúan y trabajan mucho con el código de otros programadores, y siempre hay alguien que tiene soluciones más creativas, eficientes y elegantes que lo que se le puede ocurrir a una sola persona.
Los buenos programadores suelen pensar que hay demasiadas personas que programan mejor que él.
Reconoces inmediatamente a Jobs, Gates o Torvalds pero no sabes quiénes son y/o qué han hecho Turing –además de su modelo matemático tan conocido–, von Neumman –además de su famosa definición de “arquitectura”–, Dijkstra, Knuth, Wirth, Kernighan, Ritchie, Engelbart, Corbató, Hoare, Minsky…
¿Irías a un médico que no sabe qué ha hecho Pasteur o Ramón y Cajal? Pues eso. (No significa que saber la vida de esos personajes garantiza ser buen médico, pero un buen médico seguro que lee mucho sobre su profesión, si no sabe es que ni siquiera se preocupa en leer más allá de lo que le exigieron en la carrera, y que además se le olvidó una gran parte).
A primera vista del código de programas grandes de otras personas dices “vaya mierda de código, muy complicado, yo lo puedo hacer mejor”.
En general los programas grandes son desarrollados por muchas personas, cada una con su visión –a veces contradictoria con otros– y estilo propio. Aunque haya sido desarrollado por una sola persona, seguramente ésta evolucionó y cambió –en general a mejor– durante el desarrollo. También van cambiando la “realidad” y las herramientas, lo que implica que las soluciones no son siempre las mismas. Además el software se hace cada vez más complejo y requiere soluciones sofisticadas para solucionar los diversos problemas –por ejemplo las race conditions– que aparecen.
Un programador que ha participado en proyectos grandes reconoce inmediatamente estos patrones y problemas asociados, además de tener muy claro que una sólo persona es incapaz de desarrollar grandes programas por sí sola, por eso nunca desmerecería el trabajo de otros sin un conocimiento exhaustivo del programa y sus problemas asociados (y lo más seguro es que envíe parches o soluciones mejores).
Justificas que tu código es ilegible para no mostrarlo o publicarlo.
Este es un problema bastante importante en la gente que empieza a programar… y si perdura con el tiempo es que nunca ha llegado a comprender que los lenguajes de alto nivel se han desarrollado para las personas, no para la CPU –que sigue entendiendo sólo binario–.
Así te encuentras con código sin sangrar, variables y funciones con nombres que no dan ninguna pista de lo que hace –
kaka, pepito, f1, v1…–, variables de una letra –comoi, j, k– usadas en variables que no son contadores ni índices, ningún comentario… o lo que es peor, exceso de comentarios del tipo/* asigno 0 a la variable i */.Como las novelas, ¿alguien leería novelas sin ningún tipo de estructura de oraciones, párrafos y capítulos? ¿o sin signos de puntuación o escritas en lenguaje de teléfonos móviles? Si uno sabe de antemano que su código será revisado y modificado por otras personas se plantea escribirlo de otra forma, más acorde con el estilo de cada lenguaje y que sea agradable de leer.
Ésta es una gran ventaja de los programadores de software libre, además que se programa pensando en que otros lo mirarán, en general ya ocurre lo que está explicado en #2: se aprende mucho mirando el código de otros.
No sabrías definir en pocas palabras qué es la programación estructurada, ni sus relaciones y ventajas/desventajas con las arquitecturas y diseño del hardware.
Pues eso, un buen programador sabría explicar que las estructuras de control tienen un sólo punto de entrada y puede tener varios puntos de salida –aunque hubo bastantes discusiones sobre este aspecto–, y que estas restricciones tienen mucho que ver con las “localidad espacial y temporal” del código –además de las ventajas obvias del código fuente de alto nivel estructurado–.
Afirmas “el último lenguaje/librerías/framework XYZ es el mejor”. O que “C y ensamblador desaparecerán”, o peor aún, “el C++ reemplazará al C en los sistemas operativos”.
Cualquiera que haya vivido o leído sobre las diferentes tecnologías y soluciones informáticas entenderá muy bien lo que explica Brooks en “no existe la bala de plata” (There is no silver bullet, mejor traducido como “no hay soluciones mágicas”). Cada lenguaje además tiene sus ventajas y desventajas para cada tipo de problema. Hay cosas que se pueden solucionar mejor con un lenguaje que con otros. Por ejemplo el tratamiento y control de la memoria –gracias a los odiados punteros y asignación dinámica de memoria– que se puede hace con C son casi imposibles o tan costosos que no merece la pena en lenguajes como Java. Aún más, hay cosas necesarias en determinados programas que sólo se pueden hacer con ensamblador, como gestionar registros, TLB, cache, etc.
El que crea que con su lenguaje preferido puede solucionar todo es como el refrán para el que sólo tiene un martillo todo lo que ve son clavos. La informática y programación es mucho más amplio que programar sistemas de facturación o páginas web.
Te dicen que puedes tener una race condition en tu código y pones cara de pasmado.
La programación de sistemas modernos es cada vez más compleja, lo que hace que habitualmente se usen modelos de multiprogramación, programación concurrente y programación distribuida. Incluso la programación web es un ejemplo típico de multiprogramación. Todos esos modelos tienen asociados los problemas de concurrencia por compartición de recursos que hacen que los programas tengan fallos que parecen casi aleatorios aunque los algoritmos analizados independientemente sean correctos. Los conceptos y problemas de concurrencia son de los más difíciles de aprender, lo que sólo se logra con el estudio de los problemas fundamentales y mucha práctica.
Piensas que en la universidad deberían enseñar Java desde el primer curso y que enseñar Pascal no tiene sentido.
Este es el típico argumento de los que piensan que la universidad sólo debe enseñar lo que “demanda el mercado”, o aún peor, que él o ella sólo debe aprender lo que demanda su mercado.
El primer objetivo cuando se empieza a programar es aprender qué es un algoritmo, cómo se representa en un lenguaje de alto nivel, estructurado, secuencial e imperativo –es el modelo más usado y con más métodos formales de diseño y verificación–. Lenguajes como C++ o Java son antes que nada estructurados, secuenciales e imperativos.
Estos son conocimientos previos necesarios para aprender correctamente las abstracciones y estructuras orientadas a objetos, empezar con estos lenguajes con abstracciones y construcciones más complejas sólo introducen problemas y ruido en el aprendizaje, y lo que es peor, introduce vicios que luego son muy difíciles de eliminar.
Te han explicado alguna que tu código quizás se ejecute más rápido si lo compilas para reducir el tamaño antes que optimizar código y has pensado que te engañaban.
Así como está enunciado parece una tontería, pero sólo podrían entenderlo los que tienen un conocimiento más profundo de los que conocen a la arquitectura del hardware que ejecutan al programa. Esto significa conocimientos de gestión de memoria virtual, memoria cache, características del TLB, etc. (De hecho este es un caso real, el núcleo del Linux, la velocidad de los procesadores se incrementó notablemente más rápido que la memoria RAM, por lo que el papel de las técnicas de caché creció en relevancia).
Eres parte del movimiento mileurista, o te quejas del intrusismo laboral.
No conozco a ningún buen programador que cobre mil euros al mes –y conozco a muchísimos, la ventaja de haber sido su profesor–. El paro de los programadores es casi cero –casi diría que negativo en Balears, es una lucha dura evitar que los buenos programadores que están en tercero de informática no empiecen a trabajar sin acabar al menos la técnica, luego se eternizan como alumnos–.
Además, ¿no hablan tanto al “libre mercado”? Un buen programador no tiene problemas para encontrar puestos mejores. Un buen programador no está preocupado del “intrusismo”, si los “intrusos” son buenos programadores, bienvenidos sean.
Si en cambio no lo son no representan ningún problema para él, todo lo contrario, le quitan el trabajo que él no está interesado en hacer.
Y por último y aunque está fuera de las diez no podría dejar de ponerla
10bis. Si te dicen expresiones regulares y sólo tienes un problema
Yo he cometido todos esos “pecados”, y sigo cometiendo algunos. Pero intento dejar de hacerlo. Lo malo es que cuando ya deje de hacerlo tendré muchas más “pistas” que agregar a la lista, y así volveré al punto inicial nuevamente.
O quizás eso es justamente lo mejor de ser un programador.
Edición: Paco propone una que no sé cómo se me ha pasado:
10bis2. Consideras que ya eres suficientemente buen programador y que debes dedicarte a otras tareas como el análisis, diseño o planificación. La programación es una tarea secundaria y trivial que puede hacer cualquiera.
Muy buenos, en especial #2 y #6.
En el #8 difiero, enseñar Pascal no tiene sentido (ni Java tampoco, ¡que se usen lenguajes de scripting!
Respecto al #10, el primer trabajo no pasa mucho del mil-y-poco-eurismo. Con experiencia sí que ofrecen más, eso sí.
Y el #10b, me encuentro cada guarri-función que se podría solucionar con una simple regexp… buff. Peor claro, en la universidad no enseñan expresiones regulares (de manera práctica) xD
Comment by DZPM — Saturday 11/8/2007 @ 20:58
Diez señales de que no eres tan buen programador como piensas…
Lista de diez indicios de que tal vez no seas un buen programador….
Trackback by meneame.net — Saturday 11/8/2007 @ 21:01
Grande el artículo, sin duda. Absolutamente de acuerdo con tu comentario sobre #8, y harto de escuchar los mismos argumentos. En la universidad se enseña **a programar**, no **a programar en X**. Si quieres aprender **a programar en X** haz un módulo de FP, no estudies informática.
Por cierto, un pequeño tirón de orejas cariñoso: es “von Neumann”, no “von Newman”, que se pronuncia igual pero no es lo mismo :).
Comment by Alfonso E. — Saturday 11/8/2007 @ 21:07
Ricardo, no soy ningún lumbreras pero: “A primera vista del código de un programas grandes de otras personas dices “vaya mierda de código, muy complicado, yo lo puedo hacer mejor” no sería mejor: “A primera vista del código de programas grandes de otras personas dices “vaya mierda de código, muy complicado, yo lo puedo hacer mejor”.
Saludos.
Comment by James — Saturday 11/8/2007 @ 21:08
#1, como es Pascal también puede ser Ada o Perl, da lo mismo, lo importante es la simplicidad del lenguaje para implementar algoritmos.
Respecto a mileurimos inicial, se da en todos los caso, ¿quién no ha sido becario o colaborador? Pero es que alucino que quieran gana más en el primer trabajo sin que nadie sepa qué tal es en el trabajo y con 20 añitos. Pero eso no está mal si dura unos pocos meses.
Comment by gallir — Saturday 11/8/2007 @ 21:12
#3, sipes, ahora lo corrijo, gracias.
Comment by gallir — Saturday 11/8/2007 @ 21:13
#Eres parte del movimiento mileurista,…
¿Entonces que es lo que buscan las empresas que ofrecen sueldos entre 12.000 y 18.000 € brutos anuales?…Malos programadores!!!
http://www.tecnoempleo.com/busqueda-empleo.asp?te=programador&pr=&ex=&tp=1&es=&cp=&co=&du=&min=12000&max=18000
Es cierto que las hay que ofrecen entre 24.000 y 30.000 pero muchas menos.
http://www.tecnoempleo.com/busqueda-empleo.asp?te=programador&pr=&ex=&tp=1&es=&cp=&co=&du=&min=24000&max=30000
Comment by Judith — Saturday 11/8/2007 @ 21:20
#6, las empresas tienen libertad para ofrecer lo que consideran adecuado, tú no estás obligada a ir a ninguna de esas.
#2, oops, sipe, ahora lo corrijo.
Comment by gallir — Saturday 11/8/2007 @ 21:22
Pues mira.. estoy de suerte. Como ni siquiera me considero programador no tengo ninguno de esos problemas.
De echo como dice el punto 3, cuando veo parches para drivers (por ejemplo el bcm43xx-injection) flipo, pienso: ¿cómo puede ser tan crack el tipo este?
Comment by crafton — Saturday 11/8/2007 @ 21:40
#8, quizás es una pista de que sí eres mejor programador de lo que te consideras
Comment by gallir — Saturday 11/8/2007 @ 21:41
[…] Contact the Webmaster Link to Article linux Diez señales de que no eres tan buen programador como piensas » Posted at […]
Pingback by University Update - Linux - Diez señales de que no eres tan buen programador como piensas — Saturday 11/8/2007 @ 21:55
Con respecto a la mierda del código ageno, lo mismo dije cuando vi el código de menéame
jaja
tiene una revisión ese punto que sería algo así, se nota que has evolucionado como programador cuando ves TU propio código y decís “que mierda de código que escribí, por dios, mátenme”
esa sensación te demuestra que algo has mejorado con el tiempo y qeu todavía falta mucho
Comment by Fabio — Saturday 11/8/2007 @ 23:08
#12
> Con respecto a la mierda del código ageno, lo mismo dije cuando vi el código de menéame
jaja
Algunos han dicho eso, muchos otros han dicho lo contrario. Habrá un poco de los dos. Cuestión de valorar el uso que tiene, cuantas personas lo usan cada día, qué tal lo hace, cómo evoluciona, qué soluciones alternativas proponen –show me the code– y sobre todo ponderar a quien hace las críticas para analizarlas mejor. Por cierto, ¿dónde está el código de tus programas?
Comment by gallir — Saturday 11/8/2007 @ 23:17
Joder, ¡Qué bueno!
Da mucho, mucho! que pensar.
Tuve un compañero de trabajo que decía “Yo soy muy malo programando, así que procuro hacer el código lo más fácil posible y comentarlo e indentarlo todo bien porque, si no, luego no lo entiendo”.
Evidentemente era capaz de entender los churros que hacíamos los demás y su código era ejemplar.
Comment by Paco Ros — Saturday 11/8/2007 @ 23:43
Ah! Y me permito el lujo de añadir una:
Consideras que ya eres suficientemente buen programador y que debes dedicarte a otras tareas como el análisis, diseño o planificación. La programación es una tarea secundaria y trivial que puede hacer cualquiera.
Comment by Paco Ros — Saturday 11/8/2007 @ 23:47
#15, ostras paco, eso se me pasó y debería haber estado en la lista. Lo pongo con tu permiso.
Comment by gallir — Saturday 11/8/2007 @ 23:48
Quizás seáis muy buenos programadores, pero escribís como el culo…
Comment by arnau — Sunday 12/8/2007 @ 0:15
“Race condition” wow, y si lo pones en inglés queda mucho mejor xD
De todas formas tienes razón, un buen programador sabe programar y punto. El lenguaje concreto se aprende en una semana.
Comment by admin — Sunday 12/8/2007 @ 0:17
También es un mal programador aquel que desconoce la programación funcional y que no tiene idea de Haskell, Scheme u Ocaml.
El que sólo ha programado en lenguajes imperativos es como aquel que sólo ha visto películas de Hollywood. Lo único que conoce una parte altamente “disfuncional” de la realidad.
Comment by David — Sunday 12/8/2007 @ 0:18
#18
> y si lo pones en inglés queda mucho mejor
Admin, porque no sé cómo traducirlo correctamente. He visto barbaridades como “condición de carrera” que obviamente no me gusta. Hay otras que usé como “Problemas temporales de errores de programación” ( http://mnm.uib.es/gallir/posts/2005/05/07/273/ ), pero no tienen el mismo efecto. Perdón en todo caso.
#19, sí, también la programación funcional, u Lisp, y además el tema de clausuras
( http://mnm.uib.es/gallir/posts/2007/01/30/961/ ), pero en su momento no se me ocurrió al escribirlo.
Comment by gallir — Sunday 12/8/2007 @ 0:27
Balears como Navarra (lo que y conozco) son territorios un poco extraños en lo que a trabajo se refiere, la gente sin acabar ya encuentra trabajo pero otra cosa son junglas como Barcelona o Madrid donde las consultoras compran programadores a peso, los buenos y los malos.
seguramente es cierto que un buen programador cobre más de mil euros mes pero también es cierto que la mayoría están ademas de mal pagados mal considerados trabajando a veces en situaciones kafquianas como que el responsable máximo del tema informático en una empresa sea un jefe de finanzas que de informática como usuario y justito
Comment by Defunkid — Sunday 12/8/2007 @ 0:44
Buen post. He conocido multitud de programadores que se creen Estrellas del Rock que encajan con el perfil que describes. En realidad lo que ocurre es que ‘La ignorancia es muy atrevida’.
Para terminar: puede programar cualquiera, la magia de la programacion murió hace tiempo. Pero programar BIEN… eso es otra cosa… Y se trata de eso, ¿no?
Comment by Diego — Sunday 12/8/2007 @ 0:54
#22: exacto, http://mnm.uib.es/gallir/posts/2007/07/12/1130/
Comment by gallir — Sunday 12/8/2007 @ 0:57
[…] Ricardo Galli nos ayuda con con 10 señales las cuáles nos muestran ciertas realidades que los programadores llevan consigo (aquí pongo las 10 y las explicaciones las encontrarán en el blog de Ricardo): […]
Pingback by Blogueando.com — ¿Eres buen programador? — Sunday 12/8/2007 @ 1:29
Estoy de acuerdo con el punto 8. Gracias.
http://www.kroonos.com
Comment by kroonos — Sunday 12/8/2007 @ 1:29
Pues yo incumplo la 8, y la mitad de la 10 (También me quejo del intusismo, y no creo que tenga que ver una cosa con la otra)… Será que soy mal programador.
Con respecto a la 8, es un tema que ya tengo muy discutido. Todavía no he encontrado a quien me responda correctamente a la pregunta: “¿Qué tiene Pascal que no tenga Java (O C++, o C#) para explicarlo en 1º?”. La explicación: “Pascal es más didáctico” me parece hablar del sexo de los ángeles, y la excusa: “Java es más complicado, o introduce conceptos muy complejos”, me parece improcedente, pues puedes explicar tanto como te dé la gana.
Finalmente, programar BIEN, como vosotros decís, también puede cualquiera. Cualquiera que sepa, claro (Como programar… Anda que los huev…).
Adeu
Comment by Manolete — Sunday 12/8/2007 @ 1:40
#26
> Todavía no he encontrado a quien me responda correctamente a la pregunta: “¿Qué tiene Pascal que no tenga Java (O C++, o C#) para explicarlo en 1º?”.
Está explicado en el propio artículo: ” empezar con estos lenguajes con abstracciones y construcciones más complejas sólo introducen problemas y ruido en el aprendizaje, y lo que es peor, introduce vicios que luego son muy difíciles de eliminar.”
También está contestado en #5.
Por otro lado, ¿para qué quieres java o C++ en primero de programación? Deberías tú explicar el porqué es mejor uno de esos lenguajes.
Si además conocieses a Wirth entenderías las razones por las que creó el Pascal y muchas de sus ventajas. Pero así como es Pascal, también puede ser cualquier otro lenguaje que te permita centrarte en el algoritmo y no en las particularidades más complejas de la arquitectura o del propio lenguaje.
Comment by gallir — Sunday 12/8/2007 @ 1:54
Antes de escribir superlenguajes es conveniente primero aprender el idioma propio, con sus reglas y race conditions:
Dequeismo:
“Justificas de que”
HOYGAN.
Comment by >Hoygan — Sunday 12/8/2007 @ 2:56
#28, no sabes lo que me alegra que una persona tan lista sólo me critique un “de” innecesario (que tienes toda la razón, pero en realidad toda la frase que quedó algo confusa y no me convence). Gracias, ahora lo corrijo.
Comment by gallir — Sunday 12/8/2007 @ 3:08
Gran articulo ricardo, eres el mejor
Comment by Hoteldipity es — Sunday 12/8/2007 @ 3:28
Respeto tu opinión pero difiere de la mía. Jamás hablas de: Validar casos de borde, analizar, pensar a futuro, hacer tu código reutilizable, tratar excepciones, inicializar variables, refactorar tu código, documentar, identar, etc. Tantas cosas que realmente son importantes a la hora de programar
Comment by mantrax3_14 — Sunday 12/8/2007 @ 3:37
#5 Jeje, enseñar a programar desde cero en Perl, eso sí que debe ser gracioso. Especialmente para corregir los exámenes
#13 En el código de Menéame, ya que estamos de acuerdo en que el código es para las personas, hay algunos aspectos de estilo que saltan a la vista:
- Uso de “echo trozodehtml.\n”. Por un lado, impide que los editores resalten la sintaxis del HTML. Por otro, es una costumbre sacada de lenguajes “serios”, a diferencia de PHP que es de plantillas. Solución: “?>trozodehtml
Comment by JarFil — Sunday 12/8/2007 @ 3:40
#5 Jeje, enseñar a programar desde cero en Perl, eso sí que debe ser gracioso. Especialmente para corregir los exámenes
#13 En el código de Menéame, ya que estamos de acuerdo en que el código es para las personas, hay algunos aspectos de estilo que saltan a la vista:
- Uso de “echo trozodehtml.\n”. Por un lado, impide que los editores resalten la sintaxis del HTML. Por otro, es una costumbre sacada de lenguajes “serios”, a diferencia de PHP que es de plantillas. Solución: “?>trozodehtml<?php”
- Inconsistencias en el estilo, como usar “var=value” y en la línea siguiente “var = value” (mismamente en el index.php). Solución: decidirse por un estilo y usarlo, aunque lo visualmente recomendable sería “var = value”
- Algo parecido -aunque no tan importante- pasa con “var.var”, que a algunos se nos asocia con “clase.método”. Es una costumbre de Perl vs. una de C++. Solución: “var . var”
- Tampoco queda bien tener cosas como “)))” sueltas por ahí, y en general ningún tipo de espaciado junto a los paréntesis para facilitar la lectura.
En cuando a los algoritmos, como parece que funciona… me callo
Comment by JarFil — Sunday 12/8/2007 @ 3:41
(¿el WordPress se traga todo lo que empiece con <?php?… alucino)
Comment by JarFil — Sunday 12/8/2007 @ 3:44
Pues como que no… un Buen programador es alguien que
Tiene un código legible, una estructura definida y además que su programa esta abierto a optimizaciones.
Además es aquel que no hace tiras y tiras de código.
Aquel que sabe hacer una función que le servirá en mil y un casos.
Aquel que al terminar su programa y probarlo sabe que correrá en poco tiempo.
Aquel que se equivoca, pero rápidamente sabe donde esta el problema.
Aquel que sabe dar una solución práctica.
Aquel que sabe como desarrollar cualquier cosa.
Aquel que dice que todo se puede.
Esto y más… pondría la mía pero se que para mi no cuenta, ya que no me costo nada. Yo no estudio programación, estudio Ing. Mecatrónica y apenas voy en el 3er semestre (tengo 18 años). Claro trabajo en una empresa en la que hago un sitio WEB en ASP. Más o menos aprendí C++ y Visual Basic. Pero lo anterior siempre lo aplico. Mi código debe de ser limpio, tal vez mi único problema es que no comento nada en el. Llevo como 2 o 3 años a lo mucho realizando tareas de programación. Actualmente se me paga poco ($6 dll la hora). Obvio pienso ganar como $20 dll la hora antes de salir de la Universidad. Pero espero que no se rijan por estas estúpidas reglas que están arriba. Si eres buen programador ya dije cuales son los requisitos. Y eso me lo enseño el mejor.
http://www.iblog.com.mx/
Comment by iBlog.com.mx — Sunday 12/8/2007 @ 4:28
Se me olvidaba… no hay malos programadores… solo algunos son simplemente mejores para…
Comment by iBlog.com.mx — Sunday 12/8/2007 @ 4:31
La número 8 encierra una gran verdad, en la universidad en la que estudié cambiaron el plan de estudios y en la materia de algoritmos pusieron Java y POO, ni siquiera vieron estructura de datos, ni tipos de programación ni de algoritmos, que pena.
Comment by Alex — Sunday 12/8/2007 @ 5:08
¿Y qué es ser un buen programador? Porque yo conozco auténticos “hackers” que te programan un cohete a marte en 4 horas pero los pones a trabajar en equipo, con sus reglas, peer reviews, escritura de specs, etc. y lo unico que hacen es entorpecer. Digo…
Comment by RBA — Sunday 12/8/2007 @ 5:22
Yo cuando me dicen “programa” y “código” lo primero que se me viene a la cabeza son líneas de BASIC con muchos GOTOs. xDDDD Obviamente ni soy programador ni soy informático y debí elegir letras en vez de ciencias en mi juventud
Comment by davidcg — Sunday 12/8/2007 @ 7:17
#13
Galli, lo dije irónicamente, pero si, mi código también es libre y bajo GPL (PostRev), es de lo peor que tengo (por lo mal codeado que está) y por eso cité el ejemplo, cuando ahora veo mi propio código, que tendrá unos 4-5 años de antigüedad (y de evolución de a pedazos), digo Meu Deus! que mierda hice! igualmente mi código SI está liberado, así que en ese punto touché!
así que si bien el código de menéame tiene sus “bemoles” (PHP mezclado con HTML por todos lados) tiene sus ventajas (nada de smarty y esos odiosos frameworks enlentecedores) y terminé descrubriendo que yo hacía algo parecido en mi código, sólo que separé un poco más código de PHP del HTML (pero claro, usé includes para hacerlo!)
no te preocupes, uso meneame para historiador.net y anda muy bien, pligg apestó de lento.
con respecto a Pascal: apesta, pero por más pascal que enseñaron en mi facultad la mitad no supo que era programar y no lo iba a entender ni con java ni C++, simplemente no les apasionaba, no son capaces de ponerse a dibujar un script en los azulejos del baño en plena ducha, si no hay alma en el código, sale, seguramente, pero mediocre. Habitualmente los “java exclusive” o los “.net exclusive” tienen ese problemita, sólo lo hacen como fuente de ingresos pero no sienten ninguna pasión por escribir código o solucionar un problema.
ahí yace, creo yo, una de las grandes diferencias entre un programador bueno y otro malo, porque esa pasión impide la generación de otro problemita: el conformismo. Un buen programador puede ser aquel que haga todo perfecto, pero la realidad es que el software sin bugs no existe, la cuesión está en si nunca se conforma y siempre quiere mejorarlo.
Por eso los proyectos open source tienen esa ventaja, buscan la superación constante, no el conformismo. Si el autor original pierde la pasión, siempre otro podrá tomar la bandera. Esa, me parece, es una ventaja del buen programador.
Y repito, por ahí el código no será el mejor, pero si la intención es mejorarlo constantemente y superarse, creo que eso lo define a uno, sea el que fuere, como buen programador.
Comment by Fabio — Sunday 12/8/2007 @ 7:36
Por cierto, y aunque sea muy trivial… von Neumann se pronuncia von noiman. Ya ves, idiosincrasias del húngaro, xD. Un saludo y buen post.
Comment by Ignatius Reilly — Sunday 12/8/2007 @ 8:57
Jarfil:
> Uso de “echo trozodehtml.\n”. Por un lado, impide que los editores resalten la sintaxis del HTML. Por otro, es una costumbre sacada de lenguajes “serios”,
Lo expliqué varias veces, es para no hacer el código aún más espagueti mezclando en el mismo fichero dos formas y lenguajes distintos como si fuesen uno sólo. Sí, el código lo lee mejor uno que sabe PHP que uno que sólo sabe HTML. Es la idea, facilitar la lectura al programador PHP.
> a diferencia de PHP que es de plantillas.
Lo de “plantillas” es una idea muy posterior a PHP.
> Solución: “?>trozodehtml< ?php”
No estoy de acuerdo.
Antes de comenzar a programar miré bastante código PHP para ver las "costumbres" habituales, ésta es una de las que me gustó, y los de inseretar permanentemente código PHP en el html (como en las plantillas WP) no me gustó nada.
> Inconsistencias en el estilo, como usar “var=value” y en la línea siguiente “var = value”
Hum… sí, pero esto no es tan importante. Casi que no es relevante (sobre todo porque hay código de distintas personas).
> Algo parecido -aunque no tan importante- pasa con “var.var”
¿Confundirlas con “una concatenación de strings”? Pues no le veo, primero porque si son variables llevan “$” y si son literales la ” o ‘.
Lo de los espacios en ) múltiples (supongo que te refieres a los de algunos if() bestias) es igual . Tienes razón, aunque no sé cuál es la solución idónea.
Has criticado detalles como el espacio entre signos separadores (= y .) en la misma línea o aspecto del “echo()” que es bastante discutible. Buena señal, mejor de lo que esperaba.
¿Ahora puedes hacer la crítica seria? Porque esta fue la de cachondeo ¿no?
Nota: aunque no lo veo tan relevante tienes razón en los de los espacios.
Comment by gallir — Sunday 12/8/2007 @ 11:36
@RBA, pues no le pongas a trabajar en equipo. O busca un equipo –pequeño, no más de dos o tres personas– que sea adecuado para él. Es mala idea mezclar programadores buenos con torpes, o personas incompatibles.
Somos más cabrones que putas finas los programadores.
Comment by gallir — Sunday 12/8/2007 @ 11:43
Tal vez un poco off-topic, pero que manía que le tiene todo el mundo al pascal: que si el C es mejor, que si el C++ es mucho mejoe y que el Java es la releche. ¿Es qué nadie conoce un pascal “moderno” (o sea de unos 15 años de edad) como el pascal de borland (y el freepascal que probablemente le supere por la sencilla razón que soporta tropecientos procesadores y arquitectureas)?
No solo te permite hacer todo lo que te permiten C y C++ con más elegancia (si bien esto es algo subjetivo), sino que no te haces viejo esperando que tu programa compile.
Comment by luca — Sunday 12/8/2007 @ 11:51
Por lo general he visto casi todos los puntos en vivo durante mi (aún relativamente corta) vida profesional, me ha hecho especial gracia el de:
“A primera vista del código de programas grandes de otras personas dices “vaya mierda de código, muy complicado, yo lo puedo hacer mejor”
Tuvimos que oir esto de unos “compañeros” de Altran/INAD en un proyecto “deathmarch”, año y pico más tarde empezaron a replicar “ese complicado código”.
Lo del mielurismo…. pues hombre, yo empecé cobrando en las antiguas pesetas y al cambio ganaba más de mil euros, aunque a día de hoy me he cruzado con muy buenos chavales que rebosan potencial y ganas y que poco más de mil euros cobran, y es que no se Las Baleares pero en Madrid el trabajo ha tenido estos dos últimos años sueldos muy bajos, parece que ahora remonta pero quien sabe que habrá dentro de 6 meses.
Yo creo que acusar a alguien de ser mal programador en base a su sueldo es algo atrevido y fuera de lugar, lo que ese seguro es que tiene poca experiencia y acaba de salir, como ya he dicho, en Madrid no siempre ha estado en los últimos años el trabajo de tus sueños esperándote. A cambio, si conozco a unos cuantos menganos/as con sus buenos 7/8 años de “experiencia mirando el monitor” con unas onitas cifras netas en su cuenta corriente a final de mes, jugosas comidas he sufrido con ellos (ganas de vomitar tenía después de comer claro).
Otro punto gracioso es el de lo que se enseña en la universidad, duras batallas he tenido a costa de esta frasecita, por lo general oída de la boca de gente que o bien no acabó o que no entendió nada de lo que le estaban enseñando, está claro que no aprendieron a pensar.
Un saludo
Comment by The Soulforged — Sunday 12/8/2007 @ 11:56
la #10 es verdad, lo bueno es que 1000 euros en Argentina es mucho!!
Comment by Domingo — Sunday 12/8/2007 @ 12:22
En serio, abusar de tantas lineas con “echo” en php no es de muy buen programador…:P
Comment by Tocapelotas — Sunday 12/8/2007 @ 13:50
joder, este tipo confunde a los programadores con frikis, quizas porque sea uno desfasao….. vaya notita ha dejao, y se habra quedao contento…
Comment by pakito — Sunday 12/8/2007 @ 14:19
Yo solo quiero hacer un comentario sobre el tema de pascal/C/Java en primero. Mi respuesta a por que C es bien secilla, mientras por un lado estas dando ADA que era el caso de donde yo estudie, y al mismo tiempo en Estructura de computadores tenias que programar en C y ASM, este ultimo entraba en el temario de la asignatura, pero C, la respuesta del profe fue:
“Ah no es mi problema, buscaros manuales en internet o pillar un libro en la biblioteca” A mi personalmente no me importo en absoluto pues ya levaba tiempo programando en C, pero para gente que esta en primero de carrera, lo encuentro una complicacion innecesaria, y mas cuando puedes incluirlo en programacion I.
Es solo una opinion, pero tambien respeto, que programacion I fuera en ADA, total para aprender da lo mismo uno que otro, y su justificacion en la sencillez es mas que obvia, solo el comentario que para gustos colores, y que a veces los planes de estudio de las universidades no estan del todo “depurados”
Por el resto, despues de algun tiempo como programador y de estar trabajando en el extranjero, totalmente de acuerdo con todo lo del post, incluso, si no quieres cobrar mil euros, coge las maletas y sal a europa/EEUU, donde a los profesionales se les pagan sueldos acordes con su experiencia, y la vivienda…. (esto daria para otro post jajaja).
Comment by phyxius — Sunday 12/8/2007 @ 14:28
Muy bueno, estoy completamente de acuerdo contigo.
Comment by fiti — Sunday 12/8/2007 @ 14:29
¿Y quién creeríais que es más eficiente, 5 buenos programadores o 15 no tan buenos? http://bloggingg.blogspot.com/2007/08/quines-seran-ms-eficientes-5.html
Comment by fiti — Sunday 12/8/2007 @ 14:33
Busca trabajo en tenerife… a ver que superofertas encuentras.
Comment by Oscar — Sunday 12/8/2007 @ 16:57
El paro de los programadores es casi cero –casi diría que negativo en Balears
Jo, pues yo en Baleares no he visto ninguna oferta atractiva de trabajo de programador. Todos son de junior, de becario, de “programador que sepa .NET, Cobol, java, administrar servidores unix y windows y sobre todo hacer cafes”, etc por 800 euros brutos al mes (fines de semana incluidos). No, no es que sea tiquismiquis, no es que busque algo para mí, es que simplemente no encuentro ninguna que pidan aunque sea algo super específico por más de 24k (en general, aunque yo no pueda acceder ni de coña). Todo es basura, basura y más basura. Por ejemplo, lo más “alto” que he visto: un especialista en sistemas GDS con mínimo 8 años de experiencia… 21k por trabajar de 9 a 19 de lunes a viernes y de 9 a 14 los sabados. Me sangraron los ojos cuando lo vi.
Es más, en cuanto a números, haces una búsqueda en baleares en infojobs, y una en madrid, y la diferencia es abismal. Menos de 100 ofertas en Baleares, 5000 en madrid. Si fuera proporcional, en Madrid habría más de 50 millones de personas…
No se, debo ser tonto e inepto, pero es que no encuentro nada decente. Quien sabe, quizás no sea el único y el problema sea ese, que los programadores no se enteran de las ofertas que hay xD
Comment by a — Sunday 12/8/2007 @ 17:55
Divertido y, en casi todo, estoy de acuerdo.
Una nota: replace 10bis2 with 10ter.
Y otra como consecuencia de la nota:
10quater Un buen programador es como un investigador del CSI, que sabe toneladas y toneladas de imbecilidades sobre los temas más peregrinos y, muy de vez en cuando, alguna de las cosas que sabe le sirve para algo, como las abreviaturas de los días de la semana, el cálculo de la luna de Pascal, las fórmulas diofánticas… aunque el mejor programador sabe que sólo sabe una fracción de lo que necesitará mañana.
Comment by David — Sunday 12/8/2007 @ 20:38
#33 y siguiendo a #41. El uso de ?>cachohtml
Comment by PerroVerd — Sunday 12/8/2007 @ 21:59
Vaya, yo también he caído en las garras del limpiador de comentarios
Volviendo al tema, meter el cachohtml fuera del php es eficiente si el trozo de html es largo, si no pierdes demasiado tiempo con cambios de contexto que te fastidian el rendimiento.
http://ilia.ws/archives/12-PHP-Optimization-Tricks.html
Aparte y como gusto personal, prefiero un echo cachohtml que un montón de variables php metidas en el código html, supongo que tiene que ver con lo que dice ricardo de un sólo lenguaje en vez de dos.
Comment by PerroVerd — Sunday 12/8/2007 @ 22:02
[…] Gallir, autor de men
Pingback by Tropiezos en la red » Blog Archive » Diez se — Monday 13/8/2007 @ 10:11
No se si es cuestión de género o cultural, pero a veces aparece un elevado “ego” que te hace creer que tus soluciones son las mejores, que nadie haría las cosas mejor que tu, etc. No es exclusivo de programadores, basta con escuchar conversaciones de pintores, escritores, médicos, y otros.
Cierta vez, bajo los efectos embriagadores del ego de programador, una amiga, luego de escuchar pacientemente mis razones de “por qué soy tan bueno”, me respondió con diplomacia: “Dime de que presumes y te diré de que careces”.
Buen articulo. Yo le agregaría la 11°:
11° “No sabes escribir en tu idioma”
Cómo programadores, sabemos los problemas que puede haber por una mala letra, minúscula o mayúscula (¿case sensitive?), cada punto , punto y coma, dos puntos, sangría, indentado, etc.
Cuando escribes en tu idioma, ese lenguaje será compilado por el compilador mas exigente: El lector. ¿No deberíamos intentar escribir spanish++ religiosamente?
Comment by Polux — Monday 13/8/2007 @ 10:54
Yo no aspiro a ser un buen programador, me conformo con que la cosas funcionen razonablemente bien
Comment by Trilobite — Monday 13/8/2007 @ 11:08
Java es más potente que Pascal y por tanto más complejo, pero inicialmente puedes hacer el mismo uso de ambos. ¿Que es más complejo, un include o un objeto? ¿Está el cerebro humano preparado para aprender Java como primer lenguaje de programación? En muchas universidades creen que sí, y no he oido hablar de problemas al respecto.
Cito el MIT como ejemplo porque tienen su temario online y porque es la mejor universidad del planeta:
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-092January–IAP–2006/CourseHome/index.htm
El artículo original carece de argumentos asi que no hay más que comentar.
Comment by Anon — Monday 13/8/2007 @ 11:59
#59, a ver, ¿te has fijado que ese curso que pones es uno de “libre configuración”, que dura sólo un mes y que NO es un curso de introducción a programación? ¿Te has fijado además que es un curso de Java desde el mismo nombre?
Ahora fíjate quién es el que carece de argumentos, o que usa argumentos erróneos.
PS: Además, aunque lo hayan usado en un curso como el que te digo no justifica nada, es una decisión del profesor que la da independientemente del prestigio de la universidad.
Comment by gallir — Monday 13/8/2007 @ 12:58
[…] era de esperar, el apunte Diez señales de que no eres tan buen programador como piensas generó mucho debate (también en Java Hispano, como era de esperar por mencionar a Java:-) ), como […]
Pingback by Ricardo Galli, de software libre » Desafío que un "programador" respondería en segundos — Monday 13/8/2007 @ 16:14
#60 En general Java se usa como primer lenguaje en muchas universidades, y no hay noticias de problemas al respecto, lo cual sirve de experiencia anecdotica pero significativa para indicar que es posible usarlo como primer lenguaje.
Respecto al MIT como ejemplo concreto, el curso de java mencionado no es introductorio a la programación, y es opcional para acceder al curso de Laboratory in Software Engineering, donde se enseña teoría de orientación a objetos entre otra cosas.
Sin embargo, tras rebuscar en el web sigue en pie el argumento de usar un lenguaje OO como introducción a la programación: http://student.mit.edu/catalog/m6a.html “6.00 Introduction to Computer Science and Programming”
En este caso el lenguaje escogido es Python, más OO incluso que java.
Dentro del MIT también encontramos cursos introductorios que usan java como primer lenguaje “Computing for Biomedical Scientists, Fall 2002″ y otros.
Observa también que en toda universidad americana el estilo es cursos cortos y muy configurables.
Un autentico analisis de la cuestión deberia responder a preguntas como ¿es posible empezar con un lenguaje OO sin confundir a los alumnos? ¿es el concepto de OO demasiado complejo para un principiante?. Es difícil cuantificar objetivamente esta dificultad, pero comparado con otras asignaturas de la carrera, y el uso extendido de lenguajes OO como primer lenguaje, parece razonable pensar que es digerible.
Quiza deberias detallar los problemas que ves en ello.
Comment by Anon — Monday 13/8/2007 @ 19:18
> Sin embargo, tras rebuscar en el web sigue en pie el argumento de usar un lenguaje OO como introducción a la programación: http://student.mit.edu/catalog/m6a.html “6.00 Introduction to Computer Science and Programming” En este caso el lenguaje escogido es Python, más OO incluso que java.
Falso, el Python NO fue diseñado como lenguaje orientado a objetos, las construcciones de objetos es posterior (aunque lo han hecho muy bien). Lo que significa que no hace falta saber nada de POO para programar en Python perfecta y correctamente (a diferencia de Java). Idem para Perl, también es orientado a objectos (aunque más chapuza), y PHP, y Javascript…, aunque no hace falta usarlos.
Espero que te des cuenta de las cosas que no conoces, como yo
Comment by gallir — Monday 13/8/2007 @ 19:37
POO sí, POO no.. que importa.
POO: clase llave llave static main, conceptos relaciones y listo. Si te resulta demasiado complejo hay carreras más sencillas esperandote. En unos sitios usan java, python no poo, pascal, lo importante en este caso no es que, sino como.
Comment by Flipper el delfin — Monday 13/8/2007 @ 20:54
#64, No se discute si POO o no, no has cogido. En todo caso una parte es si hay que enseñar a programar con LPOO y si el uso de lenguajes no OO son perfectamente válidos.
Comment by gallir — Monday 13/8/2007 @ 21:03
Madre del Corderoo..,
Y yo que me quedé en el BASIC, (eso si, el mejor de cla clase YO, con distancia, palabras del profe ee.)
Me imagino a 100 programadores encerrrados en un monasterio 3 meses para decidir cual es el mejor lenguaje de programación. De locura, sería como el sexo de los Ángeles.
Estooo: Lo de la idea de loa 100 programadores en un monasterio es una idea para unha peli vale, no me copieis la idea.
Que No soy programador, pero de soy la leche de imaginativo - creativo. Géminis para más honra, y mono en el chino. etc..etc..,
En cualquier caso, considero tan dificil programar hoy día con tanto lenguaje
que me quito el sombrero ante ustedes los PROGRAMADORES.
Salutes.
Comment by JA — Monday 13/8/2007 @ 21:20
#3, von Neumann se pronuncia diferente a lo q sería von Newman, algo tipo “fon noiman”
Comment by anon — Monday 13/8/2007 @ 22:46
Comment by Flipper el delfin — Monday 13/8/2007 @ 23:36
[…] Galli describe Diez señales de que no eres tan buen programador como piensas. Algunos de sus puntos son muy buenos, en especial el #2 y el #8 que marcan la diferencia entre un […]
Pingback by Ogeid » Blog Archive » Otros cinco signos de un programador mediocre — Tuesday 14/8/2007 @ 6:45
[…] Ricardo Galli, de software libre » Diez señales de que no eres tan buen programador como piensas Diez señales de que no somos buenos programador. Yo, para empezar no reconozco que no lo sea, pero es un artículo interesante (tags: programación) […]
Pingback by links for 2007-08-14 | Andrés Milleiro — Tuesday 14/8/2007 @ 18:21
Respecto al punto 8, me parece increíble que recién salidos de la universidad no sepan crear un algoritmo, no ya complejo, sino uno simple, que recorra un array de varias dimensiones… Me entran ganas de mandarlos a poner ladrillos. No entiendo cómo pueden salir de la universidad gente tan mal formada. Lo curioso es que la absoluta gran mayoría de los mejores programadores que conozco no tienen carrera universitaria…
Comment by Javier Pérez — Tuesday 14/8/2007 @ 19:17
Yo conozco muchos buenos programadores que cobran alrededor de los 1.000 euros. Es lo que tiene vivir y trabajar en Asturias. Deberías escribir otro post en plan: “Diez señales de que eres todavía más prepotente de lo que piensas”. Hay demasiado prepotente y no tantos buenos programadores.
Sólo sé que no sé nada.
Comment by Esbardu — Tuesday 14/8/2007 @ 23:10
#72
En tan pocas palabras expones los cuatro problemas típicos:
1. No demuestras que sea “buen programador” como afirmas.
2. No muestras que gane 1000 euros, ni siquiera dices la empresa como para que se pueda obtener pistas.
3. No lees el apunte que criticas. Nunca he dicho que no los haya, sino que NO es la norma como sostienen los “programadores” del ruidoso “movimiento mileurista”.
4. Falacia ad-hominem.
Comment by gallir — Wednesday 15/8/2007 @ 1:06
Aburrrriiiido
en realidad no pensaste mucho cuando hacias esta lista no?, la mayoria de esos puntos me resultan triviales.
Comment by keitaro — Wednesday 15/8/2007 @ 1:28
muy importante lo de “quejica antiintrusos” = mediocre programador. Hace tiempo que lo pensaba
Comment by intruso — Wednesday 15/8/2007 @ 3:28
#75
Muy típico de intrusos: “quejica antiintrusos = mediocre programador”
Sobre el resto, de acuerdo en algunas cosas y no tanto en otras.
Un saludo.
Comment by Hector — Wednesday 15/8/2007 @ 15:18
Aquesta t’agradarà:
http://www.diariodemallorca.es/secciones/noticia.jsp?pRef=1623_2_285350
«Según el decano, en Baleares hay actualmente entre 200 y 300 profesionales colegiados, mientras que la cifra de personas que podrían dedicarse a esta especialidad en el archipiélago desde los últimos 20 años ronda las 3.000 personas.»
Si triunfan les saldrá el trabajo por las orejas. Eso sí, todofs cofn efl difploma efn laf bofca. Si son buenos informáticos o no es secundario. Ya pasaba en la época que surgió el título «decano», se quedaron ahí.
Comment by Benjamí — Wednesday 15/8/2007 @ 15:20
Ricardo, puedo tomar tu nota y ponerla en mi blog haciendo referencia acá?
La verdad que es muy buena
Comment by Santiago — Wednesday 15/8/2007 @ 20:43
[…] 10 Señales de que no eres tan buen programador como piensas. Aunque discrepo con algunas (hay lenguajes que no son tan "buenos" como el resto porque inducen a malas prácticas, Pascal está muerto y se debería enseñar C que sí se utiliza/es útil, y yo si conozco y he tenido a mi cargo "mileuristas"), otras son verdades como templos. […]
Pingback by Noticias 16-Agosto-2007 - La Web de Programación — Thursday 16/8/2007 @ 19:54
# 63 > Falso, el Python NO fue diseñado como lenguaje orientado a objetos, las construcciones de objetos es posterior (aunque lo han hecho muy bien).
Los tipos en Python siempre han sido objetos, y la posibilidad de extender el lenguaje creando nuevas clases es parte de la implementación (Python es uno de esos lenguajes en los que la especificación *es* la implementación) desde el principio. No como Perl, donde los objetos sí que son, como dices, una adición posterior al lenguaje. En este sentido, Python sí que se diseñó como lenguaje orientado a objetos.
Puede que tu confusión venga de que Python se diseñó desde el principio para permitir múltiples paradigmas de programación, de los que los más importantes son el orientado a objetos y la programación estructurada, aunque también permite construcciones de programación funcional (casi todo es first-class y se puede pasar como argumento, y tiene funciones anónimas, y clausuras).
En este sentido alguna gente lo llama un lenguaje “basado en objetos” (object-based) en vez de “orientado a objetos”, porque se puede programar con objetos en estilo funcional, o en estilo imperativo-procedural-estructurado. A mi juicio esta etiqueta de “basado en” equivocada (Python permite herencia entre clases, no como VisualBasic, el clásico ejemplo de lenguages “basados en” objetos), pero esto es otra cuestión.
Comment by Javier Candeira — Friday 17/8/2007 @ 7:10
#80,
> Los tipos en Python siempre han sido objetos, y la posibilidad de extender el lenguaje creando nuevas clases es parte de la implementación
Me parece te confundes con los “objetos” predefinidos en el lenguaje (en realidad tipos de datos) a que un lenguaje sea orientado a objetos (con clases, herencia, encapsulación, etc.).
Python NO FUE lenguaje orientado a objetos desde el principio, fue un simple lenguaje de scripts para el proyecto Amoeba. Aunque sí es verdad que se podían extender muy fácilmente los tipo de datos predefinidos con módulos externos en C. Parte de esa historia la cuenta el propio Guido: http://www.artima.com/intv/python3.html
Comment by gallir — Friday 17/8/2007 @ 13:48
Efectivamente, has acertado en la mitad :-):
1. No soy buen programador. (Nunca lo dije)
2. Gano más de 1.000 euros. (Tampoco lo afirmé)
3. Sí lei el apunte completo, está claro que hay pocos buenos programadores. En general hay muy poca gente realmente buena en cada profesión, lo que sí que hay es mucho creido.
4. Falacia ad-hominem. => Estoy hablando exclusivamente de Asturias, ¿conoces la situación laboral que sufrimos aquí?. En Asturias sí es la norma.
Comment by Esbardu — Saturday 18/8/2007 @ 13:02
muy muy buenos !
Comment by adrelita — Wednesday 22/8/2007 @ 0:11
No se aprende ni a hostiazos. Cuántas veces he oído eso de:
—Antes de poner vuestros dedos sobre el teclado… ¡Fulanito, deja de teclear y presta atención a lo que te digo, coño! Decía que antes de poneros a teclear coged lápiz y papel y…
—’Pa qué? Si está claro lo que voy a hacer— te dices despreciando los sabios consejos de tus profesores.
Y es que actúas con la programación igual que de pequeño con el Mecano o el Tente:
—Vale, ahora cambio esto. Y esto lo pongo así. Uy, parece que esto me hace falta. Buah, ¡qué chulo!
El poder ver resultados rápidamente nos fascina y ya estamos perdidos para el resto de nuestra vida, por muchos conocimientos que creas haber adquirido. Lo he vivido en mis propias carnes y aun lo veo en compañeros. No me extraña que digas que el 70% de la gente que conoces no sabe programar. Recuerdo haber leído en una entrevista realizada a un compañero del autor de “La abadía del crimen” que éste se podía pasar una hora dando vueltas por la habitación pensando en qué iba a hacer y cómo (lápiz y papel) antes de ponerse a teclear como loco. ¿Cuántos de nosotros actuamos de forma mínimamente similar?
Comment by Manuel — Saturday 25/8/2007 @ 14:36
[…] Leo en Menéame "Diez señales de que no eres tan buen programador como piensas". […]
Pingback by Para ser un buen programador - Bits & Bread — Monday 27/8/2007 @ 17:50
[…] Leo en Menéame “Diez señales de que no eres tan buen programador como piensas”. […]
Pingback by cristhianf : Para ser un buen programador — Monday 27/8/2007 @ 17:58
[…] Para ser un buen programador Leo en Menéame “Diez señales de que no eres tan buen programador como piensas“. […]
Pingback by Para ser un buen programador « Memoria Paginada — Monday 27/8/2007 @ 17:59
¿Porqué “race condition”? ¿no suena bien “condición de anticipación??
¿Realmente conocerla es un elemento para saber si es un buen programador? Más bien lo que determina si eres un buen programador es la solución a dicha condición, y sobre todo, haberla previsto.
Un saludo.
Comment by vtortola — Monday 27/8/2007 @ 20:40
Difiero del comentario de #3: “En la universidad se enseña **a programar**, no **a programar en X**. Si quieres aprender **a programar en X** haz un módulo de FP, no estudies informática.”
En un Ciclo no se enseña a programar en X (la universidad tendria mas papeletas para esa afirmacion), se empieza con conceptos basicos y pseudocodigo, de ahi pasas a C y se machaca para luego irte a C++. Mas adelante empezaras con algun lenguaje mas moderno y visual (VB, Java o .Net). Por otro lado en bases de datos como minimo se da SQL estandar, MySQL/postgres (con sus peculiaridades), Microsoft SQL (con las suyas), Oracle y PL/SQL. Conceptos de diseño, de usabilidad y demas, se dan desde el primer dia. (Respecto a sistemas operativos y demas, lo dejare a parte ya que se esta hablando de programacion).
Las practicas en empresa suelen ser en un lenguaje que no has visto, de forma que te obliga a aprender en menos de 1 mes un lenguaje de programacion… efectivamente, no se puede dominar un lenguaje en 1 mes, pero te han enseñado a defenderte y a aprender con facilidad, asi que no tienes ningun problema.
En resumen, no confundas un cursillo de programacion de una academia cualquiera o del colegio con un ciclo formativo superior.
Comment by Roger1 — Thursday 20/9/2007 @ 13:58