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

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

«Иногда за сутки я спал один час в метро перед работой»

Решиться на перемены

Мой папа был военным, и мы много ездили по бывшему СССР. Он служил в звании подполковника, в должности заместителя начальника штаба мотострелковой дивизии в Забайкальском военном округе. Когда папа вышел в отставку, нам предложили поселиться в Пинске, в Беларуси, — там мы и остались.

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

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

В маленьком городе мне не хватало возможностей для самореализации. Я учился в академии на инженера, работал в типографии дизайнером, параллельно преподавал компьютерную графику у отца на курсах — но всегда знал, что способен на большее. В 2009 году мне позвонила переехавшая в Москву сестра и сказала, что у нее на работе открылась вакансия инженера. На вопрос, когда я смогу приехать на собеседование, я без раздумий ответил: «Завтра!». В 8 утра пришел на работу, уволился, и уже в час дня с двумя тысячами рублей в кармане сел на поезд в Москву.

Сделать первый шаг в разработке

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

Отец предложил попробовать себя в программировании. Предложение выглядело неосуществимым — но он показал мне вполне приличный сайт, который сделал самостоятельно на HTML. И этим доказал, что для человека нет ничего невозможного.

Я перевелся в Минский университет на специальность инженера-программиста и перешел в компанию «Интегратор ИТ», где работал специалистом по внедрению CRM-системы. Нужно было писать документацию, внедрять ПО, помогать в его настройке и обучении персонала.

Это стало переходным этапом — с чего-то нужно было начинать в программировании. Ни тестировщиком, ни разработчиком меня тогда бы не взяли. Требовались знания, и как раз в «Интегратор ИТ» я мог учиться и погружаться в разработку. Первой задачей такого рода стало создание мобильной версии сайта. Еще не было смартфонов, и надо было просто сделать html-верстку для сайта — без функциональности и кнопок. Это был мой первый шаг, и я почувствовал, что это мое. Решил связать свой путь с языком PHP.

В компании во мне видели управленца, но я сказал, что буду расти в веб-разработке. И вскоре нашел место в «Региональном банке развития». К этому времени я уже защитил диплом в Минске. В банке я стал работать php-разработчиком и делать сайты на платформе «Битрикс». Я многого не знал, но не боялся трудностей, и руководитель в меня поверил. Углубленно изучал язык и сопутствующие технологии: каскадные таблицы стилей, JavaScript, гипертекстовую разметку, конфигурацию веб-окружения и многое другое — работы был непочатый край. Иногда за целые сутки я спал один час в метро перед работой

В интернете в начале 2010-х информации по программированию было мало. Очень помог форум hashcode.ru, где специалисты разбирали практические задачи. Сначала меня минусовали, когда я просто вываливал на людей свою проблему, но со временем пришло понимание, как грамотно задавать вопросы, чтобы получить ценные советы и подсказки.

Я пробивался наверх прямо как в фильме «Москва слезам не верит». Семьи тогда не было, поэтому я не заморачивался, работал днями и ночами. Иногда за целые сутки мог час поспать в метро перед работой. Я понимал, что мне надо догонять, что я опоздал. В Москве и тогда было много программистов, которые владели передовыми технологиями. Нужно было бежать вперед, не щадя себя.

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

Начать управлять командой

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

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

Я снова начал учиться: среды разработки, новые веб-серверы. Поработал около года, и мне предложили должность руководителя интернет-магазина бытовой техники DomProm.ru. Это было очень круто — заниматься одним из самых высоконагруженных интернет-магазинов техники в Рунете. 

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

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

И тогда я пошел на курсы GeekBrains изучать язык Java и систематизировать знания (пару лет до этого я уже учился здесь на системного администратора).

Мое стремление к новым вызовам удалось вполне удовлетворить, когда меня пригласили ведущим разработчиком в Объединение независимых учебных заведений Universal University. На позиции тимлида удалось применить знание и PHP, и Java.

Сейчас с командой мы занимаемся разработкой и поддержкой бизнес-процессов интернет- и интранет-проектов UU на платформе 1С-Bitrix (сайты, CRM и порталы), тестированием новых сервисов.

Наш стек технологий отчасти типичен для веб-разработки, но многое зависит от языка: для PHP один, для Java другой. Технологии для создания инфраструктуры выбираю в зависимости от принципов архитектуры будущего приложения, основываясь на best practices.

В будущем планирую развиваться в области искусственного интеллекта, именно там востребованы алгоритмы. Бог не тот, кто управляет, а тот, кто пишет код — и это более чем справедливо, когда речь идет об ИИ. За ним будущее. 

Выбирать языки и технологии

Почему Java? Чтобы ответить на этот вопрос, можно просто перечислить, какие известные и популярные приложения разработаны на этом языке. Просто загляните в Google Play, и все станет понятно. Java внедряется повсеместно и решает любые задачи.

Вообще, чтобы изучить новый язык, нужно время и большой труд. Людям, далеким от программирования, возможно, представляется, что разработчик может сегодня на PHP покодить, завтра — на Java, а послезавтра на Python. Увы, это не так. Ты должен стать очень узким специалистом и, кроме собственно языка, изучить огромный стек сопутствующих технологий. 

Важная составляющая этих технологий, когда речь идет о Java, — это алгоритмы. В университете нас этому не учили, а сейчас они очень востребованы. Раньше многие «костылили» код как могли. Но таким халявщикам все сложнее найти работу. 

В интернете информации по алгоритмам не найти. Можно, конечно, взяться за фундаментальное «Искусство программирования» Дональда Кнута, но эта задача под силу единицам: три тома по тысяче страниц. Реальная возможность изучить такую сложную тему — образовательные курсы, если их организуют профессионалы и ведут практикующие специалисты.

Учиться нон-стоп 

Я всегда чему-то учусь, а сейчас еще и вывожу английский на продвинутый уровень. Научился находить на это время параллельно с работой на руководящей должности.

Важно договориться с начальством, чтобы на время обучения вас хотя бы не заваливали дополнительной работой. Руководители должны понимать, что специалисту важно развиваться. Если не встречаете поддержки — задумайтесь, стоит ли держаться за такое место. 

Организуйте время так, чтобы участвовать в занятиях и отводить два-три часа в выходные на разбор и закрепление материала. Делайте это рано утром, и тогда останется еще целый день на отдых и общение с семьей. Учитесь и в дороге: общественный транспорт — отличный карман времени. В среднем москвич добирается до работы минимум час, а это как раз одна лекция на онлайн-курсах.

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

Кайфовать

У меня есть обожаемое хобби — мотоциклы, я ими даже сестру заразил. Мы живем и работаем недалеко друг от друга, и едем на работу вместе, на мотоциклах. Из дома в Щелково до офиса можно добраться примерно за час — летом это, кстати, оптимальный способ избежать пробок. Правда, лекции не посмотришь — наверстываю после мотосезона.

По правде говоря, я никогда не любил мотоциклы — считал их опасными. Пока однажды у коллеги не увидел чоппер Yamaha Drag Star 400 Custom: сначала оценил внешний вид, а потом сел на этот байк и понял, что влюбился. Записался в мотошколу и два года назад купил свой свой первый мотоцикл Yamaha Drag Star 400 Classic. Затем сменил его на более мощный, но того же класса — Yamaha Royal Star 1300 AT, который в сообществе называют «рояль». А весной этого года купил более комфортный круизер — тоже «рояль», но модификации Venture. У него есть круиз-контроль, встроенная стереосистема, множество кофров, анатомические сиденья — одним словом, шик!

Когда мне говорят, что водить мотоцикл опасно, я привожу цитату из фильма «Самый быстрый Indian»:

— Скажи, а ты не боишься разбиться насмерть?

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

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

8 ноя 19, 15:44
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как я за 2 года прошел путь от ученика до веб-разработчика

Меня зовут Руслан, я живу в городе Нур-Султан и вот уже более года профессионально занимаюсь программированием. И да, мне всего 18 лет. Я не из тех, кто с детства хотел попасть в IT. Вообще, моим первым выбором карьерного пути была профессия повара. Меня привлекала возможность что-то создавать, показывать свой труд окружающим, получать отклик и постоянно работать над мастерством.

С IT меня познакомил муж сестры. У него с братьями было своё дело, не требующее постоянной привязки к офису – они запустили несколько успешных стартапов и продавали темплейты для сайтов. Общаясь с ним, я всё больше понимал, что создавать веб — это по-настоящему интересно, плюс тебе не надо каждый раз выбирать продукты, иметь массу техники и утвари, достаточно лишь компьютера и ПО. Кроме того, как и в профессии повара, здесь много творчества, обратной связи и необходимости непрерывно развиваться. Поэтому идеей фикс №2 стало как раз попадание в IT.

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

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

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

  1. Часть из них была вызвана манерой подачи материала, желанием преподавателя сразу перейти к практике, минуя часть теории.
  2. Другая проблема, банальная – когда делаешь всё по методичке, но ничего не работает.
  3. Ещё одна сложность –  ограниченность по времени. Из-за того, что обучение проходит в сжатые сроки, приходится тратить на него почти всё свободное время.

Однако, так как у меня был опыт — я выработал собственный рецепт борьбы с подобными проблемами обучения:

  • В первую очередь, необходимо пересмотреть семинар – возможно, от вас ускользнуло что-то важное.
  • Если проблемы запущены, имеет смысл пройти ещё раз отдельный курс. Для этого не надо бояться писать в службу поддержки — часто образовательные порталы идут навстречу своим клиентам и дают возможность пройти тот же путь с другим преподавателем.
  • Но главная ценность любых подобных курсов – преподаватели. Большинство из них полностью открыто к общению с учениками и готово помочь советом.

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

В это же время в моём колледже узнали, что я обучаюсь вебу и отправили меня на WorldSkills -– международный конкурс, призванный выявить молодые таланты во всевозможных профессиях. Правда в моём случае это был его внутригородской вариант, но страха было не меньше. Проблемой было и то, что главной задачей моего конкурса являлось создание браузерной игры, это было известно заранее. Игры я никогда не создавал, более того, совершенно не знал JavaScript. Курс по этому языку должен был начаться уже после соревнования. Так что пришлось в турбо-режиме учить JQuery, не углубляясь в основы самого языка, отрабатывать теорию на создании простых игр. Возможно, способ не самый правильный, но мне помогло.

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

Получив новую порцию знания и набив немного руку, я взялся за Vue.js. Он мне настолько понравился, что я не мог остановиться — постоянно что-то создавал: свои компоненты, фреймворки, сайты для знакомых, объединившись с другом, запустили несколько проектов для колледжа (БД учебников, расписания, табели успеваемости и т.д.), форум наподобие Laracasts, чаты на web sockets. В общем, получилось создать так много, что меня даже взяли на полставки инженером-программистом в колледж, где я учусь. Это не только принесло мне заработок, но и позволило избегать скучных пар. Плюс я помогаю мужу сестры, так у меня появились собственные заказчики, в том числе из Франции.

Естественно, я не прекращаю углубляться в профессию, получать новые знания – это важнейший фактор успеха в IT. Если хотите пойти по моему пути, то могу лишь повториться:

  • htmlacademy.ru – ресурс, на котором очень удобно изучать основы веба: HTML, CSS, PHP.
  • geekbrains.ru – здесь есть комплексные программы для изучения дисциплин в рамках какой-то профессии и огромный плюс в виде преподавателей, у которых всегда можно спросить совет.
  • laracasts.com – как понятно из названия, этот образовательный ресурс посвящён Laravel. Но им дело далеко не ограничивается: есть семинары по Vue, JavaScript, PHP, да и вообще всему, что может понадобиться в профессии

Если говорить про книги, то могу порекомендовать «Изучаем PHP 7» Дэвида Скляра. Практически библия для всех, кто изучает язык. Однако, скажу честно, это единственная книга, которую я прочёл полностью. Есть ещё хорошие «PHP и MySQL. От новичка к профессионалу» Кевина Янка и классика от Head First «Изучаем PHP и MySQL», но в них я заглядывал лишь эпизодически.

Но в целом, моё мнение, лучший способ – всегда пытаться делать что-то новое. Часто этому способствуют заказчики, желая соединить по 3-4 фреймворка для чего-то уникального. Это вынуждает вас шерстить массу электронных ресурсов:

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

В общем, мне 18, я учусь на втором курсе, преподаю в родном колледже для людей, желающих получить новую профессию. Что касается IT, то мы с командой сейчас работаем над созданием аналога Asana, только с частично бесплатным функционалом. Как часть реализации проекта для начала распространим 2 версии dashboard template через CodeCanyon. Параллельно работаем над нашим менеджером задач, анализируем аналоги, пытаемся довести до того состояния, когда в нём реально будет смысл на рынке. Когда всё получится – объединим в единое целое, и, может, что-нибудь получится.  

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

У меня нет сомнений, что все запланированное сбудется. Теперь-то я точно знаю: если стараться и не опускать руки – всё обязательно получится.

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

11 апр 19, 17:08
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

О стажировке и учебе в 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

Оформление кода PHP: стандарты и правила

Следование единым правилам упрощает работу программистов. Оформление кода PHP по одному стандарту помогает в командной работе и повышает уровень разработки. Понятие «качественный код» появилось не случайно, так же, как и анекдоты о неспособности спустя время прочитать даже собственный код. Понятный структурированный код сокращает время чтения, позволяет сразу приступить к поиску проблемы.

Восемь общих правил

Существуют правила, которые подойдут для написания кода на любом языке программирования. Только следование им уже повысит качество вашего кода.

  1. Придумывайте понятные и читаемые названия. Избегайте русских слов в латинской транскрипции. Только английские слова, обозначающие суть.
  2. Делайте отступы на каждом уровне и отделяйте логические блоки пустой строкой.
  3. Сокращайте вложенность кода и убирайте дублирование.
  4. Контролируйте длину. Рекомендуем для функций не более 20 строк, для метода не более 50 строк, для класса не более 300 строк, для файла — не более 1000 строк. Также ограничивайте длину одной строки до видимого значения на экране. Мягкое ограничение составляет 120 символов.
  5. Комментируйте и документируйте код. Это позволит зафиксировать всю необходимую информацию.
  6. Используйте рефакторинг. Следуйте принципу «рефакторинг — раньше и рефакторинг — чаще». Советуем также прочитать книгу «Рефакторинг. Улучшение проекта существующего кода» Мартина Фаулера.
  7. Работайте в системе контроля версий, например, Git. Это бесплатно и удобно. Обучиться работать в ней можно за 11 занятий на видеокурсе «Git. Быстрый старт».
  8. Изучайте Open Source код. Вы сможете увидеть, как пишут ведущие разработчики и воспользоваться лучшими практиками в программировании.

Правила кода PHP

На конец 2017 г. действуют стандарты PHP программирования: PSR-2 и PSR-1. Они устанавливают правила синтаксиса, именования, оформления. Весь код должен быть написан единообразно. Это касается пробелов, отступов, скобок, строк.

Чтобы не запоминать все требования стандартов, можно работать в современной среде разработки — PhpStorm, NetBeans и подобных. Они позволяют автоматически форматировать текст в соответствии с правилами.

Отступы

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

Запомните: один отступ = четыре пробела.

Выделяем отступами тело конструкции, тело метода, блоки импорта, аргументы и подобное.

Правильно

<?php
switch ($expr) {
   case 1:
       echo `One`;
       break;
   case 2:
       echo `Two`;
       break;
   }
?>

Неправильно

<?php
 switch($expr)
{
          case1:
     echo `One`;
           break;
   case 2:
              echo `Two`;
   break;    }
?>

Пробелы

Ставятся:

  • между for ( foreach/  while / catch) и (
  • после ;
  • между ) и {
  • перед =>
  • после =>
  • между try и {
  • между } и catch

Не ставятся:

  1. После имени метода.
  2. В списке аргументов перед запятыми.
  3. Между ( и именем функции или метода.

Пустая строка

Вставляется:

  1. После каждого логического блока.
  2. После определения пространства имен.
  3. После блока импорта. Каждая строка блока должна начинаться с use.

Правильно

<?php
      namespace Vendor\Package;

     use FooClass;
     use BarClass as Bar;
     use OtherVendor\OtherPackage\BazClass;

    // …
?>

Неправильно

<?php
      namespace Vendor\Package;

     use FooClass; use BarClass as Bar;
     use OtherVendor\OtherPackage\BazClass;

    // …
?>

Круглые скобки

  1. Не выносим на отдельные строки.
  2. Не ставим пробелы внутри: после ( и перед ).
  3. Ставим пробелы до скобок и после.
  4. Внутри перечисление отделяем пробелами.

Фигурные скобки

  1. Открывающая фигурная скобка выносится на новую строку перед телом метода, для классов.
  2. Открывающая фигурная скобка не выносится на отдельную строку в конструкциях и замыканиях.
  3. Закрывающая скобка } в конструкциях, имени метода, определении метода, классах пишется с новой строки и отделяется одним отступом.

Аргументы

Оформляются двумя способами: в одну строку через запятую или в столбик. Аргументы на одной строке пишутся через запятую внутри круглых скобок. Пробел ставится только после запятой.

Правильно

<?php
    Foo: :bar($arg1, $arg2, $arg3);
?>

Неправильно

<?php
    Foo: :bar($arg1   , $arg2,$arg3);
?>

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

Правильно

<?php
    $foo ->bar(
        $firstArgument,
        $secondArgument,
        $thirdArgument
    );
?>

Неправильно

<?php
    $foo ->bar(
        $firstArgument,
        $secondArgument,
        $thirdArgument);
?>

Конструкция switch case

Конструкцию делим на три уровня: switch, case, echo/break. Каждый уровень начинается с отступа. Таким образом, наш код визуально выглядит состоящим из трех столбцов.

Если в конструкции не используется break, поставьте // no break.

Правильно

<?php
    switch ($expr) {
        case 0:
            echo `First case, with a break`;
            break;
        case 1:
            echo `Second case, with fall through`;
            // no break
        case 2:
        case 3:
        case 4:
            echo `Third case, return instead of break`;
            return;
        default:
            echo `Default case`;
            break;
    }
?>

Неправильно

<?php
    switch ($expr) {
        case 0:
            echo `First case, with a break`;
            break;
        case 1:
            echo `Second case, with fall through`;
        case 2:
        case 3:
        case 4:
            echo `Third case, return instead of break`;
            return;
        default:
            echo `Default case`;
            break;
    }
?>

Конструкция try catch

Тело try  и тело catch отделяются одним отступом. Пробелы нужно поставить:

  • между try и {
  • между } и catch
  • между catch и (
  • между ) и {

Catch и скобку } ставим на одну строку.

Правильно

<?php
   try {
        // тело try
        } catch (FirstExceptionType $i) {
        // тело catch
    } catch (OtherExceptionType $i) {
        // тело catch
    }
?>

Неправильно

<?php
try {
     // тело try
        } 
catch (FirstExceptionType $i) 
{
        // тело catch
 } catch (OtherExceptionType $i) {
        // тело catch     }
?>

Конструкция if, elseif, else

Операторы и открывающую фигурную скобку пишем на одной строке. Закрывающую фигурную скобку оператора пишем на той же строке, что и оператор. Заключительную фигурную скобку пишем на отдельной строке. Оператор else if пишем как единое слово - elseif. Тело оператора отделяем отступом.

Правильно

<?php
    if ($a == $b) {
        echo `A равно B`;
    } elseif ($a == $c) {
        echo `A равно C`;
    } else {
        echo `A ничему не равно`;
    }
?>

Неправильно

<?php
    if ($a == $b) {
        echo `A равно B`;
    } else if ($a == $c)
 {
        echo `A равно C`;
    } else 
{
        echo `A ничему не равно`;
    }
?>

Комментарии в коде

Чистый код должен быть правильно закомментирован. К сожалению, встречаются две крайности: подробное комментирование каждой строки и полное отсутствие комментариев. И то, и другое мешает в работе. Избыточное комментирование снижает восприятие кода, отвлекает от понимания его сути. Писать очевидные вещи — тратить свое и чужое время. Иногда из-за слишком подробных комментариев объем кода увеличивается в несколько раз. Закончив с кодом, посмотрите критически. Очевидные и банальные комментарии удалите.

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

Больше информации о комментариях вы найдете в статье «Почему комментарии в коде — зло». А если вы считаете, что код - не место для шуток, предлагаю подборку самых забавных комментариев программистов.

Чек-лист «Инспекция кода»

Предлагаем чек-лист для самостоятельной проверки чистоты кода. Если вы будете инспектировать чужой код, помните, что программист — творческая профессия. А творческие люди обычно тяжело воспринимают критику. Будьте лояльней.

Итак,

  • Легко ли воспринимать код визуально?
  • Присутствуют ли комментарии? насколько они необходимы?
  • Соответствует ли код стандартам PSR-1 и PSR-2? Краткая выжимка стандартов приведена в разделе “Правила кода PHP”.
  • Используете ли вы систему документирования phpDoc или подобную?
  • Нужно ли делать перерыв в чтении, чтобы разобраться в написанном?
  • Проведен ли рефакторинг?
  • Есть ли дублирование в блоках, функциях и пр.?
  • Понятны ли названия переменных, имена методов и пр.?
  • Какова длина строк, методов, функций, классов, файла?
  • Вы искали ошибки и баги?
  • Как можно еще улучшить код?
  • Можно ли сделать его короче?
  • Можно ли сделать его эффективней?

Желательно провести тестирование. Руководствуйтесь тремя принципами:

  1. Тесты должны быть полными.
  2. Тесты должны соответствовать установленным требованиям.
  3. Тесты должны проводиться на нужном уровне тестирования.

Дополнительную информацию по тестированию вы найдете в материале «Тестирование кода для чайников».

Заключение

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

Старайтесь следовать принятым правилам, рекомендациям и стандартам. Думайте о тех, кто будет работать с ним после вас. Всегда пробуйте сделать код короче и эффективней. Напишите так, чтобы это понимал не только Бог.

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

29 мар 18, 14:00
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Показаны все темы: 5

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

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

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

Люди

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