Tipos de programadores


Programadores Senior

		"Aplican metodologías de desarrollo de software,crean sus propias herramientas de desarrollo"
		

Características

  • Son programadores certificados (Senior).
  • Poseen amplios conocimientos de programación y diseño de aplicaciones.
  • Detectan fácilmente errores de programación.
  • Manejan diversos entornos (NetBeans, Eclipse,etc.) y lenguajes de programación (Java,Cobol,Python,etc. ).
  • No usan código de ningún programador, lo escriben ellos mismos.
  • Asesoran a los demás programadores.

Programadores Junior

		"Más avanzados que un programador novato, conocen la tecnología actual"
		

Características

  • Son programadores certificados(Junior).
  • Son programadores más avanzados que los novatos, pero no del nivel Senior.
  • Tienen mejor comprensión que los novatos.
  • En constante estudio para poder alcanzar a los Senior.
  • Consultan a los expertos y asesoran a los novatos.

Programadores Novatos o de Nivel medio

		"Conocimentos básicos de programación, conocen un poco de la tecnología actual"
		

Características

  • No son programadores certificados.
  • Conocen uno o dos entornos y lenguajes de programación.
  • Tienen deficiencias en programación.
  • Usan código de otros programadores con el fin de estudiar y poder aprender.
  • Consultan a los expertos con el fin de aprender.

Pseudo-programador

		"Dicen ser expertos,pero sin Internet no hacen nada"
		

Características

  • No son programadores.
  • No escriben su propio código, usan el código de los demás, pero no con el fin de estudiar y aprender, solo para salir del apuro.
  • No tienen conocimientos básicos de programación.
  • Dicen ser expertos en desarrollo de sistemas. En serio conozco a varios así, no saben ni conectar una base de datos hecha en Access a VB, pero según ellos son expertos.
  • Presumen saber de todo,pero cuando les dejan hacer algo no saben ni cómo empezar.
  • Critican a los novatos hasta el más minimo error, pero no toman en cuenta sus propios errores.

Más información:

Programador.com Aqui

Diplomado Programming Java (JSE,Servlets & JSP) with Oracle 10g & MyEclipse Aqui

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Shadonwk

y si yo.

que onda que pasa mi me clasifico dentro de programador Junior pero no cuento con la certificación y no por falta de conocimientos sino por falta de $$ eso tambien vale? o sigo siendo novato??

________________
http://robertoleon.com.mx

@Shadonwk

Off topic:

Aunque este es un tema muy controversial, yo te recomendaría que uses el siguiente estilo en Java

public class ClassName {
     public void method() {
        if( condition )  {
        }
        while( true ) {
       }
    }
}

En vez de este otro:

public class ClassName
{
    public void method()
    {
        if( condition )
        {
        }
        while( true )
        {
        }
     }
}

A que viene esto? Ahh nomás. La entrada en tu blog, pero no me registré. Quizá podrias aceptar cometarios anónimos

Imagen de Shadonwk

Gracias Oscar, pero como son

Gracias Oscar, pero como son temas muy básicos y por el momento el contenido va dirigido a usuarios inexpertos opte por usar dicha nomenclatura, pero gracias por la recomendacion, la tendre muy en cuenta.

Imagen de daynatem

Esto huele aa

O.o este post huele a trampa, polémica "rápida" con esas aseveraciones , jeje chin! creo yo caí.

Imagen de benek

No del todo

No son muy acertadas las aseveraciones.

Por ejemplo: el hecho de manejar varios entornos de programación (IDEs) no te hace un Senior, habrá expertos que ocupen uno solo. Los IDE son una herramienta, cada quien elige cuál le resulta más cómoda, el manejo de uno o varios IDE es muy independiente del conocimiento que tengas de la tecnología o lenguaje, ergo, no determina tu nivel.

Otro caso, la aseveración "No usan código de ningún programador, lo escriben ellos mismos" también es falsa, ya que en estos tiempos la reutilización de código es muy importante, además, ahora más que nunca está vigente el uso de frameworks y librerías desarrollados por otras personas y que nos facilitan el trabajo.

Y algunas más aseveraciones que no son muy acertadas.

Saludos.

Javier Ramírez Jr.
http://twitter.com/_benek

Imagen de ezamudio

reutilizar != CPOP

Una cosa es reutilizar código, y seguir los principios DRY (Don't Repeat Yourself), y otra cosa ya es practicar cínicamente la CPOP (Copy-Paste Oriented Programming) donde nada más buscas tutoriales, artículos, etc, no te molestas en entender el código, solamente copias y pegas, le mueves hasta que medio jale y listo.

Lo triste es que sí existe eso.

Imagen de Jvan

Coincido en que no son de lo

Coincido en que no son de lo más acertados los "tipos de programadores", Justamente aquí vi un post donde catalogaban a los "senior, junior, etc" de acuerdo al tiempo que llevaban programando más que nada.

Imagen de Shadonwk

tambien coincido con ustedes

tambien coincido con ustedes es por eso que mi primera respuesta la base a manera de pregunta...

en fin la idea es buena, y si valdria la pena que alguien se preocupara por dar algunas definiciones mas "acertadas" dado que muchos de nosotros quiza todavia no sabemos diferenciar que es un programador Junior de un programador Senior.

ahora lo que dice Zamudio, es muy cierto, conosco a mucha gente que busca codigo en internet hace copy paste y compila si funciona, le pone su nombre y lo entregan.. esto se da mas entre compañeros de las universidades, lo que es realmente triste porque no saben del daño que se hacen.

En fin como dice Javier, la reutilización de codigo esta vigente ahora mas que nunca, eso es totalmente cierto "para que reinventar la rueda" pero esto no quiere decir que hagas copy paste sino que quiere decir que se entienda el codigo, que se le de el debido derecho al @autor y porque no hasta darle las gracias por compartir su codigo, y quiza tambien, hasta mejorarlo.

Saludos

Bueno

Estuve investigando, en algunos sitios de trabajo si es necesario contar con alguna certificación. Por ejemplo: cuando vas a solicitar un trabajo puedes decir que sabes programar en determinado lenguaje, pero ¿cómo lo compruebas?. A mi me pao algo asi, fui a una entrevista de trabajo, para programar un sitio Web, pero al no contar con una certificación no te creen que sabes. Saludos :)

No

Escribi esto no con el fin de molestar u ofender a alguien (yo apenas soy un novato).

Si asi es

Usar código de los demás no es malo. Pero hay quienes ni siquiera lo estudian, a eso me referia.

Imagen de ezamudio

certificaciones, código de otras personas

Tener una certificación puede abrirte puertas pero ya trabajando tienes que demostrar que sabes; me ha tocado trabajar con gente certificada en distintas tecnologías y en ocasiones los superan otras personas que no cuentan con ninguna certificación. No es garantía.

En cuanto a que si es bueno o malo usar el código de los demás, depende del permiso que te hayan dado los autores. Si tomas código GPL y lo modificas y lo integras a una aplicación tuya y no estás redistribuyendo esas aplicaciones, estás violando la licencia. Si tomas código de algun sitio de Microsoft que tengan publicado bajo licencia Shared Source y lo quieres integrar a un proyecto de software libre puedes estar poniendo en peligro ese proyecto... si tomas código de la empresa donde trabajas y te lo llevas a otra empresa cuando cambias de trabajo, estás robándote propiedad intelectual (aunque lo hayas escrito tú).

Imagen de benek

Re:

Escribi esto no con el fin de molestar u ofender a alguien (yo apenas soy un novato).

No ofendes a nadie, al contrario, se agradece tu aporte. ;-)

Las publicaciones no existen con el fin de que su contenido sea verdad absoluta, también son buenas este tipo de discusiones en las que no todos estamos de acuerdo con el contenido, eso nos sirve a todos para complementar o redefinir la idea.

¡Saludos Carraro!

Javier Ramírez Jr.
http://twitter.com/_benek

Imagen de fcodiaz

Que bien.. soy Senior LOL - x la certificacion =(

:o que buenas definiciones me dejas en un muy buen nivel, aunque para cumplir con las características me falta una certificación (ando buscando patrocinador xP)
mis caracteristicas:
- aprendo lenguajes nuevo en muy poco tiempo,
- debugeo sin un debuger.. casi sin ver.. jajaja.. no como sea soy muy bueno encontrando errores.. =), debugeo JS como si nada y en IE xP... LOL
- IDE's los que me pongas enfrente dame 5 o 10 min.. desde VI, nano, notedpa, VB studio hasta my love netbeans
- certificadors... amm nada mas el de la primaria, secundaria, prepa, titulos de Tec Prf, TSU e ISC, pero de algun leguaje aun nop :(.....
- me gusta resolver las cosas por mi mismo (hago mi código) aunque me digan que "reinvento la rueda".. aprovechando respondiendo la pregunta a @Shadonwk pues en primer instancia para saber como se hace una rueda... segunda tal vez crees algo mejor de lo que te dijiero,.. y tercera el software afortunadamente no es una rueda por lo que puede perfeccionar... que no tengas tiempo o no te creas capas de hacer algo mejor es otra cosa..!, esa frace para mi solo es una frase para convencerte de ser flojo.. !(publicidad de frameworks) como sabrán los que he coincidido en post anteriores no me laten los frameworks, por que no lo considero muy lejos del CPOP que menciona @ezamudio (que no se de donde saca tanto termino LOL), ya que mucho programador le entran para abstraerse de tener que aprender algo.. ejemplo hay quien toma ZK o a GWT para no aprender ni pisca de JavaScript el problema lo tiene cuando hay que bajar a escribir algo en "ensabladorJS" es como el que utiliza Dreamweaver para hacer una web.. pero no sabe ni que es un tag html... por eso no me gustan los framework o mas bien el entorno que se forma al rededor de.. esto si animo de ofender a alguien pero es una realidad que hasta los frameworkseros conocedores que no entran en la descripción dada no me negaran que se da esta situación.

- reciclo lo que hago.. bueno ya tengo ratito trabajando, para cuando llego la onda de los frameworks yo y a tenia mi "framework" mi forma de trabajo, delimitando lo que tenia que hacer para no hacer las cosas mas de una vez (DRY), suelo codificar en clases/funciones y crear un entorno para reciclar estas, el que no utilice un framework comunitario, no es que sea un tonto que este reescribiendo todo todas las veces que lo necesito, ya hay técnicas para evitar reescribir codigo y ninguna de estas me dicen que forzosamente tengo que utilizar un framework para reutilizar... pero creo que un framework es para software industrial.. y creo en sus beneficios aunque no me guste beneficiarme de ellos, son una buena herramienta pero creo que es una herramienta para profesionales y no para estudiantes, es como si un niño de primer año utilizara una calculadora para hacer diviciones, multipicaciones antes de saber sumar y restar, creo que primero se debe de conocer el leguanje y luego cuando alla que hacer algo comercial/rapido y estrar al nivel industrial entonces si valernos de un molde(framework) para acelerar la producción, o delimitar como se va a trabajar hacer tu propio marco de trabajo

aunque dejando de lado creo que las definiciones si están algo mal.. la verdad para ser sinior me falta poder organizar un proyecto bien en grupo y muchas otras cosas que incluso no se mencionan en las definiciones

Imagen de Jvan

Otra perspectiva

Aca les dejo otra perspectiva sobre la clasificación de los programadores.

Bien

Que bien pensé que habia molestado a alguien. Sobre el uso de código de otras personas ...Para mi el uso de código de otras persona esta bien solo cuando se trata de aprender de el...no para salir del apuro y decir esto yo lo hice a eso me referia.

Imagen de Shadonwk

seguro CARRARO o bien si la

seguro CARRARO o bien si la licencia te permite utilizar dicho codigo, tambien puedes hacerlo y porque no, mejorarlo, o talvez aprender el metodo y escribir tu propio codigo, pero muchas veces es dificil hacer algo diferente,

supongamos que te piden que desarrolles una funcion para hacer sumas, y esa la haces para una empresa x,
luego en otra empresa te piden que desarrolles la misma aplicación,

que harias aqui para no usar el mismo codigo? o como lo resolverias?

Lo que haria

Lo que haria seria estudiar esa funcion y crear una propia. Noe s necesario usar la misma. Saludos :)

Imagen de fcodiaz

Revender el Proyecto...

en cuanto al la utilización de códigos, uno puedes tener tu librerías de operaciones genéricas, creo yo que no esta mal reutilizar el código propio y/o ajeno en el caso del ajeno hay que ver las cuestiones de licencias, en cuanto a que si usas el tuyo, siempre con el paso de proyectos te vas haciendo de tus Clases/funciones genéricas creo que no hay problema en usarlas ahora solo aqui esta el detalle que debes de hacer un trato con la empresa donde especifiques que ese código ya lo tenias y que es una herramienta que usas para acelerar el desarrollo, pero que este sigue siendo tuyo, no así la totalidad de la aplicación, ejemplo puedes crear tu entorno completo y reutilizarlo en 100 proyecto, el problema es cuando vilmente te copias una aplicación con un vil copy/paste y lo revendes a otros clientes.

si llegas a una empresa grande ya con tiempo y proyectos realizado lo mas seguro es que ya tengan muchas librerias y herramientas o estaran manejando un framework ya sea propio o publico, pero por lo general te vas a tener que acomplar a la empreza, si es una empresa donde tienes libertad de crear codigo y es un enlace por lo general solo te piden la privacidad del proyecto, practicamente que no te robes el proyecto y lo revendas por otro lado, aparte no van andar revisando la codificacion de tus posteriores proyectos buscando aver si no te robaste la funsion suma() o resta()

si de plano como dice @Shadonwk que si en la empresa anterior tubistes una funcion y luego en otra te la piden de nuevo en primera instancia tratar de usar como comente quedando en claro y en escrito la propiedad intelectual de las liberias, si de plano te dicen no pues yo quiero que esta se quede aqui, rescribela afotunadamente en programacion se pueden hacer las mismas cosas de un monton de formas distitas, incluso en un funcion de sumas se puede hacer, simpelemente cambia el nombre de los paramentros, en lugar de retorna el resultado directamente almacenalo en una variable y luego retorna,.. etc... si es mas compleja con mas razon.. se puede hacer diferente, un ciclo for/while se puede usar indefinidamente, según cada uno es para determinados caso pero bien puedes "emular" el funcionamiento de un while en un for o al contrario....

en cuanto a la experiencia si es difícil cuando se arranca.. yo recuerdo que alguna vez estuve en una entrevista aun no era ISC ni TSU, solo era Tec. Prof en Informática egresado de un Conalep.. fui a entrevista y al tarado de mi se le ocurre decir que PHP en su caso lo que buscaban.. lo había aprendido sólito.. y desde alli, lastima por que en ese entoces ya traia un muy buen nivel pero se hecho a perder la entrevista solo por qu en oaprendi en un curso formal ¬¬... pero tampoco es posible andar mostrando código y código, por lo generar te pedirán una historia de lo que has hecho si puedes mostrar algunas pantallas, algunos pero muy pocos piden ver codificación,

Porque la recomendación de

Porque la recomendación de utilizar esa sintaxis? Hay algun documento que hable al respecto?

Imagen de beto.bateria

¿Que soy?

Programadores Senior
detecto fácilmente errores de programación
pero
no poseeo amplios conocimientos de programación(algo muy relativo).

no manejo diversos entornos (NetBeans, Eclipse,etc.) y lenguajes de programación (Java,Cobol,Python,etc. ).
pero
hago diseño de aplicaciones.

no tengo ningun certificados (Senior).
pero
Asesoro a los demás programadores(cuando se dejan o preguntan).

¿Entonces soy medio senior? :P
o exactamente ¿Que soy?

Imagen de beto.bateria

Se me olvido, tengo una

Se me olvido, tengo una certificacion de Oracle, pero nunca me han preguntado por ella.

Imagen de ezamudio

yo tampoco

Yo tampoco soy senior:

Son programadores certificados (Senior).

Pues sólo que cuenten el de prepa y la cédula profesional... de Java, que es lo que hago diario, no tengo ni uno.

Poseen amplios conocimientos de programación y diseño de aplicaciones.

OK eso sí

Detectan fácilmente errores de programación.

También

Manejan diversos entornos (NetBeans, Eclipse,etc.) y lenguajes de programación (Java,Cobol,Python,etc. ).

Uso Eclipse, creo que sólo una vez he usado NetBeans y no me gustó nada. He usado Visual Studio, jEdit, vim... por qué se considera importante esto? Un Junior que haya estado poco tiempo en varias empresas probablemente ya conoce más IDEs que yo; si el lunes entrara a una nueva chamba y me imponen un IDE que nunca he usado, para ese mismo día en la tarde ya pude hacer lo más básico, que es ESCRIBIR CODIGO y compilarlo. En un par de horas me explican qué onda con el SCM y el layout de las clases, proyectos, etc para poder navegar en el código existente. Este criterio creo que ni viene al caso.

No usan código de ningún programador, lo escriben ellos mismos.

Aquí es donde ya valí, duro. Dado que me gusta seguir el principio DRY, evitar el síndrome NIH, utilizo muchas bibliotecas de Apache, Spring, jUnit, Hibernate, etc etc y todo eso fue escrito por otros programadores.

Yo diría que incluso el criterio debería ser inverso: un Senior sabe cuándo utilizar esas bibliotecas, y cuándo hay que escribir algo propio. En los Juniors se da un fenómeno más polarizado: o quieren usar bibliotecas ajenas para absolutamente todo y ser como puros integradores, o quieren escribir absolutamente todo ellos mismos y no usar nunca una sola biblioteca ajena. La experiencia es la que le va dando a ambos tipos el criterio para saber cuándo usar algo ya hecho y cuándo hacerlo por cuenta propia.

Conocer al programador

Yo creo que un buen programador lo puedes identificar por sus cualidades (tecnicas), es alguien que sabe pasar del problema al codigo, alquien que te recomienda como no caer en malas practicas, alguien que te muestra alternativas para usar las mejores herramientas en fin...

Para saber si es bueno programando tienes que ver lo que ha hecho y como lo ha hecho, es decir, tienes que conocerlo... y asi para los que son ,malos, a partir de ahi si podemos definir el nivel que tiene

Imagen de Cesar Monzon

Buen programador

Yo me considero un eterno Junior y no por que no tenga auto estima o me sea indiferente mi desarrollo, si no por que creo que un buen programador ademas de conocer mucho me enseño a ser autodidacta, investigar, analizar y preguntar sin esperar a que me hicieran las cosas... mas que conocer muchas api's y tecnologia...

Asi que seré un Junior-novato siempre