Компьютеры | Программирование

  • Автор темы Автор темы :.Vlad_Grand.:
  • Дата начала Дата начала
g5215cqtz9g.jpg
 
Длинная, но весьма интересная история "Как я 5 месяцев проработал Java-программистом в офисе"
В мае 2013 года я решил переквалифицироваться в Java-программисты. В следующие летние месяцы читал книги по Java, запускал учебные примеры из них. Со второй половины августа начал пробовать устроиться на работу. В результате, проработал Java-программистом в компании Unicorn Systems с сентября 2013 по январь 2014 года, почти 5 месяцев.
Как я устраивался на работу

Итак, я изучил Core Java, прилично HTML, немного CSS, XML, JSP, азы SQL и MySQL, Maven. Написал “дипломный проект”, в котором показал, что умею использовать 2 вида XML-парсеров на Java. Составил красивое резюме, в котором напирал на свой высокий уровень английского и что я быстро обучаюсь. Пожелания по зарплате — “на сухари и жетоны на метро”. Разослал резюме — а в ответ тишина. Вывод заключается в том, что Java-программисты без опыта в офис никому не нужны. Проблема в том, что опыт разработки на этом языке получить путем домашнего фриланса очень проблематично.
3.jpg
Получается замкнутый круг — без опыта на работу не берут, а пока не взяли на работу, то и реального опыта получить нельзя. Самый реальный способ устроиться на первую работу для Junior Java-специалста — через курсы, которые устраивают киевские компании. Если на курсы не попал, то нужно изучать разработку под Android и пытаться выполнять фриланс-заказы. Я написал пламенную заметку об этой ситуации на форуме Dou. Там разгорелась бурная дискуссия, которую заметил мой будущий шеф из Unicorn и пригласил на собеседование. Насколько я понимаю, меня взяли на работу действительно за хороший английский, а еще потому, что я решил задачку на приоритетность CSS-селекторов.

Начало работы. Какие условия мне предложили

Мне перезвонили и предложили работу уже через 15 минут после начала собеседования. Честь и хвала им за то, что быстро приняли решение! А когда я услышал сумму стартовой зарплаты, то чуть не упал прямо на улице. Она оказалась в 3-4 раза выше того, на что я рассчитывал. Я им так и сказал, мол, балуете, и я не уверен, что оправдаю такие расходы. Мне ответили, что начинающему программисту нужно учиться, а не по ночам подрабатывать грузчиком или таксистом. Ну дело хозяйское. Если деньги не будут влезать, то пришью дополнительные карманы.

Выдали мощный ноутбук Lenovo повышенной надежности. Шикарный офис на Почтовой площади, добираться удобно. В общем, повезло. Я, конечно, с энтузиазмом прибежал на работу. Дальше выяснилось следующее. Unicorn Systems — чешская компания, которая разрабатывает программное обеспечение для организаций, торгующих электроэнергией. Бизнес идет отлично, но у себя на родине им не хватает программистов. Поэтому они открыли офис в Украине, чтобы перенести часть разработки сюда. Взяли на работу архитектора программных продуктов (далее по тексту Архитектор), который набирает команду программистов. Похоже, я оказался вторым человеком, которого он принял на работу. До меня завербовали еще бизнес-аналитика, а чуть позже — “среднего” программиста, уже имеющего опыт работы (далее по тексту Средний программист).
4.jpg

В первый рабочий день узнал, что Архитектор надолго уехал в Чехию на стажировку в материнскую компанию. А мне что делать? Сказали — учи Java ServerFaces, а главное — готовь документы на получение чешской визы. Тут я совсем обалдел. Мало того, что платят космическую зарплату, так еще и в Чехию на стажировку отправляют за счет фирмы. Первый месяц я занимался тем, что учил Java ServerFaces и ждал, пока будет готова виза. Еще успел прочитать книгу по паттернам проектирования. Средний программист сидел рядом и пытался учить JBoss бизнес-процессы, потому что они используются в нашем проекте. Я тоже скачал книгу по этой теме, но быстро понял, что в проекте все совсем не так, как в книге, и с одобрения Архитектора переключился на Java ServerFaces.

В одной комнате сидели я, Средний программист, руководитель киевского офиса Unicorn (далее Шеф), его ассистент и менеджер по продажам. Шеф — очень яркий человек. Как-то он про одного своего знакомого сказал, что того можно снимать в фильмах в роли Джеймса Бонда. На самом деле, он сам такой. Любит стильные шмотки и аксессуары. Я не представляю другого мужчину в Украине, который осмелился бы носить то, что носит Шеф, и ему это идет. Свободно разговаривает как минимум на 4 языках. Руководил компаниями по разработке программного обеспечения в США, Чехии и еще бог знает где. Любит путешествовать. Хвастался, что на арендованной машине проехал через всю Африку. Показывал свои фотки с каких-то гор Килиманджаро. Позже невзначай упомянул, что был чемпионом Европы по тайскому боксу среди юношей. Вместе с аккаунт-менеджером Шеф старался продать продукты Unicorn украинским организациям, торгующим электроэнергией, проявляя при этом чудеса обаяния.

Первая поездка в Чехию

Первая моя поездка в Чехию состоялась в октябре 2013 года, более 3 недель. Для меня это был первый в жизни визит за границу и даже первый полет на самолете. Можете представить, сколько впечатлений навалилось сразу. Мы прилетели в Прагу, но жили не в ней, а в городке Hradec Kralove, который находится в часе езды на автобусе от столицы. Hradec Kralove считается одним из самых удобных для жизни городов в Чехии, и я это мнение горячо поддерживаю. Многим программистам нравится жить там, поэтому Unicorn открыла офис, чтобы быть поближе к трудовым ресурсам.

Мне показалось, что Hradec Kralove — это рай на земле. Идеальные дороги, чистота, свежий воздух, вкусные продукты, особенно порадовал густой белый йогурт. Городской транспорт — продуманный, комфортный и ходит точно по расписанию. Невероятно красивая набережная и парки, в которых я бегал. Очень доброжелательные люди. Когда бежишь, а навстречу идет человек с собакой, то эта собака на тебя не бросается, а спокойно идет мимо. Пивные на каждом углу. Цена пива в заведении не намного выше, чем бутылочного пива в магазине. Народ на улице не пьет не потому, что это запрещено, а просто потому, что это не принято. При всех этих райских условиях, цены на жилье и продукты — практически такие же, как в Киеве.

Hradec_Kralove.jpg


Начал постепенно втягиваться в работу. Познакомились с чешскими программистами, которые работали над тем же проектом и вроде как должны были передавать нам опыт. Мне они показались толковыми людьми, не страдающими “головокружением от успехов”. Приучился гладко заполнять отчеты о том, куда потратил рабочее время. Мы писали систему на базе корпоративной платформы, которая называется Unicorn Open Platform. Меня огорчило, что она была очень плохо документирована. Потом оказалось, что это еще цветочки, а ягодки будут впереди.

Через неделю нам провели недельный обучающий курс по особенностям разработки программного обеспечения на базе Unicorn Open Platform. И этот курс меня взбесил по-настоящему. Он был организован “для галочки”, формально, и поэтому не принес никакой пользы. Меня он очень настроил против компании. Со стороны все выглядело отлично. Каждый день нам сначала читали лекции, а потом мы пробовали что-то делать, причем была учебная система в качестве образца. По итогам курса нужно было написать тест и показать “дипломный проект”, который сделала команда.
Каждую тему, на которую отводили один день, нужно было бы разбирать хотя бы неделю. JPA и Hibernate — 1 день, Java ServerFaces — 1 день, EJB — 1 день, JBoss бизнес-процессы — 1 день и еще какой-то генератор отчетов — 1 день. Лекции читали программисты, которых привлекли к этому принудительно, и поэтому качество были отвратительное. Каждый вечер мы заполняли оценочный лист по работе очередного лектора. Все дружно ставили преподавателям отличные оценки. Дипломный проект делали по ночам, иногда до 2 часов ночи. Через 3 дня такой жизни я от перегрузки совсем “поплыл”. Инстинкты мне подсказали, что проверять дипломный проект и тесты никто не будет. Это предположение потом подтвердилось, чем я очень горжусь. Бывшие коллеги до сих пор ждут результаты своих тестов…

Проблемы, с которым позже столкнулся проект, являются прямым следствием того обучающего курса, который халатно организовали и провели. Участники курса вышли с него катастрофически недоученными. Допустим, Enterprise JavaBeans можно выучить и по книгам, но JBoss бизнес-процессы — практически нет. А ведь на них построена вся система. Никто не позаботился подготовить нормальную документацию, какие-нибудь обучающие видео-ролики. Если не хотите создавать обучающие материалы, то делайте проекты только на стандартных средствах, которые хорошо описаны в книгах. Ну и нужно заставлять программистов читать эти книги.

Работа над проектом после обучающего курса

После завершения обучающего курса мы еще около недели работали над проектом в Hradec Kralove. За это время я успел не только писать заданный код, но и прочитать умную книгу по CSS. Потом вернулись в Киев и продолжили трудиться там. Постепенно начал прозревать, насколько неэффективно все организовано. Главное, что из-за некачественного обучения в большинстве возникающих проблем приходилось разбираться методом “научного тыка”. Даже я хлебнул горя, хотя вроде бы Java ServerFaces хорошо документирован и примеров хватает. А у Среднего программиста, который настраивал бизнес-процессы, состояние дел было вообще катастрофическим.

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


    1. затягивать утренние совещания команды, произнося длинные занудные монологи ни о чем;
    2. отвлекать Архитектора от работы над проектом, заставляя его писать отчеты и проводить время на совещаниях, причем продолжительность совещаний была обратно пропорциональна их полезности;
    3. периодически летать из Праги в Киев, чтобы команда не успевала по нему соскучиться;
    4. находясь вместе с командой, подавать личный пример убивания времени в ожидании окончания рабочего дня.
6.png


За все время Бездельник сделал две полезные вещи:


    • забронировал нам отличный пансионат в самом центре Hradec Kralove (спасибо!);
    • когда у нас пропало подключение к VPN, он дернул кого-то, чтобы его быстро восстановили.
Когда Бездельник сидел в офисе вместе с командой, то все время скрывал экран своего компьютера, чтобы не видно было, что он там делает. Коллеги вроде подглядели, что он смотрел развлекательные видео-ролики на YouTube, и я склонен этому верить. Мне он говорил, что выполняет “предпродажную подготовку”, но что это такое — не объяснил.

Вторая поездка в Чехию

В середине ноября стало очевидно, что выполнение проекта очень отстает от графика. Нас решили еще раз отправить в Hradec Kralove. Сказали, что если мы будем сидеть вместе с опытными чешскими программистами, то авось темп работ ускорится. Ага, прямо так сразу. Мы с ними и по скайпу нормально общались. Но, как вы представляете, никто особо не протестовал против новой командировки. Тем более, что поселить пообещали там же, где и в прошлый раз.

Я не знаю, зачем нас отправили в Чехию второй раз. Предполагаю, что просто Шефу надоела слишком большая толпа в комнате (8 человек на 18 кв. м. действительно многовато), а новый более просторный офис на тот момент был еще не готов. В этот раз я пробыл в Чехии 10 дней, а более везучие коллеги — две недели или дольше. Еще 10 дней в раю. Нежная осень, лебеди на реке, длинные пробежки, кролики в парке.

hradec-kralove-2.jpg


Один раз во время пробежки я услышал впереди русскую речь, акцент — явно из России. Разговорились. Оказалось — веб-программисты, небольшая контора, работают на себя, Java не любят. Решили переехать из Москвы в Hradec Kralove с семьями. Только несколько дней назад прилетели. Получили бизнес-визу на длительный срок, пожили в гостинице, сняли квартиры. Чувствуют себя в раю, как и я. Но мне скоро “короткая спичка — судьба возвращаться на Родину”, а они тут остаются. К сожалению, у меня при себе не было ни ручки с бумагой, ни мобильного телефона, так что их контакты не записал. И это после всех книг по нетворкингу, которые я прочитал... Несмываемый позор!

Во время этой поездки произошли события, которые определили мое желание уйти из Unicorn на вольные хлеба:


    • Мое любимое детище — сайт Diabet-Med.Com — приняли в Рекламную сеть Яндекса.
    • Я нашел и изучил несколько новых для себя англоязычных сайтов по интернет-маркетингу. Более-менее понял, чем хочу заниматься, и предположил, что шансы на успех весьма велики.
Финальный период моей работы Java-программистом в офисе
По возвращении в Киев стало очевидно, что следующую путевку в рай выпишут очень не скоро. Меня угнетала необходимость каждый день по 2 часа бессмысленно тратить на поездки на работу. Архитектор иногда разрешал другим членам команды работать дома, но мне — ни разу. А главное — у меня созрел план, чем я на самом деле хочу заниматься. За 4 дня до того, как я собрался уйти, Архитектор сказал, что я первый раз справился с настоящей “взрослой” задачей на проекте.

В середине января Бездельник попытался заставить команду работать по субботам. Архитектор отмазался — мол, давайте лучше еще одного опытного программиста возьмем. Я вспомнил книгу “Мифический человеко-месяц”... Узким местом в проекте были именно бизнес-процессы, которые мало где используются, и пока в них разберешься, зубы можно сломать. Новый специалист долго будет вникать… Вряд ли это сможет ускорить разработку... Но это не мое дело, а я собрался уходить.

7.jpg


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

За день до ухода я узнал, что оказывается, Бездельник отчитывается не кому-то в Чехии, а нашему родному Шефу. Все это время Шеф вел себя так, вроде он вообще не имеет отношения к разработке программного обеспечения, а занимается только продажами продуктов Unicorn украинским клиентам. Шефу уже давно было очевидно, что состояние проекта — катастрофическое, но он ни разу даже глазом не моргнул. Воистину, он — человек, познавший Дао, т. е. пусть все течет своим чередом.

Выводы

Я сделал общий вывод по ситуации в области разработки корпоративного программного обеспечения. Огромная норма прибыли позволяет терпеть крайне неэффективные бизнес-процессы. Проще говоря, эти компании не банкротятся, несмотря на чудовищный бардак, который в них царит. Причем Архитектор постоянно повторял, что Unicorn Systems — это образец порядка и эффективности, а в других конторах ситуация намного хуже. Мол, обычно ты проводишь на совещаниях несколько часов каждый день, а потом пытаешься работать, если еще какие-то силы остаются. А тут Бездельник нас имеет в сумме не более 2 часов в неделю.



Текущая ситуация развращает программистов, которые работают в офисных конторах. Не зря они не идут во фрилансеры. Потому что рынок не захочет терпеть их лень и некомпетентность. Во фрилансе ситуация совсем другая — там платят строго за результат. Даже если фрилансер получает почасовую ставку, то его быстро заменят на другого, если он не дает результат. У всех моих бывших коллег, кроме одного, наблюдается метаболический синдром. Одна из них уверенно движется к диабету 2 типа. Причина — нездоровое питание и отсутствие физкультуры. Важной причиной, по которой я ушел с офисной работы, является невозможность днем бегать. В Hradec Kralove я мог бегать по вечерам, потому что до работы было 10 минут ходьбы. В Киеве бегать в рабочие дни у меня возможности не было.

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

 
Каково быть стажером в крупных ИТ-компаниях: Facebook, Google, Microsoft, «Яндексе», Mail.Ru
G7xYiKn86Oo.jpg
Большинство крупных технологических компаний нанимают себе стажеров, чтобы вырастить из них полноценных специалистов. Программы стажировок есть у Facebook, Google, «Яндекса», Mail.Ru Group, Microsoft и Rambler&Co.
786612.jpg
Facebook
Попасть на стажировку в Facebook можнo, обратив на себя внимание представителей социальной сети. Есть множество способов сделать это: например, использовать инструменты Facebook при создании собственной игры, поучаствовать в конференции для разработчиков f8 или в соревновании Facebook Hacker Jam и так далее.
Представители компании рассылают приглянувшимся участникам приглашения на собеседование, по итогам которого рекрутеры определяют, подходит кандидат для прохождения стажировки, или нет.
Срок стажировки — три месяца. Начинающие разработчики помогают команде Facebook решать рабочие задачи — не самые сложные, но довольно важные. Стажерам, успешно проработавшим три месяца в компании и хорошо влившимся в коллектив, предлагают остаться в социальной сети на постоянной основе.
Высшее образование (по крайней мере, в США) для прохождения стажировки не является обязательным требованием. Более того, Facebook старается набирать 17-18 летних разработчиков, только закончивших школу и еще не поступивших в колледж.
В конце августа 2014 года соцсеть наняла на работу 18-летнего инженера Майкла Саймана, прошедшего летнюю стажировку в команде разработчиков Facebook. Рекрутеры заметили его на конференции f8, куда Сайман приехал со своей игрой 4 Snaps, написанной при помощи инструментов социальной сети.
Средняя зарплата стажера в Facebook (по данным Nation Mobile) — $6213 в месяц.
0_b11a3_8ff3ef7b_XL.jpg
Google
Google нанимает около 1500 стажеров в год. При этом только в Соединенных Штатах компания получает почти 40 тысяч заявок на прохождение практики в корпорации. Большая часть стажировок приходится на лето и длится 12-14 недель. Договориться о продлении стажировки можно только в том случае, если на этом будет настаивать ментор начинающего сотрудника.
Все стажеры заполняют специальную заявку. Попасть в компанию можно и другими способами — но это скорее исключение из правил. Затем подавшего заявку ждет звонок из корпорации и несколько собеседований.
В конце практики ментор стажера должен написать о нем развернутый отзыв — чем занимался новичок, какие способности проявил, какие были ожидания и оправдал ли он их. От этого отзыва во многом зависит, сможет ли сотрудник рассчитывать на предложение постоянного места или на повторное прохождение стажировки — сразу или, например, через год.
В феврале 2015 года Google объявила о наборе стажеров в России — все они должны безупречно владеть английским языком. Заявки принимаются до 1 марта.
Средняя зарплата стажера в Google (по данным Nation Mobile) — $5969 в месяц.
microsoft-building-logo2-1920.jpg
Microsoft
Microsoft набирает стажеров по всему миру. Отбор на стажировки компания начинает в апреле. Из всех подавших заявку ИТ-гигант отбирает подходящих студентов и выпускников, которые проходят телефонное и личное интервью. Стажеры приступают к работе в компании в июле-сентябре.
Стажировка в Microsoft рассчитана на срок от трех до двенадцати месяцев. Она включает в себя обучение, тренинги бизнес-навыков и участие в реальных проектах. После прохождения программы стажировки самые успешные из молодых специалистов приглашаются на постоянную работу и получают шанс стать участниками MACH (Microsoft Academy for College Hires) — проекта, помогающего молодым сотрудникам быстро освоиться и сделать карьеру в компании.
Средняя зарплата стажера в Microsoft (по данным Nation Mobile) — $6136 в месяц.
istanbul_yandex_office_za_bor_architects_2.jpg
«Яндекс»
Чтобы попасть на стажировку на позиции разработчика в «Яндекс», нужно заполнить заявку на сайте компании. В течение пяти дней сотрудники связываются со всеми желающими — вне зависимости от того, подходит человек или нет. Затем кандидату предлагается решить тестовое задание (за две недели). После этого он получает шанс пройти личное собеседование.
При прохождении стажировки новички так же, как и в других компаниях, занимаются реальными задачами вместе со своими наставниками.
По словам представителей «Яндекса», зарплата стажера в компании сопоставима с зарплатой начинающих сотрудников компании. Кроме того, проходящие практику специалисты получают расширенную страховку ДМС и компенсацию за питание в кафе «Яндекса».
Бывший стажер компании, сейчас работающий в московском офисе «Яндекса», рассказал о своих впечатлениях.

Роман Халкечев
разработчик команды «Поиска»
Прошлым летом я прошёл стажировку в «Яндексе». Моё знакомство с компанией случилось ещё раньше, за год до этого, когда я поступил в Школу анализа данных. После первого семестра обучения в Школе к нам с лекцией пришёл выступить один из разработчиков «Яндекса» — Андрей Плахов. В тот момент я представить не мог, как круто изменится моя жизнь за такое короткое время, и что Андрей на долгое время станет моим коллегой и наставником.
Тема лекции была связана с поисковыми подсказками, которые выпадают по префиксу запроса, заданного в поисковике. B «Яндексе» мы называем их «саджестом». Я с любопытством слушал о том, какие задачи решает команда и как она это делает. Было дико интересно, и, когда Андрей предложил каждому из нас попробовать выполнить одну из «боевых» задачек, стоящих перед «Яндексом», я решил, что непременно опробую свои силы и в тот же вечер, вернувшись домой, взялся за дело. Задача была связана с работой подсказок в случае опечаточных запросов.
Следующие три недели буквально пролетели у меня перед глазами, я был увлечен решением задачи. Уже через пару дней после того, как я отправил свой код на проверку, мне ответил Андрей. Он сказал, что им понравилось мое решение, а затем спросил, не интересует ли меня стажировка в «Яндексе».
Стоит ли говорить, как я волновался, когда ехал на свой первый рабочий день. По большей части это связано с тем, что до этого момента мне не приходилось работать, разве что летом официантом в кафешке.
В первый день нас водили по офису, выдали ноутбук, пропуск, показали рабочее место и познакомили с командой. Около месяца я не мог до конца осознать, что меня взяли в «Яндекс». Тут все такие умные, что я тут делаю? Забегая вперед, скажу, что я до сих пор «тут», и каждый день с улыбкой еду работать на улицу Льва Толстого.
Когда прошёл первый месяц, я выполнил свою первую «боевую» задачу и принялся за вторую. Дни летели, я узнавал много нового, общался с разными людьми. Под конец третьего месяца завершил свой основной проект.
После презентации о результатах стажировки мне предложили остаться. Здесь, в «Яндексе», есть всё: умный и добрый коллектив, интересные задачи, лекции, научные семинары, соцпакет, столовая. Сейчас я по-прежнему работаю в компании, в той же команде, однако над более интересными для меня задачами. А они самые разнообразные — это и функциональность поиска, и персонализированные подсказки для «Яндекс.Музыки», и фичи для нашего «Браузера».
72_fc.jpg
Mail.Ru Group
Mail.Ru Group принимает на стажировку студентов из трех московских вузов: МГУ, МФТИ и МГТУ имени Н. Э. Баумана, — а также из трех петербургских вузов: СПбГУ, СПбГПУ и ИТМО. Кандидаты должны иметь возможность работать в московском офисе не менее 20 часов в неделю.
Стажеры с первого дня начинают работу над реальными задачами. Они получают зарплату, соответствующую рыночному уровню оплаты стажеров-программистов.
О том, как проходит его стажировка, ЦП рассказал один из новичков компании Mail.Ru.

Дмитрий Дорофеев
стажер фронтенд-разработки «Почты@Mail.Ru»
С ноября 2014 года я прохожу стажировку в фронтенд-разработке «Почты@Mail.Ru». На стажировку я попал через «День карьеры», который проводит Mail.Ru Group, чтобы выбрать лучших студентов: все желающие регистрируются онлайн и проходят большой технический тест. Тех, кто хорошо с ним справился и попал в short-list кандидатов, ожидают встречи с потенциальными руководителями, где нужно продемонстрировать свои знания и навыки, а главное — показать способность решать задачи в различных сферах разработки.
В мой обычный рабочий день должно уместиться очень много, ведь параллельно со стажировкой я продолжаю учебу в МГТУ имени Баумана и «Технопарке@Mail.Ru». Кстати, именно курс в «Технопарке» дал мне новые знания и навыки по фронтенд-разработке и сильно замотивировал пойти на стажировку именно в команду фронтенда «Почты».
Обычно я прихожу в офис рано, чтобы успеть позаниматься в спортзале до начала рабочего дня. В перерывах стараюсь встретиться с однокурсниками, обсудить, как у кого идут дела. Что касается работы, самое ценное для меня — это то, что я работаю не над какими-то искусственно придуманными, учебными, а настоящими задачами наравне с остальными сотрудниками.
Как и у каждого стажера, у меня есть наставник — сотрудник компании, который следит за моим прогрессом и с которым я всегда могу посоветоваться, если возникают какие-то сложности. Взаимодействие с ним — тоже важная часть рабочего процесса.
Примерно раз в неделю в отделе проходит своеобразная мини-конференция: весь фронтенд собирается, и каждый рассказывает о том, что нового удалось сделать за неделю — о какой-то новой технологии, которую удалось внедрить, о том, какие фичи появились у нас в продукте. Это очень полезная практика для личного профессионального развития, а также помогает понять, в каком направлении в целом мы движемся.
Для молодого специалиста стажировка в большой компании — это очень ценный опыт. Ведь начинающих программистов чаще всего берут в какие-то совсем маленькие конторы, где веб-разработка не является профильным направлением. А в Mail.Ru Group у меня есть возможность фактически полноценно работать, решать «боевые» задачи, причем все время очень разные, участвовать в разработке реального продукта, перенимать опыт у сильных профессионалов.

©siliconrus
 
Последнее редактирование:
Не по теме но...
Тем временем в Армении
11403138_425971880919214_3677943473516756830_n.jpg

Перевод
#include <Нет Грабежу>
while (цена>42)
протест++;


Кто видит политику на митинге в Армении,прошу посмотреть вот это-
 
В кои-то веки решил обновиться. Если все удачно сложится, возьму на следующей недельке.
Вместо Ксеона думаю брать i7, но не определился какой. Если кто-то может посоветовать по охлаждению что-нибудь, то буду рад принять совет.
yQ_fTlBNs7Y.jpg
 
7 принципов, которые нужно знать начинающему программисту
Эта статья — не самоучитель по кодингу. И не пост о том, «какой язык программирования выбрать». Если вы хотите понять, насколько вам интересно изучать мир кода, то более важным вопросом будет: что такое программирование? Как выглядит программирование изнутри? Совместимы ли я и программирование?

Принцип «Логика, а не математика»
Одно из величайший заблуждений у начинающих программистов — это то, что в программировании полно математики. Если вам кажется, что занятие программированием заставит вас снова вспомнить о школьных знаниях тригонометрии, алгебры и т.п., то вы ошибаетесь. Такая математика редко встречается в программировании.
По опыту из «чисто математических» вещей встречаются, например, порядок операций в выражении и система координат. Ничего особо сложного.

Логики, напротив, очень много. Необходимость думать наперёд, понимать, в каком порядке выполнять действия и как контролировать этот поток, пронизывает все аспекты программирования. Если у вас есть способность к логике, то вам будет легко начать справляться с программистскими задачами.

Принцип «Поймать падающую звезду»
На программирование можно смотреть, как на запуск множества «процессов» — как бы принуждение компьютера «делать работу за вас» — и управление этими процессами. В программировании процесс часто выдаёт некий результат. Результатом может быть файл, но может быть и нечто попроще, например строка, или число.

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

Если вы создаёте что-то с помощью процесса, вам надо схватить его, или вы его потеряете. Вот где в игру вступают переменные — как способ «запечатлеть» результаты процесса. Этот принцип сильно помогает понять, что такое программирование, на ранних этапах обучения. И если вы рано его ухватите, то найдёте его очень полезным.

Принцип «Словаря»
В программировании есть много «типов». Представляйте типы как строительные блоки языка программирования. Один из типов — это строка, или коллекция символов внутри кавычек. И «яблоко», и «апельсин» — это строки. Их можно, например, объединить и сделать «яблокоапельсин». Числа — это другой тип. Числа можно складывать, вычитать, умножать (помимо остальных действий). Затем идут «массивы» — множество объектов в определённом порядке. [«Первое», «идёт», «перед», «вторым»], например, является массивом с первым элементом «Первое» и последним элементом «вторым».

Но, возможно, одним из самых мощных типов является «хэш», или пара «ключ-значение». Хэш имеет много названий. В Ruby это «hash». В JavaScript он называется «object» (объект). Возможно, лучшее имя ему дал Python: «dictionary» (словарь). Если немного подумать, то словарь это и есть набор ключей (слов), указывающих на свои значения.

Но почему это имеет значение? Оказывается, такая структура часто нужна для хранения данных. Например, таким образом можно упаковать информацию о человеке:
Код:
{"first_name"=>"Jonathan",
"last_name"=>"Richards",
"nationality"=>"British"
}
Есть ключи «first_name» (имя), «last_name» (фамилия) и т.д. Это как бы свойства, или атрибуты человека. Можно ещё добавить «hair_colour» (цвет волос), «age» (возраст), или «gender» (пол). И каждый из этих ключей имеет значение.

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

Принцип «Матрёшек»
В программировании полно объектов, которые находятся внутри объектов внутри других объектов. Программируя, вы часто обнаруживаете, что пытаетесь структурировать данные, и часто эти структуры содержат внутри себя другие структуры.

Добавим в предыдущий пример свойство «siblings» (братья/сёстры):
Код:
{"first_name"=>"Jonathan",
"last_name"=>"Richards",
"nationality"=>"British",
"siblings"=>{
"brothers"=>[Matthew,Pete,Simon],
"sisters"=>["Fiona","Mary"]
}
}
Этот принцип вы будете встречать на протяжении всего программирования. В HTML одни элементы включают в себя другие элементы:
Код:
<div id="outer_div">
<div id="internal_div">
<div id="yet_another_internal_div></div>
</div>
</div>
В CSS также есть иерархия. Точно так же, когда вы пишете скрипты, вам часто нужно запускать одни команды внутри других, которые запускаются внутри других. Когда вы научитесь работать с объектами внутри других объектов, вам станет намного легче учиться программировать, т.к. это составляет значительную часть всего программирования.

Принцип «Сосиски»
В вычислениях объектами в основном являются программы или файлы. Это крайне полезный принцип.

В программировании вы часто услышите термины «in» и «out» — ввод и вывод. Причина в том, что задачей часто является получение входных данных (ввод), их обработка (процесс), и произведение изменений (вывод). Обработкой занимаются процессы (активные биты), которые управляются вашим кодом. Пассивными битами являются данные, с которыми работают процессы. Это всё похоже на превращение фарша в сосиску.

Принцип собаки, кошки и рыбы (или принцип причинно-следственной связи)
Представьте, что у вас есть комната. В этой комнате есть кошка и рыба в чаше. Рыба ведёт себя как обычно. В определённый момент происходят 2 вещи: собака входит в комнату, а кошка выходит из комнаты. В то же время рыба начинает петь. Вопрос: что заставило рыбу петь?

Можно рассмотреть много возможностей. Можно предположить, это случилось потому, что вошла собака. А можно предположить, что причина в том, что вышла кошка. А может быть, причина в комбинации обоих событий. Возможно, оба события тут не при чём. А дело в том, что 18:17 — это время превращения рыбы в ведьму. Может быть, все рыбы поют. Некоторые из этих вариантов могут оказаться правдой.

Что действительно важно для программиста, так это уметь изолировать причины изменений.

Вы будете сталкиваться с подобными ситуациями на протяжении всего времени, пока вы кодите. В таких ситуациях мы, возможно, захотим спросить себя: можем ли мы симулировать вход собаки без выхода кошки (это может многое прояснить); можем ли мы симулировать выход кошки без входа собаки; можем ли мы полностью воспроизвести обстановку (например, время 18:17), чтобы понять, влияет ли она на пение рыбы, вне зависимости от собак и кошек. И так далее.
Очень важно применять методологию для установления причин изменений. Эта способность будет помогать вам снова и снова, пока вы кодите.

Абстракции, или принцип «пиццы»
Это один из самых хитрых принципов.

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

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

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

Давайте превратим приготовление пиццы в код. Сначала начнём делать это неправильно.

Сделаем метод make_a_napoletana_pizza (приготовить пиццу Неаполитана):
Код:
make_a_napoletana_pizza
В нём будет 5 шагов (сделать основу, добавить томатный соус, добавить анчоусы, добавить сыр, запечь):
Код:
the_base
add_the_tomato_sauce
add_anchovy
add_cheese
bake
Отлично. Но что, если мы хотим сделать пиццу салями? Мы будем вынуждены написать абсолютно новый метод make_a_salami_pizza (приготовить пиццу салями), у которого будет много общего с текущим методом, разве что он будет добавлять салями вместо анчоусов. Это несколько затратно.

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

Вот что имеется ввиду. Представим, что наш метод make_a_pizza (приготовить пиццу) вызывается с аргументом «toppings» (начинки). Метод будет выглядеть примерно так:

Код:
make_a_pizza(toppings)
И он будет работать следующим образом:
Код:
make_the_base
add_the_tomato_sauce
add_toppings(toppings)
add_cheese
bake
В 3-й строке мы берём начинки, определённые ранее, и добавляем их в пиццу.
Теперь, когда мы определили, общий метод по приготовлению пиццы, мы можем просто вызвать его и задать ингридиенты, которые хотим. Всё происходит автоматически.

Другими словами, мы вызываем make_pizza(salami), и когда метод запустится, salami (салями) станет toppings (начинкой) и добавится в пиццу, когда метод дойдёт до 3-й строки.
Просто изменяя начинку, можно одним методом создать 2 разные пиццы.
Это так же экономно, как когда официантка просто пишет в форме заказа «1 х салями, 1 х вегетарианская», и повар знает всё, что ему нужно. В программировании это называется «абстракция».
Так что мы имеем: семь принципов, которые обычно усваиваются в первые 3 года занятия программированием, и которые вносят значительный вклад в понимание искусства написания кода. Если вы начинаете своё путешествие, эти принципы могут помочь и вам.
 
Штаб-квартира игровой студии Lucky Labs

Игровая компания Lucky Labs занимается разработкой игр для своих партнёров. Среди них — Crystal Clear Soft, Playson и другие студии. Компания была основана более 10 лет назад. Офис Lucky Labs расположен в Киеве.

Проектированием и оформлением штаб-квартиры студии занималось архитектурное агентство burø. По словам архитектора Елены Орап, перед командой стояла задача отразить в интерьере основные черты коллектива Lucky Labs — «молодого, амбициозного и свободного».

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

Для дополнительного зонирования в опенспейсе команда burø разработала конструкцию с звукопоглощающими шторами, которые установлены между столами. Перегородки могут трансформироваться по желанию команд. За счёт высоты потолков на последнем этаже (около четырёх метров) появилась возможность создать многоуровневое пространство с рабочими местами «под крышей».

8t8BZAFyiQQ.jpg

BFgF2gpUOME.jpg

uDNRwcg7wCg.jpg

nGaHFpPSofY.jpg

ktnODagpFRI.jpg

L9TcPJLf4hw.jpg

x7wRPj-43lg.jpg

g40NazJ_ccE.jpg

djHpqGyAdDs.jpg

FqYFzfe9klo.jpg

©siliconrus
 
Редактором Atom пользуется кто? Как вкладки убрать сверху?
 
Ща расскажу о себе.
Умею делать фишинговые сайты html, потом научился чуток вшаривать о .php, там запросы всякие и т.д.
Ну самое главное это то, что 99% моих php записывают данные в файлик, и в 70% это логин и пароль. Такой я(
 
Назад
Верх