Hay dos tipos de personas en el mundo de la programación (ingeniería de software): puristas y no puristas (hipotéticamente hablando)
No tome el siguiente párrafo en un sentido discriminatorio:
Los puristas son probablemente personas inteligentes que tienen el conocimiento de cómo una computadora computa y realiza las tareas que hace, etc. El purista “ideal” sería una persona con una formación adecuada en informática. Trata de entender el tipo de educación que él ha tenido para obtener ese título. Ha aprendido sobre diseño de compiladores, análisis de algoritmos, robótica, programación de microchips, etc. Cualquiera puede ser un purista: debe tener un profundo interés en la informática, pero aún así no necesita tener un título en ciencias. .
Ahora pregúntate: ¿qué tipo de trabajo crees que a esa persona le gustaría “hacer”? Si esa persona tiene que diseñar un software para componentes eléctricos complejos que va a un teléfono celular, por ejemplo, necesitaría su conocimiento de cosas de “bajo nivel”, porque eso es lo que lo ayuda a superar.
Ahora trate de comprender su naturaleza laboral y las “herramientas” con las que tiene que interactuar para hacer su trabajo. Estas “herramientas” ayudan a la persona a alcanzar su objetivo. Se debe realizar un análisis cuidadoso de la naturaleza del trabajo y las herramientas necesarias para realizar el trabajo. En definitiva, ¿qué es una plataforma, una herramienta!
Ahora, si está tratando de fabricar dicha “herramienta”, debe comprender la “naturaleza del trabajo”. Un análisis cuidadoso de la naturaleza del trabajo lo ayudará a crear mejores herramientas, por lo tanto, puede comercializar mejor.
Ahora, ingrese a los no puristas (nuevamente, no hay tono discriminatorio previsto aquí):
Los no puristas pueden o no tener un grado cs. Pero, no obstante, son programadores, personas que pueden escribir código complejo. Supongo que la mayoría de las personas que trabajan en la industria de la venta de software trabajan para bancos, telecomunicaciones, redes, etc., etc. Estas instituciones están gobernadas por otros organismos poderosos como el gobierno. Aquí las reglas del negocio cambian desenfrenadamente. Por lo tanto, necesita software para ser realmente flexible aquí. Entonces, para alguien que está trabajando para una preocupación como desarrollador de software, está mucho menos preocupado por las cosas de bajo nivel.
¿Pero de qué se preocupa entonces? Él / ella debería poder incorporar cambios en las reglas de negocio realmente rápido. Por lo tanto, él / ella estaría interesado en los “patrones” de diseño de arquitectura de software, o, escribir código, y hacer que se parezca más a un modelo que sea más sostenible. Puede argumentar que así es como nacieron los principios orientados a objetos.
Ahora trate de comprender la “naturaleza del trabajo” y las “herramientas” que usaría esa persona. Aquí es donde ves una gran cantidad de editores e IDE que entran en escena. Hay tantas marcas y sabores diferentes. Le ayudan a lograr el objetivo de escribir programas más rápido.
Hay escenarios en los que un desarrollador de este tipo querría lidiar con cosas de “bajo nivel”. Pero no es algo muy frecuente.
La plataforma .net es una herramienta. Puede compararlo con Java, Python, etc. Todas estas herramientas tienen en común que pretenden ejecutarse en un entorno virtual que se encarga de ejecutar el programa que ha creado en cualquier dispositivo informático.
Hay una gran cantidad de abstracción que oculta la imagen aquí. Un programa (en una de esas industrias) normalmente tendría que lidiar con IO, solicitudes de memoria, etc. a lo largo de su ciclo de vida. El entorno virtual creado en realidad se encarga de esto. Entonces, el desarrollador promedio tiene que centrarse simplemente en escribir código para lograr su objetivo final, en lugar de comprender la forma correcta de asignar o desasignar memoria para su programa.
Ahora suponga que un purista termina trabajando en una industria de venta de software, ¡recuerde cómo esa persona llegó allí en primer lugar! Suponiendo que él / ella fuera un graduado exitoso de CS y desafortunadamente aterrizó en tal industria, piense, cuánto tiene que desaprender para prosperar en dicha industria.
En última instancia, es una cuestión de intereses del individuo, formación académica y perfil de trabajo actual o experiencia laboral, lo que lo convierte en una herramienta / plataforma en particular.