Будьте усидчивыми и целеустремлёнными
Всем привет!
Первые воспоминания, связанные с программированием у меня относятся к школьным годам. В 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 и научитесь работать с базами данных.