Logotipo de Zephyrnet

Cómo actualizar sus mejores prácticas como desarrollador experimentado

Fecha:


Contenido

  1. Introducción
  2. Mejores prácticas fundamentales
  3. Seguimiento de tendencias de la industria
  4. Las mejores prácticas y tu carrera
  5. Conclusión

1. Introducción

El software es una industria acelerada. La vida útil de algunas habilidades en realidad parece estar disminuyendo con el tiempo; Los idiomas y los marcos tienen una vida útil limitada. Por lo tanto, uno de los hábitos más importantes para desarrollar es mantener una comprensión de las 'mejores prácticas' actuales. Las mejores prácticas son patrones de técnicas, tecnologías de asistencia, hábitos y plataformas que pueden ayudar a un equipo de desarrollo de software a producir software de mayor calidad de manera más eficiente.

Las mejores prácticas cambian según el tiempo y el entorno en el que se produce el código. La primera compañía en la que hice una pasantía produjo software de enrutamiento de fax para compañías gigantes. El proceso de implementación puede haber implicado el envío de un ingeniero en el sitio con un disco duro para transferir una nueva versión. La compañía para la que trabajo actualmente puede construir servidores AWS alojados varias veces al día, dependiendo de cuántos cambios de código se hayan comprometido en un día en particular. Este es un ejemplo de cómo el "tiempo de liberación" se ha comprimido en los últimos 25 años para volverse prácticamente instantáneo en algunos entornos. Como tal, las mejores prácticas para gestionar cambios muy rápidos también han tenido que evolucionar.

Al utilizar las mejores prácticas, el soporte de código y deuda técnica son menos onerosos tanto para programadores individuales como para empresas en su conjunto. El código creado con las mejores prácticas tiende a tener una vida útil más larga, así como a mantener un costo menor. Además, es más probable que la herencia de este código sea una solución viable a problemas que el código no fue originalmente diseñado para resolver. Y, quizás lo más importante para una organización, la rotación de desarrolladores / compartir responsabilidades es mucho más fácil. Mientras que algunos desarrolladores codifican para la seguridad laboral, codificar su propia obsolescencia es mejor para su reputación y confiabilidad de código.

Las mejores prácticas centrales son la base de la reputación de un buen programador. La mejor práctica, en primer lugar, es bastante ilógica: escribe menos código. Esto se refuerza al hacer que los entornos, y las interacciones entre entornos, sean lo más simples y confiables posible. Mientras hace esto, trate de evitar cometer errores básicos de seguridad. Entonces conviértase en un hábito de las pruebas unitarias, porque a todo el mundo le gusta dormir ... ¡y si no escribe pruebas unitarias, no podrá dormir de forma tan fiable! Finalmente, si puede, configure un entorno de prueba y construcción integrado. Se ha convertido en una parte fundamental de cualquier enfoque de mejores prácticas.

Sin embargo, recuerde que todas estas prácticas cambiarán con el tiempo y evolucionarán. Por lo tanto, conocer las tendencias de la industria y mantenerse a la vanguardia es fundamental para saber qué hábitos y herramientas debe adoptar / fomentar o dejar atrofiar.

Por lo tanto, como desarrollador experimentado, estar al tanto de las mejores prácticas actuales, y combinar 'lo que los niños geniales están haciendo' con lo que ya sabes, es una habilidad esencial. Mis fuentes personales principales para esta información son las publicaciones de trabajo, las encuestas de desbordamiento de pila y varios foros. Pero saber lo que está sucediendo y aplicarlo son tareas separadas.

En general, aprendizaje aplicar las mejores prácticas es una tarea más onerosa que conocer lo que ellos son. El tiempo necesario para volver a aprender un hábito (por ejemplo, recordar usar comentarios suficientes) o reconstruir un entorno que sea cómodo en la actualidad, a menudo parecerá costoso o frustrante mantenerlo por adelantado. Y, tristemente, lo es. Pero hay muchas maneras de aprender a aplicar nuevas mejores prácticas, y definitivamente vale la pena hacerlo.

2. Mejores prácticas fundamentales

Independientemente de la agitación en lo que es mejor hacer, algunas cosas siempre serán las mejores prácticas básicas con las que la mayoría de los desarrolladores estarán de acuerdo:

  • Escribe menos código
  • Hacer los entornos lo más simples posible
  • Evitar problemas de seguridad estándar
  • Escribir pruebas unitarias básicas

Estas cuatro prácticas están en el centro de tener un código más mantenible y reutilizable.

Escribir menos código

Las bases de código tienden a hincharse. Cuando se encuentran problemas, tienden a solucionarse lo más rápido posible, con un impacto mínimo en la ejecución del código de trabajo. He trabajado en lugares donde los fragmentos críticos de código estaban rodeados de pequeñas sucursales que manejan los problemas de los interesados. Esto, por supuesto, es una compensación.

El código antiguo a menudo tiene problemas estructurales que limitan su expansión o reinstalación, pero al mismo tiempo contiene una amplia gama de características extremadamente específicas. Por lo tanto, cuando una base de código se hincha, se hincha con correcciones a problemas relacionados con la arquitectura o de cara al cliente. Como tal, tirar a la basura toda su base de código siempre es más costoso de lo que parece, y desea trabajar muy duro para mantener entornos / código minimalistas.

La mejor práctica más importante como desarrollador es escribir menos código, más inteligente compartimentado. Como solía ser perforado en mí cuando era niño: reducir, reutilizar, reciclar. Reduzca la cantidad de código que escribe, reutilice su propio programador y el de otros programadores regularmente y recíclelo en más espacio en el disco duro cuando pueda.

Para ayudarlo a hacer esto, lea el código de otras personas de vez en cuando. Su código mejorará si lo lee críticamente, y su código mejorará si menciona los problemas que ve en él. Leyendo con el intención hacer pequeñas modificaciones (e incluso hacerlas) hará que esta sea una tarea mucho más significativa, así que hago esto cuando el tiempo lo permite. Tenga en cuenta que si está realizando una limpieza no programada en un entorno profesional, a menudo es mal visto empujar parches al código de producción. Sugiero hablar con anticipación sobre lo que está haciendo con el responsable oficial.

Aprender 'Patrones de diseño' puede o no ayudarlo a organizar su código de manera más efectiva, pero descubrir cómo los académicos piensan que las soluciones a problemas comunes deberían organizarse es una buena manera de darle esqueletos para una organización futura. Finalmente, en la estructura del código, algo que siempre debería mencionar es: si piensas en algo y estás seguro de que es brillante, lo más probable es que estés equivocado.

"La optimización temprana es la raíz de todo mal" - Donald knuth

Como alguien que mantuvo una base de código escrita por un desarrollador que creía en sus propios poderes mágicos, personalmente puedo dar fe del hecho de que le fallaron con bastante regularidad. Básicamente, la mayoría del código está escrito en una o dos capas de abstracción sobre los compiladores.

Los escritores de compiladores son profesionales de lógica y rendimiento, que se centran en optimizaciones de código a nivel de ensamblaje. Cuando, en los lenguajes de nivel superior, usan más del 95% de los programadores profesionales, le preocupa la optimización, generalmente está cometiendo un error. Si va más allá de la programación con buenos fundamentos, lo que puede desear es una configuración ambiental más adecuada.

Los entornos deben ser simples y sólidos.

Cuantos más componentes únicos y complicados tenga un sistema, más difícil será comprender y refactorizar todo el sistema. Por lo tanto, las mejores prácticas modernas tienden a enfocar el código único en un sistema en partes débilmente acopladas, y estas partes débilmente acopladas son tan simples de trabajar como sea posible. Tome estos tres entornos, por ejemplo:

stack-compare.png

A la izquierda hay una pila LAMP estándar. Durante diez años, las principales pilas de programación para el desarrollo web completo fueron Linux ➡ Apache ➡ MySQL ➡ PHP. Esta pila incluye todo lo que necesita para crear una aplicación web del lado del servidor que muestre al usuario una página HTML estática, y todavía hay personas entregando datos con esta pila hoy.

La pila de software del medio es un enfoque más moderno. Tan moderno que evita un ORM y tiene desarrolladores que escriben consultas MongoDB / SQL sin procesar. Esta decisión se tomó para aumentar la velocidad de desarrollo, a costa de algunas de las características que incluyen los ORM. La parte frontal de esta pila de software incluye React, que es esencialmente un entorno de desarrollo de compilación propio que usa npm para construir en código utilizable. Esto contrasta con la inclusión (comparativamente) del entorno de la vieja escuela de Javascript / Silverlight en páginas individuales.

La pila de software de la derecha está aún más compartimentada que las otras dos. El marco de descanso de Django probablemente se usa para interactuar con un cliente angular usando el Patrón de diseño MVC. Django tiene un ORM incorporado, y ese ORM puede comunicarse con cualquier base de datos que esté utilizando, así como con MongoDB. En este ejemplo, Ngnix es elegido por ser un poco más ligero que Apache de alguna manera. Y este ejemplo, al igual que el ejemplo anterior más "moderno", utiliza el alojamiento en la nube porque es más barato que alguien más administre sus fallas de hardware hasta que esté utilizando un tonelada (probablemente literalmente) de hardware.

Sin embargo, en general, estos entornos tienden a abstraer su complejidad en partes aisladas. Ningún desarrollador o técnico puede saberlo todo. El resultado es que, con el tiempo, el código más complicado de escribir generalmente se ha abstraído. Los ejemplos principales son los componentes ambientales ampliamente utilizados que los expertos de clase mundial escriben y mantienen en lugar de los desarrolladores internos: servidores web, redes, NOCs y motores de bases de datos. Por lo tanto, su 'necesidad de saber' como desarrollador estándar rara vez incluirá almacenar millones de puntos de datos en un B-Tree, descubrir cómo evitar que una base de datos tenga condiciones de carrera o evitar pérdidas de memoria durante la ventana de tiempo de actividad del 99.9999% de un servidor web.

Muchos entornos modernos contienen ORM, hasta el punto en que el desarrollo de bases de datos ha reducido el valor como una opción profesional. Después de escribir procedimientos almacenados que contenían más de 1000 líneas de código, hacer que alguien dijera, "SQL es genial, pero en realidad no puedes hacer mucho con eso" para mí una vez fue ... desalentador. Pero hay una razón para esto: como práctica recomendada, el código no debe almacenarse en su base de datos. Los ORM modernos como Entity Framework, los modelos de Django e Hibernate (que no he usado) abstraen la base de datos del código. Sin embargo, definitivamente hay una compensación entre tener un administrador de base de datos capaz de ajustar la estructura de datos para el rendimiento y tener programadores capaces de crear libremente.

Pero principalmente, los ORM también resumen la comunicación entre dos sistemas: código y datos. Los estándares de comunicación a menudo terminan siendo muy complejos. ¿El resultado? Tienden a abstraerse. Mientras enseñaba Python en un campo de entrenamiento, uno de mis estudiantes quería usar la API de Twitter de manera profunda. La API de Twitter fue amplia y con todas las funciones. Dicho esto, algunas características específicas solo estaban disponibles si usabas OAuth 1 en lugar de OAuth 2.

Resulta que donde OAuth 2 tenía algunos pasos simples y confiables, OAuth 1 era ... bizantino. Esto provocó el desarrollo del estándar OAuth 2 más simplista y varias bibliotecas diseñadas para administrar el protocolo de enlace. En general, tiene mucho sentido tratar de mantener sus métodos de comunicación lo más simples posible y sus datos limpios. Por esta razón, las comunicaciones TCP / IP generalmente se realizan con bibliotecas y datos pasados ​​con JSON. Los sitios web usan REST. La compartimentación y las interfaces confiables de inversión de bajo tiempo son la norma, y ​​deberían serlo.

Y hacer que la comunicación de inversión de bajo tiempo funcione consistentemente requiere pruebas. Escribir exámenes no es divertido al principio. Sabe lo que quiere hacer y conoce sus casos de uso, entonces, ¿por qué escribir pruebas? Porque requiere que pienses por segunda vez y te enviará en una mejor dirección en general.

Las pruebas unitarias no eran una práctica recomendada central hasta que la integración continua era posible, pero ahora que lo es, trabajar con ellas es fundamental. Las pruebas de extremo a extremo son más difíciles de configurar, pero ahora también son una práctica recomendada fundamental. Esto se debe a que a medida que el desarrollo se acelera, los desarrolladores se vuelven responsables de más del sistema.

Si el sistema está roto, el tiempo que pasa reparándolo es el tiempo que podría estar usando para construir algo nuevo. Por lo tanto, a la larga, la carga frontal de todo tipo de pruebas automatizadas le permite reducir el tiempo total que pasa en el mantenimiento del sitio. Y, además, te permite dormir mejor (no te das cuenta de lo divertido que puede ser dormir hasta que te despierten a las 3:00 a.m. para buscar un registro de transferencia de dinero). Debido a que las pruebas son tan importantes, muchos equipos usan Test Driven Development, cuya piedra angular es escribir las pruebas antes escribe una sola línea de 'código' que resuelve su problema.

Finalmente, al hacer que su entorno sea simple y sólido, recomiendo documentación. No existe el código autodocumentado. Elegir nombres de variables simples y descriptivos es muy útil, pero poner un pequeño bloque de explicación en la parte superior de una clase o función no lo matará. Lo prometo. En cambio, puede ayudarlo a encontrar una transferencia de dinero en los registros en el medio de la noche.

Evite problemas de seguridad simples

Nadie sabe nada sobre seguridad digital. Te apuesto cinco dólares a que puedes poner 'violación de datos' en el motor de búsqueda de tu elección en este momento y encontrar uno. Esto se debe en parte a que el mundo es grande y la seguridad es difícil, pero principalmente porque cualquier sistema tiene agujeros de seguridad. Por lo tanto, su trabajo principal como desarrollador no es en realidad hacer que sus sistemas sean a prueba de balas, sino evitar colocar un gran letrero de "ven aquí".

Las veces que se ha violado mi código han sido cuando utilicé contraseñas predeterminadas o tuve puertas abiertas de desarrollo completamente abiertas que cerré solo para que alguien más abriera nuevamente. (Juro. Absolutamente. Nunca es mi culpa, ni siquiera esa vez). Generalmente, desea evitar las cosas más simples y espera ser un objetivo más difícil que la próxima aplicación o base de datos.

La seguridad de la comunicación intra e interproceso es donde estarán sus fallas de seguridad personal. Por lo tanto, los marcos REST y las comunicaciones de objetos simplistas son estándares de la industria. Donde esto comienza a ir mal es donde tomas objetos simples que te han pasado y los ejecutas como entradas mediante programación. Por ejemplo, tomar un objeto JSON de la publicación HTTP, deserializarlo y lanzar una variable desde allí a una consulta directamente como una cadena. Esto significa que cuando pasa variables, desea estar tan seguro de su tipo como sea posible.

Donde termina su código, y comienzan sus bibliotecas, es donde surgirán los errores de seguridad que no ha producido personalmente. Cuando miro una biblioteca desactualizada, también miro las notas del parche para la nueva versión. La razón por la cual Microsoft parchea su computadora dos veces por semana no es porque les gusta gastar dinero en programadores. Es porque un sistema operativo tan utilizado como Windows tiene miles de programadores que intentan romperlo todo el tiempo. Si su copia local de Windows está desactualizada, se está abriendo a más vulnerabilidades. Sus servidores y marcos no son muy diferentes.

En el frente personal, tampoco desea que su memoria sea un punto único de falla. Si está a cargo de los sistemas (que, a medida que el trabajo de 'desarrollador' se hace más grande, es más probable) eventualmente tendrá que manejar un montón de contraseñas, claves SSH, certificados de servidor, etc. Generalmente están basados ​​en texto, por lo que sugiero encontrar un administrador de contraseñas y usarlo. (Me gusta Troy Hunt, Uso KeePass y es gratis). También genera contraseñas, por lo que no tiene 'Dragons94!' como tu contraseña para 75 sitios y sistemas diferentes. Use un generador para crear uno grande, copie su archivo de contraseña de vez en cuando y continúe. Además, rote estas contraseñas y claves regularmente. No termines en Slashdot.

Finalmente, evite la inyección de consultas. Es simple de hacer, y ya casi no se menciona porque los marcos ORM / REST tienden a bloquearlo. No perfectamente, por supuesto, pero lo suficientemente bien. Si va a ejecutar algo que proviene de la comunicación entre procesos o dentro del proceso, solo asegúrese de que sea solo una consulta antes de ejecutarlo. Hecho.

Control de origen, integración de compilación e integración de prueba

Las mejores prácticas centrales actuales finales que definitivamente debo mencionar son el control de origen, la integración de compilación y la integración de prueba. Si no está utilizando el control de código fuente, no sabe dónde está cambiando su código o cómo ha cambiado. Además, si no lo está utilizando, se perderá más de lo necesario.

En cuanto a la integración, Jenkins y TeamCity sienten que alguien ha inventado el fuego, si aún no lo ha usado. Para leer más, así Es un buen comienzo. Tener un sistema que ejecute sus pruebas unitarias y crea para usted significa que la implementación es confiable. La implementación confiable significa que las versiones son más una cuestión de "¿Están el código y el cliente listos el uno para el otro?", En lugar de "¿Cuándo, exactamente, podemos programar todo esto para que realmente se junte?"

Hice una automatización de control de calidad para un grupo de Wells Fargo hace diez años, y los lanzamientos se programaron una vez por trimestre, comenzando a las 2:00 a.m. con 2-3 horas de implementación y 4-n [N, en algunos casos, 28] horas de prueba. No todas las pruebas que necesitábamos hacer podrían hacerse con un servidor de integración ahora, pero las versiones en sí mismas habrían sido más fluidas con la tecnología actual. Y para usar una mejor tecnología, necesita saber qué es y las tendencias actuales.

La velocidad y la eficiencia del procesador pueden haberse duplicado cada pocos años durante décadas, pero la programación depende de los humanos, y cambiamos mucho más lentamente. Si observa nuevas herramientas y prácticas que otros están utilizando para producir software, puede adoptarlas para ayudar también a su productividad.

El mejor lugar para descubrir qué nuevas tecnologías y prácticas son eficientes son las ofertas de trabajo. Muchos trabajos (especialmente en pequeñas empresas) nunca llegan a los grandes tableros de anuncios, por lo que una vez que una empresa anuncia agresivamente un puesto, busca algo específico que no puede encontrar entre los contactos existentes de sus gerentes de desarrollo. Por lo tanto, cuando una empresa está dispuesta a correr el riesgo de contratar a un desconocido completo, generalmente intentan declarar exactamente qué competencias técnicas quieren que tenga ese completo desconocido.

Las empresas más pequeñas y nuevas tienden a utilizar las tecnologías más actualizadas. Esto se debe principalmente a que cambiar su cultura los enfoca hacia proyectos de baja inversión con retornos rápidos, pero también hay varios otros factores en el trabajo, incluidos los siguientes:

  • El volumen de negocios en compañías más pequeñas es mayor, y los trabajadores de tecnología tienen más facilidad para encontrar el próximo trabajo con experiencia actualizada.
  • Los propietarios de proyectos en pequeñas empresas tienden a tener más poder para elegir sus propias tecnologías.
  • Proyectos más pequeños significan que usar un nuevo software es un riesgo menor

Las empresas más grandes tienden a contrastar con esto y adoptan nuevas tecnologías de manera más conservadora. La confiabilidad, la relación costo / beneficio y el riesgo son mucho más importantes para una empresa tradicional con requisitos de continuidad comercial. Por lo tanto, si observa las ofertas de trabajo, a menudo notará que las grandes empresas están dos o cuatro años por detrás de la tecnología de punta.

Cada año, desbordamiento de pila pregunta a todos sus desarrolladores en qué lenguajes están programando y quieren desarrollar. Si descubre lo que otros programadores quieren aprender, dos o tres más tarde será (si no demasiado complicado, lo estoy viendo, CULisp) mucho más utilizado. Los desarrolladores generalmente quieren seguir empleados, por lo que buscan alinear su aprendizaje con las necesidades futuras de los empleadores potenciales. Por lo tanto, los desarrolladores intentan continuamente reemplazar las partes más ineficientes de su tiempo utilizando herramientas más eficientes. Dicho esto, la parte más lenta del desarrollo de software siempre será ajustar qué herramientas y código puede hacer a la funcionalidad del usuario final personas y empresas utilizan el.

Si va más allá de estas fuentes básicas de información, puede encontrar que hay otros lugares para observar lo que está por venir. Slashdot, Quora, Reddit y otros foros / lugares de reunión en línea contienen más información, que a menudo no es confiable y debe verificarse con otras fuentes, que los medios de comunicación estándar. Aprender qué idioma será el próximo es a menudo una cuestión de leer las tendencias de la industria que los desarrolladores que trabajan creen que valen la pena. Pero saber cuáles son estas tendencias no es suficiente; vas a necesitar practicarlos tú mismo.

4. Mejores prácticas y tu carrera

De alguna manera, el mejor enfoque para aprender métodos de desarrollo de software es cambiar de trabajo. Las tecnologías y las prácticas tienen curvas de adopción similares: empinadas al principio, seguidas de un crecimiento lento si se utilizan ampliamente y luego una disminución lenta. La mayor diferencia entre varias tecnologías es si existe una amplia adopción y la duración del ciclo de vida. Por lo tanto, si se encuentra en un campo como el desarrollo front-end, la curva de crecimiento y adopción de una tecnología puede ocurrir completamente en un lapso de años, y la disminución no implicará mucho trabajo de mantenimiento. ¿El resultado? Si desea mantenerse relevante dentro de su carrera de desarrollo front-end, no puede descansar en sus laureles.

Cómo elegir su próximo trabajo de ingeniería

En general, cuando busca una nueva posición, le recomiendo que busque tres cosas. Analicemos esto.

Aprendizaje: En primer lugar, desea que la nueva posición le enseñe algo. Como desarrollador experimentado, siempre tendrá la opción de elegir entre dos tipos de entornos de trabajo: aquellos en los que tiene una amplia experiencia o nuevos. Es más probable que le paguen más por trabajar con tecnologías que ya conoce. Dicho esto, si combina tecnologías con las que está parcialmente familiarizado y tecnologías que no conoce, puede agregar valor y al mismo tiempo adquirir talentos / puntos adicionales en su currículum.

Disfrute: La segunda cosa más importante sobre cualquier posición, técnicamente, es elegir los problemas y las situaciones que disfruta. Cuanto más disfrute los problemas que está resolviendo, más dispuesto estará a ampliar su conjunto de habilidades y a dedicar el tiempo / esfuerzo para sobresalir en lo que hace.

idoneidad: En tercer lugar, conocer la naturaleza de la empresa. Las pequeñas empresas tienden a dar a sus empleados una gran variedad de responsabilidades. En una empresa lo suficientemente pequeña, no puede tener un título de trabajo preciso; Actualmente soy responsable de la gestión de instancias de AWS, los procesos de creación de TeamCity, la administración de bases de datos, la programación en cinco o seis idiomas diferentes, las notificaciones de lanzamiento, las revisiones, las decisiones arquitectónicas, etc.

En puestos anteriores, tuve áreas únicas de responsabilidad (por ejemplo, verificar y rectificar los resultados de la conciliación contable para un departamento de facturación interno), y descubrí que cuanto más grande es la empresa, más tiempo me concentré en un solo conjunto de tareas. Generalmente, si quieres profundizar Si comprende un conjunto específico de tareas, será mejor atendido en una gran empresa. Trabajar con responsabilidades extensas y diversas (y una red de seguridad limitada) generalmente sucederá en una pequeña.

Muy a menudo, una empresa se apegará a las tecnologías y prácticas con las que está trabajando cuando comience a trabajar allí (¡a menos que lo contraten para implementar algo nuevo!). Sin embargo, cuanto más pequeña y flexible sea la empresa, más posibilidades tendrá de implementar cualquier herramienta que considere adecuada. Aproveche esto, investigue las soluciones más viables para sus problemas más difíciles y haga que funcionen.

Por el contrario, puede haber ventajas al trabajar para una empresa más grande, ya que si podemos obtener permiso para implementar un nuevo sistema o práctica, también puede recibir capacitación sobre cómo hacerlo. Además, es más probable que se tolere una falla desastrosa en una empresa más grande, por lo que el riesgo de adquirir familiaridad con una nueva tecnología es significativamente menor.

Educación avanzada

Algunas de las mejores prácticas son más fáciles de adquirir en un entorno escolar (u otro tipo de educación) más formal. Si bien es bastante fácil adquirir un nuevo idioma por su cuenta, a veces es bastante difícil esforzarse para aprender los entresijos de temas más profundos. Una base sólida en teoría es útil para mantener una carrera estable, como lo es la seriedad de la educación avanzada o las credenciales frescas y actuales de los campos de entrenamiento.

El mercado para programadores está actualmente en auge. No lo he visto tan fuerte desde 1999. Si disfruta de la programación por su propio bien, y el mercado sufre una recesión, los títulos avanzados son una excelente inversión cuando el empleo es más difícil de encontrar. Ser más versátil y comprender cómo se construyen las tecnologías lo hará más empleable a largo plazo. Un gasto después del trabajo (o mientras está desempleado) durante 2-4 años puede aumentar significativamente sus ingresos de por vida, así como aumentar la seguridad laboral.

Pero si tiene prisa, los bootcamps también son un buen lugar para aprender lo que sea nuevo y próximo. Una de las 'mejores prácticas' actuales para encontrar un nuevo trabajo es tener un repositorio sólido de código de GitHub que haya creado. Si crea este repositorio en un campo de arranque, así como un punto culminante interesante, ese campo de entrenamiento puede ser un tiempo bien invertido, incluso para un desarrollador experimentado. Codementor sería un gran lugar para obtener orientación sobre cómo construir una base de código GitHub para impresionar.

A medida que avanzo en la escala de 'inversión de tiempo', las conferencias son un buen lugar para descubrir lo que está de moda, además de poder tomar talleres con desarrolladores que han creado la última tecnología. Amazon se ejecuta mensualmente (como mínimo) eventos en AWS, y todo tipo de otros eventos se programan regularmente. Los presentadores y educadores en cualquier conferencia estarán predispuestos a favor de las tecnologías que han pasado años desarrollando, trabajando o se les paga por apoyar. Dicho eso, porque son so invertidos en una tecnología en particular, generalmente son informativos y están interesados ​​en ayudarlo a ampliar su base de conocimiento con las tecnologías elegidas.

La capacitación / certificación tecnológica específica siempre está disponible. Sé, en algún lugar en la parte posterior de mi cabeza, que mi vida sería mucho más fácil si hubiera pasado seis meses recibiendo Certificado Oracle DBA en mis primeros años a mediados de los años veinte. Las pequeñas empresas no respetan demasiado las certificaciones, pero las grandes empresas las ven como una mitigación de sus riesgos. Si está certificado con una tecnología en particular, es más probable (a sus ojos) que sea competente con esa tecnología específica de la manera esperada. Por lo tanto, obtener la certificación puede ser un gran paso hacia una carrera profesional relativamente estable en un mercado tumultuoso. Como advertencia, también puede ser una gran inversión en una tecnología que desaparece del mercado laboral.

La contribución de código abierto siempre está disponible. Si bien el software del sistema operativo es notablemente desordenado, trabajar en varios proyectos lo ayudará a comprender qué estándares ayudarían en un mundo ideal. Si bien este puede ser un paso aterrador para un desarrollador más nuevo, vale la pena intentarlo. Después de haber trabajado con una serie de bases de código construidas profesionalmente, mi apuesta es que si quisieras entrar y escribir comentarios lógicos / documentación en los 10 principales proyectos de código abierto, podrías comenzar mañana y nadie se quejaría (siempre que tus contribuciones hagan ¡sentido!).

Encontré esa enseñanza a través de Comentador me enseñó una cantidad tremenda Cada pregunta que tenía un estudiante era completamente nueva para mí, y pasé bastante tiempo investigando y arreglando cosas que no sabía que podrían romperse. Este tipo de experiencia se reflejó durante el tiempo que pasé enseñando un campo de entrenamiento.

La forma de inversión más baja absoluta para aprender algunos métodos nuevos para la gestión del código es ir a un hackathon. Solo he hecho un 'producto divertido viable' (un juego) durante tal hackathon, pero aprendí muchísimo de una amplia variedad de otros programadores.

5. Conclusión

Como desarrollador, aprender y usar las mejores prácticas es la piedra angular para mantener una carrera sólida. La única constante en la industria informática es el cambio, y quedarse atrás es costoso. Al observar continuamente la forma en que cambia la industria, puede producir un mejor código más rápidamente. Al producir un mejor código más rápidamente, puede crear soluciones más efectivas.

Hay muchos recursos que detallan cómo otros tienen mejorado su calidad de códigoo empresas construidas en código, pero todas las tecnologías que use durante su carrera ciertamente cambiarán o se transformarán mientras desarrolla con ellas. Manténgase al tanto de su entorno y su carrera puede prosperar.

Fuente: https://www.codementor.io/blog/updating-your-best-practices-7gzzfh3vrx

punto_img

Información más reciente

punto_img