Всем привет!
Меня зовут Никита. Помню, как сам читал истории начинающих разработчиков. Это действительно придавало мне сил и вдохновляло, поэтому с радостью расскажу вам свою.
Чтобы рассказать вам о том, почему я захотел стать программистом, мне нужно начать из далека. Дело в том, что начиная со школы я грезил спортивной карьерой и до 22 лет профессионально занимался спортом (я мастер спорта). В 22 года я стал осознавать: таланта, чтобы добраться до олимпиад и чемпионатов мира, мне явно недостаточно. После спортивной жизни, когда у тебя была четкая цель, очень тяжело найти для себя что-то похожее и сопоставимое. Образуется вакуум внутри. Я знал, что так будет, когда бросал спорт, и поэтому решил переключиться на освоение инженерной профессии, в частности инженера-проектировщика.
Высшего образования у меня не было, и в 23 года я сдавал егэ! Таким образом поступил в Московский Государственный Строительный Университет на очное отделение. Сейчас мне 26, в этом году я только заканчиваю. Техническое образование дало мне очень многое, но не буду вдаваться в подробности. Строительство однако — очень консервативная сфера, и я не особо представлял, как буду развиваться и к чему буду стремиться. Перспектива изучать ГОСТы, СНиПы и другие нормы мне не нравилась. На третьем курсе был курс по Java. Я заранее знал, что нам будут читать этот курс, потому что он нужен для стажировки в Германии (там строительная информатика проходит на Java). На тот момент в программировании я был абсолютный ноль. Ни в школе, ни после неё я не программировал; я не знал ни про циклы, ни про С++, даже университетский Fortran прошёл мимо нашей группы (и слава Богу). Поэтому нужно было восполнять пробел.
Начал я с «Java 8 для чайников» и открыл для себя GeekBrains. Было сложно, для первых двух курсов профессии «Программист Java» (преподаватели: Игорь Долгов и Кирилл Ткаленко) я не смог сделать все домашние задания. Я путался в переменных, в терминах и т.д. Рядом никого не было: ни друзей, ни преподавателей (имеется ввиду offline). Но я спрашивал у однокурсников и они мне помогали и многое объясняли; появились друзья-программисты в социальной сети ВКонтакте. Хочу сказать отдельное спасибо Роману Новоселову, который всегда помогал и не отказывал в консультации по техническим вопросам. После четырёх месяцев обучения (из 6) я записался на олимпиаду по информатике и программированию в университете. И это — ключевой момент!
Я разбирал задания с преподавателем, много занимался сам и очень сильно набил руку. Перестал путаться в переменных, познакомился с алгоритмами, а самое главное — это атмосфера соревнования и чувство достижения цели (то, что я так искал, когда поступил в 23 года в университет после спорта). Олимпиада была Всероссийской, из 130 участников финала я занял 23-е место. Награждали первые 50 и я получил медальку! Потом я участвовал в учебной стажировке Khasang, а это новые знакомые и друзья. Спустя год курсов, книг, стажировок и полутора месяцев поиска работы и собеседований я устроился помощником Java программиста. Сейчас занимаюсь серверной частью проекта, исправляю баги и решаю небольшие задачи.
Советы начинающим
Не паниковать, не бояться (это не помогает), если что-то не понятно. В течение всего года мне было не понятно и сложно, и сейчас тоже тяжело, но к этому привыкаешь. Курсы Geekbrains — это основа и фундамент, это как умение писать и читать, которое никто спрашивать на собеседовании не будет (мол должен знать априори). Требования к начинающим сейчас гораздо выше. Поэтому я также проходил курсы на Stepic, Hexlet, JavaBegin. Не бойтесь стажировок, практик и прочего; участвуйте, даже если неуверенно себя чувствуете — экстремальное погружение даёт большие результаты. Сегодня сложно, не ясно и даже не знаешь, что спросить. А на следующий день буде получаться лучше, а ещё через день — уже разобрался и приступил к решению. Огромный плюс — друзья и единомышленники, такие же начинающие как и ты. С собеседованиями тоже самое: с самого начала всё плохо, отказы, отказы. Но на третьем, четвертом уже всё нормально, уже даже становится интересно. Таким образом тоже растёшь в техническом плане.
Важно уметь решать задачки и писать код на бумаге — это своего рода показатель того, как ты усвоил материал: если сможешь по памяти написать решение на бумаге, то считай усвоил (это из личного опыта). Также нужно понимать, что у любой задачи есть вполне реальное решение, нужно просто постараться. Учите английский. С пониманием технической документации жить проще, она состоит из определённого количества постоянно повторяющихся терминов и пассивного залога. Читайте книги разных авторов — это может облегчить понимание материала. Обязательно делайте домашние задания, их можно будет потом залить в репозиторий и прикрепить ссылку в резюме, это уже будет говорить о вашем опыте, иначе резюме совсем пустое будет. Если что-то не получается, значит нужно чуть больше времени. И если уж решили быть программистом, то абсолютно точно не нужно смотреть назад и на другие варианты, запасные пути и т.д. Бывает тяжело, и бывает это очень часто, а в самом начале — почти постоянно.
Не спешите, найдите себя в этом. Успехов!