Хекслет
✔
7.98K subscribers
4.21K photos
46 videos
1 file
2.87K links
Программы обучения - https://ru.hexlet.io/courses
Сообщество @hexletcommunity AI Клуб @hexletclub
Поддержка @hexlet_help_bot
Download Telegram
13 апреля с 18 до 19 часов по Мск пройдёт бесплатный турнир «День Кодбаттла» — ежемесячный турнир между программистами по решению задач на скорость. Участвовать могут все желающие: от новичков до опытных разработчиков.

Зачем это нужно?

1. Подготовка к собеседованиям. Вы набьёте руку на решении типовых алгоритмических задач, которые могут спросить на собеседовании.
2. Нетворкинг. Турнир проходит в формате созвона, где можно поучаствовать самому и посмотреть на других.
3. Реальная проверка своих сил. Несмотря на задачи "элементарного" и "лёгкого" уровня сложности, всегда можно столкнуться с чем-то новым, что будет непонятным и потребует дополнительного изучения.

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

До начала турнира, если вы ни разу не участвовали, можно зарегистрироваться и поиграть тестовые игры с ботом, чтобы понять куда нажимать и как всё работает.
👍18🔥5💩4❤‍🔥1
Стоит ли учить Python и будет ли он востребован через несколько лет?

Большинство языков программирования чаще всего применяются в одной или двух сферах, за рамки которых их применение выходит достаточно редко. Python в этом смысле является одним из самых широкоиспользуемых языков. Он достаточно популярен во многих областях, что упрощает питонистам поиск работы и переключение на разные направления. Что в них входит?

* Веб-разработка. На Python делается немало сайтов и сервисов, среди которых Netflix, Dropbox, Uber.

* Аналитика данных. С помощью Python аналитики выполняют различные манипуляции над данными для построения отчетов и графиков. Все это присутствует внутри любой средней и крупной организации.

* Машинное обучение. Python — основной язык для написания нейросетей, которые создаются и используются внутри крупных корпораций. В последнее время появилось множество проектов, в которых нейросети продаются как сервис. Это направление переживает свой бум.

* Инжиниринг данных (сбор и хранение). С помощью Python данные собирают и подготавливают для работы аналитиков. Это есть во всех крупных компаниях.

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

* Разработка игр. Известнейший World of Tanks написан во многом с помощью Python.

* Автоматизированное тестирование. На Python специализируется много тестировщиков, и это отдельное направление в тестировании.

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

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

В общем, можно сказать, что Python чувствует себя уверенно и не собирается уходить со сцены.
🔥25👍9💩2⚡1🤝1
С какого возраста можно начинать заниматься с детьми программированием?

Разработка на настоящих языках программирования с использованием полноценного инструментария — это не совсем базовая вещь. К такому дети подходят к 10-летнему возрасту. Кто-то раньше, кто-то позже. И если, конечно же, захотят.

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

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

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

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

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

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

Если ребенку понравилось, следующим шагом можно купить одну из типовых алгоритмических игр, в которой нужно задавать путь для робота. Сейчас это довольно популярное направление на маркетплейсах. https://ozon.ru/t/GMA86aV

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

Дальше можно включать компьютер. Одна из самых классных вещей для детей на компьютере — это визуальный язык программирования https://scratch.mit.edu/. Вокруг него существует множество проектов, которые позволяют детям визуально описывать разнообразные алгоритмы, оживляющие разных персонажей. Например, это может быть дракон, который собирает камни. Подробнее можно посмотреть тут https://www.tynker.com/

Ну и последний шаг перед реальным программированием — это игры наподобие Code Monkey https://www.codemonkey.com/. Здесь уже пишется код, хотя и на очень упрощенном языке. Задача все та же: обезьянке надо добраться до банана. Подобная игра проводит по всем ключевым концепциям языков программирования. Все это сопровождается прикольной анимацией.

Какие еще игры вы знаете?
👍39💩2🔥1🤝1
В изучении программирования есть интересная особенность, которая отличает его от изучения многих других вещей в нашей жизни. Эта особенность в том, что несложные темы, с точки зрения действующих программистов, кажутся невероятно сложными новичкам и даются для понимания только спустя достаточно длительное время. При этом объективно более сложные темы могут заходить легче.

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

const usersEmails = [‘lala@gmail.com’, ‘kirill@hexlet.io’, ‘petya@gmail.com’];
for (const userEmail of usersEmails) {
sendEmail(userEmail);
}

В этом коде всего лишь 3 строчки, отвечающих за цикл, они начинаются со слова “for”. Сколько времени понадобится человеку, чтобы изучить циклы? Как показывает практика, достаточно много, не хватит и недели, чтобы научиться ими пользоваться.

Скорее всего, понадобится от 2 недель до месяца, чтобы начало что-то получаться. Почему так долго?

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

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

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

Почему об этом важно знать? Справочники, документация и многие учебные материалы в интернете не учитывают этого факта. Они исходят из того, что если просто расписать, как что-то работает, то этого будет достаточно. Как вы теперь знаете — недостаточно. Определенные темы нужно целенаправленно отрабатывать на большом числе примеров и не идти дальше, пока они не становятся естественными.
#заметки
🔥36💯18👍15❤3💩2
А давайте мы загадаем вам загадку?

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

Пишите свои ответы и алгоритмы решения в комментарии!
👍5🤔5❤2💩1
Рассказываем, какие новые уроки, курсы, профессии и треки мы добавили за последний месяц и объясняем, почему мы постоянно развиваем все наши образовательные продукты.

Какие новые курсы появились на Хекслете

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

Сделали транскрипцию курса JS коллекции — теперь его можно проходить в текстовом формате.

В треке «Алгоритмы и структуры данных» добавили новые уроки в курсы «Алгоритмы на графах» и «Алгоритмы на деревьях»

Появились новые текстовые уроки в курсе «Введение в тестирование веб-приложений»:
— Гипертекст
— Уязвимости на странице
— Протокол HTTPS и передача данных по сети
— Сессии
— Виды тестирования

В курс по настройке окружения в JS добавили урок про Lock-файл.

Поменяли 7 уроков с вебинарных на текстовые в курсе «Жизненный цикл ПО».

Собрали полную обратную связь от студентов по курсу «Python Функции» и полностью его переписали.

Закончили работу над курсом «Python Pandas».

Полностью доделали 30 уроков в курсе по TypeScript на Code Basics. Он пока еще в работе, но первые уроки уже можно проходить.

Появились первые 10 уроков в новом курсе «Основы SQL» — это 50% от всех уроков. Этот курс — общий для всех профессий на Хекслете, где есть SQL и работа с базами данных.

Появились новые уроки в курсе «Аналитические задачи в бизнесе»:
- Воронкообразные диаграммы
- Агрегации в аналитике
- Линии тренда

Мы работаем над новыми текстовыми курсами — «SQL Join», «DevOps Terraform», «Rails ORM», «Playwright», «Мобильное тестирование», «Линейная алгебра», «Продвинутая аналитика на SQL».

Теперь студенты могут проходить проходить трек «Python для аналитиков» — наша программа, где мы учим аналитиков применять библиотеки на Python в решении своих задач.

Образовательные новости Хекслета

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

На Хекслете прошел третий поток «Школы авторов» — нашего бесплатного образовательного проекта, где мы учим разработчиков, тестировщиков и аналитиков данных писать тексты, статьи и уроки.
🔥40👍6❤1💩1🙏1
Что обычно подразумевается под изучением нового языка программирования и сколько это занимает времени?

Изучение любого нового языка можно разбить на следующие стадии:

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

Уровень «Способен создавать осмысленные программы, например, консольные утилиты». Сюда добавляются такие темы, как разделение по файлам (модульность), ооп или фп, работа с файлами, использование стандартной библиотеки, какое-то представление об архитектуре, автоматизированное тестирование и, возможно, библиотеки для различных задач, вроде выполнения HTTP-запросов. На все это может уйти месяц.

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

Сроки условные, многое зависит и от человека, и от конкретной экосистемы, и от обстоятельств. Главное же то: сложность кроется не в самом языке, а в экосистеме вокруг этого языка.
❤22👍11💩1
Developer Roadmaps https://roadmap.sh/ — популярный сайт, на котором опубликованы роадмапы и иллюстрированные гайды. Они показывают, что нужно выучить, чтобы стать специалистом в той или иной технической области. С их помощью можно хотя бы примерно представить себе объем знаний и увидеть темы, которые нужно изучить в теории. В реальности же, в этих роадмапах есть множество вещей, которые либо очень опциональны, либо являются одним из множества вариантов.

Давайте попробуем частично разобрать один из них. Для примера возьмем фронтенд как самое популярное направление. Вот ссылка на него: https://roadmap.sh/frontend

Начнем с основных глобальных тем, отмеченных желтым. Что из представленного в роадмапе действительно нужно, а что нет?

Desktop Applications, Mobile Applications — не пригодится скорее всего никогда. Это просто другие области.

Progressive Web App — технология хорошая, но мало распространенная. Необходимость знать ее возникает только у тех, у кого явно существует PWA в компании. Остальным особо не надо.

Static Site Generator — Генераторы статических сайтов. Они сами по себе, без фреймворков, представляют из себя что-то вроде готовой CMS, где надо просто класть правильные файлы в правильные места. Их не нужно специально учить, достаточно прочитать документацию и выполнить по ней создание подобного сайта.

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

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

TypeCheckers—– тут имеется ввиду TypeScript. Знать его в современном мире полезно. Много где используется. От новичков, скорее всего, знание не потребуется. В крайнем случае можно пройти бесплатный курс https://code-basics.com/ru/languages/typescript.

WebComponents — несколько элементов из HTML и CSS. Можно прочитать одну статью.

Storage, WebSocket, SSE, Service Workers — находятся в одном списке, но нужны они по разному. WebSocket, пожалуй, самая массовая вещь из этого списка, которая широко используется. Остальное по необходимости. Большая часть указанного тут не является чем-то сложным. От новичков не требуется.

Authentication Strategies — тут все в кучу. Технологии бывают разные, все знать сразу не нужно. Если вы знаете, что такое аутентификация и как она работает со стороны JS, например, JWT, то и хорошо. С остальным разберетесь по ходу дела, если оно используется в вашем проекте.

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

CSS Frameworks — знать конечно полезно, но не все сразу. Достаточно знать хотя бы один на базовом уровне. Остальное подтягивается в процессе реальной работы, если оно используется..

Web Security Knowledge — по-хорошему знать надо, на практике мало кто разбирается. От новичков практически не требуется, но этому нужно учиться просто потому, что профессионал обязан думать о безопасности

Все остальные области, описанные в желтых квадратиках, знать нужно. Но учитывайте несколько важных моментов. Во-первых, там много где перечислены списки одинаковых технологий. Достаточно знать лишь одну из них, остальное работает по аналогии. Во-вторых, объемы знаний там отличаются на порядки. Например, знание JavaScript подразумевает не просто синтаксис языка, но и умение программировать, что займет много месяцев обучения. А с каким-нибудь Github можно разобраться уже в процессе использования, на это уйдет в сумме несколько дней.
👍24✍5💩3🥱2
Стоит ли учить JavaScript и будет ли он востребован через несколько лет?

Сферы применения JavaScript не ограничиваются браузерами и веб-приложениями. Еще на этом языке, например, можно:

- Разрабатывать мобильные приложения. С помощью фреймворка React Native создаются приложения для Android и iOS

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

- С помощью Electron на Javascript пишут десктопные приложения. Например, в Discord, VSCode и Slack.

В апреле 2023 года JS занимает седьмое место в индексе TIOBE, который составляется на основе статистики поисковых запросов.

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

Если говорить о перспективах, то JavaScript вряд ли куда-либо денется в ближайшие годы.

1. Это единственный язык такого класса, поддерживаемый браузерами, и нет предпосылок, что это может поменяться, хотя попытки были. Всё, что создается как альтернатива JavaScript, в конечном итоге конвертируется в него.
2. Необходимость шарить логику между клиентом и сервером, Server Side Rendering и прочее укрепляет позиции JavaScript на серверной стороне.
3. Тулинг для JavaScript, как и для клиентского веб-стека, по большей части написан на JavaScript.

Специалисты со знанием JavaScript будут востребованы еще достаточно долго.
👍33❤2🤔2💩2👎1
Стоит ли учить язык программирования GO?

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

Изначально Go создавался для программ, связанных с сетями и инфраструктурой, в качестве замены популярных высокопроизводительных серверных языков, таких как Java и C++. Сегодня же Go используется как бэкенд-язык для огромного количества различных направлений разработки:

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

Однако лучше всего Go раскрывается как язык программирования для работы с инфраструктурой. Самые популярные инструменты в этой области написаны именно на Go — Kubernetes, Docker и Prometheus.

Какие преимущества есть у Go?

Простота языка

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

Высокопроизводительные приложения

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

Комьюнити

У Go очень живое и активное сообщество разработчиков, так как это Open Source проект. Они самостоятельно контрибьютят его, создают новые модули и библиотеки, а также помогают новичкам осваивать язык. Несмотря на Open Source историю, Go активно поддерживается Google, поэтому язык быстро развивается и активно меняется.

В вакансиях в связке с Go часто требуются технологии:

1. Docker
2. Postgres
3. Kubernetes
4. gRPC
5. Git
6. Rest API
7. Python
8. PHP

Вообще, Go — идеальное карьерное продолжение для PHP-разработчика. Многие программисты используют эти два языка в синергии: начиная с PHP, в будущем при необходимости учат Go.

А почитать про PHP можно вот здесь https://vk.com/wall-54520471_16769
👍19❤2💩2⚡1🐳1
Среды разработки: какие они бывают и чем отличаются друг от друга. Рассказывает Кирилл Мокевнин.

В любом производственном процессе, к которому относится и разработка программ, есть несколько этапов:

1. Производство
2. Сборка
3. Контроль и испытания
4. Доставка

Давайте рассмотрим каждый из них более подробно.

Производство

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

Место, где происходит этот процесс, называется средой разработки. Всегда есть как минимум две среды:

1. Среда разработки, ее часто называют development environment
2. Среда эксплуатации, обычно ее называют боевая среда или production.

В зависимости от среды код должен вести себя по-разному. Например:

- В среде разработки шире уровень логирования, то есть мы видим все отладочные сообщения, и они помогают нам разрабатывать. В продакшене этот уровень отключают, так как очень быстро улетает место на диске.
- В среде разработки мы не можем по-настоящему слать письма. Если это произойдет, то ваши пользователи будут не рады. Кстати, это часто бывает у тех, кто не настраивает разные среды.
- В среде разработки отключают кэширование — технику для ускорения доступа.
- Среда разработки может содержать нерабочий код и находиться в неконсистентном (несогласованном) состоянии. Это нормально, ведь мы разрабатываем.

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

Сборка

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

Контроль и испытания

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

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

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

Тут появляется еще одно новое слово — релиз, или по-другому выпуск. С одной стороны, это процесс выкатки в бой новой версии системы. С другой стороны, так иногда называют сборку, которая представляет из себя новую версию системы.

Читайте продолжение в комментариях 👇
👍22⚡4🔥2💩2❤1
В своем резюме разработчику важно не только рассказывать про опыт работы, но и подробно описывать свои хард-скиллы — чтобы на это обращали внимание как рекрутеры, так и HR-боты. В галерее рассказываем, как правильно программисту говорить о своих плюсах и на чем делать упор в резюме.
👍25💩3
Давайте вспомним наших учителей по информатике. Какие они были? Повлияли ли они на ваш выбор профессии?

Мы в партнерстве с образовательной платформой Инфоурок проводим короткий опрос о том, какое влияние учителя информатики оказали на вас при выборе профессии после окончания школы. Будет здорово, если вы поучаствуете🔥

Опрос анонимный и займет не больше 3 минут: https://forms.gle/asntncCA5ckumj3L6
⚡2💩2🤷‍♂1
Программисты на работе не только пишут код, но и постоянно используют уже существующий, написанный другими программистами из разных городов и стран. Причем такого кода в проектах значительно больше, чем написанного именно изнутри команды. Этот код приходит к нам из библиотек и фреймворков, которые используются в работе.

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

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

Например, у Хекслета есть проект Code Basics, который специально выложен в открытый доступ. Это помогает тратить меньше времени на его сопровождение, так как наши студенты и другие люди участвуют в его доработке. Даже курсы, выложенные на этом сервисе, являются открытыми. Любой человек может пойти и поправить их. Или даже может написать целиком новый курс, что иногда случается.

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

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

- Открытые проекты используются большим числом людей. Вам придется учитывать множество вариантов использования и возникающие риски при изменениях. Это очень быстрый путь в сторону сеньорности;

- Ваш код проверяют люди со всего мира, и многие из них очень прокаченные разработчики. Открытые проекты сильно влияют на качество кодирования

- Бывает, что открытые проекты технически более сложные, чем проекты на работе. Там получается бесценный и новый опыт.

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

А представьте, как это звучит: «Я контрибьютор в React». И кстати, один из студентов Хекслета действительно стал контрибьютором React.
👍29🔥9💩2