Где Решать Задачи По Программированию?
Когда я начал изучать программирование, долго не мог найти место, где можно попрактиковаться в решении задач. В процессе поисков наткнулся на сайт Киберфорум. Туда кто угодно мог выкладывать задачи, например, часто писали студенты, которые не могут решить лабораторки. Конечно обитали там и разработчики. Их было мало и обсуждали они более серьёзные вещи. На этом форуме я и засел на долгое время.
Прошло несколько лет, появились десятки специальных сайтов-тренажёров с задачками по программированию. Однако для новичков вопрос «где практиковаться» до сих пор остаётся открытым, судя по комментариям в моих соцсетях. Поэтому в этой статье я расскажу о 5 лучших сайтах с задачами по программированию на которых ты можешь наработать практику и закрепить теорию. Меня зовут Макс. Я один из авторов YouTube-канала PyLounge. Поехали!
Codewars –онлайн-тренажёр с задачами на различные темы. По моим наблюдениям, это одна из самых популярных в СНГ площадок подобного рода. Здесь можно отрабатывать синтаксис языка, взяться за решение алгоритмических задач или что-то продвинутое по типу шаблонов проектирования. Решать упражнения можно на любом из 60 языков программирования. Все задачи разделены на уровни: с 1 по 8 kyu. Чем ниже номер уровня задачи, тем она сложнее. Соответственно 8 kyu — самые легкие задачи, 1 kyu – самые тяжёлые. Твоё решение сразу проверяются встроенными тестами на сайте. Можно посмотреть или обсудить решения других пользователей. Среди участников есть таблица лидеров, где можно померяться своим kyu’eм. Из минусов – русский язык на сайте отсутствует. Так что придётся напрячь ваши знания «Ландан из э капитал оф инглишь» или пользоваться переводчиком.
Кстати, у нас на канале есть видео, где я решаю задачи с CodeWars на языке Python. Советую посмотреть, чтобы получше ознакомиться площадкой.
Фишка платформы в том, что на ней регулярно проводятся соревнования по программированию. Даже некоторые официальные олимпиады, по типу ICPC, идут на базе CodeForces.
Примерно раз в неделю (иногда чаще, иногда реже) проводятся 2-х часовые соревнования. Они называются «Rounds».
Предлагается несколько задач различной сложности. Решать можно в любом порядке, на любом доступном языке программирования. Сложность определяет сколько баллов вы получите за правильное решение. Проверка решений автоматическая. Для участия в раунде нужно заранее зарегистрироваться.
Каждый участник имеет «рейтинг» — число, которое показывает насколько хорошо он решает задачи на раундах. Если выступать хорошо – рейтинг растёт, плохо – падает.
В зависимости от рейтинга все участники делятся на 3 дивизиона. Раунды обычно и проводятся по этим дивизионам.
Есть специальные «Образовательные соревнования» (Educational Rounds) или «Взломы». Суть как в раундах, с одним отличием. Если вы правильно решили задачу, то можете смотреть решения других пользователей в течении 12 часов. Смотреть не просто так, а чтобы находить в них ошибки.
Если нашли и подтвердили тестом, получаете плюс баллы. Такие приколы проходят раз в несколько месяцев.
После каждого конкурса выкладывают разборы задач в блогах. Для развития собственных скилов полезно анализировать чужие решения. Ещё кстати есть обсуждения.
Иногда на сайте проводятся просто тематические олимпиады, например, первая командная пред-Хэллоуинская интернет-олимпиада.
Кроме того, доступен большой архив с задачами с соревнований, которые уже завершились.
Всё это затевается исключительно в целях обучения и саморазвития, поэтому никаких призов кроме баллов получить нельзя. Опыт и навыки – это самый ценный приз. А ещё их Telegram спонсирует. Пашок в ерунду вкладываться точно не будет.
Project Euler
Project Euler – сайт с коллекцией задач разной сложности. Задания представлены в виде задачек по математике, геометрии и информатике. Например, найти сумму всех чисел последовательности.
На сайте нет онлайн редактора кода. Решаете у себя на компьютере, а затем пишите ответ в форму на сайте.
Доступно 760 упражнений. После того как дан ответ, можно войти в ветку форума этой задачи и посмотреть, как её решили другие. Похожие испытания дают на некоторых собеседованиях. Так проверяют уровень алгоритмической подготовки программиста. Если ты хочешь этот уровень подтянуть, то милости просим на Project Euler. Но только на английском языке.
Здесь тренируются программисты, которые хотят устроиться в крупную компанию. Задачки с LeetCode, или похожие на них, дают на собеседованиях в Google, Яндекс, Microsoft и т.д.
LeetCode – это в первую очередь сайт с задачами по спортивному олимпиадному программированию.
Доступно 1900 задач и 3 уровня сложности. Ориентированы упражнения на алгоритмы и структуры данных. Например, надо найти самую длинную подстроку без повторяющихся символов или обойти граф в ширину. Решать это можно на 20 языка программирования. Проверяется всё автоматически.
Можно подсмотреть решения, но без premium подписки не всегда. Однако всегда доступен раздел с обсуждениями. C платной подпиской ещё можно просмотреть подборки задач по популярным компаниям. Например, подборку задач от Google.
Можно отслеживать статистику своих решений. Например, посмотреть быстрее или медленнее ваш код по сравнению с вариантами других пользователей.
Также на сайте есть туториалы и раздел со статьями, где разбираются разные темы. Ещё и соревнования иногда проходят. Засесть можно плотно.
Из печального отмечу отсутствие русского языка и наличие ограничений у бесплатного тарифа.
Я давно варюсь в сфере IT. Смотрю интервью, слушаю подкасты, читаю статью, общаюсь с другими разработчиками. И по моим наблюдениям, программисты со всего мира используют LeetCode для подготовки к техническим собеседованиям.
Наш канал преимущественно посвящён языку Python. А как известно Python всем Data Scientist’ам отец. Поэтому я не мог не добавить в эту подборку сайт Kaggle.
Kaggle отличается от предыдущих платформ тем, что тут нет алгоритмических задач. Kaggle ориентирован на исследовательские задачи, связанные с машинным обучением и нейронными сетями. Это крупнейшая площадка для соревнований по Data Science (на момент 2017 года заявлен миллион пользователей).
Как проходит Kaggle-соревнование: организатор (часто крупная компания) публикует свой датасет, описание проблемы, сроки, критерии правильного решения. Участники решают задачу с помощью языка Python или R. Платформа автоматически проверяет решения по критериям организатора.
Лучшее решение получает приз. Просто участники — баллы в рейтинг на платформе. С помощью таких задач можно сделать себе неплохое портфолио.
Также на сайте пользователи публикуют свои наборы данных, создают и исследуют модели машинного обучения. Есть архив задач с решениями, раздел вакансий и обучающие ресурсы. Однако без английского снова никак.
Сейчас в отличии от далёких нулевых появилось множество сайтов, где можно попрактиковаться в программировании. Есть платформы на любой вкус. Рекомендую попробовать несколько и остановиться на той, которая покажется тебе наиболее комфортной. Ещё можно брать задачи сразу с 2-3 площадок и комбинировать их. Ведь чем больше ты практикуешься, тем больше уверенности получаешь и более заметным становится твой результат.
Я поделился своей подборкой топовых сайтов для практика программирования. А теперь призываю тебя. Напиши в комментарии достойные на твой взгляд ресурсы для решения задач по программированию. Я думаю это будет интересно не только мне, но и другим читателям.
Где решать задачи и практиковаться в кодинге на питоне и шарпе? [закрыт]
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.
Закрыт 8 месяцев назад .
Подскажите, пожалуйста, ресурсы(желательно бесплатные), где можно так сказать набивать руку, решать задачи, практиковаться в кодинге. На питоне и шарпе.
Кодворз, хакеранк, ЧЕКЙО.ОРГ. В основном алгоритмические задачи
Сайт acmp.ru — олимпиадные задачки по многим языкам, в том числе Python и C#.
![]()
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как изучить язык программирования Python?
В настоящее время существует огромное множество языков программирования, и Python является одним из наиболее популярных. Причина успеха – его относительная простота (по крайней мере, в сравнении с С++). Из этой статьи ты узнаешь о том, как начать изучать язык программирования Python и с какими трудностями тебе, возможно, придется столкнуться.
Вообще, этот шаг может быть выполнен практически на любом из первых этапов изучения Python. На самом деле, когда ты только изучаешь синтаксис и читаешь литературу, тебе не потребуется ни сам Python, ни среды разработки. Но некоторые хотят подготовиться заранее. Возможно, в этом есть доля логики. Поэтому скачай себе на ПК или ноутбук сам Python и выбери какую-то среду разработки (если у тебя Mac, скачивать язык программирования не нужно, так как он там уже предустановлен, а вот владельцам Windows в этом плане не повезло).
Что такое среда разработки? Простыми словами это текстовый редактор, в котором ты и будешь писать свой код. Таких сред для разработки большое количество. Вот лишь некоторый перечень программ:
- Visual Studio. Это многофункциональная IDE, совместимая с операционными системами Mac OS и Windows. Предлагается по бесплатной и платной подписке. Программа имеет свой набор расширений и предлагает возможность разработки с помощью различных языков программирования. Для работы с Python потребуется Python Tools for Visual Studio. Если вы используете Linux, версии VS для этой ОС нет
- Visual Studio Code. Это полнофункциональный редактор кода для Windows, Mac OS и LINUX. Для добавления языка Python, его необходимо найти в Marketplace и затем произвести установку.
- Sublime Text. Это еще один редактор кода, который можно использовать для работы с Python. Здесь предлагается не только поддержка редактирования Python-кода, но и целый набор плагинов, с помощью которых можно существенно упростить набор кода и расширить возможности редактирования.
- Eclipse+PyDev. Эта IDE содержит множество аддонов и расширений для разработки на разных языках программирования. Для Python создано PyDev, с помощью которого пользователь получает доступ к консоли Python и возможности отладки кода.
Синтаксис, основа основ любого языка программирования, будь то Python, Javascript или Java. Изучению синтаксиса необходимо уделить самое пристальное внимание. Иначе потом будут серьезные трудности. Хотя, если не выучить синтаксис, «потом» и не будет вовсе.
Для чего нужно знать синтаксис Python? Прежде всего для того, чтобы ты в будущем смог давать команды компьютеру на выполнение тех или иных действий. Вот простейший пример – ты хочешь получить значение выражения 2+2. Как это сделать?
Если просто попросить компьютер провести вычисление вроде «Ну пожалуйста, посчитай мне, сколько будет 2+3», в результате ничего не произойдет. Компьютер тебя просто не поймет. Для того, чтобы он произвел такие вычисления, тебе нужно обратиться к нему с помощью специального синтаксиса.
Вот пример того, как можно посчитать эту сумму с помощью Python:
На первый взгляд выглядит диковинно. Но тебе нужно привыкать. С помощью различных команд ты будешь давать компьютеру задания, которые он будет выполнять. Конечно, этот код является простейшим. В процессе написания программ кода будет намного больше. Но пока и этого достаточно для примера.
Помимо синтаксиса, тебе необходимо вникнуть в функциональное и объектно-ориентированное программирование.
Где изучить синтаксис Python? Начать можно с различных самоучителей, которых достаточно много в сети Интернет. Вот например, один из них. Этот самоучитель хорош тем, что дает хорошую базу. К тому же, подача материала как раз соответствует уровню начинающего разработчика.
Есть еще и такой учебник, но он, на наш взгляд, чуть более сложен в понимании. Вот еще один довольно интересный учебник для новичков. Здесь синтаксис, как и другие аспекты работы с языком, описываются достаточно просто.
Помимо учебников и самоучителей, можно также смотреть различные видеоматериалы, которых полно на YouTube. Поначалу ты не сможешь определять их качество и полезность, но по мере знакомства с языком, ты добавишь несколько авторов себе в закладки, а про других забудешь насовсем. Перед просмотром видео познакомься с комментариями. Иногда там отписываются разработчики и дают свою оценку качеству материала.
Python – это многозадачный язык, с помощью которого, например, можно заниматься веб-разработкой, писать игры или заниматься искусственным интеллектом. От того, какой выбор на этом этапе ты сделаешь, будет зависеть очень многое. Например, выбор библиотек для изучения.
Да, ты не ослышался. Выучить синтаксис языка и начать программировать на нем сегодня – это только полдела. В любом современном языке программирования есть несколько (а иногда несколько десятков) полезных библиотек, которые используются для выполнения тех или иных задач.
Этот шаг полностью теоретический. Тебе просто нужно сделать выбор в пользу того, что тебе ближе. На этапе изучения синтаксиса особой разницы в том, чем ты будешь заниматься в будущем, нет.
Этот этап очень важен, так как он помогает закрепить знания о синтаксисе языка Python, а также получить практическое представление о программировании. В процессе изучения языка, ты увидишь множество примеров кода. Но пока ты своими руками не создашь множество функций, не разработаешь множество алгоритмов, которые будут выполнять какие-то интересные задачи, ты ничему не научишься.
Где решать задачи по Python? Вопрос достаточно простой. Ты можешь вооружиться всемогущим Google и прямо у него и спросить: «Где решать задачи по Python»? Но мы решили помочь тебе в этом и подготовили несколько интересных ссылок.
Во-первых, ты можешь решать задачи самостоятельно, имея под рукой консоль и среду разработки. Но такой подход плохо работает, так как ты не сможешь проверить себя всесторонне. Поэтому лучше воспользоваться онлайн сайтами, специализированными на такого рода задачах:
-
. Здесь можно найти задачи по Python и Java. Здесь есть как простые, так и достаточно сложные задачи. Правда, пока что их не так много. Кстати, есть и собственный help раздел, где можно обновить знания по некоторым аспектам программирования на языке Python. . На этом сайте представлено множество задач для программирования на языке Python с решениями. Сайт полностью на английском языке, так что тебе нужно владеть этим языком на среднем уровне, как минимум. . Универсальный сайт с задачами для разных языков программирования. Веб ресурс сделан очень классно, можно выставлять свой уровень навыков и постепенно продвигаться от азов к вершинам. Задачи составляются самими пользователями сайта. Причем в каждой категории их очень много. На сайте реализована система проверки. Пользователям начисляются очки. Есть как русская, так и английская версии.
В принципе, на данный момент тебе хватит этих трех ресурсов. Например, на Edabit задачи постоянно дополняются, поэтому если сегодня ты начнешь изучать синтаксис, к моменту, когда ты перейдешь к задачам, их количество приятно порадует тебя.
Вот мы и подошли к тому счастливому моменту, когда ты уже можешь написать свою собственную программу и теперь тебе необходимо выбрать набор библиотек, с которыми ты будешь работать.
Для тех, кто работает с искусственным интеллектом предлагается следующий набор библиотек:
- Pandas.
- Pytorch.
- Seaborn.
- SciKit-Learn.
- Matplotlib.
- Keras.
Для квантовых вычислений подойдут такие библиотеки, как:
- PennyLane.
- Cirq.
- Qiskit.
На этом все. Казалось бы, твой путь к джуниору окончен. Но не спеши закрывать эту статью. Ниже тебя ждут некоторые полезные советы, которые пригодятся тебе при изучении языка.
Изучи объектно-ориентированное программирование. Это позволит тебе выйти на профессиональный уровень. Причем применять его в Python очень просто. Кстати, ООП — это парадигма в программировании, в которой основными концепциями являются понятия об объектах и классах.
Язык программирования красив тогда, когда на нем красиво написан код. Функция помогает сделать код более простым и читабельным. Более того, с ее помощью ты сократишь количество кода в своем приложении, что также является большим плюсом.
Зачем нужны функции в программировании на Python? Только представь, что у тебя есть кусок кода с двумя переменными, которые необходимо сложить. Как в нашем примере выше, где мы рассказывали про синтаксис.
Если у тебя в программе только один кусок кода с этим уравнением, не страшно. Хотя лучше сразу учиться лучшим практикам программирования. Но если этот же кусок кода планируется повторить в приложении несколько раз?
Без использования функции, ты будешь заниматься обычным копипастом. Выглядеть в коде все это не очень хорошо, так как ты будешь постоянно повторять один и тот же кусок кода с разными значениями переменных. Функция позволяет один раз обернуть этот кусок кода таким образом, что при необходимости использовать эту же формулу с этими же переменными в другой раз в коде, ты просто вызовешь эту функцию и дашь ей нужные параметры.
Сложно? Ничуть. Возможно, первые функции будут вызывать у тебя недоумение, зато потом, когда ты будешь делать свое первое приложение, ты поймешь, насколько они облегчают жизнь программиста и делают код более красивым и практичным.
Программист программисту рознь. К сожалению, далеко не все, кто сегодня занимается разработкой, умеют оставлять такие комментарии, которые бы были действительно полезны. А некоторые и вовсе умудряются писать кучу кода без комментариев.
Казалось бы, зачем они нужны? Когда ты пишешь одну функцию, в которой всего одно действие и две переменные, комментарии излишни. Здесь и так все понятно. Но если ты пишешь большое приложение с длинным кодом, конечно, лучше оставлять комментарии. Даже для себя, чтобы понимать потом, какая часть кода за что отвечает.
Для чего еще нужны комментарии? Представь, что тебе предложили хорошие деньги в другой компании. Ты собрался и ушел, а на твое место в старой компании пришел другой разработчик. Естественно, он получает твой код и недоумевает. Без комментариев он будет очень долго вникать в суть написанного тобой.
Казалось бы, ну и ладно, но что, если такой код придет к тебе? В общем, учись сразу взаимоуважению и правильно комментируй. Да и вообще, старайся изначально учиться так называемым Best Practices, то есть лучшим практикам в программировании.
Многие начинающие программисты, которые только постигают азы разработки на Python или на другом языке, как-то стесняются обращаться к Google, а иногда и не знают, как правильно задавать вопросы.
На самом деле Google (условно любая поисковая система) – лучший друг программиста. Если ты думаешь, что все разработчики все помнят и знают, ты глубоко ошибаешься. Конечно, они не идут в Google чтобы посмотреть, как в языке объявляются переменные или как оборачивать код в функцию. Но у них хватает других вопросов.
К тому же, есть масса профильных форумов и сайтов, где можно пообщаться с другими разработчиками и получить ответы на свои вопросы.
Очень важно научиться правильно спрашивать. В этом случае ты будешь получать максимально полезные ответы в сжатые сроки. Хотя в первое время придется поучиться пользоваться поисковиком.
В этой статье мы пошагово рассмотрели все, что тебе пригодиться, чтобы начать изучать Python. Мы дали тебе также несколько практических рекомендаций, который действительно полезны, так как они получены исходя из опыта обучения программированию.
Где брать задачи на python?
Изучаю python по книге М. Саммерфилд «Программирование на Python 3» и прохожу курс на Stepic. Мне безумно нравится в степике то, что после каждого материала мне дают задание по типу «напишите алгоритм, который принимает числа, считает их, и, когда пользователь нажмёт ноль, выводит результат (это задача к циклу while).
Знаю, что они для вас элементарны, но они интересны и помогают закрепить материал. Но курс скоро подойдёт к концу, материала, который надо изучить ещё ого-го.