Ver Mensaje Individual
  #5  
Antiguo 14-10-2004
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Depende. Hare una especie de distinciones arbitrarias, pero con algo de sentido.

Un programador es como un albañil. Que requiere un programador? Mas o menos:

- Saberse la sintaxis de un lenguaje, como minimo
- Conocerse, como minimo, una parte importante de un API (por ejemplo, la VCL, o .NET)
- Nociones de OOP
- Nociones de SQL

Un programador se reconoce en que es bueno haciendo nuevo codigo, pero son trememendamente infelices depurando codigo, haciendo test, hablando con usuarios, revisando codigo ajeno, etc... A ningun programador le gusta adaptarse a unas reglas de como se codifica, todos tienen su "forma". La felicidad esta en el nuevo codigo.... o sea, la vision de mi estereotipo de "programador" es alquien que es feliz haciendo una rutina a la vez, pero no tanto haciendo el programa completo (por eso, no les importa hacer el ultimo 10% del esfuerzo, como documentar o mejorar la experiencia del usuario). Un equipo grande de desarrollo se puede dar el lujo de tener este tipo de gente, o tal vez cuando no hay plata pa mas...

Si soy una empresa, y busco un programador, que busco?:

- Que sea bueno en el API y lenguaje que me dijo que sabia. Por ejemplo, si dice saber hacer ventanas, pues que sepa hacerlas! Recuerdo entrevistar a un monton de tipos salidos de Universidades y con "experiencia", mi entrevista era: Bueno chico, hazme un formulario, 3 botones, que muestre una lista, guarde, borre y agrege registros. El 80% no fue capaz, el 19-20% fue con resultados deprimentes.
- Que escriba buen codigo: Buena identacion, buenos nombres de variables. Muy importante a este nivel
- Dispuesto a aprender. Nuevas APIs, nuevos lenguajes.
- Dispuesto a aceptar que la empresa define sus reglas, y que se debe respetar la manera como se escribe el codigo y hace las cosas. Si tengo mi control de codigo fuente, no aceptaria a alguien que decida no usarlo. Trabajar en equipo es crucial

Si pretendes ser un programador, del tipo que describo, la tendras dificil: Todo el mundo arranca en este nivel, es un mercado saturado. Asi, es dificil conseguir empleo.

Sin embargo, si uno con poca experiencia me mostrase un desarrollo suyo, FINALIZADO, ese es un mago, un tesoro. La mayoria no son capaces de concluir el trabajo: MAL signo, muy, muy malo. Para avanzar al siguiente nivel es importante hacer un programa sencillo y que a uno le parezca divertido, y terminarlo.

Ahora, siguiendo mis divisiones arbitrarias, estan los desarrolladores. Un desarrollador es un programador mas maduro. En mis palabra, es un programador CONTRATABLE. Sigue sin gustarle la depuracion, hablar con usuarios, etc... pero maneja las "malas energias" De pronto es muy bueno, y hasta le gustan estas cosas.

Un buen desarrollador ayuda en la empresa en las partes criticas. No solo hace nuevo codigo. Es capaz de cojer la VCL, un codigo Open source, de un colega, y meterle la mano, aunque no sea culpa suya. Si no sabe algo, busca en Google, pregunta en foros. De hecho, ya es alguien en capacidad de ayudar a los menos experimentados. Me ayudaria con un cliente, aunque intentaria no usarlo para ello. La mayoria de las empresas pequeñas y medianas ABSOLUTAMENTE necesitan desarrolladores. Los desarrolladores son MUY MUY escasos, y quien se encuentra con uno lo contrata in so facto, a menos que sea o muy pobre o muy pobre, pero de mente!

Un desarrollador:

- Se especializa en un AREA de desarrollo, no solo API: Por ejemplo, programacion del lado del servidor y bases de datos
- Tiene un amplio conocimiento en otras cosas. Conoce mas de un lenguaje. Entiende conceptos mas amplios: Ve mas alla de la forma y el reporte, sabe como se integra dentro de una solucion.
- Su felicidad no es tanto el codigo nuevo, es ver como el producto fluye bellamente. Por eso, no es tan reacio a depurar, manejar un control de codigo fuente, tener una lista de requerimientos, APEGARSE a ella cuando es el caso, hace revisiones y refactoring del codigo si lo amerita. Es capaz de armar clases que reducen el esfuerzo, en vez de pegar codigo de un lado a otro.
- No conoce, APLICA OO
- Puede trabajar en equipo con otros. Incluso con usuarios y testeadores
- Es un FINALIZADOR. Es que capaz de dar el ultimo 20% del tedioso esfuerzo de acabar, pero acaba...

Un desarrollador no se puede querar sin empleo. Siempre las empresas lo buscan. De hecho, una queja MUY frequente es que no hay programadores (lo que significa: Todos los que hacen la entrevista solo saben VB, copy-paste, hacen formitas pero no aportan nada al equipo).

Ahora, si eres desarrollador, es tentador armar una propia empresa

Luego, estan los arquitectos. Estos son mucho mucho mas escasos. Son los que son capaces de dimensionar, especificar, diseñar, optimizar y mejorar un programa SIN ESCRIBIR EL CODIGO. Ahora, NO estoy de acuerdo con que un arquitecto sea un fulano que no fue un buen desarrollador y se sienta de lo lindo con grafiquitas UML: ESOS NO SIRVEN (a menos que sea una empresa muy grande y se den esos lujos), mas bien, por tener una amplia vision, son capaces de anticipar problemas antes de sentarse a la implementacion, reduciendo el esfuerzo.

Mas o menos, me dio cuenta que pienso similar a http://software.ericsink.com/entries...t_Hackers.html. Te recomiendo esta lectura

Tambien te recomiendo que ojees www.joelonsoftware.com. La razon? La vision de las empresas de desarrollo pequeñas/medianas, als cuales son las mas probables de estar buscano buena gente, es muy diferente a las grandes, a las cuales le venden Rational, IBM, MS y que tienen los lujos de tener un grupo de personas para cada area especifica...

Ah, y por ultimo: En la practica, el estudio no tiene tanta influencia. Es la aplicacion del conocimiento... Solo si vas a ser parte de un equipo de IT en una empresa con burocracia le importara el diploma. Si es asi, te recomiendo que estudies en un CETEC o un centro de de capacitacion aprobado por MS, IBM o lo que sea, tiene MUCHO mas peso que una carrera universitaria. Los que tenemos empresas medianas y pequeñas hacemos un simple test: Muestranos codigo y haz este ejemplo sencillo. Asi se filtra al 99% de los que NISIQUIERA son buenos programadoresa
__________________
El malabarista.
Responder Con Cita