Введение
Программисты учатся на ошибках других программистов, а потом обучают новых программистов тем же ошибкам.
Я фанат разработки программного обеспечения…
У меня интересная работа технического лидера в компании, разрабатывающей программное обеспечение на заказ для зарубежных и отечественных клиентов.
За долгие годы путем обучения, проб, ошибок, дошел до уровня, когда мне доверяют начинать разработку проекта и доводить его с командой до продакшена.
Я поделюсь своими мыслями, знаниями и опытом в разработке программного обеспечения.
Почему…?
Я задумался, почему несмотря на множество людей с горящими глазами, изучающими или знающими какой-либо язык программирования, остается острая нехватка программистов (например, в нашей и других компаниях дают бонус за успешную рекомендацию кандидата)?
Почему, несмотря на большой объем информации в интернете, сложно понять, что требуется для того, чтобы тебя приняли на работу в компанию, разрабатывающую программное обеспечение?
Почему сейчас, когда компании лояльно относятся к сотрудникам (в нашей компании десяток человек работают удаленно), которые находятся за сотни километров в маленьких городках и успешно работают на ключевых позициях, остается кадровый голод?
Злосчастный круг
К сожалению, проблема студентов и молодых специалистов известна – компании не хотят рисковать и брать на работу людей без опыта, без нужных компетенций.
А без работы невозможно (а точнее очень трудно) получить необходимый опыт.
Злосчастный круг замыкается и его сложно разорвать.
Тебя интересуют информационные технологии?
Ты изучаешь язык программирования и уже пишешь (пусть и простые) программы?
Ты хочешь связать свою профессиональную жизнь с ИТ?
А может ты уже работаешь в ИТ, но тебе нужно значительно повысить свою квалификацию?
Ты сможешь получить концентрат знаний и опыта, тебе не придется блуждать в дебрях интернета и собирать все по крупицам. Ты сможешь за год усвоить и понять основное, что в ином случае достигается годами. Но не обещаю, что это будет легко.
Стремись к профессиональной цели!
Если тебя интересует программирование, информационные технологии и ты находишься в начале профессионального пути – стремись к своей цели!
Получи Чек лист по профессиональным компетенциям, требуемыми для разработки программного обеспечения.
Чек лист поможет оценить навыки, наметить векторы по развитию профессиональных компетенций разработчика программного обеспечения, которые значительно повысят ИТ квалификацию и помогут открыть дверь в компанию твоей мечты или получить повышение на текущей должности.
Определив свой текущий уровень, сформируй карьерный план и определи ближайшие и долгосрочные цели. Не трать на планирование много времени! План – это список намерений, но не более того.
Профессиональные компетенции разработки программного обеспечения помогут достичь поставленные цели при любой текущем уровне – для уровня курсанта, юниора или разработчика с опытом. Наибольший эффект получите на начальных уровнях, но разработчики среднего уровня, специализируясь на определенных технологиях и уделяя внимание отстающим компетенциям, могут достичь экспертного уровня.
Путь до юниора может занять много времени – от полугода до 2 лет, в зависимости от начального уровня и интенсивности подготовки. Нужно много изучать и практиковать, не менее 10 часов и нескольких дней в неделю (например, 2-3 дня в неделю по 2 часа вечером в будни и 4-6 часов в выходной теории и практики). Такой график сложно, но можно соблюдать по совместительству для учащегося, студента или занятого на основной работе. Естественно, у каждого человека своя скорость усвоения материала и получения практических навыков, кто-то достигнет цели ранее, а кому-то потребуется больше времени.
Звезд с неба не хватал
Может у тебя возникают сомнения, сможешь ли ты достичь своей профессиональной цели – начать работу в ИТ или повысить свою квалификацию?
Может ты думаешь, что многим все дается легко и просто? Вероятно, такие люди есть, но я не из их числа…
Знания мне даются непросто, свой опыт я набирал долго с "кровью и потом" – на работе, вечерами дома, а если меня посетит вдохновение, то иногда и ночью :)
Многие задают вопрос – есть ли польза в книгах, курсах и наставниках? Курсы, книги и учебные материалы, менторы – это ускорители, мотиваторы и тотализаторы, но все зависит от вас самих – вы должны изучать и практиковать!
Первый опыт я получил в школе, кодируя алгоритмы на микрокалькуляторе “Электроника МК-52”, программируя простые игры на микрокомпьютерах “БК-0010” и “ZX Spectrum” на языке Basic. Помимо этого, я провел много времени за компьютерными играми. В университете работал с системой управления базой данных dBase, создавая программу расчета полезных веществ в продуктах питания.
Моя первая работа на должности программист-инженер была в маленьком закрытом городке Казахстана в Курчатове в Институте Атомной Энергии в Национальном Ядерном центре. Курчатов расположен недалеко от ядерного полигона, на полигоне я видел огромные скрюченные, погнутые железобетонные столбы и “атомное” озеро – последствия наземных термоядерных испытаний. Первая реализованная мною база данных, ушедшая в продакшен – “Система учета радиоактивных материалов” для Международного агентства по атомной энергии. Ценным источником знаний по языку программирования С в 1996 году, являлась бумажная распечатка руководства “Язык программирования С” Брайана Кернигана и Денниса Ритчи, по ней я обучался с моим другом и коллегой Цай Евгением. Нашими наставниками по разработке были Инков Александр, Петренко Андрей (передаю им персональный привет!). Позже по документации и книгам изучали C++ и Delphi. В дальнейшем мы работали на С, C++ и Delphi в основном над созданием информационно-управляющих систем для эксперементальных стендов Ангара и EAGLE.
В 2006 году выиграл грант и в Омске в компании Luxoft прошел 4 месячный интенсивный курс по методикам разработки Rational Unified Process, языку программирования Java, Java EE технологиям и базе данных Oracle. После этого сменил специализацию с С++, Delphi на Java стек. Большинство ребят после курса также стали работать Java разработчиками. Переехал в кремневую долину Сибири – в Новосибирск. (Передаю всем знакомым и друзьям из Курчатова, Омска и Новосибирска пламенный привет!).
Начало карьеры может быть сложным, но вам должно нравиться программировать, чтобы получать удовольствие от ИТ учебы в настоящее время и в будущем от работы в ИТ! Чертовски приятно иметь работу, которая интересна и захватывает словно хобби! Иначе, возможно имеет смысл вам найти другое занятие по душе…
Естественно, каждый человек рано или поздно имеет тенденцию терять мотивацию. Практически каждый из нас нуждается периодически в “волшебном пенделе” ;) Рекомендую найти сообщество единомышленников среди изучающих ИТ и ментора из числа опытных разработчиков, которые могут оказать как моральную поддержку, так и дать практические подсказки, советы и помощь в освоении информационных технологий. Разработчики с опытом в свою очередь, оказывая помощь курсантам, могут избежать “выгорания” и прокачать свои навыки по управлению командой и проектом и вырасти до Лидера команды.
Через много лет я достиг своей цели – разработка программного обеспечения в классной ИТ компании в профессиональной команде!
А какова твоя цель?
Я знаю, что ничего не знаю
Оглядываясь назад, я начал обобщать и фиксировать свой опыт.