¿Cómo podemos mejorar la educación y capacitación general de los programadores? [cerrado]

13

La semana pasada, estaba viendo esta increíble entrevista de Kevin Rose de Phillip Rosedale, de Second Life.

Y tuvieron una discusión increíble sobre cómo encontrar, contratar e identificar buenos programadores, y lo difícil que es encontrar buenos.

Lo que me ha llevado a pensar realmente acerca de la forma en que aprendemos los programadores, se enseñan. Para la mayoría de nosotros, yo mismo incluido, somos autodidactas. Lo que es genial de ser un programador, cualquiera puede aprender y desarrollar habilidades.

Pero esto también significa que no hay estándares reales de lo que es un buen programador, y qué tipo de entorno fomenta el crecimiento de las habilidades de programación.

Esto no es tanto una pregunta, sino un deseo en mí, de ver cómo podemos cambiar la cultura de la programación y los administradores de la programación, para que se fomente la educación y la superación personal.

Hay muchos caminos para la educación continua, videos de YouTube, libros, conferencias, pero debido a la naturaleza experimental de lo que hacemos, no siempre está claro qué es importante aprender y dominar.

Veamos los 12 pasos de Joel.

La prueba de Joel

¿Utiliza control de código fuente?

¿Puedes hacer una compilación en un solo paso?

¿Realiza construcciones diarias?

¿Tienes una base de datos de errores?

¿Corrige errores antes de escribir un nuevo código?

¿Tiene un calendario actualizado?

¿Tienes alguna especificación?

¿Los programadores tienen condiciones de trabajo silenciosas?

¿Usas las mejores herramientas que el dinero puede comprar?

¿Tienes probadores?

¿Los nuevos candidatos escriben un código durante su entrevista?

¿Haces pruebas de usabilidad en el pasillo?

Creo que todo esto tiene un valor importante, pero debido a algo que llamo la brecha experiencial, si un programador o gerente nunca ha experimentado ninguna de las consecuencias negativas por no haber realizado elementos en la lista, nunca verán la necesidad para hacer cualquiera de ellos.

La brecha experimental, es mi teoría básica, que cada uno de nosotros tiene diferentes trabajos y diferentes experiencias. Así que para algunos de nosotros, que siempre hemos trabajado con docenas de programadores, el control de código fuente es una necesidad. Pero para las personas que siempre han sido los únicos programadores, no pueden imaginar la necesidad del control de la fuente.

Y es debido a este defecto importante en la forma en que aprendemos, que evaluamos a las personas según las mejores prácticas que hacen o no, y la razón de cualquiera de ellas puede iniciar una guerra de llamas.

Siempre evaluamos a las personas en nuestro campo por lo que hacen y pensamos "Oh, si este tipo / gal no está haciendo las mejores prácticas de xyz, no puede ser un buen programador, así que no perdamos tiempo ni energía. hablando con ellos ".

Esta es exactamente la razón por la que tenemos tantas guerras de programación de la llama, que se vuelve, debido a la brecha de Experiental, no podemos imaginar que las personas no hayan tomado las decisiones que hemos tenido que tomar.

Así que esto me ha llevado a pensar, que necesitamos repensar totalmente cómo entrenamos, educamos y administramos a los programadores.

Por ejemplo, ¿qué porcentaje de usted ha tenido aliento de parte de su gerente para ir a conferencias e incluso hacer que paguen por ello?

Para mí, y para mucha gente, esto es extremadamente raro, a muchos de nosotros nos encantaría ir a conferencias, para aprender más, pero el dinero no está ahí para hacer eso.

Entonces, el punto de esta pregunta es realmente ¿cómo podemos entrenar, aprender y administrar mejor?

¿Cómo podemos crear una nueva cultura de aprendizaje que no insulte a las personas por no tener las mismas experiencias laborales?

Sí, todos tenemos trabajo y trabajo que hacer, pero nuestra capacidad para hacer nuestro trabajo bien, depende de nuestro deseo, interés y apoyo para mejorar nuestro dominio de nuestras habilidades.

En este momento, veo que nuestra cultura está bastante desorganizada, apoyamos a la élite, pero esas toneladas de nosotros que queremos mejorar, simplemente no tenemos suficiente apoyo para aprender y mejorar.

Quiero decir, ¿nosotros, como industria, queremos ser percibidos como simples engranajes reemplazables?

Gracias ...

    
pregunta crosenblum 20.03.2011 - 17:54

3 respuestas

13

Wow, gran pregunta para pensar, difícil de responder. Debido a que todos tenemos diferentes experiencias y deseos, es difícil encontrar una solución única para todos. Pero lanzaré algunas opiniones a lo largo de los años sobre este mismo tema.

1) Deja de ver el trabajo saltando como malo y aliéntalo. Cambiar las empresas cada pocos años. El programador se expone a muchas tecnologías, metodologías y empresas diferentes en el curso de su carrera. Las empresas obtienen un flujo constante de nuevas ideas.

2) Deja de verte a ti mismo como programador en la empresa X y considérate un profesional que presta un servicio a la empresa X. Si piensas como un profesional, serás tratado como un profesional. Si somos vistos como engranajes reemplazables, es porque actuamos como engranajes reemplazables.

3) Las universidades necesitan cambiar. Deben tener un período inicial de 2 años de educación básica en computadoras, seguido de una opción. Informática o Ingeniería Informática. Y la pista de ingeniería necesita profesionales que trabajen en el campo todos los días, no alguien que simplemente escriba artículos. Y lo que se enseña debe ser práctico, para que pueda comenzar a trabajar el día después de la graduación. Tal vez tenga un programa de aprendizaje para aquellos que no pasan por un programa de grado.

4) Edit: Esto fue un poco despotricado. Lo que quise decir es que todos tenemos mucho que aprender unos de otros independientemente de la edad y la experiencia.

5) Algo relacionado con el punto 2. Deje de ver a su empleador como responsable de su carrera. Usted está. Y solo tu. Si desea asistir a una conferencia, pague usted mismo si su empresa no lo hace. Ponga dinero a un lado cada año específicamente para libros, capacitación y desarrollo profesional. Si espera que su empleador lo envíe a la capacitación, estará esperando mucho tiempo. El tiempo dedicado a observar tus habilidades se vuelve irrelevante. ¿No estás haciendo lo suficiente para pagar eso? Cambiar trabajos.

6) Necesitamos ser honestos con nosotros mismos y con nuestros compañeros programadores. La programación es difícil. Muy duro. Todavía veo publicidad para la capacitación en computación con riquezas garantizadas después de graduarme. Eso trae a muchas personas al campo que simplemente no están calificadas o, peor aún, no tienen un interés real más allá del dinero. Necesitamos encontrar una manera de alentarlos a repensar sus planes de carrera.

En este punto, creo que mi cabeza está a punto de explotar, así que concluiré.

¡Gran pregunta! Tengo muchas ganas de leer más respuestas.

    
respondido por el msvb60 20.03.2011 - 19:00
1

No creo que se desorganice únicamente como resultado de la falta de enseñanza. Creo que en realidad es reflexivo que las "mejores prácticas" diferirán de un trabajo a otro. Las "mejores prácticas" siempre se basarán en un contexto particular.

Resulta que hay muchos cruces en algunas de las áreas de trabajo más comunes, es decir. desarrollo web. Sin embargo, creo que es una falacia creer que solo porque es bueno participar en una práctica particular en la mayoría de los trabajos, se debe utilizar en todos los trabajos.

Las prácticas con las que te involucras deben provenir de un análisis y experimentación de lo que te hace trabajar mejor. No deben ser elegidos a través de la creencia ciega. El hecho de que algo se haga eco a menudo en la red no lo convierte en una verdad en su situación, ni en una Verdad (para todas las situaciones).

    
respondido por el dietbuddha 21.03.2011 - 06:32
0

Gran pregunta para ejercitar la mente, estoy de acuerdo en que hay que hacer algo, pero creo que es imposible responder. Mi intento:

Primero No mates la creatividad en general, debo decir que estoy de acuerdo con Sir Ken Robinson, mira esta gran charla TED . Nuestro sistema educativo está matando la creatividad y eso tiene que ser enmendado. Especialmente para programadores.

Segundo Enseñe a patrones similares nuestro campo profesional no es lo suficientemente maduro. Tenemos muchas cosas diferentes que creemos que son el camino a seguir, pero realmente no podemos estar de acuerdo con ellas. (piense en TDD, BDD, Agile vs Waterfall, la cantidad de documentación necesaria, Java o .Net) En mi opinión, esto se debe a una discusión sin contexto y a una gran especialización. No puede tomar la decisión correcta sin saber en qué contexto se hace la pregunta y no puede tomar la decisión correcta si solo conoce una opción. Cuando traes esto de vuelta a la educación parece imposible resolverlo. No se puede esperar que alguien conozca todos los contextos posibles y todas las soluciones posibles. Pero con los patrones, ahora algunas soluciones generales y los contextos se aplican y los contextos cuando las soluciones se rompen. En mi humilde opinión, esta es la forma en que necesitamos enseñar, soluciones generales dentro de un contexto y descripciones de cuándo la solución no funciona.

Tercero ponga los descargos de responsabilidad en los ejemplos creo que hay un problema con los ejemplos que mostramos en MSDN, en los blogs, en los libros, etc. Los ejemplos a menudo se simplifican para entender que el escritor es intentando hacerlo. Pero en los ejemplos más básicos ya hay decisiones en muchos niveles. Estos ejemplos enseñan todas estas otras decisiones equivocadas. Creo que cada ejemplo tiene que venir con un descargo de responsabilidad que indique cuál es el punto y qué no debe hacer en general. Hoy se publicó un gran ejemplo de esto aquí .

Último Hacer Hacer Creo que se necesita hacer más. He aprendido a la mayoría solo haciendo, fallando, arreglando y discutiendo.

    
respondido por el KeesDijk 20.03.2011 - 20:26

Lea otras preguntas en las etiquetas