Com ser un bon enginyer de programari junior

Enhorabona! Ho vas fer! Us heu convertit en enginyer de programari junior. Vaig rebre el mateix premi fa un any quan vaig entrar a AdHawk, i va ser tot un èxit. Per transmetre el que vaig aprendre del meu passat, he compilat una llista de consells i consells sobre com podeu ser un gran enginyer de programari júnior.

El meu equip (estic a la dreta) amb el nostre cap de producte Joe (mig) - Seu d’AdHawk 2018

Sigues fort!

Si us quedeu encodats, no us deixeu seure massa temps. Assegureu-vos de treballar per intensificar la cerca de solucions. Tot i això, si porteu massa temps inactiu, poseu-vos en contacte amb un co-desenvolupador. Feu tantes preguntes com pugueu pensar en fer parella amb un company de feina. No hi ha preguntes estúpides i les coses clarificadores per a vosaltres beneficien les dues parts. El fet de no ser vocal pot comportar una disminució del rendiment de creixement i desenvolupament.

Troba un mentor

Trobeu un mentor intern o extern al vostre equip en particular. Quan es reuneixi amb aquest mentor, introduïu els objectius SMART (específics, mesurables, assolibles, realistes i oportuns) en aquestes visites i informe dels resultats al vostre mentor.

A més, proveu d'informar d'errors amb les vostres visites. Una de les eines més poderoses per aprendre és la introspecció. Comenteu les dificultats que tingueu i pregunteu al vostre mentor com podeu créixer a partir d’aquestes experiències.

Atreveix-te a endinsar-te en allò desconegut

Premeu per fer tasques fora del vostre coneixement. Assumir reptes augmenta el vostre nivell d’experiència i us familiaritza amb problemes nous i, de vegades, habituals que cal resoldre.

Ensenya el que aprens

Hi ha moltes maneres de donar la volta i ensenyar allò que heu après. Podeu escriure documentació, crear un vídeo tutorial o escriure una publicació al bloc. Sigui quin sigui el mitjà que trieu, l’acte d’ensenyament reforçarà el vostre creixement educatiu. Si heu de tenir clar alguna cosa, heu d’analitzar un problema i omplir els buits del vostre coneixement.

Crear un calendari de treball

Com a desenvolupadors, tenim moltes parts mòbils i responsabilitats. Sempre podeu escriure un nou rol, corregir un error, revisar el codi d'un company, aprendre una nova tecnologia, assistir a una reunió o diverses altres tasques. La creació d’un horari que estableixi el temps per a cada tipus de tasca durant una setmana laboral específica us assegura que progressareu en cada nova àrea de responsabilitat.

El meu dia típic

  1. Reviseu les sol·licituds d'extracció (mitja hora a hora)
  2. Treballeu amb una targeta de desenvolupament (fins que us lleveu, aproximadament 2-3 hores)
  3. Standup (mitja hora)
  4. Hora de dinar)
  5. Seguiu treballant en targetes de desenvolupament
  6. Feu pujar una sol·licitud d'extracció en curs i / o reviseu les noves sol·licituds d'extracció

Les reunions tindran lloc i estaran entre totes aquestes tasques.

Obliga't a fer una prova

TDD significa desenvolupament basat en proves. En resum, TDD significa que primer escriviu proves que verifiquen la funcionalitat d’una funció o interacció que actualment no existeix. Això crea un bucle d'informació molt important que defineix clarament l'objectiu i l'abast de la vostra tasca. Un exemple de prova que vaig escriure recentment seria:

Quan executeu aquest codi, el primer error és que la variant_path no existeix. La vostra narrativa de desenvolupament ja està configurada. Com a júnior, puc trobar una manera d’aconseguir un paper específic amb el desenvolupament impulsat per proves. A continuació, aquest camí em redirigeix ​​amb una ruta de missatges d'error que m'ajudaran a omplir els buits d'una possible solució.

Premeu per aparellar

No hi ha cap manera més ràpida de desenvolupar-se com a júnior que emparellant-se amb desenvolupadors més avançats. L’entorn que es crea quan una parella sènior i júnior treballa junts reforça el comportament que es requereix perquè tothom tingui èxit. Els majors d’edat han de comunicar les seves idees i decisions d’una manera més general i concisa. Crec que tots els enginyers poden escriure codi amb més facilitat mentre estan profunds en el context de la cerca de solucions. Tot i això, quan se’ls demana que expliquin o validin les seves decisions, comencen a entendre realment l’objectiu i el potencial de la refactorització.

Els juniors, en canvi, poden prendre decisions de nivell superior i incorporar ràpidament interaccions mútues a les seves experiències. D'aquesta manera, poden saltar-se alguns dels passos proverbials com ara: B. Guia completa sobre com crear una prova o com gestionar els errors de manera més adequada. Això estableix els hàbits adequats i millora la salut de l’aplicació a la llarga.

El més important és que l’experiència del desenvolupador per a tots els participants també millora significativament. Em ve al cap una vella dita: "Només podeu anar ràpid, però junts podem anar lluny". El concepte de fatiga mental o cognitiva per quedar-se atrapat no és ni tan sols tan comú.

Si un parell d’idees des de “conductor” fins a “navegador” (que escriu o qui parla sense escriure) o viceversa descarta o possiblement canvia de rols, això pot accelerar els blocs cognitius i augmentar la velocitat de desenvolupament. Tot i que hi ha un cost de l’aparellament (hores de pagament), el creixement i el valor que prové de l’experiència del desenvolupador supera significativament la inversió inicial.

Afineu les eines

Molt abans de saber que l’enginyeria estava a l’horitzó, vaig fer diversos cursos de disseny gràfic durant el batxillerat. La primera prova que vam fer per a aquesta classe va ser a les dreceres de teclat. Per què no aprenem teoria del color o com s’utilitza correctament l’eina de màscares? Això es deu al fet que el meu professor sabia que realment no es pot ser artista sense haver après primer a utilitzar les seves eines. Aquesta lliçó em va quedar la resta de la meva vida. Era un missatge senzill però molt potent.

Com a enginyer, la vostra ment és una de les vostres eines més poderoses i cada dia es fa més forta. Tanmateix, si el vostre entorn de desenvolupament no està configurat de manera eficient, ensopegar amb les estructures de carpetes, fer servir el cursor en lloc de dreceres habituals i les velocitats d’escriptura lentes poden afectar greument la manera com les vostres solucions es tradueixen en codi.

Un grapat d'eines disponibles:

  • Conegueu les dreceres del vostre IDE (dreceres bàsiques de VSCode)
  • Zsh: un intèrpret d'ordres Unix que us permet optimitzar les interaccions de l'intèrpret d'ordres (ordres de completament automàtic, aliasing d'ordres, etc.)
  • Instal·leu un gestor de finestres (Spectacle és la meva aplicació preferida)

Tenir un accés efectiu als meus recursos em va estalviar infinitat de minuts (que es sumen amb el pas del temps). Com a resultat, he passat la major part del temps buscant solucions en lloc de lluitar amb el meu entorn.

Mitjans de comunicació multimèdia

Moltes de les persones amb més èxit de la història recomanen passar temps estudiant durant tota la setmana laboral. Elon Musk, Bill Gates i Oprah són només alguns dels defensors d’aquesta filosofia, la regla de les 5 hores. La regla és que si una persona vol augmentar el seu èxit global, hauria de passar almenys 5 hores a la setmana aprenent alguna cosa nova.

Confiaria en el vostre judici! No és cap secret que hi hagi un nombre infinit de blocs, podcasts, articles, presentacions de conferències, tutorials i molt més que podeu utilitzar per ampliar els vostres coneixements com a enginyer de programari. Durant el vostre viatge junior us submergireu en un mar de termes i conceptes desconeguts. No tingueu por d’aquesta experiència. De fet, suggeriria seguir endavant.

Alguns recursos que he gaudit durant l'últim any:

  • The Bike Shed Podcast: podcast de desenvolupament de programari de la gent de Thoughtbot (contingut d'alt nivell que sembla superior al vostre cap, però que a la llarga és valuós per ser escoltat)
  • Egghead.io: gran plataforma amb tutorials de vídeo molt concisos i ben formatats
  • Exercism.io: plataforma centrada en TDD per ensenyar molts marcs i idiomes populars

Passar unes hores aprenent amb aquestes eines, possiblement amb altres, optimitzarà el vostre creixement i us convertirà en el millor desenvolupador que pugueu ser.

Continua i prospera

Enhorabona pel vostre viatge. És una cosa que no està exempta de perill. De manera similar al programari, els hàbits i l’èxit no es construeixen d’un dia per l’altre. Amb aquests consells i molta feina, confio que us convertireu en el millor enginyer de programari júnior que pugueu ser.