Всем привет!
Первые воспоминания, связанные с программированием у меня относятся к школьным годам. В 7-ом классе мне в руки попалась программа Autoplay Media Studio, в которой на языке скриптов lua и с помощью визуального редактора можно было создавать различные прикладные программы: браузеры, плееры, архиваторы и викторины. И понеслось.
Некоторые из созданных тогда программ у меня даже вроде бы сохранились. Но интерес к программированию быстро подостыл, так как тогда я был больше гуманитарием и увлекался биологией и историей. Через какое-то время (уже в 10-ом классе) мои интересы и взгляды на жизнь снова поменялись, и любимыми предметами стали математика и программирование. Тогда я уже начал изучать Pascal и «Си».
В университет я поступил на специальность, связанную с программированием — «Прикладная математика и информатика». После года обучения я заметил, что больше всего внимания уделяется математике, а с программированием как-то не очень. Я стал изучать вакансии на hh.ru, чтобы узнать, каковы требования к претендентам. Оказалось, что знания математики мало где требуются, но зато в большинстве вакансий требовались знания C#, Java и Objective C, которые в университете и близко не изучались. В этот момент я решил, что стоит самостоятельно заняться изучением программирования.
В 2014 году в мае я увидел объявление тогда ещё «Школы Программирования» о наборе на курсы по специальности Мобильный разработчик. Тогда в неё входили курсы «Android. Уровень 1», «Android. Уровень 2», «Objective-C. Уровень 1», «Objective-C. Уровень 2» и «Java. Уровень 1». Сначала я долго думал над тем, в каком направлении я хочу профессионально развиваться: в сторону мобильной разработки или веб-разработки. После ещё некоторого изучения сайтов с вакансиями я всё же решил стать мобильным разработчиком.
Изучение курсов по Android и углублённого курса по Objective-C далось довольно тяжело, многие моменты не были поняты сразу, к тому же учёба в университете отнимала много сил и времени. Однако когда через год-полтора я решил пересмотреть записи занятий по Android, всё показалось очень легким и даже элементарным. Так что, если сразу не удаётся изучить какие-то темы, лучше постараться прокачать свои навыки, изучая те технологии, на которых основаны трудные темы, и подойти к этим темам немного попозже, но уже с большим багажом знаний. В моём случае таким багажом стали более фундаментальные знания Java и ООП, полученные после прохождения курса «Java. Уровень 2» на Geekbrains.
В декабре 2014 года я заинтересовался ещё и C#, поэтому записался на программу «Разработчик C#» снова в GeekBrains. В эту профессию входили курсы «C#. Уровень 1», «C# Games» и «C# WPF», однако последний перестали проводить, поэтому в качестве замены я прошёл курс «Java. Уровень 2». За время учёбы мне понравилось заниматься с преподавателями Игорем Долговым («Java. Уровень 1» и «Java. Уровень 2»), Русланом Прокофьевым (Objective-C. Уровень 1) и Евгением Волосатовым (С# Games). Из перечисленных больше всего понравились занятия Игоря Долгова. Это прекрасный преподаватель и специалист! У него же я и проходил стажировку в Open Source проекте «Java2UML».
После обучения был важный этап — составление резюме и поиск подходящих вакансий. Так как даже Junior-разработчикам нужен какой-никакой опыт работы, я начал работать над Open Source проектами и заниматься фрилансом. Время шло, появился некоторый опыт разработки на Java и C#, пополнилось портфолио созданных мною проектов, резюме стало более солидным. Я решил, что сейчас неплохо было бы устроиться на работу официально. К тому времени в Linkedin мне пришло несколько предложений, после переписки мне были назначены собеседования. Проблемой оказалось найти работу программистом на полставки, с частичной занятостью или удалённо. Несколько собеседований, на которых я побывал, проходили в целом успешно, но везде был полный рабочий день и строгий график. Я ещё учился в университете, полный рабочий день мне не подходил.
Весной этого года в течение 3-х месяцев я проходил студенческую практику в качестве Java-разрабочика в компании, работающей в банковской сфере. Сейчас я работаю на позиции Java Middle Developer, занимаюсь разработкой и тестированием веб-приложений на языке Java.
Несколько советов начинающим коллегам-разработчикам:
- Будьте усидчивыми и целеустремлёнными.
- Изучайте английский язык хотя бы до уровня Intermediate и сразу практикуйтесь: читайте компьютерную литературу только в оригинале на английском языке, изучайте javadoc-и и статьи на английском.
- ВСЕГДА используйте системы контроля версий, даже если работаете над проектом в одиночестве. Со временем это дойдёт до автоматизма и войдёт в привычку.
- Развивайтесь разносторонне, изучайте технологии, которые связаны с основным, выбранным вами языком программирования. Если это Java, изучите функциональный подход к программированию, изучите SQL и научитесь работать с базами данных.