Al comenzar mi carrera profesional como desarrollador, ¿cómo sé si mi software es lo suficientemente bueno?

Una de mis citas favoritas:

“Cuando la respuesta está en la pregunta que usted habla, pase lo que pase”.

Es de una canción de Coheed y Cambria. Pero, tiene raíces más profundas, y es verdad.

En cualquier caso, la respuesta a su pregunta es bastante simple: si recién está comenzando en su carrera profesional (en cualquier carrera profesional), debe esperar que su trabajo sea inferior en comparación con los “profesionales” más experimentados ( Sin embargo, esto no es una tautología o una declaración de verdad objetiva. FWIW: Podría ser mejor que alguien que tiene más de 20 años trabajando en el desarrollo de código y software. Pero nunca asuma esto ni lo deje en su cabeza; estar equivocado.)

En segundo lugar, defina la frase: “Suficientemente bueno”. (Es ambiguo. ¿Qué es lo suficientemente bueno? En este momento, algo podría ser “lo suficientemente bueno”, y luego, ese fragmento de código se rompe. No porque sea un código malo, sino porque se puede abusar de él, o se actualiza un compilador o intérprete según alguna nueva especificación de idioma, o la conversión automática de tales medidas, y ya no es “lo suficientemente bueno”, etc.)

“Lo suficientemente bueno” es un término (o frase) algo “relativo”.

Para mí, “suficientemente bueno” es cuando probé un fragmento de código que escribí a través de todo; No solo me siento cómodo con los casos de prueba y los escenarios proporcionados, o con la comprensión de los requisitos comerciales, sino que, en otras condiciones que pueda anticipar el uso, se retrasará.

Por otra parte, he escrito código “suficientemente bueno”, solo para encontrar problemas, problemas, agujeros, lagunas y demás en mi propio código.

Esa es la medida de un verdadero “profesional”, especialmente en el desarrollo de software, es que puede identificar y anticipar problemas ANTES de que se formen. Ya sea que esté escribiendo un código nuevo, integrándose con el código existente o parcheando código antiguo, etc.

“Lo suficientemente bueno” no es … “meh, bueno, lo que sea, cumplí con las especificaciones, no definiste esa condición, así que voy a poner excusas por no saber mejor”.

Todo se reduce a la experiencia. No solo la experiencia de escribir código, sino a veces la experiencia de la industria y / o dominio. Si se muda de un empleador a otro, que opera en diferentes industrias, podría estar cruzando el dominio del conocimiento. Las habilidades de programación son relevantes, pero la comprensión del negocio, la lógica condicional (incluyendo conocer al empleador) … todo esto es muy variable (relativo).

La mayoría de la gente piensa que el “profesionalismo” es poder hablar algo a muerte usando círculos recursivos (todo mientras las empresas se quejan del costo de hacer negocios, y luego de tomar atajos).

En realidad, el “profesionalismo” en la industria del desarrollo de software se basa en experiencias como esta: perspectiva y objetividad. (¿Cómo se logra una meta u objetivo determinado a partir de la información dada?)

Hace unos 10 años, estaba leyendo un libro sobre una versión actual (nueva) de un lenguaje de desarrollo de software (C #). En la introducción del autor, dijo muy claramente que había revisado el código que había escrito más de 2 años antes y pensó para sí mismo: “¿Por qué lo hice así?” (Sabiendo, con más conocimiento y experiencia, que había una mejor manera; no solo la nueva especificación del idioma, sino también haber adquirido otros conocimientos y experiencia).

Simplemente no sabrá si su producto de trabajo es “suficientemente bueno” hasta que tenga algo de tiempo y experiencia en su haber y mire hacia atrás. Si, cuando miras hacia atrás a algo después de un período de tiempo razonable (tienes que buscar tu propio código antiguo) … y no tienes algunas reflexiones similares, la verdad es que probablemente no eres “lo suficientemente bueno” para comenzar (ahora) … pero nunca lo sabrás hasta entonces (más adelante).

Lo mejor que tengo. $ 0.02

Si resuelve el problema que está diseñado para resolver, es lo suficientemente bueno como para que alguien comience su carrera. Todo lo demás será mucho más fácil con la experiencia. Puede pasar todos sus días leyendo, viendo videos y trabajando en proyectos de pasatiempo, pero no lo preparará realmente para meterse en la maleza en el mundo real en proyectos reales que sirven a un propósito comercial real para usuarios reales. Esta será una experiencia humillante, pero eventualmente la “entenderás” y tu aprendizaje realmente comenzará. Y nunca termina.

Lo más probable es que no lo sea. Pero eso es lo que te enseñarán tus primeros dos años de trabajo.

Si puede, elija una empresa que practique la programación de amigos y revisiones exhaustivas de diseño / código. Son excelentes herramientas de aprendizaje, probablemente las mejores que hay.

More Interesting

¿Puedo convertirme en un ingeniero de software bien pagado con un título en Humanidades?

¿Cómo se prepara alguien para un trabajo de programación de software siendo ingeniero textil por grado?

Tengo dos ofertas de trabajo, ingeniero de soporte de aplicaciones en Mathworks e ingeniero de desarrollo de software en Amazon. ¿Cuál debería elegir?

Tengo 9 años de experiencia en la industria de TI como ingeniero de software. Estoy dispuesto a hacer un curso MSA (Master in Analytics) de 1 año a tiempo completo ofrecido por varias universidades en los Estados Unidos. ¿Cuán financieramente fructífero será?

Cómo conseguir un trabajo como ingeniero de software

¿Puede un chico que es un gran programador pero sin un título obtener un trabajo en una compañía de software en India?

Cómo encontrar un trabajo como ingeniero de software en Canadá desde India

¿Cómo se llega al campo del aprendizaje automático / desarrollo de inteligencia artificial?

¿Quién determina cómo pasar el tiempo de ingeniería de software?

En cuanto a la carrera, ¿es bueno saltar a la gestión mientras que uno es bueno en términos de conocimiento técnico?

¿Qué puedo hacer con mi BS en Informática si no puedo ser contratado como desarrollador de software?

¿Puedo ser contratado como desarrollador de software de nivel básico si gano un hackathon?

¿Por qué el currículum de un ingeniero de software sénior debe tener dos páginas en lugar de cuatro cuando ha cambiado de trabajo muchas veces en los últimos 20 años?

¿Estás contento con tu carrera profesional? ¿Por qué o por qué no?

¿Qué se necesitaría para convertirse en un buen ingeniero de software en las próximas dos décadas?