Это может быть поводом для семантически значимого различия между «программистом» и «инженером-программистом». В этом контексте, в частности, мы видим, что вы владеете несколькими языками программирования и связанными с ними технологиями и что вы можете использовать их для получения желаемых результатов. Это хорошее операционное определение «компьютерный программист».
Я считаю себя инженером-программистом. В большинстве повседневных аспектов моей работы я, вероятно, делаю то же, что и вы. Я использую компьютерный язык и связанные с ним технологии для достижения желаемого результата. Тем не менее, у меня есть понимание структур данных и алгоритмов, и я считаю, что знания являются фундаментальной основой моей способности делать гораздо больше.
Часто, хотя и не каждый день, моя работа заключается в поиске решения сложных проблем, для которых нет очевидных решений, ничего, что напрямую не связано с особенностями используемой среды или возможностями языка, на котором я работаю с. В этом мне нужно проанализировать проблему и найти решение, и иногда этот процесс идет в сфере крупномасштабной архитектуры.
Хотя для выполнения такой работы необходимо отличное понимание этих более глубоких вопросов, этого недостаточно . Другими словами, просто знание того, как работает хеш-таблица или почему сортировка кучи обычно имеет хорошие характеристики производительности, недостаточно, чтобы быть системным архитектором или старшим инженером. Это логичная отправная точка, и оттуда вы можете начать копать глубже и путешествовать более широко и получить опыт, который также необходим для решения более крупных проблем.
Я полагаю, что для того, чтобы ответить на ваш вопрос, вы должны спросить себя: «Кем я хочу быть? Куда я пойду с моей карьерой?» Если вы удовлетворены тем, что продолжаете делать то, что делаете, то вам может понадобиться изучить достаточно структуры данных и алгоритмы, чтобы получить ответы на в основном произвольные вопросы интервью, с которыми вы сталкиваетесь.
Если вы хотите развиваться в своей карьере, и у вас есть страсть к этому, которая необходима, вы должны охватить эти предметы как можно крепче. Если у вас есть время поработать над ними, с открытым сердцем и настоящим энтузиазмом, вы найдете несколько замечательных и захватывающих вещей. Я никогда не забуду тот день, когда я впервые понял быструю сортировку. Чувство возбуждения и открытий проложило путь для большей части моей жизни, и я не мог быть более благодарен за это. Теперь я не могу представить себе что-либо еще, кроме работы инженером-программистом.
Желаем удачи с тем, что вы выберете.