¿Puedes ser ingeniero de software si solo conoces Python y tienes un título que no es STEM?

Usuario de Quora … ¡gracias por el A2A!

Sin un STEM formal u otro título orientado a la computación, la OMI tomaría bastantes años de experiencia seria en programación, incluyendo una gran cantidad de estudio personal antes de que uno pueda llamarse a sí mismo ingeniero de software de buena fe.

La siguiente respuesta describe gran parte del camino que tomé:

La respuesta de Brian Bowman a ¿Las principales compañías consideran que los grados MIS son inferiores a los grados CS?

Una competencia sólida en varias de las áreas enumeradas en la siguiente respuesta definitivamente calificaría a una persona (nuevamente este es mi criterio personal):

La respuesta de Brian Bowman a ¿Cuál sería un buen horario con respecto a las áreas de aprendizaje en informática cada semana para convertirse en un desarrollador de software de la industria competente?

Soy Autodidacta y nunca me molesté en obtener un título en Comp. Sci. o Ingeniería de Software . Y en realidad, ninguno de los dos grados existía cuando comencé. Mi exitosa carrera abarca casi 40 años .

Para ser un ingeniero de software eficaz, debe tener más de un idioma en su haber. Diría, como mínimo, un lenguaje compilado (C, C ++, Rust, Haskell, etc.) y al menos un lenguaje de “scripting” (Python, Perl, Ruby, etc.)

También debe estar bien versado en estructuras de datos y algoritmos . Si le solicito que escriba un hash desde cero en C, por ejemplo, o que implemente listas doblemente vinculadas, debería poder hacerlo. Debe estar familiarizado con quién es Donald Knuth y su compendio seminal de 3 volúmenes, The Art of Computer Programming

Siempre debe buscar expandir sus horizontes y aprender más, como interactuar con las muchas bases de datos, SQL y no SQL por igual.

También deberías saber algo de matemáticas. Como mínimo, vectores y matrices .

Si alguien le describiera un problema, ¿cómo haría para descomponerlo en términos de representación por software? ¿Cuáles preguntas harías? ¿Cómo abordarías una “prueba de concepto”? Quizás necesites más manos en el esfuerzo.

Estos son solo los “conceptos básicos”, y siempre debe buscar crecer en su conocimiento y experiencia, y no solo si puede adornarse o no con la etiqueta de “Ingeniero de software”. 5 años en el futuro después de tener aproximadamente 3 idiomas en su haber, haber manejado un par de bases de datos y similares, y haber llevado a buen término las soluciones, es decir, listas para la producción y se han puesto en marcha, se ocuparon de problemas de escalabilidad, y similares … Entonces, después de todo eso, ¿podrías estar listo para el apodo de Ingeniero de Software ?

El título puede ser algo relevante, en el sentido de que ciertas compañías realmente aprecian un grado relevante como ciencias de la computación o ingeniería de software, y algunas compañías también aprecian grados STEM como matemáticas y física porque muestran que el candidato es capaz de pensar rigurosamente.

Por otro lado, puedes tener un doctorado. y aún no ser capaz de escribir software. Muchos graduados en ciencias de la computación no pueden escribir software en absoluto, y muchos otros graduados de STEM sufren el mismo problema. Es posible que puedan realizar programación científica, utilizando secuencias de comandos relativamente simples para calcular algún resultado, pero en realidad no pueden escribir un programa complejo.

Si eres capaz de escribir programas y puedes convencer a otros de que puedes hacerlo, entonces estás muy por delante de la mayoría de los graduados de STEM. Algunas compañías aún se enfocan mucho en su título, y algunas incluso lo requieren, pero en la mayoría de los casos, poder programar es el criterio más importante. Si puede hacer eso, puede ser un “ingeniero de software”, independientemente de su título.

Si no talvez.

No tengo ningún título STEM (o ningún título), y durante una parte de mi carrera, escribí casi exclusivamente Python.

Pero eso no tiene sentido en realidad.

Puedes hacer el trabajo o no puedes.

Saber Python no es lo mismo que ser capaz de hacer tu trabajo.

Un ejemplo

Realmente no sé mucho C ++, pero si aprendiera C ++, ¿podría escribir un juego en 3D?

No, porque el problema no es C ++, es saber cómo hacer un juego en 3D.

Lo mismo para ti y Python, ¿podrías escribir Quora? Eso está escrito en Python, entonces ¿por qué no? El problema no es Python, es saber cómo escribir un sitio web bastante avanzado.

Si obtiene un trabajo como desarrollador de software, lo único que le importa a su empleador es su capacidad para su trabajo. Ya sea que tenga un título STEM y sepa 10 idiomas, a nadie le importa, solo les importa que pueda hacer su trabajo.

Uno ciertamente puede ser un programador / codificador con ese trasfondo. Un ingeniero de software “real” presenta algunos otros “aires” que son reales (en lo que respecta a la capacitación y los antecedentes / certificación), que son más o menos valiosos dependiendo del trabajo de codificación que uno realmente tiene que hacer.

Para hacer cosas como elegir una “cadena de herramientas” que admita múltiples entornos de destino y extender el diseño y los requisitos del arquitecto para que se adapten mejor al contexto existente, una mayor experiencia en “ingeniería de software” puede marcar una diferencia positiva.

Por cierto, es posible autodidacta de ingeniería de software, ya que es posible la programación autodidacta. (Es un poco más difícil, y los SE “reales” están certificados al pasar las pruebas de certificación). Algunos de los mejores SE que he conocido tenían títulos que no son STEM (licenciatura, a menudo había un título avanzado o un estudio de posgrado que permitía “SE-ness”)

Gracias por R2A en esta pregunta.

El título STEM no tiene (casi) nada que ver con la profesión de ingeniería de software. El conocimiento de matemáticas y física superiores puede ser útil, pero solo en algunos dominios SWE especializados.

Y conocer solo un idioma, aunque sea extraño, no lo descalificaría de la profesión siempre que se tome su tiempo para familiarizarse con los conceptos fundamentales: algoritmos y estructuras de datos, sistema operativo, las minucias de la gestión del código, el diseño del sistema, etc. en.

Una nota de Pendantic: en algunas jurisdicciones (vivo en una), solo puede describirse a sí mismo como un ingeniero que ha logrado una designación de ingeniero profesional; Una calificación rigurosa que incluye un título de ingeniería. Entonces, ¿un ingeniero de software? Aqui no.

¿Te va bien como programador informático? Sé mucho si las personas que obtienen buenos resultados con una licenciatura o ninguna licenciatura, aunque todos hayan tomado un sólido programa universitario de 2 años, no solo se enseñaron un idioma.

¿Puedes ser ingeniero de software si solo conoces Python y tienes un título que no es STEM?

Tuve un ex colega que tenía un título en música y teatro. Un título STEM tiene algunas ventajas, pero no es una condición previa. Lo mismo es cierto para cualquier idioma. Si encuentra alguna compañía desarrollando sus aplicaciones en Python y puede ofrecerles buenas habilidades en ese idioma, puede conseguir un trabajo en ese campo.

Pero necesitas ofrecer buenas habilidades. De esto se trata la programación

Realmente no. No creo que las empresas contraten con una sola habilidad. Necesita habilidades de base de datos + Python, o algunas otras habilidades con Python para ser contratado.