Esta podría ser una ocasión en la que puede haber una distinción semánticamente significativa entre 'programador' e 'ingeniero de software'. En este contexto, específicamente, vemos que usted tiene conocimiento de varios lenguajes de programación y tecnologías relacionadas y que puede usarlos para producir los resultados deseados. Esta es una buena definición operativa de "programador de computadoras".
Me considero un ingeniero de software. En la mayoría de los aspectos cotidianos de mi trabajo, probablemente hago las mismas cosas que tú. Uso lenguaje de computadora y tecnologías relacionadas para producir el resultado deseado. Sin embargo, sí entiendo las estructuras de datos y los algoritmos, y considero que el conocimiento es una base fundamental de mi capacidad para hacer mucho más.
A menudo, aunque no todos los días, mi trabajo consiste en encontrar una solución a problemas complejos para los que no hay soluciones obvias, nada que se aborde directamente por las características del marco que estoy usando o las capacidades del lenguaje en el que estoy trabajando. con. En esto, necesito analizar el problema e idear una solución y, ocasionalmente, este proceso entra en el ámbito de la arquitectura a gran escala.
Si bien una excelente comprensión de estos problemas más profundos es necesaria para hacer ese tipo de trabajo, no es suficiente . En otras palabras, solo saber cómo funciona una tabla hash o por qué un montón suele tener buenas características de rendimiento no es suficiente para ser un arquitecto de sistemas o un ingeniero sénior. Es el punto de partida lógico, y desde allí puede comenzar a profundizar y viajar más ampliamente y obtener la experiencia que también es necesaria para abordar los problemas más grandes.
Supongo que para responder a su pregunta, debe preguntarse: "¿Qué quiero ser? ¿A dónde iré con mi carrera?" Si está contento de continuar haciendo lo que está haciendo, entonces quizás desee aprender suficientes estructuras de datos y algoritmos para superar las preguntas de entrevista en gran medida arbitrarias que enfrenta.
Si quieres crecer en tu carrera y tienes una pasión esencial, debes abrazar estos temas lo más estrictamente que puedas. Si tiene algo de tiempo para trabajar en ellos, una mente abierta y verdadero entusiasmo, encontrará algunas cosas maravillosas y emocionantes. Nunca olvidaré el día que entendí por primera vez quicksort. La sensación de emoción y descubrimiento marcó el rumbo del resto de mi vida, y no podría estar más agradecido por eso. Ahora, no puedo imaginar hacer nada más que trabajar como ingeniero de software.
Mucha suerte con lo que elijas.