Eres un programador de computadoras y tu amigo te pregunta a qué te dedicas. ¿Cómo lo explicarías?

Te estoy dejando sin trabajo.

No, realmente, eso es básicamente todo. Estoy causando desempleo a escala mundial a un ritmo nunca antes visto. No es lo que quiero hacer, pero es el efecto más destacado de mi trabajo.

Para ser más específico, contribuyo al progreso técnico que, debido a la mala planificación social, la corrupción corporativa y un gobierno apático, está empeorando su vida cuando debería mejorarla. No es mi culpa: creo valor, pero debido a mi capacidad social promedio y mi origen de clase media, no puedo ser uno de los que lo capturan. Tú y yo, realmente, estamos en el mismo bote. Si consigo un 12 por ciento más productivo cada año, solo estoy al día con mi competencia. Si me rompo el culo, puedo ser un 30 por ciento más productivo cada año, pero no se reflejará en mi sueldo, porque los ingenieros de software son malos para organizar o luchar por sus propios intereses.

Lea sobre Ingresos básicos. Luego escriba a sus representantes en el Congreso. Eso es un comienzo. El gobierno solía servir al interés común. Ahora solo sirve a los ricos. Arregla eso. Los funcionarios electos están sujetos a elecciones competitivas periódicas pero, en la práctica, tienen más seguridad laboral (más del 90 por ciento de tasa de victoria predominante) que usted o yo. Nuevamente, ve a votar y arregla eso. Despide a los funcionarios electos hasta que tengas un conjunto que proteja a la clase media. Eso minimizará el daño que yo (sin querer) haga en mi trabajo. Los trabajos tienen que desaparecer para que la sociedad progrese, pero las personas no deberían ser penalizadas individualmente cuando son las desafortunadas desplazadas. Deberían tener, o recibir, los recursos para capacitarse en mejores trabajos. Nuevamente, comience a escribir a sus representantes políticos y comience a votar por las personas que protegerán a la clase media.

Eso es un comienzo, pero no es suficiente. Proteger a la clase media es importante. Después de eso, tenemos que innovar . No podemos ponernos demasiado cómodos.

Mira, tengo habilidades que se pueden usar en biotecnología, física, diseño industrial, investigación de operaciones, reconocimiento de patrones visuales y miles de otras cosas.

¿Qué estoy haciendo realmente, junto con el 95% de los programadores profesionales pagados? No curando el cáncer o construyendo autos sin conductor, sino ayudando a hombres de negocios a desempleados. Cuando alguien como yo duplica la eficiencia de una fábrica, es porque me gustaría ver más cosas hechas; en cambio, su propietario reduce la fuerza laboral a la mitad. No tengo nada que decir en esa parte. El valor que genero es capturado y asignado por personas sin visión, a menudo sin ética y cero interés en avanzar en la sociedad.

Arreglar ese es mi (nuestro) trabajo, pero nosotros (como programadores) hemos sido reacios a aceptarlo. Pero en este momento estamos aterrorizados de hacer lo correcto porque la Trinidad Satánica (gastos de vivienda, atención médica y educación) está matando a la clase media e incluso a la clase media alta, por lo que no podemos correr riesgos con nuestros trabajos y carreras. Entonces … volvemos a la política.

Ahí está. Y estoy volviendo al código.

Escribo instrucciones para una “persona” de mentalidad extremadamente literal que tiene un conjunto específico de habilidades y solo entiende un subconjunto de inglés. La gente para la que trabajo quiere que esa “persona” haga cosas extremadamente complejas.

Imagina que tienes que enseñarle a un robot cómo pasear a un perro. “Primero, toma la correa …” Golpea su brazo a través de la pared y agarra una correa de la habitación contigua.

Ups Intentemoslo de nuevo. “Primero, ve a la habitación de al lado …” Él atraviesa la pared, como el lanzador gigante en los comerciales de Kool-Aid.

Arg! Bien, intentemos una vez más: “Gire a la izquierda, gire los pies hacia adelante, gire a la derecha …”

Lo que funciona aún mejor es algo que vi en un video de YouTube de una clase de Programación 101 de nivel universitario. No tengo el enlace, lo siento. En lugar de explicar el trabajo, finja ser el robot y pídale a su amigo que le dé instrucciones para que pueda hacer un sándwich de mantequilla de maní y mermelada:

“Poner mantequilla de maní encima un poco de pan”.

Pones el frasco de mantequilla de maní sobre la hogaza.

“No, quiero decir sacar algo del frasco y luego ponerlo en el pan”.

Comienza a romper el frasco.

“¡No! ¡Detente! Desenrosca la tapa, saca un poco de mantequilla de maní y ponla en el pan.

Usando tus dedos, sacas la mantequilla de maní y la untas por todo el pan.

“¡No, quiero decir con una sola rebanada de pan! Usa un cuchillo para sacar un poco de mantequilla de maní del frasco y luego untarlo en una sola rebanada de pan”.

Utiliza un poco de mantequilla de maní con un cuchillo y luego usa los dedos para extenderlo en los bordes de una rebanada de pan.

“No. Usa el cuchillo para untarlo también en el pan. Y extiende uno de los lados anchos de la rebanada …”

Así es el trabajo.

Voy con “Soy un programador de computadoras”. Por lo general, la gente entiende eso. Si no lo hacen, dales algunos ejemplos de software y diles que alguien le dio a la computadora instrucciones sobre cómo jugar ese juego / escribir ese documento / silbar esa melodía y que lo que haces es similar. Si todavía no entienden eso, probablemente estén jugando contigo.

Les dices que los ingenieros de software diseñan cosas suaves como almohadas y camas. Si te creen, entonces puedes tirar una bazinga Sheldon Cooper.

Escribo libros para máquinas.

Para escribir estos libros, a veces estudio bibliotecas llenas de otros libros.
A veces cito otros libros en mis libros.

Algunos de estos libros pueden ser muy populares y ser utilizados por muchas máquinas.
Otros son muy oscuros y leen solo raramente.
Algunos libros contienen información crítica, otros están hechos para entretener.

A veces escribo libros en diferentes idiomas. O podría escribir un libro en varios idiomas.
A veces solo hago traducciones, de un lenguaje de máquina a otro.

Algunos idiomas son arcaicos, antiguos y hay toda una literatura en ellos. (como latín o griego antiguo)
Otros son nuevos, con muchas palabras nuevas y es más fácil expresar conceptos complejos con ellos. (como el inglés moderno o francés).

Algunos libros están hechos solo para ciertos tipos de máquinas como teléfonos inteligentes Android, otros para servidores web, otros para computadoras de automóviles. Solo aquellos pueden entenderlos incluso si el lenguaje de programación puede ser el mismo.

Depende del amigo.
Un conocido casual que conoce a Jack – $ #! + Sobre computadoras, podría explicarlo así:
(fuente: problemas informáticos)

Para los amigos cercanos que saben cosas sobre computadoras, probablemente lo explicaría como hacer algo parecido a las matemáticas en papel, convertirlo en algo que una computadora pueda entender, y luego buscar todo lo estúpido que hice.

Ejemplos:
poniendo un incremento posterior en una comparación:

  int main ()
 {while (verdadero)
 hacer algo();
 }
 void do_thing (vacío)
 {static int i = 0;
 si (i ++ == 0)
 {hacer cosas();}
 más si (i ++ == 1)
 {do_other_stuff ();}
 más si (i ++ == 2)
 {do_more_stuff ();} ... etc.
 } 

Parece inocente al principio, pero omitirá el caso i == 1. Por qué lo hará se deja como ejercicio para el lector.

Olvidarse de incrementar en un bucle.
(en este caso, el compilador se negó a reconocer el bucle y me obligó a usar el bucle while)

  int n = 0;
 while (n 

Ups No es de extrañar por qué una pequeña tabla no funciona.

Y a veces me golpeo la cabeza con el teclado cuando leo lo que otras personas escribieron.

Desde mi perfil OkCupid:

Soy un desarrollador de software, que es mucho más emocionante de lo que piensas. Cuando era joven, leí una historia sobre un niño que tenía papel mágico de origami, y cualquier cosa que hiciera de él cobraría vida. Así es el desarrollo de software: escribes algo y cobra vida. Es magia.

Si me presionan, podría leer este párrafo del prólogo de SICP, que nunca deja de sentirme entusiasmado por lo que hago para vivir:

Nuestro tráfico con el tema de este libro nos involucra con tres focos de fenómenos: la mente humana, las colecciones de programas de computadora y la computadora. Cada programa de computadora es un modelo, tramado en la mente, de un proceso real o mental. Estos procesos, que surgen de la experiencia y el pensamiento humanos, son enormes en número, intrincados en detalles y en cualquier momento solo parcialmente entendidos. Están modelados para nuestra satisfacción permanente rara vez por nuestros programas informáticos. Por lo tanto, aunque nuestros programas son colecciones discretas de símbolos cuidadosamente elaborados a mano, mosaicos de funciones entrelazadas, evolucionan continuamente: los cambiamos a medida que nuestra percepción del modelo se profundiza, amplía y generaliza hasta que el modelo finalmente alcanza un lugar metaestable dentro de otro modelo con el que Luchamos La fuente de la euforia asociada con la programación de computadoras es el desarrollo continuo dentro de la mente y en la computadora de los mecanismos expresados ​​como programas y la explosión de percepción que generan. Si el arte interpreta nuestros sueños, ¡la computadora los ejecuta disfrazados de programas!

En serio: “¡Si el arte interpreta nuestros sueños, la computadora los ejecuta disfrazados de programas!” Increíble.

En un sentido general, puedo decir que escribo instrucciones muy complejas que permiten que una computadora haga algo que antes no sabía hacer. Si la gente pregunta qué tipo de programas escribo, digo almacenamiento de datos. Aproximadamente la mitad del tiempo preguntan qué significa eso, y les digo que escribo programas que permiten que otros programadores almacenen datos en un montón de computadoras para que aún estén allí, incluso si una de esas computadoras muere. Eso generalmente parece ser suficiente.

Por lo general, trato de explicar lo que estoy construyendo en lugar de cómo lo estoy haciendo. Imagine preguntarle a un carpintero a qué se dedica para ganarse la vida y hacer que respondan algo como “Construyo cosas usando herramientas”. o “Uso una sierra para cortar tablas de madera y luego uso un taladro, un destornillador y algo de pegamento para unir estas tablas en combinaciones específicas”. No muy interesante, ¿eh?

Mi respuesta suele ser algo así como “Trato de hacer que las computadoras evalúen la calidad y la legibilidad de los documentos escritos y evalúen qué tan bien lo hacen”.

Me gusta responder que soy un poeta binario, pero después de la mirada en blanco, generalmente digo que soy un programador, y después de la siguiente mirada un poco menos en blanco, digo que soy un ingeniero de software. La conversación generalmente no va mucho más allá.

Voy a la oficina, abro mi computadora y escribo. Después de un tiempo voy a almorzar y regreso. Luego, una vez más, escribo tanto como es suficiente para el día, y luego me voy a casa.

A veces, algunas personas van de nuestra oficina a los Estados Unidos; van allí y escriben unos días y luego regresan. Espero ser elegido algún día para ir a EE. UU. Y escribir.

Soy una especie de maestra. Pero en lugar de enseñar a los niños, enseño algo mucho más tonto que los niños. Enseño a las computadoras qué hacer. El problema con las computadoras es que no entienden los idiomas que usted y yo hablamos. Además, toman todo muy literalmente. La mayoría de las veces, si un niño falla en algo, los maestros no responden por lo que el niño entendió. Pero si una computadora no puede hacer lo que se supone que debe hacer, tengo que seguir todas las instrucciones que le di y corregirlas. Esto puede llevar días, pero la computadora espera con mucha paciencia mientras yo me corrijo a diferencia de los niños. La otra cosa que facilita la enseñanza de la computadora es que son tan tontos que no hacen preguntas. Además, si mis enseñanzas funcionan lo suficientemente bien para una computadora, lo más probable es que no tenga que enseñarlas a otras computadoras.

He tenido que responder esta pregunta (“¿Qué haces realmente?”) Varias veces antes. Usualmente digo algo como:

“Resuelvo problemas usando el código de la computadora. Encontraré problemas, por ejemplo, cómo crear una nueva cuenta de usuario en un sistema, y ​​tengo en mi caja de herramientas para hacerlo uno o dos idiomas de computadora. Uso el idioma para indicar computadora exactamente cómo lograr el problema “.

Chico informático, trabaja con computadoras, desarrollador web, desarrollador LAMP, dependiendo de lo inteligente que sea tu amigo

Amigo o no, siempre comienzo con una visión muy vaga de 10k metros como “Trabajo en TI”. En este punto, la mitad de ellos pensarán algo así como “chico de soporte al usuario”, “el tipo que instala su computadora en el escritorio de la oficina” o algo similar.
Luego, gradualmente, sea más y más específico si y solo si esa persona insiste en obtener más detalles.

A veces me gusta bromear diciendo que “me gusta la magia / un mago” (con computadoras que sí).

Me pregunto cómo he podido tener un amigo que no supiera qué era la programación de computadoras.

Luego lo explicaría como la parte del proceso que convirtió progresivamente los requisitos de lana en algo en lo que un motor lógico puede actuar. Si no entienden eso, simplemente les compraría una cerveza y me relajaría con ellos.

Usted construye herramientas y tecnologías útiles.

Conviertes el café en programas usando magia.

Mecanógrafo glorificado

Automatizo sistemas que significan que se requiere menos gente para ejecutarlos y se puede ahorrar dinero al despedirlos.

Si tiene un problema con eso, está en el negocio equivocado.