Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Ruby

О стажировке и учебе в GeekBrains

Разговариваем о том, как выглядит стажировка в GB и что она дает. Попутно обсуждаем путь в профессию, выбор между JS/PHP и fullstack JS, создание портфолио. Мой собеседник — Владислав Мищенко — освоил веб-разработку в GeekBrains и стал наставником.

Владислав, чем занимаетесь сейчас?

— Прохожу стажировку по итогам курса веб-разработки: обычно она длится полтора месяца, но мы взялись за масштабный проект — форум. Его за такое время удалось написать лишь на 35–40 %. Чтобы получить минимально жизнеспособный продукт, пришлось идти «на второй круг». Пишем уже третий месяц. Сейчас делаем личный кабинет и авторизацию через соцсети.

Над проектом работает несколько распределенных команд: одна пишет backend, другая — frontend, третья отвечает за дизайн. У каждой команды свой тимлид.

Чем стажировка в GeekBrains отличается от финального проекта по профессии?

— Стажировка — это дополнительная практика, которую проходят по желанию. Она помогает собрать портфолио и получить опыт. Не все, кто записались на стажировку, уже заканчивают обучение. Ребята из команды рассказывали, что им еще осталось пройти один-два курса по профессии, а они узнали о стажировке и присоединились. Бывает и наоборот — записываются после учебы.

Если за отведенное время проект завершить не удалось, стажировку можно продлить, повторить, как это и получилось у нас. Не могли же мы просто махнуть рукой и сказать: «Ладно, будем считать, что закончили». Для меня это точно не вариант. Преподаватель Сергей Кручинин спросил, кто хочет продолжать. Я записался, ведь без завершенного проекта терялся смысл стажировки.

Берут всех или есть отбор? И кто предлагает идею?

— Берут всех, кто запишется. Дальше студенты договариваются между собой, разбиваются на команды. В нашем случае идея принадлежала преподавателю Сергею Кручинину. Он курирует нашу стажировку и предложил три проекта на выбор: форум и две разновидности чата — для десктопа или для мобильных устройств.

Главная страница форума

Ваш участок работы в команде?

— Я в первую очередь менеджер: координирую работу над бэкендом и с тимлидами других команд, проверяю код участников. Если нахожу ошибки — объясняю, что исправить. Если у кого-то из коллег возникают трудности — подключаюсь к проблемной задаче и вместе мы ее решаем. То есть на мне организаторские задачи и code review.

Опыт проджект-менеджера для резюме?

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

На чем пишете и сколько вас в бэкенде?

— Используем PHP, фреймворк Laravel. На стажировке по веб-разработке нас четверо, включая меня.

Сколько времени уделяете проекту ежедневно?

— Стараюсь заниматься форумом не менее 2–3 часов в день, по возможности — 4–5 часов. Бывает, до двух дней не прикасаюсь к проекту, потому что выполняю заказы на фрилансе.

Чтобы координировать работу в команде, мы с коллегами по бэкенду минимум раз в неделю созваниваемся — обсуждаем текущие и предстоящие задачи. Плюс держу связь с тимлидами других команд: фронтенда и дизайна.

Базовое оформление дизайнеры нарисовали еще в «первый заход» стажировки. Теперь они изредка что-то дорабатывают или объясняют нам назначение неподписанных элементов интерфейса.

В ходе работы над проектом вы учитесь технологиям, которых в основном курсе не было? Или это скорее шлифовка уже полученных знаний и навыков?

— Первое, чему мы учимся, — работа в команде. Раньше, по ходу учебы, мы получали обратную связь только от преподавателя. А здесь ты взаимодействуешь с другими разработчиками и перенимаешь лучшие практики. Например, ты видишь, как изящно решил задачу коллега по команде, и берешь новый прием на вооружение.

Второй момент — мы изучаем новые фреймворки. В основном курсе мы работали с Yii 2, а для проекта понадобилось учить Laravel. Это приблизило нас к реальной ситуации, когда на работе требуется быстро вникнуть в незнакомую технологию.

Нельзя «про запас» изучить все на свете, но, если есть фундамент, можно быстро добирать необходимое. Я уже знаю язык PHP и свой стек, поэтому новый фреймворк не стал проблемой. Нужно только быть готовым к работе с новыми инструментами, к самообразованию — без этого в профессии не удержишься.

Так выглядит страница темы на форуме

Какое образование получали до GeekBrains?

— Техническое. В нижегородском филиале Высшей школы экономики я сначала окончил бакалавриат по специальности «бизнес-информатика». Затем в магистратуре изучал интеллектуальный анализ данных.

В интересах у вас многое перечислено: JS, PHP, Python, Java, — то есть вы искали свое направление, свой стек технологий. А в итоге решили на вебе сосредоточиться. Почему?

— Так исторически сложилось. Я начинал как автоматизатор тестирования: для тестов использовал Java, затем переключился на полноценную Java-разработку. Позже возглавлял отдел разработки на оборонном предприятии. Мы писали Windows-приложения на C# для внутреннего использования в организации.

Поскольку моя учеба в магистратуре была связана с анализом данных, я познакомился с Python и освоил нужные аналитику библиотеки. Язык хорошо пошел сам собой.

Дальше личные обстоятельства и ситуация на рынке труда привели к тому, что в приоритетах у меня оказалась веб-разработка. Мне нужен был стек технологий, связанный с бэкендом, либо fullstack.

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

Сначала я купил обучение профессии «Веб-разработчик», а затем еще прошел бесплатный курс Ruby, который выиграл по конкурсу. Занимался практически параллельно: веб-разработку начал с марта, Ruby — с июня. Так что я проходил 2–3 курса в месяц.

Ruby пока не пригодился?

— В Нижнем Новгороде найти вакансию разработчика Ruby не так просто: требуют большой опыт. Но я не жалею, что изучил основы языка и фреймворк Ruby on Rails. Финальным проектом по этому курсу наша команда сделала сервис Linker, который позволяет создавать коллекции ссылок и обмениваться ими онлайн. Нас было шестеро, я отвечал за менеджмент. Сейчас этот проект в моем портфолио. Интересный опыт.

Фрагмент главной страницы проекта

Веб-разработчику со знанием PHP проще в Нижнем Новгороде найти работу?

— Вакансии есть, но такой, которая бы меня зацепила, пока не нашел. Хочу профессионально развиваться, а не сидеть на одном PHP-фреймворке или на одной CMS типа Wordpress или Bitrix. Мне нужна компания, которая предложит разноплановые проекты и перспективы карьерного роста.

Дистанционные варианты рассматриваете?

— Сейчас я как раз фрилансер: сотрудничаю с заказчиками из других городов. Но параллельно ищу постоянное место.

Предпочитаете офис?

— Да. Когда смотришь, как работают другие, проще настроиться на дело. Дома я более расслаблен.

Пока вы учились на веб-разработчика, было деление на тех, кто хочет в fullstack, и тех, кому нужен только бэкенд?

— Некоторые предметы мы изучали вместе. Для большей ясности приведу пример. Курс «JS. Уровень 1» — он и для веб-разработчиков полного цикла, и для фронтендеров, и для тех, кто купил отдельный курс вне профессии. Со мной учились люди не только с курсов GeekBrains, но и из GeekUniversity. Были новички в программировании, были и опытные люди, которые пришли освоить новую для себя технологию.

Кстати, почему вы не захотели стать fullstack-разработчиком JS?

— Я покупал профессию, когда работал в веб-студии, где мы использовали системы управления контентом: Wordpress, Open Cart и Bitrix. Все эти CMS написаны на PHP. Мне нужен был этот язык, плюс понимание бэкенда, фронтенда и верстки. Поэтому профессия «Веб-разработчик» подходила идеально.

Но от перспектив fullstack-разработки я не отказываюсь: с конца февраля начну проходить курс Node.js, который получил в подарок от GeekBrains. Node.js — это фреймворк, который позволяет писать серверную часть сайта или веб-приложения на JavaScript. Когда освою его, до JS-разработчика полного цикла мне останется изучить Vue и/или React.

Кроме форума и сервиса Linker, какие сделанные в GeekBrains проекты возьмете в портфолио?

— Я вставил в резюме ссылку на GitHub, где храню проекты, которыми горжусь и за которые меня хвалили преподаватели. Один из них — интернет-магазин на чистом PHP, который я делал на курсе «PHP. Уровень 2». Да, это учебная работа: в базе магазина всего несколько товаров. Зато я глубже вник, как реализовать функции: корзину, разбивку по категориям, подбор товара и другие.

Когда я пользовался системой Open Cart, алгоритмы добавления в корзину и поиска по сайту казались запутанными. Теперь я сам расписал порядок этих действий для своего проекта и понимаю, почему и как все работает.

Сколько времени заняло написание интернет-магазина?

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

Вы не только ученик, но и наставник в GeekBrains. Сколько времени это отнимает и насколько трудно?

— Все зависит от потока и курса. На одних курсах штиль — никто не обращается, на других — два-три человека задают вопросы в духе «Как сделать вот это?», «Я не успеваю сдать ДЗ, что делать?». Людей интересуют и учебные, и организационные моменты.

Мне нравится, что через наставничество я сам учусь. Студенты подчас задают очень интересные вопросы с подвохом. С ходу не ответишь — идешь в Google, вникаешь и дальше объясняешь, как сам понял. Это помогает разобраться в темах, которые ускользнули из твоего поля зрения во время учебы.

Как собираетесь дальше развиваться в карьерном плане?

— Планирую расти и стать руководителем отдела веб-разработки. Оставаться на одном уровне нельзя — развитие отрасли постоянно отбрасывает тебя назад, если не сопротивляешься. Обновление и расширение знаний — это не дополнительное занятие по выбору, а часть повседневной работы.


14 фев 19, 14:34
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

История языков программирования: 1990-е

Последнее десятилетие XX века ознаменовалось появлением интернета (World Wide Web) в его привычном глобальном виде. Если ранее языки и идеи программирования распространялись через отдельные дистрибутивы или журналы, то теперь появился мощный канал обмена информацией, доступный каждому. Таким образом, любой язык программирования, даже созданный школьником на уголке планеты, мог стать международным хитом.

В то же время появление интернета открыло новые перспективы для развития языков. Он стал полем для развертывания сценариев, создания протоколов обмена информацией и различных интерактивов – благодатной почвой, где существующие языки не имели власти. В этой ситуации вторую жизнь обрели функциональные языки программирования.

Перерождение функционального программирования

Функциональные языки программирования появились ещё на рассвете программирования: в конце 50-х был Lisp, который получил международное признание и долгое время являлся одним из китов программирования. Однако с тех пор, как появились Basic и Pascal, общественный интерес к функциональному программированию угас – их возможностей хватало на решение подавляющего большинства задач персонального компьютера. Но рост требований и появление интернета изменило требования и интерес к ФП вспыхнул с новой силой. Это стало катализатором появления и популяризации языков Erlang (1986) и Haskell (1990) – чистых языков функционального программирования. Это означает:

  • Отсутствие побочных эффектов использования памяти и ввода-вывода информации. Проще говоря, при изменении частных не меняется структура программы и объекты. Например, в Haskell для этого используется механизм монад.
  • Использование функций высших порядков и лямбда-абстракций. Функции могут быть аргументами и возвращаться в качестве результата вычисления.
  • Активное использование рекурсий. В то время, как в императивном программировании в основе лежат циклы в классическом представлении, в функциональном без умения использовать рекурсию делать нечего.

Популярные языки программирования тоже понемногу стали обрастать функциональными возможностями, подстраиваясь под новые требования. Однако в 1990-х всё ещё правит императивный подход, поэтому главным явлением стало появление ещё более простых языков программирования.

Проще, мощнее, универсальнее

В мире программирования всегда находятся гики, которые стараются упростить и усовершенствовать популярные языки. Лучшие из них меняют ход истории. Так, к примеру, произошло с Гвидо Ван Россумом, создателем языка Python.

Basic и Pascal были искусственно ограничены в угоду массовости. Для сложных вычислений, моделирования и построения графиков программисту требовалось использовать сторонние библиотеки, а чаще создавать свои. Это порождало массу сложностей, куда проще было освоить ещё один язык. Кроме того, Pascal и Basic уже сильно устарели в плане синтаксиса

Гвидо при помощи Python решил все эти проблемы. Синтаксис стал по-настоящему высокоуровневым, настолько, что код мог понять даже не программист. Это вкупе с распространением интернета дало мощный толчок для создания узкоспециализированных библиотек, с помощью который можно решать безграничный спектр задач. Если в 1980-е каждый мог сделать программирование своим хобби, то в следующем десятилетии оно уже стало элементом многих профессий.

Ещё одно подтверждение этому – появление в 1991 году очередной ветви популярного языка – Visual Basic. VB был направлен на работу с графическим интерфейсом Microsoft Windows. «Оконная» ОС уже тогда была одним из лидеров рынка, и за возможность создавать приложения зацепилось огромное количество простых пользователей. Несмотря на то, что первые версии VB не отличались функциональностью и качеством сборки, язык получил большую популярность.

Развитие получил и Pascal. Именно в середине 1990-х появился Delphi, он же Object Pascal. В отличии от Visual Basic он стал не следствием не ответвления, а эволюции Turbo Pascal. Популяризации языка поспособствовала и компания Borland, подхватившая новый язык и создав на его основе программную среду, которая как раз и называлась Delphi. С её помощью миллионы школьников по всему миру научились создавать собственные MVC-приложения: игры, органайзеры, медиаплееры – всё то, о чём несколько лет назад и мечтать было сложно.

Начало доминирования

Пожалуй, главный вклад 1990-х в современный мир состоит в появлении двух невероятно мощных и схожих языков – Java и C#. Java появился хронологически раньше. Язык стремился решить насущную проблему – создание такого кода, который бы мог работать на любой платформе. Реализация стала возможна благодаря трансляции в байт-код с использованием виртуальной машины. Идея не нова, она использовалась на машине Atlas в Кэмбридже ещё в 1960-х, но только сейчас она стала по-настоящему актуальной. Синтаксис Java был схож с популярными языками, в том числе C++, но функциональность была расширена до полноценных возможностей ООП.

Концепция Java очень быстро нашла отклик у программистов, и к концу века каждый четвертый программист на планете был знаком с этим языком. Конечно, такая популярность не могла пройти мимо внимания самой могущественной IT-компании – Microsoft. На базе Java, учтя все претензии и пожелания, они выпустили свой язык – С#. Такой же популярности язык не достиг, но возможность кастомизировать Windows, на тот момент уже одной из популярнейших ОС, привлекла внимание огромного числа программистов.

Это стало причиной негласной вражды и развития программных платформ для обоих языков. Правда, всё это будет в 2000-х, а в 1990-е появляется новое направление – языки веба.

Создание интернета

Появление интернета изменило в целом представление о компьютерах и его возможностях. Теперь это были не рабочие машины, а ещё и сервис коммуникации и общения, а значит аудитория потенциальных пользователей выросла в разы. Веб стал новой программной платформой и новым рынком, который необходимо было осваивать.

Существующие языки программирования для веба были слишком «тяжёлыми», всё-таки скорость соединений в начале 90-х оставляла желать лучшего. Поэтому в качестве стандарта WWW выступала технология гипертекста. Базовым языком стал HTML, разработка которого велась ещё с 1986 года. Несмотря на то, что он не является Тьюринг-полным, то есть не может быть причислен к разряду языков программирования, переоценить вклад HTML в современный IT-мир трудно.

К середине десятилетия выросло количество серверов, сайтов, соответственно, увеличился объем трафика. Для того, чтобы уменьшить количество кода и привести страницы к общему логическому знаменателю, веб-разработчики стали использовать язык CSS. С его помощью можно было задавать цвета, формат шрифта, верстать страницы и логически их разделять, используя единый шаблон для всего сайта. Это не только уменьшило количество кода, но и значительно повысило надёжность.

Альтернативой специализированным языкам являлся Perl – язык общего назначения для работы с текстом. Он заимствовал синтаксис и механизмы из других популярных языков, в том числе С и awk, но благодаря ориентации никогда не был им конкурентом. Когда речь зашла о поиске подходящего инструмента для интерфейсного обслуживания интернета, Perl стал одним из главных вариантов.

Он же лёг в основу истории создания важнейшего языка современной «паутины» –  PHP. Именно Perl использовал Расмус Лердорф, программист из Дании, создавая скрипты для обработки статистики онлайн-резюме. Он дал им название Personal Home Page. Позднее Расмус понял, что возможностей Perl ему не хватает, разработал на С новый интерпретатор шаблонов, который и получил название PHP.

Однако большая слава к языку пришла лишь после того, как в 1997 году Энди Гутманс и Зеев Сураски значительно переработали PHP, подняв к нему интерес и придав современный облик. С этого времени популярность языка начала стремительно расти, пока PHP не утвердился в качестве одного из главных языков программирования.

Еще одной альтернативной ветвью развития Perl стал Ruby – динамический высокоуровневый язык с полноценной реализацией ООП. Юкихиро Мацумото хотел реализовать ту же идею доступности, что существовала в Python, при этом сохранив «дух» Smalltalk и Perl.

Но, пожалуй, главную революцию совершил язык JavaScript. Он также изначально замышлялся, как скриптовая замена С для обработки макросов. Но, благодаря многочисленным стечениям обстоятельств и удачной интеграции в HTML-коды, JavaScript вызвал бурный интерес у большинства разработчиков. Конец 90-х и начало 2000-х в вебе запомнились огромным количеством веб-страниц, перенасыщенных JS-скриптами. Они сверкали всеми цветами радуги, выдавали всплывающие сообщения при каждом клике, картинки перемещались по экрану. Сейчас это кажется ужасом, но тогда это стало настоящей революцией. Именно так JavaScript стал обязательным инструментом веб-разработчика и сохраняет это звание по сей день.

На пороге очередной технологической революции

В 1990-х стал зарождаться еще один мощный рынок – гибридов телефона и компьютера. Термин «смартфон» введет компания Ericsson только в 2000-х году, пока они носят название коммуникаторы. Изначально приложения разрабатываются на языках ассемблера и С, а системы имеют закрытый характер. Однако к концу тысячелетия ситуация меняется – Psion, Nokia, Ericsson и Motorola создают консорциум Symbian. Выпущенная им операционная система вскоре захватит почти весь рынок,  став отправной точкой в сфере пользовательской разработки мобильных приложений.

Впрочем, об этом мы уже поговорим в следующем десятилетии.

Пройти обучение

17 май 18, 16:47
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Показаны все темы: 2

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru