ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅 👈

Вячеслав Романьков — преподаватель программирования

Вячеслав Романьков — преподаватель программирования

前往频道在 Telegram

Преподаватель программирования, который всегда на вашей стороне. Никогда не махну рукой, какие бы неудачи и ошибки вы не делали, буду продолжать учить думать и действовать как программист-профессионал Написать лично мне сюда @vrom1990

显示更多
1 506
订阅者
无数据24 小时
+47 天
+430 天

数据加载中...

标签云
无数据
有任何问题?请刷新页面或联系我们的客服。
进出提及
---
---
---
---
---
---
吸引订阅者
10月 '26
十月 '26
+962
在0个频道中
九月 '260
在0个频道中
Get PRO
八月 '260
在0个频道中
Get PRO
七月 '260
在0个频道中
Get PRO
六月 '260
在0个频道中
Get PRO
五月 '260
在0个频道中
Get PRO
四月 '260
在0个频道中
Get PRO
三月 '260
在0个频道中
Get PRO
二月 '260
在0个频道中
Get PRO
一月 '260
在0个频道中
Get PRO
十二月 '250
在0个频道中
Get PRO
十一月 '250
在0个频道中
Get PRO
十月 '250
在0个频道中
Get PRO
九月 '250
在0个频道中
Get PRO
八月 '250
在0个频道中
Get PRO
七月 '250
在0个频道中
Get PRO
六月 '250
在0个频道中
Get PRO
五月 '250
在0个频道中
Get PRO
四月 '250
在0个频道中
Get PRO
三月 '250
在0个频道中
Get PRO
二月 '250
在0个频道中
Get PRO
一月 '250
在0个频道中
Get PRO
十二月 '24
+1
在0个频道中
Get PRO
十一月 '24
+6
在0个频道中
Get PRO
十月 '24
+4
在0个频道中
Get PRO
九月 '24
+1
在0个频道中
Get PRO
八月 '24
+3
在0个频道中
Get PRO
七月 '24
+2
在0个频道中
Get PRO
六月 '24
+4
在0个频道中
Get PRO
五月 '24
+6
在0个频道中
Get PRO
四月 '24
+5
在0个频道中
Get PRO
三月 '24
+5
在0个频道中
Get PRO
二月 '24
+3
在0个频道中
Get PRO
一月 '24
+7
在0个频道中
Get PRO
十二月 '23
+2
在0个频道中
Get PRO
十一月 '23
+4
在0个频道中
Get PRO
十月 '23
+6
在0个频道中
Get PRO
九月 '23
+676
在0个频道中
日期
订阅者增长
提及
频道
12 十月+2
11 十月+2
10 十月+3
频道帖子
+1
10 задач из задачника на циклы и массивы (в Python вместо них списки, но по сути та же штука). Задачи универсальные, для всех популярных языков программирования. Я решил показать,так как задач всё больше, уже 200 штук. От меня не убудет показать пример, как выглядит каждая тема. Во многих языках программирования не обязательно использовать для решения именно таких задач, есть готовые функции. Но именно прорешивание через циклы познакомит многих с таким видом переменной, как флаг, и покажет, как проверять наличие для более сложного случая, когда в массиве не числа, а целые объекты.

2
10 задач из задачника на циклы и массивы (в Python вместо них списки, но по сути та же штука). Задачи универсальные, для всех популярных языков программирования.
29
3
Полторы тыщи подписчиков. Сильно! Всем спасибо! Слушайте, а насколько вам был бы интересен формат подкаста? Я могу выпускать любительского уровня
441
4
Прошёл курс по языку программирования, нарешал много алгоритмических задачек на Leetcode. Вроде профессиональный программист? Нет. Это значит, что человек освоил несколько вещей. Это как купить гитару и научиться ставить аккорды — да, здорово. Но теперь нужно научиться эти аккорды переставлять и играть, соединяя их. А если человек мечтает о карьере гитариста и попробует пойти играть в группе, то окажется, что нужно ещё много-много всего освоить. Нужно научиться: - играть с группой слаженно, не обгоняя и не отставая, - выступать с плохой аппаратурой, когда ничего не слышно, - играть так, чтобы руки выдерживали несколько часов игры подряд и регулярно, - справляться с кучей проблем, которые могут возникнуть в самый неподходящий момент, - и т.д. и т.п. То же самое в программировании. Язык программирования — это только способ записывать решения, только верхушка айсберга, а алгоритмы — это набор способов решать некоторые задачи. Но профессиональное программирование строится на других навыках: декомпозиция, чтение чужого кода, поиск ошибки, работа с неопределённостью и т.д. и т.п. Почему они нужны? Да потому что: 1. В задачах всегда чёткое условие → в работе задание часто размытое, нечёткое и меняется каждые несколько дней 2. В задачках обычно нужно написать одну функцию → в работе часто потребуется разбивать на несколько функций/классов и т.д. 3. Решение задачек пишется с нуля → в работе ваш код надо будет встроить в код, который уже был ранее написан другими 4. Тесты на Литкоде говорят «прошло/не прошло» → в работе программа может запускаться, но работать странно, даже мистически странно 5. Тесты на Литкоде говорят, какой именно не прошёл → в работе вы легко можете получить сообщение «что-то не работает», и дальше придётся разбираться самому 6. И ещё многие, многие другие вещи из реальной практики при решении задачек не встречаются Этому обычно не учат ни алгоритмические задачки, ни курсы программирования, потому что многие из реально рабочих вещей легко и автоматически не проверишь. И именно поэтому важно не только решать задачки и проходить курсы, но и пробовать делать какие-то свои проекты или прототипы проектов. Например, прототип банкомата — начните с простой программы, которая пишет, что у вас 1000 долларов, и спрашивает, сколько снять. А потом пишет, сколько сняли денег и сколько осталось. Добавьте туда шаг за шагом новую функциональность — проверка пин-кода, сохранение новых данных после закрытия программы (сколько теперь денег на счету), несколько счетов, несколько пользователей и т.д. и т.п. Чтобы это всё больше походило на то, как работает настоящий банкомат. Где застрянете? Где застряли, там и не хватает навыка, и это хорошо. Продолжайте делать проекты или прототипы проектов, так вы будете получать полезную обратную связь. Если вы застряли сразу, то тоже не переживайте — вас же просто не научили работать с проектами. Именно это частая причина того, что многие люди, закончившие курсы или решающие задачки, в итоге сделать ничего не могут, и приходится доучиваться. Раньше таких называли джунами и учили уже в компании, но теперь знания языка, даже вместе с умением решать задачки, недостаточно. Теперь от джуна требуется больше. Так что ищите, где у вас пробелы, ищите способы научиться.
760
5
Три проблемы, у которых одна причина. Пробуете изучать какую-то тему, приём, и 1. Всё понимаете, но на завтра в голове пусто. И потом ещё раз. И ещё. 2. Изучаете, и вроде всё понятно по отдельности, но в целое не складывается 3. Изучаете и вроде всё понятно, но только как-то быстро и сильно устаёте от всего этого. Из-за таких вещей можно и начать сомневаться в себе. Но на деле это обычное дело, большинство с таким сталкивается, просто кто-то чаще, кто-то реже. Было такое и у меня с темами, которые сейчас так, легкотня. Если с вами случилось что-то из этого, то происходит одна конкретная штука — переполнение рабочей (кратковременной) памяти. Дело в том, что за информацию, с которой мы работаем прямо сейчас, отвечает именно этот вид памяти, и он ограничен. Одновременно мы можем удерживать очень небольшое количество объектов, у всех людей примерно одинаково небольшое. И если нужно удержать больше — она не справляется, и получается одна из трёх ситуаций выше. Из-за чего это переполнение возникает? 1. Слишком много нового сразу. Новая тема, незнакомый синтаксис, непривычный инструмент — и всё в один момент. Каждый слой занимает место, а места мало. 2. Предыдущая тема не изучена как следует. Если прошлое усвоено надёжно, оно лежит в голове одним готовым куском, тогда вы и пользуетесь им не задумываясь. Если понято наполовину — приходится разворачивать его в голове заново, прямо по ходу дела. И эти обломки съедают место в рабочей памяти, которого и так мало. 3. Не за что зацепиться. Новое легче удержать, когда оно цепляется за знакомое. Если зацепок нет, каждый элемент висит сам по себе и занимает отдельную ячейку. 4. Автор вывалил всё разом. Для того, кто тему знает, все нюансы и исключения — единая картина. Для вас это десяток отдельных объектов, которые надо удержать одновременно. 5. Вы держите всё в голове. Хотя половину можно было выписать, нарисовать, разложить по шагам. Я про это уже писал — когда человек пытается одновременно понять задачу, придумать решение и написать код, он делает три дела разом и не справляется ни с одним. 6. Фоновая нагрузка. Сюда идут недосып, усталость, тревога, болезнь и прочее подобное. Объём рабочей памяти от такого становится меньше, а он и так небольшой. Что с этим делать Раз проблема в переполнении, то и решение не «стать умнее», а разгрузиться. 1. Выгружайте наружу. Записывайте, рисуйте схемы, расписывайте по шагам. Всё, что лежит на бумаге, не занимает место в голове. 2. Дробите. Не пытайтесь взять тему целиком — берите по одному кусочку и доводите до состояния, когда он не требует усилий. 3. Возвращайтесь к непонятому и разбирайте его отдельно. Если чувствуете, что каждый раз разворачиваете старую тему заново — вот она, дыра. Закрыть её быстрее, чем спотыкаться о неё на каждой следующей теме. 4. Не грузитесь в плохом состоянии. Час на свежую голову даёт больше, чем четыре часа в полусне. И ещё раз главное: если тема не лезет в вас — не переживайте, дело не в ваших способностях или личности. Объём рабочей памяти у всех небольшой, просто профессионал научился её не перегружать.
958
6
Что вы знаете о бардаке? Это вот мой рабочий стол. И он почти всегда такой. Да и вообще комната, в которой я работаю. У меня
Что вы знаете о бардаке? Это вот мой рабочий стол. И он почти всегда такой. Да и вообще комната, в которой я работаю. У меня в голове всегда хаос, куча каких-то идей, мыслей, и он отражается на окружении. При этом я время от времени прибираюсь, всё в комнате вылизываю, но через три дня всё возвращается к тому же состоянию. И такое со мной всегда. Но во многом благодаря этому я был готов к IT. Потому что в IT, в большинстве направлений, идеальный порядок недостижим. Но можно наводить разную степень порядка в разных вещах. На компьютере у меня всё чётко по папочкам и по категориям, часть информации в электронных табличках. Я умею упорядочивать проекты и планировать их. Да я соцсети веду довольно стабильно, в конце концов! И дома в остальных местах порядок я поддерживаю и слежу, там нет этого хаоса. Да, я пришёл к такому не сразу, многие стандартные вещи лично у меня вообще не работали. Но всё же постепенно я этого достиг. И даже в «комнате хаоса» есть зонирование — конкретные места для конкретных категорий вещей, большинство нужных вещей я нахожу довольно быстро. И так же я пришёл к тому, что в некоторых вещах порядок не нужно наводить ни в коем случае, а оставлять на волю случая и хаоса, иначе жизнь становится слишком скучной. Многие думают, что программирование не для них, потому что у них нет дисциплины, не получается себя заставить, в IT нужна усидчивость, а у них её нет и т.д. и т.п. Но структурность и порядок в разных направлениях часто не связаны. У многих людей с идеальным порядком дома на смартфонах и компьютерах хаос почище моего на столе — и наоборот, многие люди дисциплинированы в одной области и безалаберны в другой. И многие вещи можно наработать, даже если стандартные способы не работают.
1 135
7
«Вячеслав, здравствуйте! А почему такой приоритет идет именно на циклы и массивы? Вы считаете это очень важной темой? » Этот вопрос мне задали про задачник на циклы и массивы(они же списки в Python). И я думаю, полезно на него ответить. Циклы и массивы это одна из четырёх самых сложных для новичков тем — другие темы это рекурсия, работа с файлами и основы ООП. На этих темах новички обычно останавливаются и бросают. И тема массивов и циклов обычно идёт первой из четырёх. Да, я планирую задачники на все четыре, думал об этом давно. Более того, у меня есть уже курс по рекурсии на Python, где я постепенно и медленно втягиваю человека в эту тему, но я хочу сделать универсальный продукт так же, как с этим задачником. Так вот, этот задачник первый, так как эта тема изучается раньше остальных. Я вижу проблему и очень хорошо помню, что и мне она далась нелегко, спасибо преподавателям, что знали, как вытащить. Второй момент, почему такой приоритет — на циклы и массивы очень много завязано в программировании и они очень часто используются. Да банально если мы возьмём алгоритмические задачки, которые очень любят спрашивать на собеседованиях — смотрите, в алгоритмических задачах есть 8 базовых «приёмов», назовём для простоты это так. В 7 из них циклы и массивы используются. Кто-то мне напомнит, что классификаций таких приёмов много и где-то 8, а где-то 9, где-то 7 — и будут правы, но речь о том, что большинство задач требуют уверенного владения циклами и массивами. Пойдите на какой-нибудь Литкод, тренажёр алгоритмических задачек, посмотрите задачи и решения — в большинстве случаев там циклы и массивы будут. Да и чисто по работе — почти везде есть наборы данных. В соцсети есть набор аккаунтов, набор постов аккаунта, набор постов по хештегу. В банковских приложениях есть наборы клиентов, транзакций, сотрудников. Куда бы вы не пошли, почти везде будут наборы кого-то или чего-то, это сразу значит, что массивы нужны, чтобы с этими наборами данных работать. Поэтому важно разобраться с циклами и массивами, научиться вертеть ими легко и непренуждённо и так и сяк. То есть, наработать навык, нет, несколько навыков. А для этого нужно много-много с ними практиковаться. Да, можно без задачника, куча похожих задач это путь скучный, нудный. На индивидуальных занятиях я могу обучить человека этим вещам горааааздо веселее и бодрее. Но если человек хочет подешевле и сам, то лучше варианта я не вижу, чем идти так. По сути это такой концентрированный набор, который в итоге будет с запасом — все задачи прорешивать нужно будет мало кому. Кто-то будет решать половину, кто-то одну из трёх, кто-то ещё меньше, главное — много практики, чтобы довести работу с циклами до автоматизма. Без этого не получится справиться со многими более поздними темами. Так что, отвечая на вопрос коротко — да, тема важная и одна из ключевых, пронизывающая всё. Без неё никак, а существующие образовательные ресурсы недостаточно детально позволяют её прорабатывать. Кстати, на прошлой неделе я добавил в задачник 40 задач и их стало 180, на этой неделе постараюсь ещё 40, потом две недели где-то перерыв, потом снова. Хотелось бы хотя бы 40 в месяц добавлять, и напоминаю, что цену буду постепенно повышать, по 50 рублей/50 центов за раз, но всё же, после добавления ещё 40 задач как раз подниму цены таким образом.
1 014
8
Растёте ли вы как программист? Если вы стали ошибаться чаще, то точно да. Вы входите в область, которую раньше боялись, сложн
Растёте ли вы как программист? Если вы стали ошибаться чаще, то точно да. Вы входите в область, которую раньше боялись, сложную и непонятную. И от этого и начинаете ошибаться чаще. На знакомой территории у вас уже есть привычки, навыки, многое доведено до автоматизма, и поэтому ошибок немного или вообще нет. На новой для вас области многое до автоматизма не отработано, и там первое время лезут ошибки. Кроме того, поначалу все темы и задачи простые, там меньше возможностей для ошибки. А чем дальше, тем темы сложнее, тем больше там нюансов и мелочей. Так что если где-то в вас сидит идея о том, что увеличение ошибок говорит о каком-то ухудшении — поскорее разберитесь с этим. Потому что это петля, которая очень сильно душит и не пускает туда, где происходит развитие. Многие люди из-за этого сидят там, где попроще, всё знакомо, и не развиваются. И да, это всё не про зону комфорта, это про зоны актуального и ближайшего развития. На картинке написано про детей, потому что автор концепции (Выгодский) изучал тогда прежде всего детей. Но со взрослыми работает так же. Относитесь к возросшему количеству ошибок как к показателю смелости, а не показателю проблем. И думайте не о том, сколько раз ошиблись, а на чём вы ошиблись. Ошиблись в том, что уже делали месяц назад? Повод вернуться и доразобраться. Ошиблись в чём-то новом? Отлично, идёт развитие.
1 072
9
Продолжаем про планирование и сроки выполнения задач Теперь вы умный и знаете про сроки — что их нужно умножать на 4. Или вы в принципе уже настолько хороши, что вам это правило не нужно, вы грамотно оцениваете сроки без него. Дают вам задачу, спрашивают, сколько займёт — а вы «9 недель». И задача делается почти за 9 недель. Но вот приходит к вам менеджер и говорит, что задачу нужно выполнить за 3 недели. Хотя по вашим прикидкам 12. Вы говорите об этом, но менеджер настаивает на нереалистичном сроке. Почему? Потому что на него давят — начальство, заказчик. Никто не понимает, сколько задача займёт, но у них уже наверняка горят какие-то сроки, многое нужно запустить позавчера, а без выполнения этой задачи не сделаешь. И менеджер не дурак, просто давят на него и он передаёт давление на вас. Что делать? У вас есть два пути — случай компании хорошей(где всё очень грамотно организовано) и обычной😁 Если в компании всё как следует организовано: 1. Не спорить о сроке, а показать состав задачи — вместо «мне нужен месяц», рассказать, что «вот 12 подзадач, вот сколько каждая». Так спор о цифре превратится в разговор о содержании в теме, где вы эксперт. 2. Проговорить варианты и риски явно. «Три недели, если API отдадут вовремя, и пять, если задержат». Тогда срыв будет не вашим провалом, а сработавшим риском, о котором вы заранее предупреждали. 3. Предложить выбор вместо отказа — вместо «за неделю невозможно», сказать «за неделю можно вот эту часть, остальное потом». В таком случае вы уже не блокируете и не упираетесь, а даёте варианты — решение остаётся за менеджером, ответственность тоже на нём. 4. Зафиксировать письменно — не потому, что все обманщики и негодяи, это нужно, чтобы через месяц никто не вспоминал разговор по-своему, память у людей ненадёжная. Если компания обычная😁 Во многих компаниях всё грустно и так быть не должно, но так есть. Если есть возможность работать в командах с хорошей организацией, то лучше уходить туда, но если нет, то будем работать с тем, что умеем. Этот способ мы вывели на созвоне в чате «Программирование у камина» на тему карьеры. 1. Согласиться со сроками, взять задачу. 2. Сделать MVP — «минимальный работающий продукт» + навести ему марафет — чтобы с точки зрения менеджера и заказчика дизайн был как у готового продукта 3. Показать в конце срока проект, сказать, что да, проект в общем готов, вы готовы показать его, но из-за возникших нюансов запускать его не стоит, нужно их исправить. Перенести сроки на столько же. 4. Повторять 3 пункт, постепенно доводя проект до нужного уровня, пока не будет готов. Там же на созвоне участники рассказывали истории, как их коллеги или они сами прекрасно переносили так сроки несколько раз — при сроках в три недели переносили снова и снова на три недели, пока не накапливались те самые 9, 12 недель и т.д. И во многих из подобных мест таким специалистом менеджеры и начальство будут очень довольны. Потому что с их точки зрения всё прекрасно — они не понимают, сколько там задача эта должна делаться, а тут вот, человек в сроки штуку важную делает. А то, что там ерунда какая-то возникает по ходу и приходится сроки переносить — ну технологии, в них вечно что-то не так идёт, что поделать. Вы же вон, стараетесь и делаете всё, что можете, типичным упрямством технарей не страдаете, навстречу идёте. А клиенту с вашей помощью всегда можно объяснить и доказать, что работа прямо идёт, просто такая вот вредная штука, эти ваши технологии. Вообще рекомендую тем, кто в чате состоит, найти и послушать этот созвон, там много полезных и весёлых вещей было рассказано. Ещё вы можете комбинировать оба этих подхода, пробовать первый, потом переходить ко второму. Но довольно быстро вы разберётесь, как в вашей конкретной ситуации лучше действовать. В какую компанию вы попали😁. Так что помните, что есть места получше и похуже. И стремиться нужно туда, где всё организовано грамотно, но если пока не получается, то как-то организовать всё можно в большинстве случаев. И в любом случае, не забывайте, что важно учиться оценивать сроки, что у большинства профессионалов с этим тоже плохо. Поэтому пока работаете на ощущениях, умножайте на 4, и параллельно привыкайте засекать и отслеживать, сколько какая задача времени заняла.
848
10
Зачем я делаю задачник на циклы и массивы, если нейросеть всё нагенерирует? Мне такой вопрос задали после того, как я выложил свой. Я сам так думал и пробовал. Для задачника генерировал через Claude Opus и продолжаю до сих пор. В итоге проблема у него одна — он не понимает контекст так, как я. Да, всё ещё. И то, что он генерировал изначально, совсем не годилось — слишком быстрое усложнение, много путающих и сбивающих с толку деталей, добавлений. В конце концов я ему дообъяснил всё, последние 10 задач на новую тему, которые он выдал вчера — сгенерировал неплохо. Всё, наконец-то понял и не делает ерунды. Но я всё равно сел и переписал формулировку во всех 10 задачах, там не хватало пары полезных деталей. И 5 задач заменил на другие, потому что эти задачи лучше сработают. Потому что я знаю, что там и как у ученика будет на деле. А если уж говорить о выборе видов задач — тут я сильно с Клодом не согласен и разбил задачи на виды по-своему. Может, он более прав с академической точки зрения, но я знаю, что для тех, у кого с этими циклами и массивами проблемы, нужно разбивать иначе, на более мелкие темы. Так что ценность моего задачника по сравнению с тем, что сгенерирует даже лучшая нейросеть — в грамотном порядке этих задач и моём знании, где именно люди спотыкаются. А генераторы задач из лучших нейросетей не самые плохие. Только маршрут приходится самому отслеживать и отлавливать места, где их заносит не туда или что-то не учитывают. Ну и конечно очень полезно использовать нейросеть в качестве редактора/корректора. Где у меня лишний пробел стоит или что-то не сходится, она подсказывает часто. В итоге задачник делаю и проверяю не только я, но и нейросеть, так плюсы обоих подходов совмещаются.
725
11
Я конкретно так приуныл перед публикацией своего задачника-лестницы по циклам и массивам. И не сразу понял, в чём дело — всё как-то не шло, крокодил не ловится, не растёт кокос. А потом понял, что в голове типичные мысли вроде «да это никому не нужно», «да плохо сделано, надо детальнее проработать и больше задач» и т.д. и т.п. И это при том, что в комментариях в соцсетях многие люди мне написали, что да, очень трудно было на темах циклов и массивов (в Python списках), некоторые написали, что бросили программирование именно на массивах. Какая-то часть людей и без меня поняла, что проблема в том, что задач мало и после элементарных сразу идут сложные, простых и средних задач нет. В итоге с момента анонса задачника-лестницы каждый день один-два человека его покупали (фото в комментарий скину, только информацию персональную замажу). Убрало ли это совсем эти мысли? Нет😁. Потому что это давняя и вредная привычка, родом из детства, от нашего общества, от окружения полученная. Думать о себе плохо, связывать свою личность и свои результаты, недооценивать то, что делаю и сделал. Но она уже всё меньше и меньше мешает с каждым разом. А вам оно зачем Вам я это рассказываю не чтобы пожаловаться, а потому что это очень типичная штука не только для того, кто изучает программирование, но и для тех, кто там уже работает. Я со многими общался на эту тему — большинство программистов-профессионалов мне рассказывают, что да, подобные сомнения возникают у них регулярно. Особенно когда что-то опять долго не получается. «Да я не программист, я ничтожество, хватит позориться и надо уходить» — вот такие вот мысли у многих в голове возникают довольно регулярно. Но если они из-за того, что что-то не работает, то многим помогает финал. Когда они наконец-то справляются с возникшей технической проблемой и всё начинает работать — там наоборот мысли вроде: «Да я всё могу вообще!»🙂 Но и по другим причинам такие мысли бывают у многих людей, и ко мне на консультацию однажды зашёл даже один синьор. Он переживал из-за вещей, про которые многие сказали бы, что это ерунда, но вот он переживал и переживал, я ему был нужен, чтобы получить доказательство того, что у него мышление работает именно как у профессионала. И что я с этим сделал Я подумал о причинах и понял ещё одну важную вещь — что я себя подзагнал, очень многого от себя требовал на фоне кучи разных бытовых мелочей, которые кушали мои ресурсы. А это неправильно, важно себя уважать и ценить. И в таком состоянии подобные мысли легче приходят в голову и сильнее мешают. Поэтому я разгрузил себя, скинул всё, что мог. Например, не выпустил видео на Ютуб, запланированные сюда посты не дописал и не выложил. И сфокусировался на одном корневом деле — публикации задачника. Именно на том, за что все эти мысли зацепились. Поэтому даже анонс здесь был просто ссылкой со скупым текстом. Но я это всё переделаю. Называются такие мысли руминации, кстати. Можете почитать про них и то, как бороться. Некоторым, кого они одолевают, стоит обратиться к специалисту, психологу, например, потому что там важна не столько сила воли, сколько понимание и система инструментов, подходящая конкретному человеку. Мне помогает не придавать им значения, не обращать особого внимания (добрая ирония самое лучшее лично для меня), делать маленькими шагами и доводить до конца то, что их вызывает, и думать о своих достижениях и том, насколько я вырос в профессиональном плане за последние 10, 5 лет, год, полгода. Потому что у меня каждые полгода есть, что заметить, если бы не было, то я думал бы пятилетками. Так что многие из вас с этим сталкиваются и/или столкнутся — вы не одни, я с вами, работать с такими вещами можно и нужно, улучшить ситуацию можно всегда.
908
12
Задачник-лестница: циклы и массивы Вы дошли до темы циклы или массивы(в Python вместо них списки) и начали решать задачи. Первые задачи были простыми, а потом резко перестали что-то понимать и застряли. Почему? Потому что это довольно большие темы и большинству важно нарешать достаточно задач с постепенным повышением сложности. А вам дали мало задач, да ещё и с резким повышением сложности: элементарные → средние → сложные. Этот задачник — лестница от элементарных задач к сложным, где сложность повышается медленно, постепенно. Что внутри: Задачи на невложенные циклы и массивы по типам, типы идут по нарастанию сложности. В каждом типе 10 задач с растущей сложностью Сейчас 14 тем, 140 задач К каждому типу — объяснение метода и разбор одной задачи целиком Проверочные наборы задач, где типы перемешаны и не подписаны: сначала нужно понять, что за задача перед вами К каждой задаче пример: что на входе, что должно получиться на выходе Раздел о том, как выбираться из ступора — в том числе как спросить нейросеть так, чтобы получить подсказку, а не готовый ответ Чего пока нет: Задачи на вложенные циклы и массивы — они будут, просто я начал с элементарных и готовлю к ним. Когда я начну добавлять задачи на вложенные циклы и массивы, вы увидите, что эти виды задач уже встречались в невложенных. Задачник наполняется, но купив незавершённую версию сейчас, по сниженной цене, обновления получите бесплатно. Без привязки к языку. Задачи без кода, решения — псевдокодом. Python, JavaScript, C++, Java, C#, Go — любой. Если пишете на Python: то, что здесь называется массивом, у вас называется списком. Для кого. Для тех, кто уже пишет простой код, но упирается, когда задача усложняется. И для тех, кто пробует алгоритмические задачи и тонет на старте. Важно. Задачник не учит самим алгоритмам — он доводит до точки, с которой к ним можно подступиться и не утонуть. Готовых ответов внутри нет: есть примеры ввода-вывода для самопроверки. Задачник пополняется: сейчас циклы и одномерные массивы, дальше — вложенные циклы и двумерные массивы. https://app.lava.top/products/095cf31b-f7d7-4554-8a91-bfb69f3586a3
1 251
13
Есть в IT гейткиперы — держатели ворот. Они стоят на входе в профессию и стараются не пустить туда «кого попало». Негативный оттенок это слово имеет не зря, так как в «кого попало» они запишут реально кого угодно, сколько бы способным и ответственным этот человек не был. Они никакие диагносты и вердикты выносят на уровне бабушек у подъезда, которые за какую-нибудь мелочь запишут вас в наркоманы или проститутки. У гейткиперов и уверенности в своих выводах столько же, кстати. Я долго искал слово для противоположного углу, для таких, как я. И наконец-то нашёл — файрсайдеры. To fireside это место у огня. У костра, у камина. Куда можно сесть погреться. Для меня IT это часть того приятного и тёплого, что есть в нашем мире. Возможность почувствовать радость и уют. Да, токсичности там хватает и многого другого, конечно, туда ведь давно пришли корпорации. Но всё же тёплое и приятное там есть, если знать, где искать. И я сижу рядом с ним и греюсь, как у тёплого камина, или у костра, вокруг которого собрались люди. И я ни от кого не защищаю этот огонь, но и никого не зазываю. Да, вы не найдёте у меня заявлений, что можно войти в IT за пару месяцев, наоборот, я говорю, что не всем подходит такая карьера и входить в неё обычно занимает несколько лет, 3-5, но может и 10 лет. Я просто сижу, рассказываю какие-то вещи, которые для меня важны, когда меня слушают. И если кто-то подойдёт — я пододвинусь, чтобы дать ему присесть. Работать в IT не обязательно, но как-то приобщиться, например, в качестве хобби или что-то автоматизировать для себя — это доступно каждому. Собственно, клуб «Программирование у камина» для такого и создан
1 111
14
Первая версия задачника по циклам и массивам (спискам в Python) почти готова. Кто пропустил — он должен не только помочь справиться тем, кто на этих темах застрял. Он ещё и подготовить к алгоритмическим задачам на всяких литкодах должен, так как проблемы часто именно на этом уровне, пробелы в циклах и массивах. Пробелы и застревания на этой теме дело обычное, потому что тема большая, а задач дают мало. Дадут 10 задач, 2 лёгкие, одну ещё кое-как решил и остальные резко сложные и непонятные. Нет, у меня сейчас в задачнике уже 14 тем по 10 задач, 140 задач. И это только начало. Пока там самые лёгкие темы, нет ещё задач на вложенные циклы и массивы, задач, где нужно несколько циклов или массивов. Они появятся позже. А так в каждой теме в результате должно будет быть минимум 40 задач, максимум больше 100. И самих тем станет раза в два-три больше. Если всё идеально сложится, то задачник не просто будет готовить ко всяким литкодам, а заходить на их территорию. В том числе будут задачи «смешанные». То есть, изучил человек разные виды задач на массивы — и вот ему задача, которая по сути состоит из нескольких задач разных видов. И нужно это понять и грамотно использовать. Но к таким задачам тоже будет подводка. Сейчас, перед тем, как выпустить первую версию задачника со скидкой 50%(750 рублей/7.5 долларов/7.5 евро), я дорабатываю остальной текст. Рекомендации, советы, подсказки. Стараюсь все нюансы, которые только всплывали, учесть. Потому что можно и так нарешать эти задачи, что никакой пользы не получить. Потратив при этом кучу времени. Не хочется сильно душнить и растекаться мыслью по древу. Но и упускать что-то важное тоже. Надеюсь, через неделю-две всё будет готово и запущу первую версию. Надеюсь, всё же в этот раз не зря умножил не умножил сроки на 4😁 А кто уже подписан на «Программирование у камина» или на закрытый чат с курсами, тот может уже сейчас знакомиться с задачами. В чате с курсами я новый черновик задачника выкладываю раньше, в «Программировании у камина» позже.
1 290
15
«Нет математического склада ума? Программирование не для тебя. Пятёрки по алгебре в школе не было? ХА, ДАЖЕ НЕ СУЙСЯ» Часто встречаю этот миф в комментариях, на форумах — короче говоря, вроде бы от профессионалов в программировании. И им многие верят. Человек даже с четвёркой по той самой алгебре грустит, молча закрывает вкладку с курсом по программированию и выбрасывает эту идею из головы. Потому что что поделать, с рождения я вот такой, на программирование не способный. Что очень несправедливо, потому что давно уже неправда. Да, когда-то так и было. Изначально компьютеры были по сути калькуляторами-переростками. Их создавали для вычислений, для расчётов. И работало всё это на математике, занимались программированием учёные, лаборанты и прочие научные сотрудники. Тогда без математики соваться туда не было смысла. И сейчас, кстати, так и остаётся — там, под капотом. Вы в игру играете на смартфоне или видео смотрите — а ваше устройство считает, считает, считает. Плюс, минус, логическое «или», разделить, снова умножить, запомнить, очистить память... Но это именно под капотом. Между этим слоем и пользователем давно наросло несколько слоёв, слоёв абстрактных, в которых обычно особой математики нет. Точнее, нет математики, как её воспринимает большинство людей — нет там ни интегралов, ни синусов-косинусов, ни матриц, ни теории вероятностей. В отдельных направлениях есть, где-то даже очень много, но большинству разработчиков они не нужны, они возятся на абстрактных уровнях. Там работа скорее похожа на работу бухгалтера. Да, арифметика нужна, но не больше. Куда больше важно умение держать в голове и управлять всякими штуками, следовать куче правил, как с этими штуками работать. Но откуда же столько уверенных в том, что математический склад ума, понимание математики так важно? Причём уверенных профессионалов? Во-первых, люди из направлений, где это важно. Они часто не понимают вообще, что там у других программистов, просто считают большинство современных программистов — непрограммистами. Потому что такого уровня технических знаний у них нет. Во-вторых, многие профессионалы под математическим складом ума другое понимают. Не умение быстро решать тригонометрические задачи, а умение думать точно — удерживать логические цепочки, не терять условия и нюансы, замечать противоречия. Да, это очень важно в программировании, это частично те самые метанавыки, о которых я периодически пишу. Но этот самый склад складывается не в утробе матери. Эта штука очень даже нарабатывается, и нарабатывается по ходу изучения программирования. Если изучать не так, чтобы сдать, а чтобы понять, изучать на 50% больше материала, чем требуется, много практиковаться в разнообразных проектах, то через какое-то время и условный «гуманитарий» в себе этот самый математический склад ума обнаружит. А школьная алгебра — да слушайте, оценки больше говорят о том, как преподавалась эта самая алгебра. У многих так было, что поменялся преподаватель — предмет стал резко интересным и оценки улучшились. Или интересный предмет стал скучным и оценки снизились. А если добавить к этому, что мозг развивается до 30-35 лет (уже о таком говорят учёные), а то и дольше, и многое, очень помогающее в математике ориентироваться и точно мыслить, нарастает в нём только в 20-25 лет... То ничего о нынешнем вас этот самый школьный аттестат не говорит. Многим в 30, 40, 50 лет начинают легко даваться вещи, которые совсем не давались в школе. Так что если вы думаете, что у вас нет этого самого математического склада ума — это не причина от программирования отказываться. Точное мышление — то, что нарабатывается.
1 166
16
Похвастаюсь здесь, что ли, тоже новым отзывом и комментарием к нему Проект был не самый простой — чтобы вы поняли, одной из т+1
Похвастаюсь здесь, что ли, тоже новым отзывом и комментарием к нему Проект был не самый простой — чтобы вы поняли, одной из тем курса было создание собственных нейросетей. Пусть и не сильно глубоко в это приходилось погружаться. Одной из довольно многих тем, а знания Python и вообще программирования у ученицы на старте были околонулевые. И сроки были сжатые, но мы грамотно цели поставили и работали как надо. Ученица тратила кучу времени на подготовку, старалась, плюс неплохой технический бэкграунд был. Но если меня вернуть в наш первый созвон, то я всё равно бы никаких гарантий на старте не давал. Я обещал, что объяснить всё смогу и научить всему по теме смогу, было бы желание. Но времени могло и не хватить. Так что если вам нужна помощь, то лучше не тяните и обращайтесь как можно раньше #отзывы
1 375
17
Как я опять облажался или проблемы планирования в IT. Я писал выше, что начал делать задачник по циклам и массивам (спискам, если Python). Так вот, я взялся за дело и совершил просто типичную ошибку для IT. Я очень сильно ошибся со сроками. Думал, что первую версию, урезанную, выпущу через неделю. А на самом деле хорошо бы за месяц выпустить. И я расскажу вам, почему эта ошибка частая и как совершать её реже. В IT-компаниях люди постоянно ошибаются со сроками, по крайней мере, на постсоветском пространстве. Как это происходит: человеку дали задачу, он посидел, оценил, что нужно сделать, каждое дело прикинул по времени и сложил. Называет сроки. Но! Он не учёл, что не будет всё идти как по маслу. Ему для выполнения задачи нужно, чтобы кто-то из компании ему что-то дал или сделал? Это будет выполнено с задержкой, позже, чем казалось. Потому что у того человека внезапно болезнь, другая суперважная задача, сломался компьютер и т.д. и т.п. И не раньше и не после, а в самый неподходящий момент. Так же будут зависать и ломаться техника, люди ошибаться, будут масштабные форс-мажоры и т.д. и т.п. Нет, я не пишу про злой рок, что-то будет проходить как надо. Но что-то будет идти не как надо и жрать время. В итоге задача займёт в 4 раза больше. Но когда тот же самый человек получит такую же задачу снова, он оценит её в те же сроки, что и в первый раз. Потому что тогда всё как попало пошло, но в этот-то раз не будет такой ерунды! А ещё я уже опытный, даже если что-то из этого повторится, то знаю, что делать. Такой ерунды не будет. Будет ерунда другая😂. И опять задача займёт в 4 раза больше, чем казалось Именно так и попал я в ловушку. Я уже не раз делал подборки задач и что тут сложного? Ещё и нейросеть есть, она поможет. В итоге хочется-то сделать коротко и минимум, но хочется ведь хорошо. Нейросеть, платный Claude, неплохо сгенерировала по продуманному промпту 50 задач на 5 тем, по 10 на одну. Половину можно оставить, только надо переделать остальные и порядок поменять. Но хочется ведь сделать хорошо, чтобы как можно большему человеку всё было понятно и он эффективно пользовался без моей помощи. Хотя написать мне и спросить каждый купивший сможет. Но нет же! Ведь я обсуждаю с нейросетью, даю ей задания найти слабые места, найти, что сделать лучше можно. Сам пересматриваю. И в итоге переделываю, переделываю, переделываю. Добавил пояснение в начало задачника. Добавил некоторые темы. Добавил подсказки к некоторым задачам в конце блока. А потом ещё вот такой раздел. И такой. И т.д. и т.п. Короче говоря, уходит с опытом моим и нейросетью столько же времени, сколько и раньше, даже может быть больше. Просто оно уходит на проработку мелочей и общей системы. Качество лучше получится, причём его не заметит большинство и тех, кто будет решать эти задачки, и программистов-профессионалов. Но я иначе всё же не могу. Нужно довести первую версию до уровня «пойдёт», с моей точки зрения. Ну и ещё куча времени уходит на попугая и всякие бытовые мелочи, тоже часто неожиданные А теперь совет. Если вы будете работать над айтишными задачами(да и не только), то подходите к оценке сроков так: 1. Впервые берётесь за эту задачу? Тщательно просчитайте сроки всех подзадач, сложите и умножьте на 4. Вы можете умножить на 2 или 3. Но на деле в большинстве случаев сами поймёте, что надо было на 4😄 2. Если вы уже делали такую задачу, то ожидайте, что будете делать её столько же времени. Меньше бывает, но и больше бывает. Чаще столько же. Мы, люди, существа оптимистичные и самоуверенные. И я считаю, что аккуратно учитывать это про себя и других это уважение, уважение к себе и другим людям. Как можно реже ставить себя в ситуацию, когда не успеваешь и приходится пахать, пахать и пахать. Понравился текст? У нас тут лето, так что 10 положительных реакций и я напишу ещё материал на эту тему, а то и не один. Например, про то, что менеджер/начальство часто не дают эти самые х4 времени и что с этим можно делать
1 300
18
Что за штука такая этот ваш Докер? Программисты-профессионалы часто про него пишут, говорят. Представьте историю. Вы хотите создать приложение для генерации мемных видео. Для этого есть библиотека для Python. Вы ставите Python, библиотеку, начинаете работать — процесс не идёт как надо. Ерунда какая-то выходит, не то, что должно получаться. Копаетесь и выясняете, что нужно дополнительно библиотеку установить одну, которая делает круче. Она не обязательная, без неё работает, но вот так как попало. Вы устанавливаете — не работает как надо всё равно. Копаетесь, оказалось — уже что-то там в вашей Windows поменялось с обновлениями. А библиотека под эти обновления не обновилась. Но можно установить Ubuntu более старую, и там всё будет как надо! Устанавливаете Ubuntu, предыдущую стабильную, LTS-версию. Всё там устанавливаете — не работает опять. Копаетесь — оказывается, одна из библиотек не работает, слишком старая версия. Нужно обновить некоторые вещи в самой Ubuntu. Обновляете и начинает ломаться сама Ubuntu. Плюёте и ставите версию Ubuntu поновее, не стабильную, там уже та старая библиотека, третья уже, поновее из коробки. Всё установилось, всё заработало. Спустя пару недель возни. А теперь представьте, что есть программа, в которой для вашей цели есть контейнер. Это набор всего, что надо — специальная версия Ubuntu со всеми библиотеками и программами, которые нужны для вашей цели. Там всё проверено, там точно всё работает, ничто не слишком старое, не слишком новое, нет такого, что одна библиотека сломает другую. Вы запускаете специальную программу, она вам виртуально ставит нужную Ubuntu и всё, что надо, запустили — работает! Мемные видео генерируются как надо! Да, дополнительно кушает ресурсы, Windows+Linux, ну и ладно, ваших ресурсов хватает. Тем более, что в специальной программе используются механизмы для оптимизации, чтобы кушалось поменьше. Такие программы с готовыми подготовленными контейнерами под разные задачи существуют, и Docker — одна из них. Одна из самых популярных. Контейнеры делают и выкладывают в общий доступ люди, с помощью того же самого Docker — он и устанавливать, и управлять ими умеет. А выкладываются готовые контейнеры на Docker Hub. Если установите её и запутаетесь — не переживайте. Я вот сам как следует не разобрался, прямо чувствую это, что плаваю. Использовал всего пару раз. Чтобы разобраться, покопаться надо, поошибаться. Зато когда разберётесь... Ух! Ну и помните, что если вы не поняли — то вы пока не поняли.
1 095
19
Меня тут спросили про фронтенд, но ответ не только про фронтенд, а общий про программирование. Где можно оплошать, когда начнёшь работать программистом и как избежать этого? Оплошать легче всего и чаще всего получается одним способом: реализовать в коде только «счастливый сценарий». Я имею в виду ситуацию, когда всё-всё работает как надо. Пользователь всё сделает как надо, не наиворит ерунды нигде. Если данные куда-то уходят из программы, то дойдут нормально, если приходят — придут нормально и т.д. и т.п. На практике запросто может быть ситуация, что программа откуда-то получала данные и это прервалось на середине. Или данные передались, но слишком медленно. Или где-то пользователь поставил галочку для ситуации, в которой в этой галочке вообще нет смысла. И от этого программа или ломается или выдаёт какой-то странный результат. Как это не допустить? Чтобы этого не допустить, нужно знать о таких ситуациях и уметь их предугадать, включить в код, чтобы он был готов хотя бы к стандартным «несчастливым» случаям. Делается это через получение опыта. Как его получить? Делать свои проекты или прототипы проектов, очень близкие к реальным проектам. Не просто решать задачки в курсе, где код пишешь в редакторе курса и всё всегда идёт как надо. Тогда эти ситуации начнут у вас вылезать там, на ваших проектах, а не на проектах компании, и там же и научитесь с ними разбираться. Называются такие случаи edge cases, можно про них отдельно читать, но повторю, чтение не заменит реального опыта, когда нарываешься на такую ситуацию и справляешься. И при этом абсолютно нормально нарываться на ситуации, когда краевые случаи не учёл. Полностью от этого избавиться нельзя, время от времени и опытные профессионалы так ошибаются. Но они знают, как в таком случае действовать, как всё исправить, потому что у них уже есть такой опыт. И вы можете его наработать
867
20
Ох я упахался. Всю прошлую неделю я к этому шёл. Появилась новая нагрузка из-за того, что болеет попугай и с ним нужно много возиться, чтобы часть болезней вылечить, а часть стабилизировать, чтобы жить не мешали. И я давно уже выстроил баланс. Я регулярно хожу пешком на гору, на высоту 64-этажного дома. Питание, сон - всем я этим давно более-менее управляю, на каждую неделю есть план, как и на день. Я мог бы просто следовать этим своим наработкам, была возможность организовать всё умнее и не выматываться. Но я это не сделал Более того! В понедельник я продолжил и слег вечером с головной болью. Грубая и положительная ошибка. Как я к этому отношусь? Так же, как учу относится всем к ошибкам и проблемам в IT. Ошибки, провисания, тупняки это часть работы с большими сложными вещами, с программированием, с жизнью. Так что получился эксперимент, результат понятен — продолжаем дальше равнять баланс. Без переживаний каких-то лишних, спокойное действие. Как и спокойное отношение к ситуации с попугаем — лучше я буду ему как можно больше радоваться и поддерживать его в хорошем состоянии, ведь сильно все эти болезни не мешают ему жить пока что. И понятно, что делать, чтобы это продлить на как можно долгий срок. Остаётся только сжать кулак и, глядя в воображаемую камеру, повторить слова классика: «Работаем! Работаем!»
867