Что такое Git? Зачем он нужен и как использовать? (примеры из практики)


Друзья, в этом видео я расскажу вам о том, что такое Git, зачем он нужен, как его использовать и как с его помощью оптимизировать и упростить работу в команде. Мы поговорим обо всех особенностях использования этого инструмента и я наглядно покажу как с ним работать.

Что такое git?
Git — это система контроля версий, а если сказать простым языком то это программа, инструмент, которая позволяет нам фиксировать наши изменения в коде, а также благодаря этой фиксации позволяет нескольким людям или даже командам вместе слажено и параллельно работать над каким-то программным продуктом.

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

Git — это как раз такая программа, такая система, которая позволяет эти сохранения создавать и потом управлять ими, менять, возвращаться к ним, удалять и переписывать их, такая фиксация в терминах Git-а называется `commit`

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

Git собственно так и делает, вы говорите ему команду, он запоминает состояние ваших файлов на текущий момент присваивая ему специальный номер вот это снимка, там называемый `commit hash`.

Commit hash — набор символов которые уникально идентифицируют сохранение состояния файлов в конкретный момент времени;

Что такое ветки в гите и как их использовать?
В git также используется так называемая система веток, представьте себе что ветка, так называемая branch — это маршрут по которому едет поезд, а каждая его остановка, сохранение состояния это коммит. То есть когда мы начинаем разрабатывать какую-то задачу, пишем код нам нужно идти с точки А в точку Б, у нас скажем пустой файл, а потом постепенно наш код начинает эволюционировать и он со временем начинает что-то внятное делать.

Так вот этот процесс разработки можно представить по той же аналогии с поездом, поездвыезжает с точки А и ему нужно доехать до точки Б, и этот маршрут он будет ехать по своему пути (в нашем случае это и будет ветка нашего git), а также по пути ему надо останавливаться чтобы фиксировать свой прогресс по маршруту, это и будут коммиты в нашем случае, то есть мы пишем код в рамках ветки и делаем коммиты, для того чтобы сохранять наш прогресс внутри метки.

Как его используют команды?
Как такой подход позволяет нам распараллелить работу разных людей и команд и сделать их более продуктивными? Все дело в том что когда мы работаем над каким-то проектом и нескольоко людей пишут код они во 1 могут одновременно менять одни и те же файлы.

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

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

00:00 Начало
1:03 — Git — что это?
2:52 — Что такое Git commit
4:09 — Ветки или «branch» что это такое?
5:27 — Как команды используют Git?
7:49 — Как применять Git в работе. Практика.
7:57 — Новый репозиторий. (Git init)
9:17 — Создание файла и коммита. (Git commit)
11:46 — Сохранение файлов (Git commit -m)
12:46 — Как работают с ветками и какими они бывают.
14:51 — Создание develop ветки, и ветки для работы ( Git checkout -b feature)
17:06 — Как новый файл добавляется в Git
19:39 — Откат к коммиту (Git reset)
20:44 — Слив на одну ветку (Git merge)

Соцсети:
www.instagram.com/itwithvitaly/
www.facebook.com/itwithvitaly

#примерыИзПрактики #обучениеIT #становимсяПрограммистами

Проходим собеседование #1: собеседование на junior frontend developer


Открытое собеседование junior frontend разработчика.
Следующий выпуск: youtu.be/ssigrf5zHUg
Предыдущий выпуск: youtu.be/JhpgZTa2Egc
Вопросы и предложения пишем сюда mockinterview@yandex.ru

Кто хочет прокачать свои знания — оставляем заявку на обучение в GeekBrains: rebrand.ly/mockinterview

00:00 Вступление
03:19 Знакомство с Ростиславом
05:15 Разница div и span
05:59 Теги link и script места подключения
09:18 Чем нравится программирование
10:10 Чем отличается null и undefined
17:34 Что такое NaN
20:03 Разница между == и ===
21:53 Что выведется в консоль
24:12 Проблема 0.30000000000000004
28:45 Задача 1
56:25 Вопрос на внимательность
1:00:10 Задача 2
1:16:55 Задача 3

Техника тайм-менеджмента для всех кто обучается в IT. Как привести дела в порядок (реальные примеры)


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

Программы для заметок:
todoist.com/
www.notion.so/
bear.app/
culturedcode.com/things/

У меня много лет стоял вопрос того как можно структурировать свою жизнь, чтобы оставаться максимально продуктивным и выполнять максимальное количество задач в свое рабоче или свободное время. Кучу разных способов попробовал начиная от таких штук как Pomodoro когда рабочий день делится на 25 рабочие отрезки и 10 минутный отдых, таким образом достигая максимальной концентрации и заканчивая расписыванием своего жизненного плана на 3-6 месяцев.

Это на самом так сложно, потому что ежедневном меняются какие-то обстоятельства и очень сложно быть роботом который ежедневно выполняет одни и теже функции.

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

Этот способ я увидел и тут же начал применять когда прочитал книгу которая называется «Getting things done» ее написал David Allen, американец который профессионально занимается тайм менеджментом и личной эффективностью и книга реально очень крутая, всем рекомендую.

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

*Создание задач и то когда это делать и как*

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

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

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

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

*Добавление различных контекстов для задач*

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

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

Для этого я сделал еще один контекст помимо основных, который называется next это по сути срез задач которые я буду выполнять следующими. Т.е. у меня например может быть с 10ток задач at_business где хранится весь список того что я например хочу выучить или попробовать, но у меня будет только 1-2 задачи next.
Я спрашиваю себя где я сейчас нахожусь и задачи из какого контекста я могу сделать, пускай это будет at_business, тогда следующим что я делаю это смотрю на задачи с пометкой некс, и я сразу знаю к какой задаче мне приступить.

00:00 — Начало
0:34 — Продуктивность в современном мире
1:33 — Мой опыт в тайм менеджменте
3:18 — Мой рабочий способ. Что такое GTD?
4:32 — Фиксирование задач
7:23 — Что такое контекст для задач?
10:53 — Первостепенные задачи
13:55 — Deadline и повторяющиеся задачи в системе GTD

Соцсети:
www.instagram.com/itwithvitaly/
www.facebook.com/itwithvitaly

#какФокусироваться #какОбучатьсяБыстрее #таймМенеджмент

Моё самое провальное собеседование на позицию Front-End Developer!


Всем привет)
У всех наверняка были провальные собеседования, в частности IT, за которые Вам стыдно и этим запомнились. Я тоже не исключение и в этом видео решил вспомнить как это было на позицию Front End developer и на каких вопросах я погорел. Видео будет полезно для начинающих разработчиков.
Пишите в комментариях было ли у Вас такое и если врезались в память какие то конкретные вопросы на интервью то и их тоже. Будет интересно почитать о историях других)
Приятного просмотра!
=====
Если вы хотите меня поддержать:
Patreon: www.patreon.com/aboutIT
=====
youtu.be/ZRdOb4yR0kk — оценка сложности алгоритомов
=====
Инстаграм: www.instagram.com/kuhotandrew...
Фейсбук: www.facebook.com/profile.php?...
=====

Всем привет, меня зовут Андрей и я работаю ReactJS разработчиком. Также интересуюсь алгоритмами и математикой. На этом канале я рассказываю о своем опыте работы программистом, про плюсы и минусы профессии. Еще буду рассматривать интересные для меня темы и подходы.
#программирование #ityoutubers #IT

[Ответы] Java Junior реальное собеседование | ООП, Java Core | Часть1


В этом видео я дам ответы на вопросы из первой части видео с реального собеседования на Junior Java Developer.

Видео с собеседованием: www.youtube.com/watch?v=bH3DBnxO4FA

Надеюсь каждому из вас будет полезно послушать информативную часть, а также взять себе на заметку, как примерно нужно отвечать на собеседовании.

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

Друзья! Напишите в комментариях какого формата видео вы хотите видеть на этом канале! Постараюсь учесть мнение каждого!

Ссылки на соц. сети:

Facebook — www.facebook.com/cactusprogramming/
Instagram — www.instagram.com/cactusprogramming/
Website — cactusprogramming.com/

Какой язык программирования учить в 2020 году: Рациональный подход


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

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

Я покажу Вам как самостоятельно начать ориентироваться в подборе направления и расскажу специфику каждого языка программирования.

Сайты где можно смотреть вакансии:
Украина — dou.ua/
Беларусь — dev.by/
Россия — tproger.ru/
США — www.builtinnyc.com/

Таймкоды
3:49 — Сайты для анализа IT рынка
5:02 — Java
5:35 — .NET
6:37 — Python
7:36 — Ruby
8:09 — PHP
9:00 — iOS/Android
9:36 — Front End
10:13 — QA
10:40 — DevOps
13:28 — Анализ зарубежного рынка

Соцсети:
www.instagram.com/itwithvitaly/
www.facebook.com/itwithvitaly/

Пробное собеседование Junior C# developer (backend)


Юлия решила рискнуть и пройти у меня тестовое собеседование на позицию Junior C# developer (младший разработчик на C#). У нее достаточно интересный опыт: руководство IT проектами, цифровой маркетинг. Казалось бы зачем ей идти в программисты? В видео можете узнать зачем. Опыт программирования у нее небольшой: закончила очные курсы программистов и занималась самостоятельно. Суммарный опыт программирования до года.

Профиль на HH
kaluga.hh.ru/resume/746ac77eff07f0b0bf0039ed1f367046384472
— Ваше участие очень важно для развития моего канала. Самое мало, что вы можете сделать это поддержать канал любым доступным вам способом: лайк, комментарий, подписка. Меня это мотивирует на продолжение работы, а вам ничего не стоит.

Если вы хотите меня отблагодарить донатом и поддержать развитие канала:
money.yandex.ru/to/4100184436534
В комментариях можно указать тему или идею для нового видео, которую вы бы хотели увидеть на канале. Естественно, мнение тех, кто меня поддерживает финансово я буду учитывать в первую очередь.

Личные вопросы о помощи в программирование и построении карьеры в IT можно задавать тут sberegovoy.ru/mentor/

— Оставайтесь на связи:
Мой сайт — sberegovoy.ru
Вступайте в телеграмм канал — t.me/sberegovoy
Группа в телеграмме — t.me/group_sberegovoyru
Или вступайте в группу ВК — vk.com/sberegovoyru
#ityoutubersru

Открытое собеседование PHP Point #1 / Валентин Удальцов vs Патрик Фельдеш


О Патрике: career.habr.com/sspat
Код для ревью: gist.github.com/vudaltsov/e6f7dd83a88b349cd5ee0e0d1795e5aa
Задача на SQL: gist.github.com/vudaltsov/e3d06ef2158a248337aa262a9fb60b5f

Большое спасибо Антону Мореву за помощь с трансляцией. Подписывайтесь на его YouTube-канал www.youtube.com/channel/UCnv9T90-w6ZO8dLyVnBzn9A, там интервью, разговоры про IT и опыт.

В Telegram подписывайтесь на наши каналы Пых (https://t.me/phpyh), PHP Digest (https://t.me/phpdigest) и amorev94 (https://t.me/amorev94).

Нужен ли английский программисту? Как быстро выучить английский в IT? (примеры из опыта)


В этом видео мы рассмотрим вопрос того, на сколько важен английский для начинающего 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 — разговорный английский

Соцсети:
www.instagram.com/itwithvitaly/
www.facebook.com/itwithvitaly

#какПопастьвIT #английскийДляПрограммиста #важностьАнглийскоговIT