¿Qué buscan realmente los programadores / desarrolladores de software / ingenieros? ¿Qué los impulsa a desear codificar más y más? ¿Por qué son tan apasionados en su campo?

Problemas desafiantes e interesantes para resolver. Si la primera vez que observa un problema y cree que es imposible, eso solo enganchará a muchos desarrolladores.

No es suficiente resolver el problema, sino hacerlo de la manera más sencilla posible y obtener puntos de bonificación si también es elegante. La mayoría de las veces, nadie lee tu código, pero la elegancia es extremadamente satisfactoria.

El aprendizaje es una parte importante de ser un desarrollador, ya que la tecnología siempre está progresando. La capacidad de aprender cosas nuevas es mucho más importante que el salario. A algunos desarrolladores no les gusta aprender tanto y prefieren seguir haciendo las mismas cosas. Ciertamente hay un lugar para programadores de mantenimiento también.

Viendo su aplicación exitosa en producción. Cualquiera puede escribir un prototipo, pero ver que su aplicación sea utilizada por millones de personas con bloqueos mínimos, o ver su código de servidor escalar a miles de nodos de manera eficiente, es la validación de su solución y la validación de que su proyecto es deseable no solo para usted, sino también para su empresa. usuarios

Retroalimentación inmediata. A diferencia de un científico que puede trabajar durante años sin lograr su objetivo, los desarrolladores obtienen retroalimentación instantánea regularmente cuando compila su código, cuando lanza una versión, etc. Creo que esta retroalimentación regular y frecuente contribuye a la satisfacción general.

Finalmente, el acto de programación en sí es divertido. Piense en un carpintero con muchas herramientas que trabaja con materias primas para construir lo que les gusta. La programación es así, excepto que puedes crear tus propias materias primas y también las herramientas para trabajar con ellas. No estás limitado a las cosas que existen hoy en día, sino solo por lo que puedes inventar en tu mente.

Como han dicho otros, definitivamente hay un impulso creativo que nos estimula. También es adictivo, porque tienes poderes divinos en el pequeño mundo que estás creando. Este tipo de motivaciones se aplican principalmente a los nuevos programadores que trabajan en proyectos a pequeña escala. Siguen existiendo para programadores experimentados, pero cuando trabajas en grandes proyectos en equipos más grandes bajo una presión programada, tiende a parecer más un trabajo, y tienden a ser menos oportunidades para ser creativos porque los gerentes quieren resultados.

Los proyectos pequeños pueden ser ejecutados por una sola persona o por un equipo pequeño, pero generalmente con una sola persona que toma las decisiones. Esta estructura natural se descompondrá a medida que el proyecto crezca en escala y complejidad. Esto sucede porque un solo gerente no puede entender todos los problemas y tomar todas las decisiones en tiempo real sin afectar negativamente la productividad del equipo una vez que el equipo supera los 4 o 5 miembros. En este punto, las habilidades blandas como la negociación y el consenso se vuelven más importantes que las habilidades técnicas para aumentar la productividad del equipo.

A medida que los equipos de mayor y mayor productividad aumentan. Pero el sentido de realización individual se reduce. Cosas como las mejores prácticas toman el relevo para garantizar un alto nivel de profesionalismo en todo el equipo, pero a la inversa, dado que el equipo se desempeña a un nivel cada vez más alto, el desarrollador individual puede sentir que está perdiendo autonomía.

Las “mejoras” de procesos como ágil pueden profundizar y agravar esta sensación de privación de derechos. Heredar en estas mejoras de proceso es una suposición subyacente de que todos los programadores son intercambiables. Si bien los programadores novatos pueden ver esto como una suposición simplificadora o una cortesía profesional igualitaria, los programadores experimentados se dan cuenta de que sus habilidades y experiencia probablemente serán marginadas o devaluadas bajo este nuevo régimen. Si no eres un experto en la materia (SME), Agile convierte tu trabajo significativo en una serie interminable de sprints en los que puedes competir con desarrolladores más jóvenes y menos experimentados que, en general, son técnicamente más actuales y también tendrán un nivel más bajo si se cometen errores. hecho.

Entonces, lo que estoy tratando de transmitir aquí es que a medida que te vuelves más y más experimentado como desarrollador, te das cuenta de un par de cosas. Realmente no eres dueño de tu trabajo. Puedes sentir una sensación de orgullo en tu trabajo. Pero si intentas llevarlo contigo, rápidamente aprenderás que no tienes nada más que los recuerdos en tu cabeza y si las corporaciones podrían poner un circuito NDA en tu cerebro, ¡ya no serás el dueño de los recuerdos!

Los desarrolladores de la mitad de la carrera podrían comenzar a pensar que serán capaces de actuar por su cuenta y encontraron una compañía de millones / billones de dólares basada en las habilidades y el conocimiento que han adquirido. Obviamente, esto sucede con la frecuencia suficiente para mantener vivo el sueño, pero la probabilidad es muy baja. Es en gran medida una función del lugar correcto, el momento correcto.

Entonces, después de eliminar todas estas motivaciones viles y mercuriales que menguan y menguan a lo largo de la carrera de un desarrollador, se queda con las realidades económicas obvias.

Al igual que los granjeros de la finca medieval, nos despertamos cada día con hambre y necesitamos ganar el pan, la ropa y alimentar a nuestras familias.

Cuando empiezas a verlo en términos puramente económicos, al principio puede parecer aterrador, pero en última instancia es bastante empoderador. Después de todo, las corporaciones no sienten lealtad hacia sus empleados y no se sentirán culpables de eliminar el trabajo de los programadores si sienten que ya no necesitan a la persona. Entonces, en última instancia, el dinero es un gran motivador, nos guste admitirlo o no.

A diferencia de la mayoría de los demás trabajadores de la economía del siglo XXI, los desarrolladores de software tienen mucho control en la dirección futura de sus carreras. Como grupo, consideramos que es una virtud actualizar nuestras habilidades, pero como no tenemos tiempo infinito, debemos racionar este esfuerzo individualmente, eligiendo los idiomas y la tecnología que consideramos más influyentes o técnicamente viables en el futuro.

Esto me lleva a un segundo motivador constante a largo plazo, la necesidad de mantener las habilidades actualizadas. A finales del siglo 20 había muchos programadores de Cobol sin trabajo. Era un lenguaje que había sido dominante en las aplicaciones de negocios, pero técnicamente era inferior a muchos idiomas más nuevos. A medida que nos acercábamos al nuevo milenio en 1999, repentinamente había una gran demanda porque todos habían estado retirados o despedidos durante décadas cuando las empresas se dieron cuenta de que tenían un problema de y2k y nadie en el personal podía arreglar el código. Así que las empresas pagaron un alto precio para atraer a estos individuos a contratos a corto plazo para hacer el trabajo más aburrido y aturdidor que se haya visto nunca. Estaban literalmente arreglando el mismo error (cálculos de fecha de 2 dígitos) una y otra vez.

Ningún programador quiere encontrarse trabajando en un idioma muerto o moribundo. Pero a medida que se introducen nuevos idiomas, siempre es una posibilidad distinta, que la tecnología a la que le asignó una gran parte de su carrera podría quedar obsoleta debido a alguna nueva innovación.

Un tercer motivador importante es la necesidad de hacer un trabajo interesante. Si acepta mis afirmaciones de que el programador disfruta de la programación y quiere seguir haciéndolo, más aún, deben hacerlo por razones económicas (no de manera independiente) y también deben seguir siendo relevantes técnicamente (desea que se les pague bien). Todos estos requisitos son más fáciles de administrar, si el programador realmente disfruta el trabajo porque es intelectualmente estimulante.

Quemarse es el mayor riesgo de una carrera tardía para un programador establecido. Quemarse, es decir, simplemente cobrar un cheque de pago, tratar de llegar a la jubilación es la sentencia de muerte para un programador. Así que todos nosotros debemos mantenernos mentalmente comprometidos si queremos permanecer en el juego.

Creo que, en general, solo nos atrae la programación como un gato se “dibuja” con ratones. Se nutre de un instinto humano. La idea de tener una máquina que realmente puedas programar es simplemente seductora y fascinante. La humanidad percibió colectivamente que esto iba a ser útil, y lo es.

Luego, cuando comienzas a programar algo, puedes terminar constantemente sintiendo que solo quieres agregar “una característica más”. Es la alegría de la creación, de ver cómo tus ideas cobran vida.

Sumado a todo esto, está el conocimiento de que la aplicación correcta podría hacerte rico o cambiar el mundo algún día.

Además, hay que decir que muchas personas programan solo porque tienen que ganar dinero de alguna manera, y prefieren hacer algo más técnico que vender lavadoras o lo que sea.

Gracias por la A2A!

Es muy difícil hablar por todos en la industria, ya que probablemente todos tenemos nuestras diferentes razones. Lo que estoy buscando creo que puedo describir en una frase:

Facilitar las vidas de todos los involucrados y hacer nuestro trabajo más eficiente.

Eso significa hacer un software que ahorre tiempo para todos, incluyéndome a mí. Ahorra tiempo para la persona que lo usa, ejecutando tareas a pedido para que no tenga que hacerlo, y ahorra tiempo para las personas que lo construyen o lo mantienen, construyéndolo de una manera en que el trabajo y el tiempo empleado ahora generan menos posibilidades. Trabajo y tiempo invertido en el futuro. Esa segunda condición es probablemente clave para mi pasión y lo que me hace desear aprender y codificar más.

Creo que es importante mejorar el software para los usuarios, ya que ese es su propósito, y eso impulsa la voluntad de ser mejor. Pero si no hacemos mejores formas de construirlo y mantenerlo, tenemos menos tiempo para eso y para otras cosas en la vida que amamos.

Por eso, además de la programación, me encanta estudiar y mejorar el diseño y la automatización del software. Me encanta buscar y usar el mejor código ya hecho por personas apasionadas, y ofrecer el mío cuando sea posible. Me encanta ver que el trabajo de las personas sea efectivo y haga las cosas mejor y más fáciles. Y es probablemente por eso que me encantan las prácticas orientadas a patrones, orientadas a servicios, orientadas a código y en la nube. Es por eso que también me encanta el software libre / movimiento de código abierto. Todo esto reduce los costos. Todo esto genera más trabajo al principio, pero se guarda en la ejecución del registro. Y es un sueño para mantener y escalar.

Así que supongo que puedo decir que, en pocas palabras, me encanta ver una mejora real.

¡Atentamente!

Escribo software para mejorar la vida de las personas que lo usan. No hay nada más satisfactorio que crear una solución desde su propia mente, y que las personas que la usan la disfruten y obtengan un gran beneficio de ella.

También lo disfruto porque me gusta el desafío intelectual de construir y mantener sistemas complejos. Me encanta lo que hago y no puedo imaginar hacer otra cosa para ganarme la vida.

Lo que busco es ayudar a mejorar el mundo de una manera pequeña a través del software.

Hay muchos resons.

1. Primero está la pura alegría de hacer las cosas. A medida que el niño se deleita en su pastel de barro, el adulto disfruta construyendo cosas, especialmente cosas de su propio diseño.

2. Segundo, el placer de hacer cosas que son útiles para otras personas. En lo más profundo, queremos que otros utilicen nuestro trabajo y que lo encuentren útil.

3. Tercero, la fascinación de crear complejos objetos en forma de rompecabezas de entrelazar partes móviles y ver cómo funcionan en ciclos de subbobina, representando las consecuencias de los principios incorporados desde el principio.

4. En cuarto lugar, la alegría de aprender siempre, que surge de la naturaleza repetitiva de la tarea. De una forma u otra, el problema es siempre nuevo, y su solucionador aprende algo: a veces práctico, a veces teórico y a veces ambos.

5. Finalmente, existe el deleite de trabajar en semejante problema. El programador, al igual que el poeta, trabaja solo un poco alejado de los pensamientos puros.

En realidad, no busco nada. Programo porque me encanta la actividad de hacerlo. Cuando programa, generalmente experimento un estado mental llamado flujo , y me hace sentir feliz y comprometida. Pero no es solo eso, la programación me brinda una sensación de poder y precisión. Me muestra cuán poderoso es el razonamiento lógico cuando se aplica para resolver problemas. Y es tan flexible …, las personas que dicen que la programación no tiene límites tienen razón. Siempre puedes doblarlo para adaptarlo a tus necesidades. A veces alcanza el nivel de una obra de arte, precisa, perfecta, pero hecha por el hombre y hermosa.

Se está cumpliendo como el infierno.

En los últimos días he tenido una gran cantidad de trabajo por hacer. Así que definí el problema y se me ocurrieron algunas ideas adicionales.

Luego subí mi instancia de nube (cloné una existente) y configuré Filezilla para que mi entorno de desarrollo se configurara.

Luego pasé un par de días haciendo wireframes para burlarme de la interfaz de usuario. Luego, creé un flujo de alto nivel sobre cómo funcionaría la API y cómo se conectaría a la interfaz. Luego planeé un gran algoritmo clave que iba a ser necesario.

Entonces conseguí mi música y mi flujo y comencé a trabajar en ello. Pasé un día en la parte delantera. Fue súper divertido, y se veía super bonito.

Luego tomé otro día y escribí unos cientos de líneas de código. Escribí todas las funciones y mi algoritmo, me conecté a las API. Luego enganché la parte delantera y la parte trasera arriba.

Y todo funcionó como un sueño. Es un buen código, y todo se combinó tan bien que sentí que hice una puta obra de arte … todo en una semana de trabajo.

Hay muchas otras cosas que me gusta hacer. Pero no puedo pensar en ninguna que sea tan satisfactoria como crear algo así.

Y es muy divertido hacerlo. Al igual que el ritmo está en punto y los problemas crujen y la música es buena y todo se une de una manera maravillosa.

Entonces, ¿qué estoy buscando? Sea lo que sea. Dame más de eso.

Nunca tuve la intención de entrar en el desarrollo de software.

Tuve un negocio de personal de mantenimiento en la universidad, y resultó que algún día trabajaba para un desarrollador de software. Vio que me gustaba construir cosas y dijo: “hey, deberías intentar programar”. Luego me dio un libro en HTML. Realmente no programando, pero algo en lo que podría acomodarme.

Me enganché después de que empecé a jugar, HTML primero, Javascript, ActionScript (Flash), luego en Java y C, y otros más adelante.

La razón por la que creo que lo disfruté se debe a un par de cosas. Soy una persona muy impaciente, probablemente un poco AGREGADO y siempre me he sentido creativo. El desarrollo de software se ajusta a todos estos aspectos de mi personalidad.

Como mencioné antes, me gusta construir cosas, pero sabes qué, construir cosas requiere herramientas físicas (dinero), materiales físicos (más dinero) y, generalmente, mucho tiempo (incluso más dinero). Dependiendo de lo que esté construyendo, es posible que no vea los efectos de sus esfuerzos durante algún tiempo. Escribiendo código, generalmente obtienes resultados rápidamente. Fuera del tiempo, realmente no necesitas dinero.

Ahora, en proyectos grandes, puede que no tengas algo que realmente te emocione por un tiempo. Sin embargo, obtienes mucha emoción a lo largo de todo el proceso. Todavía me mareo (al menos un poco) cuando pasan las pruebas de unidad, y he escrito miles de ellas.

Es como si estuvieras construyendo algo que cobra vida de la nada, es algo así como magia. El código en sí es muy parecido a la poesía, y fluye de ti de una manera muy orgánica.

La única quemadura que realmente he experimentado es el aburrimiento con el dominio, pero nuevamente, probablemente sea más debido a mi ADD. Hoy en día, generalmente puedo encontrar algo divertido que hacer en un proyecto que me permite volver a encarrilarme.

Entonces, creo que lo que realmente estamos buscando es la realización en la creación de cosas. Por lo general, nos pagan bastante bien para hacerlo, así que también está eso. Sin embargo, cuando asumo nuevos roles, mi primera y principal pregunta interna no está relacionada con el dinero, es simplemente: “¿Parece este proyecto genial?”

Una de las cosas que les digo a los posibles empleadores es que no me considero un programador. Me considero un problema para mí. Para mí todo se trata de resolver rompecabezas. Cada nueva tarea es un nuevo rompecabezas. Nunca he terminado la satisfacción laboral en términos de lo que estoy codificando, ya que me encanta resolver acertijos.

Bueno, hay muchas perillas en el mundo. Me gusta tomar estas perillas, conectarlas a computadoras pequeñas y usarlas para controlar y cambiar mi entorno. Con los circuitos correctos, cualquier perilla puede mover cualquier objeto al que se pueda acceder por cable o radio. Por eso programo. Así que puedo sentarme en una playa tranquila y dejar que las perillas hagan todo el trabajo.