Pode ser uma ocasião em que possa haver uma distinção semanticamente significativa entre 'programador' e 'engenheiro de software'. Nesse contexto, especificamente, vemos que você tem conhecimento de várias linguagens de programação e tecnologias relacionadas e que pode usá-las para produzir os resultados desejados. Essa é uma boa definição operacional de 'programador de computador'.
Eu me considero um engenheiro de software. Na maioria dos aspectos do dia-a-dia do meu trabalho, provavelmente faço as mesmas coisas que você. Uso linguagem de computador e tecnologias relacionadas para produzir o resultado desejado. No entanto, eu tenho um entendimento das estruturas e algoritmos de dados e considero esse conhecimento um fundamento fundamental da minha capacidade de fazer muito mais.
Freqüentemente - embora nem todos os dias - meu trabalho envolva encontrar soluções para problemas complexos para os quais não existem soluções óbvias, nada que seja diretamente abordado pelos recursos da estrutura que estou usando ou pelos recursos da linguagem em que estou trabalhando. com. Nisso, preciso analisar o problema e elaborar uma solução e, ocasionalmente, esse processo entra no domínio da arquitetura em larga escala.
Embora seja necessário um excelente entendimento dessas questões mais profundas para realizar esse tipo de trabalho, isso não é suficiente . Em outras palavras, apenas saber como uma tabela de hash funciona ou por que uma classificação de heap geralmente possui boas características de desempenho não é suficiente para ser um arquiteto de sistemas ou um engenheiro sênior. É o ponto de partida lógico e, a partir daí, você pode começar a se aprofundar, a viajar mais amplamente e a adquirir a experiência necessária também para resolver os problemas maiores.
Suponho que, para responder à sua pergunta, você deve se perguntar: "O que eu quero ser? Onde irei com a minha carreira?" Se você está contente em continuar fazendo o que está fazendo, talvez queira aprender estruturas e algoritmos de dados suficientes para passar pelas perguntas da entrevista amplamente arbitrárias com as quais se depara.
Se você quer crescer em sua carreira e tem uma paixão essencial, deve abraçar esses assuntos da maneira mais rigorosa possível. Se você tiver algum tempo para trabalhar neles, mente aberta e verdadeiro entusiasmo, encontrará coisas maravilhosas e emocionantes. Nunca esquecerei o dia em que entendi quicksort. O sentimento de excitação e descoberta definiu o caminho para grande parte da minha vida, e eu não poderia estar mais agradecida por isso. Agora, não consigo imaginar fazer nada além de trabalhar como engenheiro de software.
Boa sorte com o que você escolher.