¿Cómo puedo revisar mi progreso como desarrollador junior en solitario? [Cerrado]

38

Actualmente estoy trabajando para una empresa de 2 personas, como desarrollador principal en solitario. Mi jefe recibe a los clientes, se burla de algunas plantillas de diseño png y me las entrega.

Este sistema ha estado funcionando bien y realmente lo estoy disfrutando.

Los tipos de proyectos en los que trabajo son para pequeñas y medianas empresas y generalmente quieren un sistema CMS. Desarrollado desde cero, crearé un back-end personalizado para que el cliente agregue / edite / elimine categorías, etiquetas, productos, etc. y luego los envíe al front-end de acuerdo con la plantilla de diseño que se me entregó. Con el paso del tiempo, los proyectos han aumentado en complejidad, con funciones de carrito de compras / pedidos y otras características comunes de tipo de comercio electrónico.

Una vez más, este sistema ha estado funcionando bien y realmente lo estoy disfrutando.

Mi problema es mi desarrollo personal como programador. Paso mucho de mi tiempo libre leyendo blogs de programación, revisando el intercambio de pila, leyendo libros de programación sugeridos (actualmente en ' The Pragmatic Programmer ', realmente buenos hasta ahora), haciendo ejercicios cerebrales ( problemas matemáticos de lumosity.com y khanacademy ), haciendo mucho de ejercicio físico y otras actividades de desarrollo personal.

Sin embargo, no puedo evitar sentir que me estoy perdiendo comentarios y críticas. Mi jefe es excelente y nunca se detiene en los elogios con respecto a mi trabajo, pero desafortunadamente está muy ocupado para verificar mi código o, para ser honesto, no creo que sea una de sus especialidades y, por lo tanto, no puedo brindar comentarios. .

Quiero saber qué estoy haciendo mal y qué estoy haciendo bien. Debo poner tanta lógica en el controlador, ¿estoy modulando mi código lo suficiente, etc.

Entonces, lo que hice fue desarrollar una pequeña aplicación de 'Presupuesto familiar' y traté de hacerlo de manera tan limpia y efectiva como lo sé actualmente.

Lo que quiero saber es si hay algún lugar donde pueda enviar esta aplicación y algunos desarrolladores experimentados me brinden sus comentarios. No es solo una subsección de mi código como 'codereview.stackexchange' parece requerir, es todo mi flujo de trabajo lo que quiero criticar.

Sé que esto es mucho pedir, y espero que el consejo principal que se dé sea buscar un trabajo dentro de un equipo, lo cual es algo que seguramente analizaré más adelante, pero por ahora quiero persistir en mi trabajo actual. situación laboral, pero simplemente no quiero desarrollar demasiados malos hábitos.

Avíseme si puedo proporcionar más información para ayudar a aclarar, o si este no es el lugar adecuado para este tipo de pregunta, pido disculpas por adelantado. No quería usar reddit ya que sentí que esta comunidad fomenta respuestas más bien pensadas.

hoppipolla
fuente
3
Como desarrollador junior no hace mucho tiempo, me parece una mala idea dejar que un desarrollador junior se vuelva loco de esta manera. Sin mencionar que una maqueta PNG casi no le brinda la información necesaria para escribir un CMS efectivo. Además, ¿por qué escribir constantemente CMS cuando hay configuraciones automáticas mucho más efectivas de lo que un desarrollador en solitario podría escribir en un tiempo razonable para un cliente, incluidos los micro CMS?
Plataforma
2
Bueno, inicialmente tenía su propio CMS interno que había sido construido en Coldfusion. Aprendí el idioma a través de prueba y error y completamos algunos proyectos usándolo. Con el tiempo, aunque lo convencí, sería una buena idea avanzar hacia PHP, ya que tenía más experiencia en usarlo y hay una comunidad más grande en la que confiar (al no tener superiores, confío mucho en Google). Desde entonces, he estado construyendo gradualmente un CMS modular reutilizable en ciBonfire. Va muy bien, el sistema de catalogación es bastante completo. El problema es que estoy aprendiendo sobre la marcha, tenemos clientes que complacer.
hoppipolla
2
@OliverHyde "El problema es que estoy aprendiendo sobre la marcha, tenemos clientes que complacer". Esto tampoco será diferente en otro lugar.

Respuestas:

21

Está en el camino correcto para mejorar sus habilidades, y es comprensible que no esté seguro acerca de la confiabilidad y la preparación empresarial de su código.

Este es un proceso normal para un desarrollador junior, y su interés por mejorar es muy importante, ya que es clave para algún día convertirse en un desarrollador estrella de rock.

Como referencia para aprender las mejores prácticas, recomendaría unirse a proyectos de código abierto que están alojados gratis para programadores apasionados / curiosos. Realmente lo ayudarán a comprender cómo utilizar las mejores prácticas y cómo decidir sobre el diseño de la aplicación. Además, trate de involucrarse en el desarrollo de proyectos de código abierto, ya que aumentará su autoaprendizaje y mejora dramáticamente.

También recomendaría asistir a eventos de la comunidad local para desarrolladores de software. Puede encontrar algunos de estos grupos en communitymegaphone.com . Hable con los programadores de amigos locales, en su mayoría son buenas personas a quienes no les importaría ayudar a un colega.

EL Yusubov
fuente
Hmm, tal vez buscaré unirme a algunos proyectos de código abierto, sin saber por dónde empezar: / Tengo que ir a investigar. Con respecto a los eventos de la comunidad, he estado yendo a reuniones locales, en Nueva Zelanda son escasos en comparación con lo que parece en los Estados Unidos, pero ocurren y son muy útiles. Gracias por la respuesta.
hoppipolla
Definitivamente involucrarse con otras personas reales mirando su código. No hay reemplazo para eso.
jeffreypriebe
Sí, estoy ordenando mi aplicación de "presupuesto personal" y la enviaré para su evaluación, tal vez en redit o en otros foros de la comunidad.
hoppipolla
9

A medida que gane más experiencia, puede volver y revisar sus proyectos / códigos anteriores para ver dónde se equivocó. La retrospectiva es una cosa hermosa. Sé con certeza que miré el código / documentación que escribí hace x y me di cuenta de dónde me equivoqué y dónde podría haber mejorado.

El hecho de que leas blogs, libros, SE, etc. debería darte una mayor comprensión de la programación como parte de tu propio desarrollo personal y la prueba y error y la evolución de tus proyectos y código sin duda debe ser evidencia del hecho de que tú ' Re mejorando. La autocrítica puede ser algo muy bueno.

Dicho esto, tener el ojo crítico de otro desarrollador siempre agrega valor y puede proporcionar opiniones / opciones en las que quizás no haya pensado. Aunque no conozco ningún sitio en particular en el que pueda volcar un proyecto completo para una revisión de código, podría poner fragmentos de lo que considera sospechoso en codereview.stackexchange para su lectura y comentario, luego tome esa retroalimentación a bordo y aplíquela en otro lugar donde sea apropiado.

Alternativamente, podría escribir algunas cosas de código abierto y lanzarlas en github (o equivalente). La comunidad de código abierto seguramente criticará su trabajo y lo mejorará donde mejor les parezca.

Al final del día, si los productos que está produciendo funcionan según lo previsto, cumplen con los requisitos comerciales y son mantenibles: está haciendo algo bien.

Para preguntas de programación conceptual, patrones, etc. Siempre puede publicar esas preguntas aquí en PSE y para problemas de implementación de código en SO.

Deco
fuente
Saludos, creo que tal vez romperé mi aplicación de presupuesto y publicaré algunos fragmentos en codereview.
hoppipolla
3

Permítanme compartir mi opinión, algunas palabras de sabiduría y algunas preguntas para que reflexionen.

Al ser un programador experimentado, a lo largo de los años he descubierto que el mejor código es el que es simple (mira el concepto KISS) y más fácil de modificar por otro programador.

Además, dejar un espacio adecuado para que el código no esté congestionado (espacio de respiración) y estructurado de manera uniforme. Utilice una convención de nomenclatura bien conocida para sus variables, bríndeles nombres comprensibles (que otro programador pueda entender) y escriba comentarios que vayan al grano, ni demasiado ni muy poco.

Si sigue lo anterior, ya está en un buen camino.

Además, dado que los desarrolladores son algo así como arquitectos, le daré un dicho muy importante sobre el que debe reflexionar;

  1. "La perfección se logra, no cuando no hay nada más que agregar, sino cuando no hay nada más que quitar" - Antoine de Saint-Exupery.

y

  1. "Luchar por la excelencia te motiva; luchar por la perfección es desmoralizante" - Harriet Beryl Braiker.

Sin embargo,

  1. "Muchos eventos, aproximadamente el 80% de los efectos provienen del 20% de las causas" - principio de Pareto

Con lo anterior, quiero que comprenda que existe un buen equilibrio entre esfuerzo y efecto, costo y calidad.

Y las preguntas para reflexionar;

  1. ¿Qué me gustaría estar haciendo dentro de cinco años?
  2. ¿El esfuerzo por mejorar mis habilidades de codificación beneficiará mi carrera profesional a largo plazo?
kyrsid
fuente
1

Es posible que desee consultar https://codereview.stackexchange.com/

Ese sería un gran lugar para recibir comentarios sobre su código o diseño de profesionales experimentados.

Jessica Brown
fuente
Sí, supongo que el quid de mi pregunta era, es una aplicación completa adecuada para publicar allí, o hay algún otro lugar donde pueda hacer esto. Parece que codereview está más dirigido como fragmentos de código para ser examinados. Básicamente proporcione un enlace al proyecto github y déjelos soltar. Lo estoy ordenando hoy y buscaré algunos foros de la comunidad para publicar el enlace. :)
hoppipolla
1
Todo a la vez podría ser mucho para un desarrollador para masticar a la vez. meta.codereview.stackexchange.com/questions/537/… dice probar una pieza a la vez. No sería adecuado para la revisión de código, pero la documentación de diseño de alto nivel o algún tipo podría ser útil para un revisor que mira su base de código por primera vez
Jessica Brown
@OliverHyde Si publica un archivo fuente, digamos uno de los más complejos, recibirá comentarios sobre ese archivo que se aplica a todo el proyecto. Esta será una buena manera de obtener comentarios sobre el idioma de su programa y el estilo de codificación. Si está buscando comentarios sobre el diseño general del programa, podría (según las preguntas frecuentes) publicarlos en este mismo sitio.
1

Continúa leyendo libros, blogs y preguntas y respuestas sobre Stack Overflow. Si desea mejorar de una manera más social, ¿por qué no comprometerse a trabajar en un proyecto de código abierto? No me refiero a crear su propio proyecto , sino trabajar en uno existente.

Como eres el único desarrollador de esta empresa, imagino que algún día podrías contratar a alguien más. Dígase a sí mismo que este día, el tipo tendrá que leer su código. ¿Ya escribe alguna documentación sobre su herramienta? Tener en cuenta que tu trabajo puede ser leído por otras personas es algo bueno para los desarrolladores en solitario y te ayuda a crear un mejor código.

smonff
fuente
1
Sí, eso es lo que he comenzado a hacer con mi codificación ahora. Mi jefe ha sugerido que puede mirar a la contratación de un desarrollador adicional el próximo año .... apuesta llegar a la cima de mi documentación :)
Hoppipolla
1

Estoy en una situación similar a la tuya, me contrataron como el único programador para una empresa de 5 personas, y solo uno de ellos está directamente involucrado con las aplicaciones que estoy desarrollando / agregando. Afortunadamente, no tuve que crear nada desde cero, pero hasta ahora solo modifiqué las aplicaciones que construyó mi predecesor. Al hacerlo, creo que ya me he mejorado al reconocer qué partes de su código eran buenas, qué partes eran malas y cómo se podían mejorar.

Leer el código es una gran parte de la mejora de su propia codificación, así que sobre todo le sugiero que busque un proyecto de código abierto, lea el código, lo entienda y trate de juzgar qué es bueno, qué es malo y qué podría mejorarse. Tal vez incluso escriba una revisión de código al respecto en su blog.

¡Aclamaciones!

scd
fuente
Sí, salud! Llevo trabajando aquí un tiempo más y me he encontrado con un buen ritmo de uso de sitios web de revisión de código en línea y auto revisión.
hoppipolla
-1

Salir. Encuentre un nuevo empleador donde trabajará en un equipo más grande de desarrolladores, incluidos algunos tipos geniales de los que puede aprender.

Claramente tienes todas las motivaciones correctas para querer.

Dom Barker
fuente
44
Esta no debería ser la primera opción. El OP está disfrutando de su trabajo y aparentemente también tiene un jefe decente, lo que parece raro hoy en día. Antes de saltar, considere que puede terminar con un trabajo que no disfruta, con un mal jefe, y sin garantías de que realmente aprenderá cosas nuevas.