Una carta abierta para desarrolladores menos experimentados

Este tweet me hizo pensar.

Todo el hilo vale la pena leerlo. Estoy seguro de que muchos desarrolladores que están entusiasmados con el código a veces resuenan con estos sentimientos.

Prometí una respuesta demasiado larga para Twitter, y aquí está.

Primero, un poco de contexto: Recuerdo haberme entusiasmado con las computadoras en la Navidad de 1982 o 1983, cuando mi hermana (8 años mayor que yo) adquirió el Commodore VIC-20. Recuerdo que tenía 4 o 5 años y pensaba que probablemente lo usaría "mejor" que ella en su adolescencia.

Cada vez que tocaba una computadora a partir de entonces me emocioné, pero realmente no aprendí cómo funcionaban correctamente hasta que tuve 11 o 12 años. A la edad de 18 años ya conocía C lo suficientemente bien como para llegar a las mejores clases en mi Un año más fresco en la Universidad, ya la edad de 28 años había trabajado en el servicio civil, el mundo académico, múltiples pequeñas empresas, rincones peculiares del mundo (las Islas Falkland son encantadoras) y dirigía una empresa que ayudaba a pequeñas empresas a descubrir qué revolución tecnológica era todo.

Terminé como director de tecnología para algunas startups, y luego en 2014/2015 me di cuenta de que me perdí la codificación, renuncié a mi trabajo, recibí un recorte salarial de 30% y volví a ser ingeniero senior de software en una firma más grande donde me quedo

Cada uno de los tweets que Saron envía en ese hilo encapsula algún aspecto de mi carrera que para un extraño puede parecer de una manera, pero en realidad, algo más está sucediendo.

Toma por ejemplo:

Curiosamente, puedo responder a esto con un tweet que me hice hace un momento:

Los desarrolladores junior comienzan con esta expectativa de que si solo aprenden a codificar, lo harán y luego obtendrán sus horas y progresarán profesionalmente. Esto no tiene sentido.

Codificar para ganarse la vida es aprender a ganarse la vida. Si no le gusta aprender todos los días , regrese ahora o intente dar un salto hacia algo menos exigente desde una perspectiva de aprendizaje.

Cuanto más codifique, más se dará cuenta de que hay universos enteros matemáticos, teóricos, de ingeniería y creativos que no comprende, nunca llegará a comprender y, por lo tanto, no tiene sentido fingir que lo hace, lo puede entender o lo puede entender.

Si nos tomaras a mí y a otro desarrollador con una historia similar, pero la otra parte se había pasado toda la vida codificando en los bancos, y nos habrían juntado en un bar para charlar, sorprendentemente, habría poco en común.

Podríamos hablar un poco sobre la semántica del lenguaje. Sabría mucho más sobre la web y la aplicación que sobre las cosas que ellos. Podrían saber más sobre el cumplimiento y quizás estrategias más apropiadas para las configuraciones de Enterprise. Estoy gastando mucho tiempo trabajando en el abastecimiento de eventos en este momento, por lo que tendríamos un terreno común allí, pero llamaríamos las cosas por diferentes nombres.

Agregue un desarrollador de juegos a nuestra mesa, y es probable que nos sentemos en silencio por un tiempo hasta que todos recordemos que a todos nos gusta Rick & Morty .

Y eso es lo que creo que normalmente se ve cuando se ve a un senior con autocrítica. En realidad, no piensan que sean terribles, solo conocen sus limitaciones y disfrutan trabajando dentro de ellos, y han pasado el punto de hacerle creer que son expertos en todo.

El siguiente en ese hilo:

Lo menos importante de un software es el código. Lo siento, pero es verdad, y cuanto antes todos los que lleguen a la carrera se den cuenta de eso, más productivos, felices y arraigados estarán.

Decir que el código es lo más importante es como decir que la parte más importante de un nuevo edificio son los planos del arquitecto. No podrá llegar lejos sin ellos, pero hay muchísimas otras cosas que un arquitecto tiene que hacer para asegurarse de que los clientes, los ciudadanos locales, las autoridades, otros arquitectos, etc. estén satisfechos con el edificio.

Nadie ganó un premio de arquitecto por un buen sorteo, y un pedazo de código que sirve para una necesidad que nadie tiene o lo hace de una manera que sin querer filtra datos personales o rompe máquinas no va a ganar grandes elogios.

La semántica del lenguaje es el equivalente al lenguaje del dibujo de un arquitecto. Del mismo modo que un arquitecto pasa los dibujos a los trabajadores de la construcción para que se den cuenta, pasamos nuestro código a intérpretes y compiladores.

De la misma manera que algunos arquitectos quieren sobresalir en la ingeniería civil, algunos codificadores entrarán en las piezas de trabajo de los idiomas.

La forma en que las casas prefabricadas tienen una buena relación calidad-precio para quienes no se preocupan por la arquitectura per se, puede recorrer un largo camino para descargar o copiar / pegar cosas y unirlas.

En última instancia, usted tiene la responsabilidad, como profesional, de darse cuenta de que su código tiene expectativas de la audiencia, y tiene responsabilidades para esa audiencia y para otras personas, y es por eso que existe.

Eso no significa que no pueda estar orgulloso de cómo cumplió o excedió esas expectativas o responsabilidades expresando esas necesidades en el código en sí, sino hasta que acepte en el fondo de su corazón que su trabajo es servirles como preocupaciones principales a través de la idioma de código, y el código en sí no es tan importante como la tinta y el papel para escribir, vas a encontrar esto una carrera brutal.

Solía ??decir que la ingeniería de software es 80% de comunicación y 20% de escritura de código. Ahora creo que es más parecido al 95% / 5% cuando está bien hecho, es solo que se puede hacer más comunicación con otros ingenieros a través de un código diseñado y bien diseñado.

Volví a la codificación porque es la mejor manera que conozco de expresarme mientras me gano la vida. Puedo tocar un poco el piano, soy un artista terrible, y aunque me gusta escribir, no paga las cuentas.

Ahora, hace años, tenía montones de proyectos paralelos alineados. Muy pocos de ellos se trabajaron porque la vida real se interpone en el camino. Algunos de nosotros nos cansamos más a medida que envejecemos, algunos de nosotros tenemos familias, me enfermé sin darme cuenta y durante los últimos dos años básicamente tuve un problema que culminó con la pérdida de la capacidad para caminar (soy mayoritariamente). bien ahora, más aquí ).

El punto es que la experiencia nos dice que entusiasmarnos demasiado con esas grandes ideas podría llevarnos a la frustración, ya que es posible que no trabajemos con ellas.

No dejes que eso te impida estar entusiasmado con esas cosas. Ve a construir todo lo que puedas.

Si puedes y estás dispuesto, no seas solo productivo, sino prolífico.

Tu energía disminuirá a medida que envejezcas. Está bien. Tus prioridades en la vida cambiarán Está bien. Estrecharás tu campo de interés. Eso podría estar bien, podría no serlo, normalmente es mejor mantener tu mente abierta a nuevos campos, especialmente en los primeros 30 años más o menos de tu carrera.

Sin embargo, no confundas a aquellas personas que han priorizado otros aspectos de su vida para las personas que han abandonado el potencial de lo que un desarrollador con una buena idea y la energía y la habilidad para ejecutarlo bien puede hacer. Solo recuerda, todos conocemos los nombres de Gates y Zuckerberg porque solo hay dos: las probabilidades son largas, la gloria es grande, y es tuyo si lo deseas.

Pero, ya sabes, está bien no hacer eso si quieres salir con gente, y en mi experiencia personal, las personas son más agradables para salir que las computadoras. Piénsalo.

A veces cuento una historia sobre un encuentro que tuve hace un par de años. Estaba haciendo extensión de STEM para la Royal Society a través de la Universidad de Salford. Una mañana me encontré haciendo una asamblea en Manchester Islamic High School for Girls.

Enfrentándome a una habitación de niñas de 11 a 14 años, la mayoría vestida de gala, algunas con burkas, saqué fotos de Ada Lovelace, Grace Hopper, Gates, Zuck y otras. Les dije a esas chicas sobre cómo vi su potencial:

Pocas cosas que puede elegir hacer en su vida le permitirán tener tal impacto en el mejoramiento de la humanidad, si elige mejorar la humanidad con estas habilidades.

Con la computadora portátil o la PC que probablemente ya tenga en su hogar y algún conocimiento, puede crear experiencias para una audiencia de miles de millones a un costo prácticamente nulo que no sea su tiempo. Esas experiencias pueden educar, entretener o mejorar. Pueden convertir a las personas en superhumanos de mundos virtuales en un juego o en titanes de la industria dentro de una hoja de cálculo. Puedes construir músculos mentales que aprovechen nuestra capacidad como especie.

El código de escritura se encuentra en una fascinante y bella intersección entre el mundo analítico de la Ciencia y el potencial expresivo de las artes creativas. Es profesional, gratificante y bien pagado.

Si aprende a codificar, y lo disfruta, el límite de su expresión es completamente de su propia creación.

Después de dar un apasionado discurso de 20 minutos en estas líneas, me senté a escuchar al siguiente presentador: una mujer de British Gas alentándolos a convertirse en personal de reparación de calderas para que pudieran obtener su "uniforme y conducir una camioneta". Suspiré en mi sociedad, recogí mi computadora portátil y me fui.

Pero te lo digo ahora Saron, y todos los que se sienten como lo hace, que mis pensamientos permanecerán sin cambios y ahora lo estoy diciendo estas cosas.

Sí, me auto deprecio, sí, estoy demasiado ocupado como para entusiasmarme con absolutamente todo, y sí priorizo ??mi salud y un equilibrio en la vida para lanzarme al abismo de la codificación creativa como un maníaco.

Pero nunca confundas esto por pensar que te estamos indicando que estás cometiendo un error ingenuamente, que tu entusiasmo eventualmente disminuirá a pesar de que no lo desees, o que aquellos de nosotros con más experiencia que tú en este momento creemos que tu entusiasmo es fuera de lugar.

Buena suerte, y buena suerte.