. /*У вас в голове звучит музыка из вашего любимого сериала про Шерлока Холмса*/
— Шерлок, почему опять ничего не работает?
— Это элементарно, друг мой! Во-первых, вы пытаетесь запустить пятый Spring на Java 7. Во-вторых, после пары месяцев использования Groovy вы совершенно перестали уважать точки с запятой. Ну а в-третьих, в вашем ноутбуке сдохла батарея.
Да, это будет необычный доклад. В нем Холмс и Ватсон раскроют несколько загадок, с которыми вы сталкивались, сталкиваетесь или будете сталкиваться при каждодневной разработке. Кишок сборщиков мусора и байткода не будет, зато будут инструменты, библиотеки и фреймворки, которые озадачивают рядовых разработчиков в каждодневной рутине, приводят к простою, профукиванию дедлайнов и затяжным депрессиям. Практически, в этом докладе Шерлок и Ватсон спасают ваш лоб от фейспалмов и граблей, на которые кто-то уже наступал.
В этом выпуске у меня в гостях, senior devops engineer — Никита. Никита рассказал, как он стал из обычного системного администратора ведущим девопс инженером.
Мы разобрались в том, что же такое девопс и какие его области ответственности, какие инструменты используются девопсами, что такое докер и continuous integration.
Кроме того у Никиты богатый предпринимательский опыт и за плечами годы работы в big data.
И конечно, я задал сакральный вопрос, которой интересует большинство людей — сколько же зарабатывают девопсы.
Что делать во время кризиса и какие ниши рассматривать для инвестирования? Когда нас заменят роботы и применима ли идея безусловного базового дохода к Украине?
Смотрите видео, ставьте лайк и задавайте вопросы в комментариях.
В этом видео мы рассмотрим вопрос того, на сколько важен английский для начинающего IT специалиста. Также я поделюсь своим опытом, советами и лайфахами о том, как быстрее и продуктивнее прокачать свой уровень языка.
Краткая история моего изучения
Я вам уже рассказывал что я на свою первую работу попал через практику в IT компании, и вот в чем дело, на момент когда я попал на практику я довольно хорошо знал Java и все что с этим языком связано, но не технологии. В той компании нужно было сделать 22 лабораторные работы за 2 месяца, 12 из них по Java Core который я знал, а 10 по совершенно новым, незнакомым для меня технологиям, первые 12 я сделал очень быстро, потому что все знал, а дальше начался ад, у меня уровень английского был Beginner и то есть я читаю только с переводчиком, которым криво переводит тех документацию, в общем очень непонятно и это прям очень сильно меня подкасило, потому что столько времени инвестировал в Java а тут оказывается новые технологии, на русском вообще нет нормальной литературы, я не могу толком читать на английском и это сильно затормозило сроки выполнения задания.
Какие требования к Junior к английскому
В первую очередь когда мы говорим о требованиях английского к Junior, то это в первую очередь чтение технической документации, потому что Джуниор должен быстро учиться и быстро осваивать новые технологии, а иногда даже языки, а без чтения тех документации это очень проблемно. Джуниоры не так прям часто коммуцируют, может иногда приходится там какой-то свой статус сказать например или вопрос задать, но в основном это все-таки больше про чтение и про скорость обучения. Поэтому без чтения реально очень туго.
Специфика изучения технического английского
Надо понять также специфику изучения тех английского. Я во время того когда делал лабораторные заметил что очень большое количество слов повторяется в разных источниках, в том числе повторяются фразы, формулировки, а также структура предложения. Все дело в том что технический английский это специфическая достаточно область, в котором есть часто употребляемые слова, особенно что касается тех документации. Их не очень много может 2-5тыс слов, из которых вам нужны где-то 2.5 тысячи.
Как учить слова
В то время я как раз и занялся плотно изучением технических слов, что я собственно сделал, есть приложения по типу lingua leo у которых есть не только мобильное и десктоп приложение, но самое важное есть гугл хром расширение, которое позволяет переводить слова и добавлять их вместе с переводом к себе в словарь. По сути алгоритм достаточно простой, вы устанавливаете это расширение и по ходу своего обучение или уже работы вы скорее всего будете читать какую-то техническую документацию или статьи на английском, вы будете встречать незнакомые слова, и вот с помощью этого расширения, не только два раза кликнув там на слово можно было перевести, вы смотрите что попадает по контексту и не только видите перевод, но также добавляете его к себе в словарь.
И тут самое важное, постоянно учить слова которые находятся в этом словаре и которые будут регулярно пополнятся в процессе чтения. Я в то время установил себе планку 20 слов в день, и это не сильно много, едешь на работу 5 слов выучил, на перерыве снова 5 слов или 10 и еще 5 вечером, или например сразу все 20, 20 слов это не так много. И по сути все измеряется на дистанции, 20 слов это не много, но если посчитать за месяц, то если умножить на 30 это будет 500 слов, а если на 5 месяцев, это уже 2500, не просто английских слов, а целенаправленных слов которые реально взять из технической документации.
Специфика грамматики
Тут сразу простой ответ, запишитесь сразу на курсы, 2-3 раза в неделю, желательно чтобы ваша грамматика и то как вы ее учите пересекалась с теми темами и словами которые будете учить из словаря, скажем так нужна грамматика специализировано для IT спецов. Еще важно понимать что не обязательно знать прямо всю грамматику чтобы прокачаться, на самом в большинстве случаев в технической документации используется там 5 времен из 16 возможных.
Разговорный
Конечно вы его будете так или иначе прокачивать по мере того как будете ходить на курсы, но еще одна такая прикольная фишка которая помогла хорошо и приятно прокачаться это Speaking Сlub. Если вы живете в более менее крупном городе, они у вас точно есть, суть в том что люди просто собираются поговорить на английском, вообще из разных сфер из разных профессий.
00:00 — Начало
00:41 — моя история изучения английского
3:27 — требования к junior-у по знанию языка
5:10 — специфика изучения технического английского
6:26 — как учить слова?
9:37 — изучение грамматики
11:04 — разговорный английский
В этом видео я подробно расскажу вам о том, какие задачи выполняет Junior разработчик в компании и что вам нужно уметь делать для того, чтобы претендовать на должность Junior.
Чтобы далеко не ходить, возьмем меня как конкретный пример, значит 2013 год, я прихожу в большую компанию работать Java Junior после практики, меня сажают на большой проект, который связан с индустрией healthcare т.е. писать софт для страховых компаний в США.
Я знакомлюсь с командой 3 разработчика (я, наш тимлид и еще один миддл), 2 тестировщика, бизнес аналитик на американской стороне и 2 разработчика тоже на американской стороне.
Мы работали по Scrum-у, это такой подход разработки когда мы определяем кол-во заданий на отрезок времени и делаем их, например в течении 2х недель. Если хотите подробное видео по Scrum то напишите в комментариях.
*Scrum — метод управления проектами
После планирования распределяются задачи согласно рубашке задач (монотонные легкие — junior-у, сложные задания для продвинутых миддлу и тимлиду). Я получаю свои задачи и начинаю с того, у которого самый высокий приоритет.
Проект состоял из 3х больших частей на которых нужно было работать, это Front End на Javascript, Backend на Java и реляционная база (SQL соответственно).
Так как я выполнял задачи на всех 3х уровнях, я дам вам пример по каждому из них.
Итак пример простого задания: Есть личный кабинет пользователя, где он должен быть в состоянии ввести свой контактный номер телефона, это новое поле, которого еще нет в системе. Поэтому оно должно быть добавленно в каждый из уровней приложения.
База данных
Начинаем с задачи на SQL: Нужно найти нужную таблицу, куда вставить это поле, расширить таблицу в базе данных так, чтобы она могла сохранять номер телефона, повесить на нее констреинты уникальности, просмотреть есть ли в этой таблице хранимые процедуры или триггеры настроеные на эту таблицу и если уместно — поправить запросы, чтобы они тоже отдавали номер телефона.
Также сделаем оговорку что это не пет проджект, а реальный проект, в котором часто самая простая задача может стать достаточно сложной для реализации. Например в базе про которую я говорю было пример 300 таблиц. Написали, протестировали, идем дальше.
*Pet project — небольшой проект для собственных, обучающих целей
Java Backend
Здесь уже уровень доступа к базе данных и бизнес логика. Сразу же представляем себе проект в котором несколько миллионов строчек и чтобы его установить и поднять локально уходило могло уйти пару дней.
*Бизнес логика — требования бизнеса переведенные на логический язык программирования.
Нужно найти модель которая соответствует таблице в базе расширить ее номером телефона, написать или расширить методы которые работают с этой таблицей чтобы можно было и сохранять и считывать информацию. Также обязательно нужно добавить валидаторы, которые проверяют номер телефона по определенном шаблона (я говорю сейчас о регулярном выражении. И конечно же потом проверить эту цепочку в обе стороны.
Front End
Тоже представляем огромный фронт проект на несколько сотен тысяч строк. Нужно добавить эту форму в личный кабинет, добавить валидацию по регулярному выражению, связать это все с запросами на бекенд в обе стороны и протестировать.
Конечно в процесс вовлечено гораздо больше действий чем просто написать код, это и прояснить у бизнес аналитика какие-то непонятные моменты, пройти код ревью процедуру у своей команды, помочь тестировщикам разобраться в логике, оценить задание во времени.
Примерами других заданий может быть например:
SQL
Написать sql запрос который покажет статистику покупок людей с помощью карты visa, а не мастеркард за сезон, или собрать полную информацию по юзерам у которые покупали страховку в прошлом году в текущее время года.
Java
Написать валидацию полей юзера используя регулярные выражения или например создать отдельный обработчик запроса, который отсылает всем пользователям в списке письмо с благодарностью.
Front End
Добавить фильтр по нескольким критериям на страницу покупки страховки, например фильтрация по компании, по стоимости, по длительности.
Также не забывайте что везде вам нужно придерживаться технологий и практик, которые уже используются на проекте, т.е. вам нужно хорошо знать стек технологий, чтобы быть в состоянии качественно сделать задание.
Тайм-коды:
00:00 Начало
0:31- мой опыт работы как Junior-а
1:01- по какой системе мы работали
1:25- распределение задач в команде
1:52- деления проекта на части
2:36- задача Junior-a
3:14- что я мог делать для выполнения этой задачи?
4:56- доработка логики на Java Backend
7:15- разработка логики на Front end
8:42- задачи для Junior-a в SQL
9:17- задачи для Junior-a на Java
10:15- задачи для Junior-a во Front End приложении
12:36- чего ожидают от Junior-a в общем