Хекслет
✔
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
Рассказываем про сервис GitLab: для чего он нужен, как им пользоваться, какие команды у него есть и как быстро создать свой проект. И, конечно же, подробно сравниваем с главным конкурентом — GitHub.
Давайте устроим голосование. Ставьте 👾, если предпочитаете GitHub, и 🤓— если GitLab
👾60🤓21👍13💩6
Преподавание программирования vs коммерческая разработка

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

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

Но вернемся к сравнению преподавания и коммерческой разработки. Конечно, преподавание программирования гораздо больше сосредоточено на человеке, чем коммерческая разработка, поскольку на релизе мы выпускаем не цифровой продукт, но целое поколение выпускников. Но это не означает, что преподаватели не участвуют в разработке. Помимо обычных учебных активностей вроде решения задач на LeetCode, состязаний на Code Battle и помощи студентам, преподаватели в Хекслет-колледже разрабатывают сессионные экзамены, настраивают CI, пишут тесты, проводят ревью кода, курируют разработку студенческих проектов и решают связанные с этим технические проблемы. Это такое же программирование, но немного под другим углом.

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

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

Наконец, ты не можешь скопипастить преподавание со Stack Overflow или попросить помощи у ChatGPT. Если ты обучаешь студентов какой-то технологии, то сам должен ее по-настоящему знать, поскольку у учеников обязательно возникнут все проблемы, которые только могут возникнуть.

Но самое главное и важное в этом всем — любовь к людям и любовь к знаниям.
❤26💩2👍1
Проблема 2000 года

Хотя программирование все еще кажется молодой областью знаний, в ней есть свои исторические мемы, один из которых – проблема 2000 года.

В 1999 году в СМИ любили говорить о приближающемся конце света. Это было связано, главным образом, с круглой датой и уникальностью события – не каждый год меняется тысячелетие. Атмосферу подогревали всевозможные предсказатели и гадалки, паразитирующие на этой теме. Однако интересно знать, что и в IT в это время тоже было немало шумихи вокруг приближающегося апокалипсиса 2000 года.

Дело в том, что до 2000 года стандартом для записи даты в программном обеспечении было по две цифры для дня, месяца и года. То есть сегодняшний день выглядел бы в этой записи так: 10.06.23. И это совершенно понятно для нас сейчас, но что будет через 100 лет? Точного ответа на этот вопрос нет, поскольку существует многообразие систем с различным программным обеспечением, которые в данном случае будут вести себя по-разному. Но ясно одно: это должно привести к сбою банковских программ, транспортных систем, да и вообще большого количества приложений, для которых вопрос даты критически важен. С такой проблемой и столкнулись многие люди накануне нового, XXI века.

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

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

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


P.S. Этот текст написал Сергей, наш автор и преподаватель в колледже Хекслет. Задавайте ему вопросы, он обязательно ответит на них.

И не забудьте поставить реакцию, если вам понравился текст. Так мы будем понимать, какие темы вам интересны
👍65🔥6💩2🆒2❤‍🔥1
20 июня в 19:00 (мск) Кирилл Мокевнин, СЕО Хекслета, проведет вебинар-профориентацию «Кто я в IT: выбираем профессию и разбираемся, можно ли c нуля выучиться на middle».

На вебинаре:

Развеем все мифы про трудоустройство после онлайн-курсов

Разберем главные страхи новичков в программировании

Проведем тест, где вы осознанно выберете IT-профессию

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

Всем, кто зарегистрируется на вебинар, придет гайд «Как заговорить на сленге IT-специалистов», а каждому участнику — карта компетенций веб-разработчика и гайд «Как выделиться среди кандидатов и найти первую работу в IT».

Записаться на вебинар
🔥11👍5💩3
Прокрастинация — нужно ли с ней бороться и как программистам с этим жить

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

Про 20%

Как понять, что вы прокрастинируете вовсе не из-за лени, а у вас есть другие причины для этого. Например — выгорание.

Делаем чекап:

- Высыпаетесь ли вы в последнее время;
- Была ли физическая активность (спорт, долгие прогулки);
- Хорошо ли питались (речь, конечно же, о здоровой и правильной пище);

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

Прокрастинация = лень?

Окей, что такое прокрастинация? У прокрастинации два происхождения:

1. От латинского “procrastinare” — откладывать на завтра;
2. От греческого “akrasia” — когда вы делаете что-то против здравого смысла или недостаток самоконтроля.

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

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

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

Как работать с прокрастинацией?

Вознаграждай себя за действия «здесь и сейчас»

Ученая Кэти Милкман считает, что нужно во время прокрастинации делать те вещи, которые вам нравятся. При этом такие действия можно совместить с полезными вещами:

- Слушай любимые подкасты только во время тренировок;
- Смотри любимое шоу только во время выполнения домашних дел;
- Читай и переписывайся в чатиках с друзьями только пока едешь в метро или на автобусе домой/из дома;
- Смотри сериалы только вечером выходных.

Ставь дедлайны

По словам доктора Тима Пичила, нужно всегда ставить себе дедлайны. Поставил задачу — тут же отметил дедлайн, когда она должна быть сделана.

Список дел

Заранее составляй свой to-do лист и вноси в него даже самые маленькие дела: сделать 10 минутный перерыв в работе, попить ромашковый чай, напомнить наставнику по Java о встрече и т.д. Когда мы вычёркиваем дельце из списка, у нас происходит выработка дофамина. Таким образом, мы как бы тренируем свой мозг — хочешь получить удовольствие, сделай задачу и вычеркни её.

Знаменитое «поедание слона по кусочкам»

Представь, что твоя задача — один большой слон. Целиком его заглотить не получится, поэтому режем нашего слона на кусочки, и приступаем к аккуратной и продуманной трапезе. 1 кусок — 1 дедлайн.

Мотивация себя

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

Тренировка силы воли

Сила воли — не бесконечный ресурс, поэтому мы доводим нужные нам привычки до автоматизма, а для этого привычку надо создать. С точки зрения нейробиологии это выглядит так: по своей нейронной цепочке мы очень часто прогоняем одно и то же действие. Это анатомически меняет наш мозг, создавая закрепленные действия.
❤30👍15🔥9💩5
Каким должен быть компьютер и рабочее место разработчика

Разработчиков, начинающих и не только, часто интересует, каким должно быть их оборудование и рабочее место. Часто возникают следующие вопросы:

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

Меня зовут Владлен, разрабатываю с 2018 года, первую работу в IT нашел в начале 2019 года. Постараюсь ответить на поставленные выше вопросы. Ответы буду давать из своего опыта, поэтому открыт к дискуссии.

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

Начну с моего текущего оборудования. Разделю на то, что использую дома и в офисе, так как работать приходится гибридно:

Компьютер
Ноутбук MacBook Pro 2021, экран 14 дюймов, процессор M1 Pro, 16 гигабайт оперативной памяти

Дом
Сейчас стоит обычный небольшой стол и стул из IKEA – Линнмон/Адильс и Вольмар
Дополнительный небольшой монитор AOC 1920x1080
Мышь беспроводная Logitech G304
Клавиатура механическая Logitech K835

Офис
В офисе сижу за общим большим столом, стул тоже из IKEA – Ренбергет.

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

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

Пример такого оборудования – VR-очки. В компании были и есть проекты под VR. Для их разработки компания закупает всё необходимое.

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

Какого ПК будет достаточно?

Зависит от сферы разработки.
Мне в текущем положении MacBook Pro хватает с головой, так как у меня сейчас все больше менеджерских обязанностей. Тем не менее и для кода этой конфигурации хватает: бэкенд на PHP, фронтенд (NPM), приложения на Python, запуск и работа с Docker-контейнерами, даже запуск Unreal Engine.

На постоянной основе для разработки MacBook я бы не использовал. Взял бы ноутбук, который близок или сопоставим по мощности, и поставил бы Linux, Windows или обе системы вместе, в зависимости от того, чем предстоит заниматься.

Почему?
Мне нравится производительность и гибкость настройки Linux в разработке больше, чем удобство и автономность, которые предлагает Apple.

Windows необходим для работы с Unreal Engine. UE работает на этой ОС стабильнее всего.

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

Для геймдева, в моем случае — Unreal Engine, все не так просто. Конечно, запускал проекты на слабом ноутбуке c Ryzen 3 и встроенным видеоядром. И даже как-то работал. Но ждать, пока все шейдеры прогрузятся или пока скомпилируется проект — долго и больно. Тут точно нужен мощный ПК, где все в достатке: процессор, оперативная память, видеокарта. Такой ПК предоставляли на работе, поэтому проблем не было, но с удаленкой проблемы, так как компьютер стационарный.
👍18🔥5👏2💩2
Что должен знать junior Python-разработчик, чтобы найти работу?

Читайте в статье:
Что сейчас происходит на рынке труда Python-разработчиков?
Какие ошибки допускают джуны при трудоустройстве?
Как повысить свои шансы на оффер — самостоятельно и с помощью Хекслета?
👍13👎3⚡2❤1💩1
Обзор на игру while True: learn()
Текст написан Сергеем Сизовым, преподавателем Хекслет Колледжа.

While True: learn() — это компьютерная игра, которая предлагает игроку побыть в шкуре разработчика-фрилансера, специалиста по машинному обучению. Авторы игры на ее странице в магазине написали, что она подойдет тем, кто «хочет узнать про машинное обучение», «программистам, которые хотят расширить свой кругозор», кто хочет играть и «не убивать время впустую», родителям, которые ищут способ «заинтересовать детей программированием».

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

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

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

Теперь к минусам. Конечно, обучение через игру — это своеобразный идеал учебного процесса, который захватывает обучающегося, доставляет ему радость и при этом лишен рутинной работы. Но, к сожалению, овладение реальными навыками программирования требует немало усердия, интеллектуального напряжения, терпения и понуждения. И, несмотря на все попытки геймифицировать этот процесс, его успех все еще зависит от готовности студента работать, а не развлекаться. В данной игре, вопреки моим ожиданиям от ее описания, нет обучения ни синтаксису какого-либо языка программирования, ни алгоритмическому мышлению, ни теоретическим особенностям машинного обучения. В сухом остатке — это просто решение головоломок в забавном антураже.
👍15💩3👎2❤1
Все слышали про метод резиновой уточки, но не все умеют правильно с ним работать.
На пальцах объясняем, как учиться через обучение других и кто такой Ричард Фейнман.

Расскажите в комментариях, какая тема или технология в программировании далась вам особенно тяжело и не помешал бы метод резиновой уточки
🔥40💩1