¿Todavía se le puede llamar ingeniero de software si solo conoce Ruby on Rails como el idioma del lado del servidor?

Se le puede llamar lo que quiera y saber tanto o tan poco como quiera, MIENTRAS QUE no se llame a sí mismo algo sobre lo que hay leyes. Puedes llamarte la Emperatriz Más Exaltada del Universo para lo que a la mayoría de las personas les importará. En algunos países, y en algunos estados de EE. UU., Existen leyes sobre quién puede llamarse a sí mismo cualquier tipo de “ingeniero”, que generalmente requiere que aprueben algún tipo de examen de Ingeniero Profesional sobre su especialidad. Aparte de eso, hasta donde yo sé, todo vale, especialmente en la industria de desarrollo de software, donde comúnmente hay anuncios de ayuda para un “senior”, lo que exige una gran cantidad de dos años de experiencia.

Dicho esto, profundizaría más. Es poco probable, pero aún plausible , que alguien que solo conoce un idioma (Ruby) y solo un marco en ese idioma (Rails), sepa lo suficiente sobre cómo construir un software correcto, confiable, eficiente y mantenible, de manera eficiente y repetible, acercarse realmente a merecer el título de “ingeniero”.

Si quieres que te tomen en serio con un título de SE, te recomiendo que aprendas más que solo Rails. Aprenda otro marco web de Ruby, como Sinatra o Roda o Hanami. Aprenda a usar Ruby sin un marco de aplicación web. Aprenda otros pocos idiomas, preferiblemente muy diferentes de Ruby, como C o Clojure, en lugar de algo bastante parecido a Python. (Tal vez incluso incursione un poco en lenguajes de “broma” como Moo o Whitespace o Brainfuck, solo para estirar su mente). Compárelos con Ruby; Vea lo que es común entre muchos idiomas, lo que casi siempre difiere y lo que tiende a agruparse. Vea qué agrupaciones puede descubrir , en comparación con categorías bien definidas. Aprende a hacer aplicaciones web en esos idiomas y compara los marcos (o lo que sea que se te ocurra para hacerlo sin un marco) con Rails (y Sinatra, etc.). Aprenda sobre las estructuras de datos y los algoritmos, no solo cuáles existen, cómo codificarlos, cuándo cada uno es bueno, sino también cómo analizar los algoritmos en general y por qué eso es importante. Aprenda a escribir código que se pueda mantener: aunque está garantizado, la comunidad de Ruby pone mucho énfasis en esto, por lo que puede tener una ventaja al respecto. Aprenda sobre el lado operativo del mantenimiento de una aplicación: cómo ingresa al servidor, cómo se actualiza, cómo funciona bien con otras cosas allí, cómo le hace saber a alguien cuando algo está mal, etc. Aprenda sobre los procesos de SE, como Waterfall, Scrum, XP, Lean, etc. Aprenda sobre las pruebas , tanto manuales como automatizadas. Mientras tanto, puede conformarse con “Rails Developer”; no hay estigma, y ​​hay suficientes compañías que buscan exactamente eso , que aún puede obtener toneladas de buenas ofertas de trabajo.

Dicho eso, sin embargo, aún te sugiero que aprendas tanto como puedas razonablemente por tu cuenta. Aprenda al menos un nuevo idioma, o marco o técnica principal, cada año. Cuando se encuentre asesorando a aspirantes a desarrolladores, en una amplia variedad de lenguajes y técnicas, parafraseando a Kipling, el suyo es el sistema y todo lo que contiene, y, lo que es más, ¡será un ingeniero de software, hijo mío!

Puede conocer una gran cantidad de idiomas del lado del servidor y no ser llamado ingeniero de software. Mientras que una persona con un solo idioma puede ser un ingeniero de software respetado.

La programación ya se ha convertido en un trabajo manual. Cualquier persona con una buena conexión a Internet puede convertirse en programador. Por lo tanto, todo se reduce, no a la cantidad de idiomas que conoce, sino a los diversos conceptos de ingeniería de software con los que está familiarizado.

Un ingeniero de software debe conocer las estructuras de datos básicas y estar familiarizado con los sistemas de memoria de pila y montón. Podrá personalizar un sistema y usar una estructura de datos específica y un algoritmo basado en la necesidad actual del proyecto.

Aparte de eso, un ingeniero de software debe estar familiarizado con los diversos patrones de diseño para desarrollar un software. También debe estar al menos un poco familiarizado con varios métodos de gestión de proyectos como ágil, kanban, etc. Los conceptos de depuración, prueba y creación de perfiles son una gran ventaja.

Una vez que conoce todas las ventajas de la programación, cualquier lenguaje es igual de fácil para usted. Por lo tanto, apunte a los conceptos y no a los idiomas y se le llamará Ingeniero de Software en muy poco tiempo.

Lo que lo convierte en ingeniero de software es el conocimiento adecuado y la aplicación de las ciencias de ingeniería para crear software.

Si bien “ingeniero” no es un título protegido, la gente esperaría que alguien que se autodenomina ingeniero tenga una capacitación formal, al menos a nivel de licenciatura, en las ciencias generales de ingeniería como matemáticas y física, así como en el dominio Entrenamiento específico. En el caso de un ingeniero de software, eso significa la comprensión de la lógica binaria, algoritmos, estructuras de datos, patrones de software, metodologías de trabajo y mejores prácticas.

No se trata de cuántos lenguajes de programación conoces, sino de si realmente entiendes cómo funciona. Dicho esto, Ruby es un lenguaje de alto nivel y abstrae la mayoría de los bits de programación que pueden entenderse adecuadamente como ingeniería.

Entonces, si te llamas ingeniero de software después de ver un video de YouTube sobre cómo crear una aplicación “Hello World” en RoR, probablemente no deberías.

Si supiera cómo implementar un algoritmo de clasificación de burbujas en Ruby, sin buscar primero en Google “qué es un algoritmo de clasificación de burbujas”, y podría explicar con cierto detalle cómo el procesador ve e interpreta los comandos que escribe en Ruby, y podría diseñar una aplicación web grande en Ruby sin convertirla en una pesadilla de mantenimiento, que tal vez.

La programación puede haberse convertido en un “trabajo” de collar azul, en realidad a cuadros, pero la ingeniería no lo ha hecho y no lo hará. Un ingeniero de software produce software, un producto tangible utilizable. En lugar de cumplir con los contratos de contratación mayorista de miles de cuerpos de TI.

Produzca algo que otros usarían, en cualquier idioma, y ​​con orgullo usará el título de “ingeniero”.

Amigo, antes que nada hablas inglés, pero técnicamente hablando no puedes hablar párrafo. Escribes Ruby – con Ruby on Rails para construir la estructura de tu aplicación / ware.

El trabajo del ingeniero consiste en automatizar el trabajo que, de lo contrario, un hombre (o mujer) tiene que hacer manualmente. Por lo tanto, un simple HTML que alguien creó que lleva a un cliente a comprar un producto del proveedor es un producto de ingeniería, por lo tanto, quien lo crea es un ingeniero, es un ingeniero de ventas.

Por otro lado, si alguien toma la escuela de ingeniería y / o tiene la capacidad de diseñar cosas pero no ha ideado ningún producto de ingeniería aún no es ingeniero, todavía.

Solo conocer a Ruby on Rails significa que usted es simplemente un desarrollador web back-end.

Si aprende Ruby y busca construir robots, construir un sistema operativo o algo así, entonces lo llamaría un ingeniero de software.

Sí, ya sea que sepa un idioma o 100,000, son las habilidades, los métodos y los procesos los que lo convierten en un experto.

Si, de hecho. Si creas software, realmente no importa cuántos idiomas uses.

Si. Por qué no? Claro, al menos debería tener curiosidad por otras tecnologías, pero no hay razón para no hacerlo.

More Interesting

¿Qué significa esto para un ingeniero de software: "No estás en un nivel superior"?

Actualmente estoy en noveno grado, y soy muy malo en matemáticas. Tengo que comenzar a planificar el futuro ahora, y dicho esto, ¿qué trabajo en todo el universo no requiere matemáticas?

¿Soy más o menos empleable si he trabajado con un dominio de herramientas más grande que centrarme en uno como ingeniero de software?

¿Cómo es el día típico de un ingeniero mecánico?

¿Es cierto que los ingenieros de software profesionales producen solo de 50 a 100 líneas de código por día?

¿Por qué un ingeniero de software elegiría ser un consultor independiente para la empresa en lugar de un FTE?

¿Cuáles son las diferencias entre un ingeniero de software que trabaja en París y el Área de la Bahía, en términos de compensación general después de impuestos, seguridad laboral y oportunidades de desarrollo? ¿Podría alguien que ha trabajado en ambos lugares arrojar algo de luz?

¿Hay escasez de talento en ingeniería en Silicon Valley?

Como ingeniero de software, ¿qué tan beneficioso sería también ser bueno en ingeniería de datos?

¿Quiénes son algunos de los mejores programadores del mundo?

Cómo elegir un lugar de trabajo como desarrollador junior de software

Cómo comenzar a prepararse para convertirse en un científico de datos

Estoy trabajando como ingeniero de software en Accenture. Pero mi proyecto es un proyecto de apoyo. ¿Debo cambiar de trabajo?

Los ingenieros de software que trabajan los fines de semana están creando un entorno donde el trabajo en el fin de semana se considera normal. ¿Qué podemos hacer al respecto?

¿Qué idiomas debo aprender para ser ingeniero de software?