Category: it

Category was added automatically. Read all entries about "it".

розовый глаз

Как убрать сайт из автозагрузки

При включении компа открывался браузер с сайтом exinariuminix.info

Чтобы его убрать в Windows 7, нужно открыть Пуск - Все программы - Стандартные - Выполнить, набрать regedit (это редактор реестра) и убрать ключи с этим exinariuminix.info из веток (если есть):
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

Если потом появляется снова, то значит, надо антивирус получше моего бесплатного Avast.
розовый глаз

Требования вакансий Junior Python Developer на hh.ru

Всё ещё интересуясь Python, отобрала 50 вакансий за неделю. Дальше по списку шли гораздо менее релевантные - на других языках и прочие. Рассматривались вакансии разработчиков, а не аналитиков, QA, преподавателей и прочих. Рассматривались вакансии для удалённой работы.

Требования очень сильно различаются, везде длинные списки технологий, различающиеся от одной вакансии к другой. Насчитала 114 видов требований, не включая некоторые базовые как знание английского языка, знание экосистемы Python, умение работать в команде, которые сочла общеобязательными. Далее числа обозначают число вакансий с данным требованием. Разбиение по тематикам выполнено в меру моего (не-) понимания данных технологий.

Фреймворки: лидеры - Django, Flask (половина вакансий или больше)
Django 23,
Flask 11,
async.io 6,
aio-http 3,
Tornado, Pyramid по 1

Collapse )
розовый глаз

Редактор текста Atom


Хочу рассказать об этом удобном бесплатном текстовом редакторе.

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

Удобство в том, в частности, что есть возможность легко создавать дерево из файлов и папок. А также при вставке текста он автоматически укладывается по ширине страницы - если включить в editor настройках Soft wrap.
розовый глаз

Бесплатные курсы программирования

Решила завести пост для ссылок на хорошие подборки.

Сама взялась недавно перейти с Python на Java. Логика такая, что на Питоне пишут веб и машинное обучение, а на Джаве практически всё что угодно, надежда на разнообразие на будущей работе. Что конечно, не гарантирует, что не будет всё тот же веб. Прошла курс на Степике, хороший курс. Сейчас взялась за javaRush. Начало сильно пересекается с курсом Степика, а времени нужно гораздо больше, но и задачек тренировочных больше, а дальше маячат новые темы и шанс пройти стажировку про Спринг. И очень понравилось программировать там игры.

Ещё очень хороши задачки на ресурсах вроде https://www.codewars.com
Там разделение программистов по "поясам", как в восточных боевых искусствах. Примерное разделение:
Белый пояс 8 кю - задачи на знание синтаксиса.
7 кю - задачи, решаемые в одну строку из нескольких функций, знание основных модулей.
Жёлтый пояс 6 кю - написать несколько строк кода, одну функцию.
5 кю - требуется знание классических алгоритмов и структур данных, например алгоритма Евклида, умение использовать словарь словарей, разбивать код на функции, оптимизировать код.
Синий пояс 4 кю - нужно уметь писать самим несложные алгоритмы динамического программирования, классы, декораторы, знать паттерны проектирования.

Собственно, подборка:
https://habr.com/ru/company/habr_career/blog/516360/ Бэкенд
https://habr.com/ru/company/habr_career/blog/512040/ Фронтенд
https://habr.com/ru/company/ruvds/blog/518914/ Tensorflow

Если вкратце:
Java легче, чем Python, т.к. меньше надо заучивать функций, всё аккуратно систематизировано, статическая типизация предупреждает многие ошибки. Но курсы для новичков по питону найти проще, по джаве бесплатный курс на stepik.org рассчитан на тех, кто уже умеет программировать на другом языке, например том же питоне. Так что начать придётся с питона, потом перейти или не перейти на джаву. В любом случае одного знания языка для трудоустройства недостаточно. Питонистам надо ещё знать как минимум Django, а джавистам Spring, в обоих случаях найти хорошие бесплатные курсы проблематично. Впрочем, по спрингу видела что-то на coursera.org, а по джанго есть djangogirls.

Update: снова взялась за Python, для определённой вакансии. Нашла отличный курс по джаве и питону https://hyperskill.org
Позволяет выявлять и устранять пробелы, оставшиеся после изучения тут и там. Обучение совмещено с практическими проектами, которые затем размещаются в портфолио на гитхабе.
Upd: на гиперскилле можно изучать бесплатно также Spring и Django. Лучше всего перед регистрацией получить приглашение от одного из пользователей (рефералку), тогда плюс три месяца бесплатно, а помимо этого есть два бесплатных месяца за выполнение первого проекта за неделю. Вот тут чат, где можно получить пригласительную ссылку (на английском): https://discord.gg/ut6nEqu

Update: ещё хорошие русскоязычные курсы есть на openedu.ru, в т.ч. по Django, но по сравнению со степиком показались более сжатыми и не так удобно смотреть структуру курса, а кроме того сертификаты платные, но недорогие, и требуют видео-участия в экзамене. На Coursera есть большая бесплатная специализация по Python от Mail.ru.
розовый глаз

Как бесплатно обучиться программированию на языке Python (часть VI)

Продолжим изучать бесплатные онлайн-ресурсы по языку программирования Python. Предыдущие части здесь. Почему мы смотрели ранее только задачники, а не курсы с теорией? Потому что, на мой взгляд, программист – это тот, кто может решать задачи с помощью языка программирования. Просто послушав лекции, нельзя стать программистом. А кроме того, обозревать задачники веселей :) Но всё-таки иногда надо и теорию изучать.

Сегодня я задалась целью попробовать осмотреть бесплатные курсы по Питону на Курсере. Задача непростая. Поиск по каталогу по слову Python выдаёт 190 курсов, но многие из них платные. А мы ищем бесплатные (замечу, что получение сертификата в любом случае платное), на русском или английском языке. Фильтра поиска по платности не обнаружила. Что ж, займёмся сортировкой. Объём курса я сравниваю с базовым курсом для новичков, который уже упоминала, и указываю, если обнаружила темы, которых там не было. Для курсов указывается дата старта, но обычно можно начать изучать раньше.

---------------------
Новичкам (Beginner)
--------------------
Основы программирования на Python
Обучение новичков программированию на Python 3 на русском языке за 9 недель. В сравнении с базовым курсом, есть дополнительная тема про классы, а также другой набор задач. Требования: CPython 3.4+, JetBrains PyCharm. Старт 5 марта. National Research University Higher School of Economics, Россия. Оценка 4.6.

Python Programming: A Concise Introduction
Обучение новичков основам Python 3 за 4 недели на английском языке. Включает написание программы работы с базой данных. Старт 26 марта. Wesleyan University, США. Оценка 4.6.

Learn to Program: The Fundamentals
Обучение новичков основам Python 3 за 7 недель на английском языке, есть субтитры на казахском и итальянском. Старт 12 марта. University of Toronto, Канада. Оценка 4.7.

Programming Fundamentals
4-недельный англоязычный курс, где новичкам объяснят 7 шагов правильного написания программ на любом языке программирования. Подготовительный курс для изучающих язык С. Старт 5 марта. Duke University, США. Оценка 4.6.

-------------
Intermediate
(Курсы для тех, кто уже освоил основы Python, а также где предлагается изучать прямо в процессе решения задач)
-------------
Введение в машинное обучение
Думала, нужно ли выделять отдельно курсы изучения самого языка и его приложений. Решила, что нет. По сути, даже задачки в курсах – тоже вид приложений. Вы изучите основные типы задач, решаемых с помощью машинного обучения — в основном речь пойдёт о классификации, регрессии и кластеризации. Узнаете об основных методах машинного обучения и их особенностях, научитесь оценивать качество моделей — и решать, подходит ли модель для решения конкретной задачи. Курс 7 недель на русском языке. National Research University Higher School of Economics, Yandex School of Data Analysis, Россия. Оценка 4.6.

Data Processing Using Python
Обучение новичков основам Python 3 и его использования для обработки финансовых данных, визуализации, написания графических интерфейсов – довольно насыщенная программа для 5 недель. Англоязычная версия популярного китайского курса. Старт 5 марта. Nanjing University, Китай. Оценка 4.3.

Simulation and modeling of natural processes
За 8 недель на английском языке расскажут о моделях, применяемых в различных областях науки: движение жидкости, эволюция населения и проч. Старт 6 марта. University of Geneva, Швейцария. Оценка 4.3.

Social Media Data Analytics
За 4 недели на английском языке научат, как использовать API социальных сетей для скачивания их данных, и как затем анализировать эти данные. Rutgers the State University of New Jersey, США. Оценка 4.1.

Data Analytics Foundations for Accountancy I
За 8 недель на английском языке научат делать анализ финансовых данных в Python (+Pandas, Numpy). Часть платной специализации, в которой можно онлайн получить степень магистра. Старт 12 марта. Иллинойсский университет в Урбане-Шампейне, США. Оценка

Learn to Program: Crafting Quality Code
Описание этого 5-недельного англоязычного курса довольно размытое и говорит об обучении написанию качественного кода. В комментариях пользователи поясняют, что речь про Python для начинающих. Старт 5 марта. University of Toronto, Канада. Оценка 4.6.

Программирование на Python
Курс обучения языку Python тех, кто уже имеет опыт программирования на каком-нибудь языке. Программа курса включает структуры данных, классы, многопоточное и асинхронное программирование. Итоговый проект – серверное приложение для получения метрик от множества клиентов. Курс на русском языке, 6 недель, старт 5 марта. Moscow Institute of Physics and Technology, Mail.Ru Group, Россия. Оценка 4.7.

Global Warming II: Create Your Own Models in Python
В этом курсе предлагается изучать Python (в связке с Excel) прямо в процессе расчёта модели глобального потепления. Имеется предыдущая часть курса, где описывается научная составляющая. Язык английский, 5 недель. The University of Chicago, США. Оценка 4.2.

A developer's guide to Exploring and Visualizing IoT Data
За 4 недели на английском языке обучат работе с данными сенсоров Интернета вещей на языках R, Scala, Python (фокус на Python). Рекомендуется предварительно ознакомиться с основами SQL и с курсом про Интернет вещей, который требует принятия лицензионного соглашения, наличия Raspberry Pi, желательно с SenseHAT, а задания проверяет с помощью IBM Bluemix cloud platform: если не уложились в 30 дней, то нужно ввести данные кредитной карты. Старт 5 марта. IBM, США. Оценка 4.6.

Biology Meets Programming: Bioinformatics for Beginners
Обучение основам биоинформатики на языке Python, курс подготавливает к обучению на платной специализации. Язык английский, 4 недели. University of California, San Diego, США. Оценка 4.5.

Machine Learning
Набор из 4 курсов по 6-7 недель на английском языке по машинному обучению на языке Python. Старт 5 марта. University of Washington, США.

Introduction to Apache Spark and AWS
За 4 недели на английском языке научат основам анализа больших данных с помощью Apache Spark. Требуется знание основ Python и Unix. Старт 12 марта. University of London, Великобритания. Оценка 3.4 по 16 отзывам.

Audio Signal Processing for Music Applications
Курс про обработку аудиосигналов в музыкальных приложениях. Всё open-sourse: Python, Ubuntu. Английский язык, 10 недель. Старт 26 марта. Universitat Pompeu Fabra of Barcelona, Испания, Stanford University, США. Оценка 4.8.

Introduction to MongoDB
За 3 недели на английском языке научат использовать MongoDB. Требуется иметь знание основ анализа данных и Python, Jupyter Notebooks. Старт 12 марта. MongoDB Inc., США. Оценка 4.7.

Hadoop Platform and Application Framework
За 5 недель на английском языке научат анализировать большие данные с помощью Hadoop и Spark. Старт 5 марта. University of California, San Diego, США.

Computational Investing, Part I
8-недельный англоязычный курс о том, как оценивать цену акций, диверсифицировать портфель ценных бумаг и т.д. В описании курса не упоминается Python, но в программе указан его модуль QSTK. Старт 12 марта. Georgia Institute of Technology, США. Оценка 4.5.

Data-driven Astronomy
Курс о том, как современные астрономы обрабатывают свои большие данные на Python: вас познакомят с базами данных на примере изучения экзопланет, с методами классификации на примере разных типов галактик и т.д. Английский язык, 6 недель. Старт 12 марта. The University of Sydney, Австралия. Оценка 4.8.

Специализация Data Engineering on Google Cloud Platform
Специализация из 5 курсов, для бесплатного обучения требуется пробный аккаунт Google Cloud, который длится 12 месяцев либо до исчерпания кредитов на сумму 300 баксов. Язык английский, старт 5 марта. Google Cloud, США.

Digital Signal Processing
За 8 недель на английском языке расскажут про цифровую обработку сигналов. Фокус на теории, но имеются практические задания на Python, можно использовать другие языки программирования. Курс начался в феврале. École Polytechnique Fédérale de Lausanne, Швейцария. Оценка 4.7.

---------------------------------
Advanced (Повышенной сложности)
---------------------------------
Neural Networks for Machine Learning
Курс 2013 года по нейросетям на английском языке на 16 недель. University of Toronto, Канада. Оценка 4.6.

Discrete Optimization
8-недельный англоязычный курс по решению сложных программистских задач с помощью концепций и алгоритмов дискретной оптимизации. По-видимому, не привязан к какому-либо языку программирования. Старт 12 марта. The University of Melbourne, Австралия. Оценка 4.9.

VLSI CAD Part II: Layout
5-недельный англоязычный курс по проектированию чипов VLSI или инструментов для работы с ними. Требуется сперва пройти первую часть курса. Не привязан к конкретному языку программирования. Старт 19 марта. University of Illinois at Urbana-Champaign, США. Оценка 4.9.

Applied AI with DeepLearning, IBM Watson IoT Data Science Certificate
За 4 недели на английском языке расскажут про глубокое обучение с применением новейших технологий. Один из 4 курсов специализации, два из которых ещё в разработке. К языку программирования не привязан, но предпочтителен Python. Старт 12 марта. IBM, США. Оценка 4.5.
розовый глаз

Как бесплатно обучиться программированию на языке Python (часть V)

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

Ранее я уже упоминала замечательный сайт stepic.org, где есть большое количество бесплатных онлайн-курсов для обучения разным языкам программирования, в том числе и курс языка Python для новичков. Далее его здесь будем упоминать как «базовый курс» и будем считать, что задачник имеет низкую сложность, если его сложность примерно на уровне этого базового курса. Есть и множество других курсов на разные темы, например про нейронные сети, а также и про философию научного мышления, компьютерную обработку речи и прочее. Мы же здесь повнимательней взглянем на задачники этого сайта по Python. Их мною было обнаружено пять. Объём задач в них, в основном, небольшой, в том смысле, что решение задач обычно записывается небольшим числом строк кода.

Адаптивный тренажер Python
Число задач: 52
Язык: русский
Теория Python: нет
Сложность: низкая (подойдёт для тех, кто освоил базовый курс Python)
Тематика: разнообразная (алгоритмы, шифрование, числовые последовательности...)
Поддержка: пользователи много комментируют, им отвечают, так что застрять вряд ли удастся

Слово «адаптивный» в названии означает, что курс должен подстраивать свою сложность под ваши навыки. На практике это означает, что сложность задач будет рандомной: сперва вас могут попросить написать программу-калькулятор, а потом в следующем задании – вывести на экран «Hello, world». В этом подходе есть свой шарм: присутствует интрига, какая задача попадётся следующей, как в волшебных конфетах с непредсказуемыми вкусами в сказке про Гарри Поттера. Нет такого однообразия, когда подряд идут задачи на одну и ту же тему.

Тем не менее, в курсе только задачки, которые решаются с использованием тех знаний, которые получены на базовом курсе (возможно, придётся самостоятельно изучить метод format ()). Не даются новые теоретические знания. Кому может быть полезен такой задачник? Если вы прошли базовый курс, но чувствуете себя неуверенно, когда пишете программы с применением полученных знаний, вам нужно набить руку, чтобы писать код без подглядывания в конспекты и не ошибаясь в скобках/запятых. В общем, как и указано в названии, это тренажёр.

Adaptive Python
Число задач: 427
Язык: английский
Теория Python: практически нет
Сложность: средняя
Тематика: разнообразная, но с уклоном в алгебру, алгоритмы, теорию чисел
Поддержка: поясняющих комментариев мало

Этот задачник похож на предыдущий, но существенно больше по объёму и на английском языке. Причём увеличение объёма достигнуто во многом за счёт добавления задачек на различные разделы алгебры. Например, составьте программу для вычисления цепных дробей или решения системы линейных уравнений. Есть и алгоритмические задачи на сортировку, работа с текстом, списками и проч. Местами встречаются небольшие теоретические пояснения, но в основном нового материала по Python не даётся: это тоже тренажёр, а не учебник. Объяснение математической теории даётся, в основном, в виде ссылки на Википедию.

Сложность, на мой взгляд, выше, чем у предыдущего задачника, во многом, из-за того, что во многих задачах нужна математическая подготовка, чтобы понять, что вообще требуется. Но для программирования будет скорее всего достаточно всё тех же знаний базового курса Python, не потребуются математические пакеты вроде numpy, хотя можно их применять. Кому может быть полезен этот курс? Вероятно, тем, кому не хватило предыдущего задачника, а также тем, кто хочет тренироваться именно на английском языке.

Практикум - Математика и Python для анализа данных >в разработке
Число задач: 105
Язык: русский
Теория Python: имеется (см. пояснения)
Сложность: неоднородная (от средней до низкой)
Тематика: разнообразная, в т.ч. есть задачки на геометрию
Поддержка: поясняющих комментариев мало

Курс производит несколько странное впечатление с точки зрения сложности задач. Начинается с задачек на геометрию вида «найти площадь данной фигуры»:

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

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

Введение в биоинформатику
Число задач: 58
Язык: русский
Теория Python: имеется (см. пояснения)
Сложность: средняя
Тематика: биоинформатика
Поддержка: поясняющих комментариев мало

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

Алгоритмы: теория и практика. Структуры данных
Число задач: 58
Язык: русский
Теория Python: имеется
Сложность: выше средней
Тематика: структуры данных (хеш-таблицы, деревья поиска и др.)
Поддержка: есть поясняющие комментарии

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

Как бесплатно обучиться программированию на языке Python (часть IV)

А мы продолжим исследовать просторы Интернета на предмет максимально эффективного повышения наших программистских навыков и чтобы бесплатно. Предыдущие части по метке Python.

Мы уже повидали несколько задачников, которые выглядят довольно однотипно: список задач, рейтинг решивших, всё это в деловитом оформлении. Казалось бы, чего там ещё можно придумать? Но некоторые придумывают. На хакерский задачник мы уже глянули, сегодня посмотрим ещё пару задачников программирования, выдержанных в необычных стилях.

codewars.com
«Кодовые войны» – сайт с задачами по программированию, выдержанный в стиле школы восточных боевых искусств. Пользователи – это воины (warriors), которым присваивается определённый «пояс»: начинаем с белого 8 кю и продвигаемся вверх к 7-му кю, жёлтому 6-му кю, 5-му кю, потом синему 4-му кю, 3-му кю, фиолетовому 2-му кю, 1 кю, а выше ещё имеются чёрные 2-й и 1-й дан.


Для этого продвижения нужно решать задачки, которые называются ката и поделены по своей сложности тоже по этим кю. Пример задачки на 8 кю: перевести возраст кошек в человеческий аналог по данной таблице пересчёта. Пример задачки на 1 кю: разработать язык программирования с перечисленными свойствами. За одну задачку новый пояс не дадут, но похоже, что более сложные задачки дают больше баллов, чем лёгкие. Есть и таблица лидеров по очкам чести, которые тоже дают за задачки, но также и за участие в работе сайта, например переводы, так что это не совсем чисто соревновательный параметр.

Задачек много (5320), их можно придумывать самим и за это дают очки чести. Имеется разделение по категориям (математика, сортировка, числа, строки, алгоритмы и проч. - в целом, не рядоположенный список категорий, и у одной задачи может быть несколько таких меток). Имеется система оценки задач пользователями. Имеется продуманная система поиска -
можно искать самые новые задачи, или те, которые больше всего решило людей, или по другим критериям. Есть и автоматический выбор задач, в соответствии с выбранным тренировочным режимом в профиле. Задачи выполнены в занимательном оформлении, с картинками, юмористическим сюжетом. Решения в виде функции пишем на самом сайте, проверяются они на наборе тестов, причём показывают, какие тесты пройдены. К задачам прикладывается обширная статистика, сколько человек её решало и сколько решило, каких они были рангов и проч. В профиле пользователю также показывают много статистики про его достижения. Имеется форум, вики, система кланов.


Помимо ката есть ещё и кумите: в них, например, можно помочь разработчикам сайта улучшить движок проверки решений.

Достоинства сайта: приятное визуальное оформление (тёмная и светлая тема), интересная концепция в стиле восточных боевых искусств, ранг привязан к сложности решённых задач, доступно много языков программирования (32) и задач (5320), много статистики, чтобы отслеживать свой прогресс и лучше выбирать задачи, можно сравнивать своё решение с чужими. Причём за решения можно голосовать, разделяя их на «промышленные» и «умные». Можно выложить в социальную сеть значок со своим рангом на сайте, делиться задачками.

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

Итого: довольно крупный и популярный англоязычный сайт (более 5 тысяч задач, 32 языка программирования, более 250 тысяч пользователей), приятное оформление и концепция в стиле восточных боевых искусств, занимательный стиль задач, продуманная система градации по сложности.

codeabbey.com
«Аббатство кода» приветствует нас лозунгом в ленинском стиле: Мы верим, что к успеху ведут три вещи: практика, практика, практика!


В остальном всё выдержано в заявленной тематике: пользователи называются братьями и сёстрами, за решение задач получают очки благословения (blessing), сумма которых определяет их степень просветления (enlightment). Очки, начисляемые за решение задачи, уменьшаются, если эту задачу решили многие: причём пересчитываются и ранее полученные очки. Таким образом, выше всех в рейтинге будут те, кто решил самые трудные задачи (или самые неинтересные для других). Если у пользователей одинаковый уровень просветления, то в рейтинге выше тот, у кого больше авторитет, заработанный придумыванием задач, но напрямую не влияющий на уровень просветления. Ранги можно примерно перевести так: мирянин, послушник, приверженец, последователь, служитель, фанатик, диакон, епископ. В рейтинге наверху также встречаются и другие ранги: звездочёт, доктор, маг льда, кардинал. Раньше выдавались даже и сертификаты, но теперь их нет из-за выкладывания решений в Интернете. Вот картинка-иллюстрация важности подбора правильных инструментов для решения задач:


Достоинства: продуманная система оценки сложности заданий и начисления рейтинга в соответствии с ней, причём рейтинг пересчитывается по мере того, как больше людей решило задачу; задания удобно сгруппированы по тематикам, имеются как простые задачки для новичков (найти сумму чисел), так и более продвинутые - например, написать алгоритм для простой игры, который выиграет у их сервера. Можно посмотреть, кто именно решил задачу, на каком языке и как. Подробно описаны инструкции. У ряда задач есть русский перевод. Рейтинг пользователей можно отдельно просматривать по странам и языкам программирования (на первом месте сейчас Moff из России и с языком Python). Много языков программирования (22). Задачи интересно оформлены, причём с анимацией.

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

Вывод: сайт с интересными и хорошо оформленными 213 задачами (на русский язык переведены 42), с анимированными картинками, продуманной системой оценки сложности по числу решивших.

Ну, и к задачникам с тематическим оформлением добавлю ещё один:
exercism.io

У этого англоязычного задачника тоже религиозное название и имеется символика в виде рогатой буквы «е», но в остальном это обычный задачник с точки зрения оформления. Идея его в том, чтобы помогать новичкам изучать языки программирования, т.к. там можно спрашивать советы у опытных. Хотя могу заметить, что советы чаще спрашивают на более крупном сайте stackoverflow, у которого даже есть русская версия. Но туда идут с уже имеющейся задачей, а на exercism.io дают свои задачи, специально подобранные для новичков. Имеется 42 языка программирования, для которых от 11 до 113 задач (101 для Python, начиная от Hello world и заканчивая спиральной матрицей, обработкой ошибок и реализацией различных типов данных). Желающие могут помочь этому сайту с открытым кодом как предложив задачи, так и задонатив. На github можно посмотреть видео с автором сайта Катриной Оуэн (Katrina Owen) и её командой:
розовый глаз

Как бесплатно обучиться программированию на языке Python (часть III)

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

Сегодня мы рассмотрим ещё один любопытный сайт с задачками, но другого плана. Это головоломки, с которыми Вы почувствуете себя настоящим хакером. Вот наш обозреваемый: pythonchallenge.com

На этом сайте всего 33 задачки, точнее загадки. Это не ученические банальности вроде «найдите N-ый член последовательности» или «уберите из слова чётные буквы». Тут над каждой головоломкой придётся всерьёз подумать.


Найдя решение, узнаёте веб-адрес, по которому находится следующая загадка.

Достоинства: интересно, оригинально, заставляет пошевелить извилинами, симпатичное оформление в популярном тёмном стиле. Хотя в названии сайта присутствует слово Python, на самом деле код давать не нужно, только ответ, так что можно решать с помощью любого другого языка программирования. Если решите загадку, то заодно получаете доступ к описанию её правильного решения, чтобы сравнить со своим решением.

Недостатки: а) всё на английском. Впрочем, текста очень мало: загадки, в основном, в виде картинок. Можно перевести в онлайн-переводчике.
б) загадки и вправду сложноваты, сходу далеко продвинуться вряд ли получится.
в) все ответы и решения легко найти в Интернете, поэтому рангов игроков не замечено, и вообще можно не регистрироваться – это испытание лично для Вас. Впрочем, адреса надо вводить по порядку, сразу в конец не пустят.

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

Ну и коль скоро, у нас уже вроде традиции рассматривать сразу по два сайта, то глянем заодно ещё один: coderbyte.com


Сообщается, что на сайте более 180 тыс. пользователей, более 200 задачек, более 800 тыс. готовых решений для них. Большую часть этого можно посмотреть за нехилые 29 баксов в месяц, а бесплатно доступны:
а) 20 задачек, которые можно решать в редакторе на самом сайте (доступно около десяти языков программирования), в основном работа с текстом и списками, не совсем элементарные,
б) несколько курсов, представляющих собой набор видео-лекций, на темы: подготовка к интервью на вакансию программиста, структуры данных и алгоритмы, выучи за неделю Python/JavaScript/Ruby, веб-разработка (всё на английском, в списке не значится питоновский веб-движок Django),
в) описания нескольких популярных алгоритмов с реализацией на Python/JavaScript и указанием числа операций (например, как найти все дубликаты в списке за линейное время),
г) особенностью сайта является то, что он готовит к поступлению в американские bootcamps - видимо, вроде летних школ по ускоренному обучению программистов.


Недостатки: всё на английском языке, русского перевода нет.

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

И ещё: если вам не хватает скорости, с какой пишу статьи про сайты Python, и хочется немного заглянуть вперёд, то вот англоязычный обзор сайтов с задачками Python: the-10-best-coding-challenge-websites-for-2018.
Список бесплатных англоязычных курсов по алгоритмам: github.com.
Как Google нанимает программистов (на английском): geeksforgeeks.org
розовый глаз

Как бесплатно обучиться программированию на языке Python (часть II)

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

Все рассматриваемые сегодня в обзоре сайты – задачники Python на английском языке.
spoj.com

В наличии более 34 тысяч задач от 475 авторов, разделённых по 5 рубрикам (учебные, соревновательные...), с возможностью поиска по 300+ тегам, сортировки по тому, сколько пользователей решило эту задачу, какова её сложность в баллах, какова оценка пользователями.

Можно в реальном времени смотреть, какие задачи сейчас пытаются решать другие и получается ли это у них. Есть рейтинговая таблица игроков. Баллы начисляются за решение задач в количестве от ~0 до ~2, в зависимости от того, сколько людей её уже успело решить (чем меньше, тем больше баллов). На первом месте китаец с 2558 очков, далее трое с 1000+, на 4-м месте россиянин Oleg с 1007 очков, с 5-го места - по 500+ очков и ниже, всего более 62 тыс. пользователей в рейтинге (из него можно при желании себя удалять).

Любопытно посмотреть таблицу по 233 странам. По численности на 1-м месте Индия (182 тыс.), далее Польша (70 тыс.), Бразилия (39 тыс.), Вьетнам, США, Монголия (16 тыс. чел., в среднем по 0,006 баллов ~164-е место), Китай, Египет, Индонезия, Бангладеш, далее Россия на 11-м (6 тыс.). По набранным баллам на 1-м месте Индия (74 тыс.), Китай (21 тыс.), Индонезия (10 тыс.), Россия на 10-м (3 тыс.). По среднему числу баллов на человека на 1-м месте Ватикан (17 человек по ~30,4 балла), далее Сэндвичевы острова (19 чел. по 16,9 баллов), Самоа (5 чел. по 16,6 баллов), Гренландия (18 чел. по 6,9 баллов), Хорватия (1303 чел. по 3,8 баллов). Китай на 11-м месте (13 тыс. чел. по 1,6 баллов), Беларусь на 12-м (958 чел. по 1,6 баллов), Россия на 46-м месте (6 тыс. чел. по 0,5 баллов), Индия на 54-м месте (182 тыс. чел. по 0,4 балла), США на 72-м (25 тыс. чел. по 0,3 балла). В Кении 128 чел. совместными усилиями набрали в общей сложности 0,2 балла (187-е место из 233 по набранным баллам). По набранным баллам за придумывание задач лидируют Индия, Вьетнам, Бангладеш, Китай, США, а Россия на 16-м месте. При регистрации надо указать свой институт и год рождения. По институтам тоже есть рейтинг. Например, 46 человек из Google набрали 2463 балла (в среднем по 53,5), а 39 человек из Moscow State university набрали 436 баллов (в среднем по 11,2).

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

Задачи, в основном, мне встречались математического характера со строгими формулировками, хотя есть и более развлекательные (например, в задаче Life, the Universe, and Everything нужно переписывать получаемые числа до тех пор, пока не встретится 42). Требуется читать строки или числа, преобразовывать их по указанным правилам и выдавать правильные ответы. Для некоторых задач может потребоваться написание относительно объёмного кода (~десятки строк Python). Имеются многолетние конкурсы на решение задач, за них дают до 3 баллов первому решившему.

Выявленные недостатки: Нет русской версии. Облако тегов неудобно просматривать (надо знать название тега, чтобы его вбить в поиск). Активность, по-видимому, оценивается в баллах: т.е. если решить несколько задач по 0 баллов, в таблице будет указано, что активности не было.

Итого: крупный англоязычный сайт с 34 тыс. задачками программирования, популярный в мире (особенно в Индии). По-видимому, используется для поиска программистов для вакансий.

projecteuler.net

Похожий по духу сайт с 619 математическими задачами для программистов.
Вот здесь - http://euler.jakumo.org/problems.html - можно посмотреть русский перевод 581 задания.

Указан рейтинг задач по сложности, по числу решивших (от 72 до 725 тыс. чел.). Примеры самых простых задач: сумма чётных чисел Фибоначчи, нахождение простых множителей большого числа. Поддерживается несколько десятков языков программирования (самые популярные опять С/С++ и Python). В рейтинге и профиле оценивается % решённых от общего числа задач, в зависимости от которого выдаются «достижения» и уровни профиля (этот % варьируется по странам от 0,5% у Гренады до 25,1% в среднем у 4 представителей Самоа). Также есть отдельный рейтинг за попадание в топ-50 первыми решивших новые задачи, в топ-10 которого сейчас 3 чел. из России.

Больше всего пользователей из США (41 тыс. чел.), Индии (12 тыс.), Германии, Англии, Канады, Китая, Франции, России (4 тыс.).

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

Итого: на spoj.com необъятное число задач, и предлагается нарешать как можно больше из них; projecteuler.net выглядит более академично, число задач меньше, а минимальный уровень сложности выше, и предлагается стремиться к тому, чтобы решить их все. При этом spoj.com выглядит более защищённым от накруток, т.к. существенно больше баллов за решение задач, которые пока никто не решал. С другой стороны, там одинаковое число баллов за все новые задачи, независимо от сложности, а в Проекте Эйлера все задачи сложные и подходят для проверки своих навыков. В России оба сайта примерно сравнимы по популярности (4-6 тыс. чел.).