¿Cuál es la mejor manera de explicar lo que hago como ingeniero de software / desarrollador web a alguien para quien eso no significa nada?

“alguien con quien eso no significa nada” no es algo con lo que puedas establecer una buena relación.

Necesitas conocer los antecedentes de esta persona. Comprenda su experiencia pasada y aprenda su idioma. Por “aprender su idioma” no me refiero a las cosas idiomáticas básicas, me refiero a su jerga.

Los jargons tienen raíces en el segmento / industria o microcultura de las personas. Pero déle muchas señales de que lo está haciendo como su esfuerzo y cortesía para que pueda entender (antes de mover las cosas a cualquier otro paso / nivel).

Evade usar su jerga para tratar de causar una impresión. Eso no solo es molesto, es simplemente tonto. Pídele que te ayude corrigiéndote cuando sea necesario. En realidad, esa es una excelente manera de causar compromiso y ella se sentirá incluida (porque usted está dando señales de no estar “monologándola”).

Podría ser útil si te consideras algo así como un embajador o un periodista, traduciendo mensajes (los importantes) entre culturas (en lugar de arrojar BS y otras cosas).

Cada trabajo tiene partes que requieren creatividad y juicio y partes que son aburridas y repetitivas. Ayudo a determinar qué partes son cuáles y luego les digo a las computadoras cómo hacer los bits aburridos y repetitivos.

He usado una analogía de lego varias veces. Si desarrolla software web, como yo, probablemente esté combinando legos la mayor parte del tiempo.

Cualquier desarrollador de software decente debe saber que el componente fundamental del software es el bit. Podrías pensar un poco como una clavija de lego de plástico. Se podría pensar en una pieza de lego 8X1 como un byte. Continúa desde allí. La mayor diferencia entre construir modelos con legos y escribir software es que en el software, tienes la capacidad de duplicar un modelo de tamaño arbitrario sin tener que reconstruirlo. En otras palabras, si construyes una nave espacial Lego, y si quieres construir una estación espacial con 8 naves espaciales, tendrías que construir 7 naves espaciales más, y cada una tomaría [casi] tanto tiempo como la primera. En el software, si crea una función, clase o biblioteca, puede llamar a una función o usar esa biblioteca infinitamente, y puede crear instancias de un sinfín de objetos de esa clase sin tener que duplicarlos. Más allá de eso, la analogía continúa.

Como ejemplo, si trabaja en código web front-end, un usuario que visite su sitio web solicitará y obtendrá copias de sus modelos de lego HTML, CSS y JS en su computadora. El navegador del usuario también es un modelo de lego gigante alojado en su computadora, que contiene modelos de lego más pequeños para la interpretación de JavaScript, CSS y HTML. Si el usuario quisiera, también podrían tomar sus modelos de lego, combinarlos con otros modelos de lego o incluso simplemente modificarlos.