Чем занимаются разные программисты
Более интересные вещи вынес пост-ответ здесь: Ответ Аноним в «Секреты вашей профессии, о которых лучше не говорить»
Вот более прозаические вещи.
0. Есть разные дисциплины с разными порогами входа. Для каких-то дисциплин (веб-разработка) достаточно просто браузера. Где-то же нужно понимать в электроннике или иметь дорогое оборудование. Заплата не всегда напрямую от этого зависит: если вы специалист очень узкого профиля и для Вашей работы нужно сложное оборудование, то заплата будет конечно неплохая, но потребность в таких спецах может быть ниже, чем в более "ходовых" дисциплинах.
1. Самое сложное -- это усидчивость, когда у тебя не работает казалось бы очевидное решение. Или когда ты смотришь в свой же код пятилетней давности. Или не свой.
2. По мере роста всё меньше нужны технические навыки и всё больше организационные и личностные, в частности:
2.0. Как правильнее построить свой день, чтобы быть наиболее продуктивным (самый сложные задачи в самое продуктивное время, помодоро, отдельное время для емейлов и так далее).
2.1. Как суметь аргументировать свою точку зрения (как объяснить идею на пальцах в 4-5 предложениях или в крайнем случае используя Paint/Whiteboard и мышку).
2.2. Как правильно оценить сложность проекта, суметь отказаться от сложного решения или вообще от какой-то части проекта, если есть большой риск провала.
3. Что делает (индивидуальный) разработчик (IC -- individual contributor):
3.0. Пишет код (ну куда ж без него)
3.0.0 Сам код в каком-то виде
3.0.1 Пишет тесты (либо начиная с них, либо заканчивая ими)
3.0.2 Пишет прототип, если проект очень большой или долгий, для демо.
3.0.3 Рефакторит код перед открытием pull request.
3.0.4 Учитывает замечания коллег с pull request перед тем как добавить изменения в репозиторий.
3.1. Пишет документацию (либо напрямую в коде в виде специальных комментариев, либо отдельно; второе намного реже, только для критических проектов).
3.2. Представляет свою работу в разным митингах внутри команды и вне её.
3.2.0 Со временем количество твоих проектов накапливается и вот уже каждый день по митингу по разным проектам :)
3.3. Занимается самообразованием (читает книги, делает курсы, просто занимается чем-то интересным, чего по работе делать не получается).
4. Что делает архитектор: его основная задача еще перед началом проекта оценить возможные технические решения, риски, и предложить одно или несколько решений команде.
4.0. Чаще всего это презентации или прототип (как визуальный, так и возможно даже в чём-то функциональный)
4.1. В течение всего времени проекта архитектор осуществляет "надзор", ну и может по требованию тимлида/менеджера дорабатывать проект и изучать дополнительные решения или какие-то новые требования или риски.
4.2. Самое главное -- архитектор не руководит людьми, его задача чисто техническая. Он должен "смотреть вперед" чтобы Титаник проекта случайно не налетел ни на какой айсберг.
5. Что делаем тимлид/менеджер (часто это одна роль):
5.0. Он напрямую руководит людьми, распределяя им задачи, мотивируя их и потом оценивая их производительность.
5.1. Навыки тимлида: делегирования задач (кому какую задачу лучше дать), мотивирование (чтобы исполнитель делал задачу с энтузиазмом), помощь с любыми проблемами команды и коммуникация с руководством и клиентами (если есть).
5.2. Технически менеджер должен прокачивать у себя те технические навыки, которые в команде хуже всего представлены. Там, где я работал, это очень часто инфраструктура, облачные технологии и фронт-энд (но в других командах может быть совсем по-другому).
5.3. Сильно помогает опыт, просто часто с той проблемой, с которой к тебе приходят, ты уже когда-то сталкивался и что-то помнишь. Ну или ищешь сам сначала решение, пробуешь, пока команда делает то, что умеет хорошо.
5.4. Делегирование и мотивирования -- чисто психологические навыки. Нужно суметь найти правильного исполнителя и смотивировать его на решение. Очень часто (но не всегда, конечно), эту же задачу ты сам можешь решить раза в 2 быстрее, но ты не можешь тратить на неё столько времени сам, так как у тебя еще 5 таких же задач, который нужно разъяснить и смотивировать.
5.5. Как менеджер у тебя обычно 4-5 часовых митинга каждый день с разными сотрудниками, часто без зазора вообще, и нужно переключаться с одного контекста на другой очень быстро. Напонимает сеанс одновременной игры в шахматы на нескольких досках.