Spiiin's blog

Как устроиться на работу программистом

В связи периодическими вопросами от бывших уже однокурсников, куда пойти работать, “чтобы научиться”, подробная инструкция, как устроиться на работу программистом.

- Понять, нужно ли работать именно по этой специальности.

Пункты 1,2 и 3 по идее должны были быть пройдены в университете. Если нет, подумать, будет ли интересно повторять это самому, если не было интересно делать за время учебы.

- Прочитать книгу по любому языку программирования.

Пофиг какому. Нет лучшего или худшего на этой стадии, любой сойдет, главное, понять как пишутся. Паскаль, с++, питон, ява, C#, любой другой. Можно не до конца, главное узнать все основные языковые конструкции.

- В ходе прочтения писать программы.

Цель - уметь самостоятельно реализовать любой простой алгоритм, научиться делать так, чтобы он корректно работал на любых входных данных. Примеры алгоритмов - решение квадратного уравнения, сортировки, выборка информации из матрицы, поиск подстроки в строке.

- Изучить работу с любым построителем интерфейса пользователя или библиотекой.

Полезть в справку к ней, почитать примеры использования. Написать свой аналог любой из простых программ операционной системы - текстовый редактор, браузер файлов, просмотрищик картинок или аудиоплейер, пользуясь готовыми компонентами.

- В принципе все, можно искать вакансии, отправлять резюме и идти проходить собеседования на работу.

Там проверят знание языка на простом алгоритме (как в пункте 2) и попросят выполнить тестовое задание (как в пункте 3). Но, по хорошему, чтобы не офигевать на работе первый месяц-два и не писать говнокод, лучше еще сделать следующее:

- Скачать и посмотреть, как написан какой-нибудь проект с открытыми исходниками.

Прочувствовать разницу в оформлении кода (обработка входных данных, комментирование и документация, использование идиом языка, платформонезависимый код, потоковая безопасность и безопасность относительно исключений(exception safety), исключение дублирования кода). Можно попробовать довести одну из своих программ до ума и потом показать ее на собеседовании или просто рассказать, как и что в ней работает.

- В случае точного понимания, в какой сфере имеется желание работать - разобраться с основными понятиями предметной области.

Например в геймдеве это начало аналитической геометрии (использование векторов и матриц для преобразований в пространстве, уравнения прямой и плоскости, понятие нормали). Курить документацию и много потом придется в любом случае, но начать лучше заранее. И да - документация будет на английском языке. Дальше будет еще много пунктов, но для трудоустройства начинающему этого точно хватит.