Задачи, которые мы заслужили
Вспомнил задачу из детского учебника по информатике пока выполнял задачи на степике по программированию, у которых не подходят решения, потому что забыли дописать что-то в условие.
Собственно на сколько сохранила моя память прикол:
"У вас имеется две кучки камней. В одной кучке 4 камушка, а другая кучка пустая....".
Дальше идут перемещения камушков, но "ПУСТАЯ КУЧКА КАМУШКОВ" навсегда осталась в моей памяти!
Ответ trdm в «Яндекс и "Цифровые профессии"»
Предложу своё видение материалов для начинающего python-разработчика на 2022 год. Есть общая часть для любого backend developer, она же годится для старта в data science и devops.
Сразу скажу, что 80% успеха в изучении — это самостоятельная работа. Ни один курс или преподаватель не сделает из вас специалиста, это доступно только вам. Помочь может размеренное изучение — 1 час изучения каждый день куда эффективнее, чем 10 часов в воскресенье.
Подборка бесплатного материала по python:
0. При погружении в новую область знаний сразу возникает вопрос, куда копать и с чего начать. Ответ можно найти в книгах, обзорных статьях, видео и других источниках. Одним из вариантов визуализации подобных знаний является roadmap. Это такая "дорожная карта" с пометками, что следует освоить. Самым популярным проектом является roadmap.sh. В их github 220к звёзд, настолько это общее место для индустрии. Прописаны roadmap для самых разных специализаций и технологий, в том числе по python. Недавно к каждому навыку они стали прикреплять пачку статей и видео из изучения. Roadmap позволяет выявить пробелы в текущих знаниях и наметить актуальные вопросы для изучения.
1. Классическим хорошим курсом для начала из бесплатных считаются Поколения Python на stepik для начинающих и для продвинутых от школы BEEGEEK. Первые два курса (для начинающих и для продвинутых) бесплатные, третий (для профессионалов) платный, стоит в районе 3к. В каждом курсе порядка 200+ тестов и ~300 интерактивных задач. Для начинающих покрывает базовые типы данных, циклы и ветвления, строки, списки, функции и не большой мини-проект в конце. Для продвинутых вложенные списки, кортежи, множества, словари, работа с файлами. Для профессионалов - исключения, итераторы, генераторы, регулярки.
2. Дополнить текст можно годными лекциями Тимофей Хирьянова из МФТИ.
3. Python: основы и применение на stepik. Тут пространства имён, классы, наследование, исключения, итераторы и генераторы, файловая система, лямбды, pep8, регулярки, немного про http и API.
4. Не питоном единым, поэтому надо ещё и немного в базы. Начинать однозначно стоит с реляционных баз. Можно посмотреть на Интерактивный тренажер по SQL. Тут и про реляционную модель в целом, про запросы, групповые операции, CRUD, и много практики
5. Надо освоить git, достаточно 4 глав из книги Pro Git. Сейчас git без вариантов, у него 97% рынка. Не писать код без локального git-репозитория вообще. Использовать серверный github/gitlab по желанию.
6. Дополнительно можно практиковаться на codewars и leetcode. Берём и решаем по задаче в день. Конкретно leetcode популярен при подготовке к собеседованиям.
7. Для общего развития есть крутой вводный курс в computer science CS50 от Гарварда. Он большой и на английском, начинается с Си и алгоритмов, а дальше про память, структуры данных, python, SQL, HTML, CSS, javascript и даже Flask. Такая сборная солянка. Есть видео-лекции, лабораторные работы с заданиями и всё такое. Говорят, что яндекс.браузер умеет на лету всё переводить, но я не пользовался.
8. Связанный с предыдущим пункт. Без английского нынче никуда. Кто посоветует, как тут можно начать? Мне кажется, что нужны основы языка (база типа грамматика по любому учебнику), а потом много практики уровня "перевод со словарём". Словарный запас всему голова.
9. В современном проекта никуда без тестов. Для python лидером является pytest, могу порекомендовать гайд Python Testing with pytest. Просто, Быстро, Эффективно и Масштабируемо
10. Без linux никуда, все сервера работают на linux. Кто знает хороший гайд для начинающего? Легко сказать "поставь ubuntu и разберись", но это сложно.
11. Без docker тоже никуда. Мне нравится огромный гайд Introduction to Containers в виде 829-страничной презентации. Тут и теория, и практика. Для углубления знаний есть Best Practices.
Когда есть базовый опыт на питоне, дальнейшим развитием является свой проект. Не гонитесь за чем-то уникальным, просто самостоятельно реализуйте что-то уже существующее. В процессе реализации вы начнёте сталкиваться со злым реальным миром, что даст вам много опыта. Например, можно повторить мой часовой стрим по созданию небольшого проекта на python с нуля до небольшого логического завершения.
Из книг для более глубокого понимания внутренностей Python рекомендую Лутца (двухтомник, нужно свежее 5 издание 2019-2020 годов). Многие жалуются, что книга тяжёлая для начинающего. Крутой книгой для повышения уровня я считаю Python. К вершинам мастерства Лучано Рамальо (в 2022 году вышло второе издание, лучше его).
При создании не учебного, а уже боевого проекта важно смотреть на готовые подходы. В статье Как анализировать предметную область перед разработкой на примере видеоаналитики я делился своим опытом подобной работы.
Постоянным источником материалов может быть телеграмм-канал devfm, где мы разбираем разные нюансы из жизни разработчика на Python и не только. Зачем нужен докер, что такое WSGI, чему стоит научиться в вузе, шаблоны проектирования микросервисов с недавнего highload++. По пятницам у нас культурный код с фильмами, книгами и всяким разным.
Продолжение поста «Хочу научиться играть в шахматы»
Итак продолжу серию, как и было продекларировано, выкладываю свою партию. Повторюсь, мой рейтинг на личессе около 2000, на чесскоме и того ниже в районе 1600 болтается. На личессе я играю не часто, а когда есть возможность полностью сконцентрироваться на партии. На чесскоме играю часто, но рейтинг не особо большой из-за того, что играю и на работе, и когда в машине жду детвору с тренировки или супругу с репетиции, поэтому очень много партий проигранных по времени, т.к. в описанных случаях, я не доигрываю, закидываю телефон в карман и как следует проигрываю партию.
И нескольким о себе, что было понятно, почему я тут экспертное мнение развел. Я тренер по шахматам, занимаюсь данным моментом уже более 8 лет. Начиналось всё с тренировки своих мальчишек (среднего и двух младших двойняшек). В 3 года каждый из них осознано заиграл. В 5,5 лет старший из двойняшек занял 3 место на первенстве N-ского региона и стабильно на пьедестале последние 5 лет. В нашем небольшом городе на КрСевере (около 45000 населения) мои мальчишки постоянно забирают пьедестал. 3 года назад я начал тренировать не только своих, но и набрал учеников. Сейчас у меня один ученик в 10 лет выполнил норму 3 разряда, двое с 1 юношеским, так же есть со 2 и 3 юношескими разрядами.
Сам как игрок, я не часто участвую в соревнованиях, больше уже как судья. В 2021 году на Гран-при России я набрал 6,5 из 11, при этом в двух партиях уронил флаг в выигрышных эндшпилях и одну партию проиграл сыну, не специально, а провел с ним тренировочную игру (да-да в рамках Гран-при))) и поставил ему ловушку, в которой была дыра, расчет на то, что просчитает дыру - выиграет - молодец не зря тренировались, не просчитает, значит выиграю я и тогда буду знать на какой момент уделить внимание на тренировках. Он просчитал и выиграл.
Так что я думаю, что в шахматах я нескольким разбираюсь.
Значится, дело было так
Итак, перед нами кривой, косой дебют Бёрда. Есссно лучший ответ на f4 - это c5, т.к. при помощи Сицилианской защиты черным проще всего уравнять шансы, а зачастую и получить преимущество в развитии, пока белые будут пешки расставлять.
Здесь я подумал, что соперник выбрал расстановку вариант "Каменной стены" из голландской защиты черных и естественно толкнул d5 рассчитываю забрать центр и вскрывать "каменную стену" через центр.
9. ... Ке5 - конь с b8 начал движение в сторону коня белых на f3 - стратегия по уничтожению защитников короля и развитых фигур соперника. Даже если сейчас посмотреть на позицию ,то видно, что белые отстают в развитии (2 неразвитые фигуры против 1 у черных), фигуры черных начинают концентрироваться в сторону королевского фланга белых, создавая там перевес.
не обращайте внимание, у меня чессбейс настроен на англицкое наименование фигур, чтобы если детвора заглядывает в комп для поиска подсказки, то им не особо было понятно, что за фигура и что за ход)
на 10 ходу белые вместо того, чтобы разменять коней на е5 дают мне возможность ходом 10.d4 разменять коней на f3, тем самым позволяя забрать полуоткрытую линию е и две отличные диагонали. При это они лишаются возможности раскрыть движение своему чернопольному слону, т.к. у белых нет движения е4, да и у коня белых так же нет хорошего движения.
11. g3 - ну здесь белые еще больше ослабляют не только своего короля, но и белопольного слона
далее последовал размен коня на белопольного слона белых, представляющего для меня некоторую опасность из-за возможной атаки на f7 и
15. ... Сh3 - окончательно убирает возможную атаку белых по линии f. При этом опять же стоит обратить внимание начинающих на чернопольного слона белых. Прошло 15 ходов от начала партии, а слон не получает никакой видимой возможности для активизации, можно сказать, что белые играют без фигуры.
т.к. никакого подобия атаки на моего короля не грозило, следует движение пешек f и h чтобы способствовать активности обоих ладей на королевском фланге, а так же блокировки полей для белого коня, не давая ему укрепиться в центре.
19 ... Лf8 - здесь движок рекомендовал сначала сходить g5, а же потом двигать ладью
Следует серия разменов, я начинаю уже просчитывать переход в эндшпиль, рассчитывая либо получить 3 пешки против двух на королевском фланге и пешечные острова белых на ферзевом, против моих пешек a и b, как следует подарок со стороны соперника
23. cd - данным ходом соперник проигрывал партию
23 ... Фс2 - угроза мата, я ожидал хода 24. Сd2 - что давало белым избежать мата, активизировать ладью, да с потерей двух пешек, но какую-то контригру данный ход позволял создать.
Следовало бы примерно следующее
24... Фb2
25. Лb1 Фd4+
26. Фе3 Фс4
последовала бы примерно такая позиция и пешку на b7 брать нельзя, т.к. следует мат Фf1 да конечно же у черных перевес, но таки не мат. Но тут соперник совершил еще один промах
пытаясь защититься от мата Фg2 соперник подставляется под мат
24... Фd1+
25. Фf1 Фf1#
по партии видно, что после 24 хода соперник сдался.
Хотелось бы еще раз обратить внимание начинающих на чернопольного слона и ладью на а1 белых - данные фигуры абсолютно не участвовали в игре, в то время, как взаимодействие всех фигур черных, концентрировавшихся на королевском фаланге привели там к перевесу.
Резюмировать не буду, т.к. партия моя, поэтому если подписчикам и читателям будет интересно, могут резюмировать партию в комментах.
Ответ на пост «Яндекс и "Цифровые профессии"»
Зачем курсы, если инфа валяется в интернете в неимоверном количестве?!?!?!?
Если интересует веб-разработка то могу посоветовать литературу с задачами, есть ссылки.
https://learn.javascript.ru/ - Современный учебник JavaScript. Довольно емкий, содержит примеры кода и задачи.
https://javascript.info/ - английская версия учебника.
Лично я скачал тебе оба сайта и сделал из них паралельную книгу. скриншот внизу.
https://msiter.ru/tutorials/html-nachalnogo-urovnya - Учебник HTML для начинающих. Рядышком лежат справочники по элементам и css.
https://msiter.ru/tutorials/css-nachalnogo-urovnya - Учебник CSS для начинающих.
Это браузерная часть, т.н. frontend.То что выполняется в браузере.
Теперь серверная часть, т.н. backend.
https://www.php.net/manual/ru/tutorial.php - Простой учебник по php. Является частью справочника по php.
https://oracleplsql.ru/mysql-manual.html - MySQL учебник.
рядышком лежат:
https://oracleplsql.ru/postgresql-manual.html - PostgreSQL учебник и
https://oracleplsql.ru/mariadb-manual.html - MariaDB учебник
если не хватит этой доки, то вот мой архив chm-ок:
https://github.com/trdm/chm - "MyMsdn. Компилирую для себя справку в формате *.chm по интересующим меня языкам и дисциплинам. Есть и стороняя справка, поскольку собираю в один каталог."
Это практически вся база, которой должен хорошо владеть веб-разработчик.
Что-бы потренироваться SQL есть самописная утилита
https://github.com/trdm/sqlquery/blob/main/bin/qtsqlquery.7z
она слегка топорная, делал для себя, все никак не предам её шифовке, но работает.
Есть еще из простых (тут более свежая версия Sqlite со многими плюшками и наворотами):
https://sqlitestudio.pl/ - SQLiteStudio
https://github.com/little-brother/sqlite-gui - Lightweight SQLite editor for Windows
скачивайте, распаковываетете, пользуетесь.
Триллер в учебнике
- сукин сын, я говорил я сделаю это!
- ты следующий!
Отличник или двоечник? Узнайте свой уровень подготовки к Евро-2024
Для всех поклонников футбола Hisense подготовил крутой конкурс в соцсетях. Попытайте удачу, чтобы получить классный мерч и технику от глобального партнера чемпионата.
А если не любите полагаться на случай и сразу отправляетесь за техникой Hisense, не прячьте далеко чек. Загрузите на сайт и получите подписку на Wink на 3 месяца в подарок.
Реклама ООО «Горенье БТ», ИНН: 7704722037
Продолжение поста «Хочу научиться играть в шахматы»
Как я заметил, на данном сайте принято благодарить подписавшихся, буду придерживаться правил. После моих разборов на меня подписались. Ну что, значит кому-то стало интересно и это радует. Стало быть надо оправдывать интерес. Как и просили, я буду стараться комментировать на уровне первого-второго года обучения, чтобы непосвященным было понятно почему и зачем были сделаны некоторые ходы. А так же чуть-чуть объяснять некоторые моменты из теории для новичков.
Как я и говорил, сегодня я разберу игру одного из моих учеников, вернее ученицы, которую я взял в прошлом году. Сначала я хотел предоставить бланк партии моего сына-ученика с первенства Н-ского Федерального округа, где он в 10 лет выполнил норму 3 спортивного разряда и по анализу движка точность ходов в этой партии составила 92%. Но подумал, решил что это будет нечестно по отношению к пресловутому комментатору из-за которого я и начал серию постов, и выбрал партию своей восьмилетней ученицы, близкой ему по рейтингу на личессе - 1269 на данный момент. К слову девочка занимается шахматами всего год с небольшим и еще в сентябре прошло года она даже не умела играть совсем. Да к моменту публикации мы эту партию еще на занятии не разбирали, есть конечно ошибки, помарки, неточности, что и понятно для девочки, которой только в ноябре исполнилось 8 лет.
Итак перед нами Венская партия, она нескольким похожа на Королевский гамбит, но всё же отличается. Разыграно четко и правильно. Белые имеют 2 пешки в центре, подготовлена рокировка. Всё разыграно по правилами дебюта: захватить центр, развить фигуры, спрятать короля.
Здесь есть ошибка, которая понятна, конечно в данном возрасте в приоритете - "спрятать короля".
Вместо 10. 0-0 лучше выглядело - Сс6, а уже следующим ходом рокировка. Взятие коня дает белым большое преимущество в развитии, в то время, как фигуры черных стоят на своих местах.
16. Лf2 - была упущена возможность разменять слона на 2 пешки, уничтожить защиту короля и, что самое главное - не терять инициативу. При этом черным так и не удавалось бы развивать фигуры, а если рассмотреть дальнейшие варианты (это я уже для искушенных шахматистов) то при правильной игре белых и даже при сильнейших ходах черных через 3 хода белые получали отличную атаку ,подтягивая ладьи. Но здесь не буду приводить полное дерево вариантов, если кому интересно, посчитайте сами на досуге.
Конечно умение не терять инициативу - это достаточно сложная вещь, но девочка учится.
18. g3 - грубая ошибка, вместо того, чтобы убрать Кf3 - подставляется под вилку
21. Лaf1 - потеряв фигуру, старается агрессивно атаковать, компенсировать тем самым потерю, осуществить навал на слабую f7. Вместо того, чтобы развить Се6, защитить тем самым пешку, развить слона, подготовить выход ладьи на линию е, следует критическая ошибка со стороны черных ... Фе6, чем ученица в полной мере воспользовалась.
22. Фg5+
23. Фd5 - как видно по ветке вариантов, не заметила выигрыш ладьи и загон короля в матовую сеть. Новичками свойственно через-чур беречь ферзей, размен ферзя, его жертва - психологический стопор, над которым мы пока еще работаем, чтобы его снять.
28. Лf4 - самый быстрый путь к победе. Соперника даже не спасал ход ... Ке6 - всё равно следует 28. Лg4 - и в ходе разменов, черные хоть и уходят от мата, но остаются в итоге 2 ладьи и конь, против ферзя и ладьи и равном кол-ве пешек - у белых явный выигрыш.
Но черные сходили ... а4 и получили мат в 3 хода.
Резюмируем. Для ребенка 8 лет достаточно неплохая партия, хорошо разыгран дебют, отыграна пожертвованная пешка, неплохо удерживала инициативу и очень хорошо четко увидена матовая атака.
Да есть ошибки - раздача пешек, пропущена вилка, не увидела выигрыш ладьи. Есть над чем работать.
Далее постараюсь выложить разбор какой-нить из своих партий, ну чтобы показать, что я таки играть умею. Я конечно не грос и по первой линии стокфиша, как Непомнящий и Карлсон не играю. Рейтинг на личессе у меня чуть больше 2000 - не такой уж и большой, но тем не менее я декларировал.
И еще момент. Была просьба в комментах от ТСа, который выложил пост "Хочу научиться играть в шахматы", мол объяснить разбор партий простым языком. Так вот если есть интерес к подобному робу разбору партий для начинающих, то напишите в комментах, я с удовольствием периодически буду выкладывать интересные партии моих учеников с разбором. А может, и кого-то из данного сообщества, кто захочет, чтобы я разбирал его партии, чтобы учиться на своих же ошибках.
За сим всё