Category: Обучение

23
Июн
2020

⚛️ 12 бесплатных ресурсов для изучения React

React – одна из самых популярных JavaScript-библиотек для разработки пользовательских интерфейсов. В этой статье вы найдете подборку бесплатных ресурсов о React: открытые курсы, подкасты, ёмкие конспекты и плейлисты YouTube.

19
Июн
2020

Проверить ЛКГ на случайность: оценить период, мощность, разброс, проверить Хи-квадрат критерий

ЗАДАЧА:
Подобрать параметры и реализовать линейный конгруэнтный генератор для модуля m=2^32 (4294967296). Проверить получаемую последовательность на случайность: оценить период, мощность, разброс, проверить Хи-квадрат критерий
Собственно в…

15
Июн
2020

Не поздно ли начинать входить в IT-сферу в таком возрасте? [закрыт]

У меня сложилось нехорошая жизненная ситуация: я не смог отучиться ни на мехмате МГУ из-за слабой нервной системы (математика там совсем другая, нежели геометрия и алгебра в школе, более теоретическая и абстрактная, вообщем, не воспринял е…

14
Июн
2020

Всем привет. Задание из книги сделать ‘Адресную книги с все возможным функционалом’ программа работает. что вы бы изменили в программе? [закрыт]

import pickle

class Addressbook():

adress = {
‘АНДРЕЙ’: ‘+79856549865451’, #Изначальный словарь
‘КСЮША’: ‘+78529951874635’
}
ad = ‘addressbook.data’
with open(ad, ‘wb’) as f:
pickle.dump(a…

14
Июн
2020

Всем привет. Задание из книги сделать ‘Адресную книги с все возможным функционалом’ программа работает. что вы бы изменили в программе? [закрыт]

import pickle

class Addressbook():

adress = {
‘АНДРЕЙ’: ‘+79856549865451’, #Изначальный словарь
‘КСЮША’: ‘+78529951874635’
}
ad = ‘addressbook.data’
with open(ad, ‘wb’) as f:
pickle.dump(a…

24
Май
2020

Интернет-магазин на чистом PHP для портфолио PHP-разработчика

Решил написать интернет-магазин в качестве проекта для портфолио. Так как, по сути, это моя первая крупная программа (не только на PHP), хотел бы обсудить её реализацию. Узнать, что об этом думают разбирающиеся в сфере люди

В базе данных …

24
Май
2020

Интернет-магазин на чистом PHP для портфолио PHP-разработчика

Решил написать интернет-магазин в качестве проекта для портфолио. Так как, по сути, это моя первая крупная программа (не только на PHP), хотел бы обсудить её реализацию. Узнать, что об этом думают разбирающиеся в сфере люди

В базе данных …

19
Май
2020

Интерактивный курс Python для новичков в программировании

При изучении программирования нет ничего важнее практики. Рассматриваем онлайн-сервис для новичков в Python, обучение в котором построено через написание программ – letpy.

697b5bd2-21ca-408c-b749-beea63dfb848Продолжаем искать и тестировать качественные курсы и уроки по IT-специальностям. Тема востребованная, поэтому мы решили время от времени делиться рекомендациями.

3743ed03-422e-4c6f-969e-60dbd8539e80Сегодня в фокусе сервис letpy. Это русскоязычный онлайн-курс по языку Python для новичков в программировании. Короткие уроки чередуются с заданиями, для прохождения которых нужно писать программы. В курс встроена браузерная среда разработки, так что уроки и программы можно проходить на любом компьютере, телефоне или планшете.

Рис. 1. Рабочая среда letpy в ночном режиме
Рис. 1. Рабочая среда letpy в ночном режиме

fbe745ce-ef37-49c7-ac76-bb7e5ebaea11Среда разработки (Рис. 1) выглядит интуитивно понятно и включает в себя:

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

02674756-d22e-43a6-ac10-74762e2edf05Видимость элементов можно настраивать, имеются две цветовые темы, можно варьировать размер шрифта. У файлов работает автосохранение.

Проверка корректности программ

59c57dfe-5c27-4207-9bd8-797042a0d19fПравильность программ автоматически проверяется ботом, который дополняет стандартный вывод Python и старается помочь в случае ошибки (Рис. 2).

Рис. 2. Скриншот с подсказкой (для сравнения показано оформление в «дневном» режиме)
Рис. 2. Скриншот с подсказкой (для сравнения показано оформление в «дневном» режиме)

7a47cdc5-b898-4951-8cec-efdc4ae27257Если задание выполнено неверно, под ним отображается красная карточка (Рис. 3).

Рис. 3. Элемент интерфейса в случае неправильного выполнения задания
Рис. 3. Элемент интерфейса в случае неправильного выполнения задания

e7500fef-2a4b-4450-8d06-fbf598cd4297Текст на таких карточках дополняет рекомендации бота. После исправления кода красная карточка меняется на зелёную – можно перейти к следующему шагу (Рис. 4).

Рис. 4. Изменение предыдущего элемента после коррекции кода
Рис. 4. Изменение предыдущего элемента после коррекции кода

22192329-08d8-484c-98d2-69af83349ae1У каждого урока есть чат – можно посмотреть, что думают по поводу урока другие ученики и обсудить варианты решения задачи. Блок с чатом расположен внизу под описанием урока или задания, так что он не мешает при прохождении.

26baa967-366a-441c-abf7-38ff96c6a0b5Если хочется поделиться собственным решением с другими студентами или не удается найти ошибку, код легко перенести в чат из рабочей области с помощью кнопки “Вставить код” (Рис. 5). То есть нет необходимости его специально форматировать. При этом сохранится оформление и отступы, а к коду можно добавить любой поясняющий текст или вопрос.

Рис. 5. Скриншот с примером автоматически перенесенного кода
Рис. 5. Скриншот с примером автоматически перенесенного кода

3e92aab4-c739-4b10-bfe1-be392e072901Если нужен дополнительный теоретический материал, есть справочник по следующим разделам:

О полной версии

ab1626f4-ca90-49a4-98d1-591e5e33c78eВсего в курсе 149 уроков, включая 58 практических заданий (полная программа курса). При прохождении 95% курса выдаётся сертификат. Текущий процент прохождения отображается в верхней панели.

Рис. 6. Скриншот с панелью прохождения курса
Рис. 6. Скриншот с панелью прохождения курса

b6c06ca3-ce8c-4ee4-b443-f1753eaefa43Любая платформа для своего развития требуют какого-то источника дохода. Нам понравилось, что сервис не ставит деньги во главу угла – первые 45 уроков бесплатные – если не понравится подача, можно ограничиться этим.

7025eed8-a9a2-4c85-b750-afa17977df90На сайте есть пара иллюстраций, чему можно научиться в платной версии.

7fe7d52e-9acc-48dd-82e0-9fa430bb6db1Цена на полный курс – небольшая (в PRO-версии 2130 ₽, а при базовом доступе и того меньше – 1490 ₽), мы перешли на PRO-подписку, чтобы посмотреть на отличия от стандартной версии.

ea0a311e-ec47-4939-a2c1-fe567d786fe8Кроме того, что стали доступны остальные уроки, добавились и новые функции. В верхней панели появился значок учебного отладчика. В нем можно смотреть, как программа выполняется строка за строкой. Так проще определить, если что-то пошло не так, как ожидалось.

Рис. 7. Скриншот с отладчиком программ для пошагового выполнения кода
Рис. 7. Скриншот с отладчиком программ для пошагового выполнения кода

df98afb6-c043-46c7-9e4e-2cc7b7c79304Кроме того, появилась возможность делиться программами с другими людьми. Во вкладке профиля добавляется строчка Мои приложения.

Рис. 8. В меню профиля в полной версии появляется возможность делиться приложениями
Рис. 8. В меню профиля в полной версии появляется возможность делиться приложениями

678101ea-9fa0-490b-b9c5-51a92d36d62aПо этой вкладке можно добавлять py-файлы, описания программы и создать ссылку для публикации приложения. Эта ссылка будет общедоступной – легко делиться с друзьями и родными, чему ты научился. Так как в курсе описаны возможности Python в отрисовке, можно сделать такую страницу наглядной даже для тех, кто совсем не знаком с программированием.

3cd5b334-4b09-495e-b0bb-46001c3871bfРади фана в рамках одного из уроков мы написали простенькое приложение на Python, реализующее часы:

            import datetime, canvas

def clock(time, x=175, y=175, r=170):
    canvas.clear()
    canvas.circle(x, y, r)
    
    # ставим риски для часов и минут
    for i in range(0, 390, 30):
        canvas.radius_line(x, y, i, 170)
    for j in range(0, 366, 6):
        canvas.radius_line(x, y, j, 160)
    
    # накрываем кругом, по которому будут двигаться стрелки
    canvas.fill_style('White')
    canvas.fill_circle(x, y, 150)
    
    # часовая стрелка
    canvas.line_width(6)
    canvas.set_color('Blue')
    canvas.radius_line(x, y, time.hour * 30, 100)
    
    # минутная стрелка
    canvas.line_width(2)
    canvas.radius_line(x, y, time.minute * 6, 120)
    
    # секундная стрелка
    canvas.line_width(1)
    canvas.radius_line(x, y, time.second * 6, 160)
    
    # крепление стрелок
    canvas.fill_style('Blue')
    canvas.fill_circle(x, y, 7)
    
    canvas.draw()

while True:
    time = datetime.datetime.now()
    clock(time)

        

a1bf67a1-70c3-4b69-ac0e-2499323d7e3dДалее мы воспользовались интерфейсом для публикации приложений, показанным на Рис. 9.

Рис. 9. Интерфейс для публикации собственных приложений
Рис. 9. Интерфейс для публикации собственных приложений

c16769b3-af9c-4a81-8a44-e43dd46f7364В итоге получилось приложение, расположенное по адресу https://letpy.com/apps/proglib-clock/ – можете сами посмотреть, что получилось.

Рис. 10. Скриншот веб-страницы написанного нами приложения на Python
Рис. 10. Скриншот веб-страницы написанного нами приложения на Python

0a810c30-9061-40a3-95a6-1c8ef6267d27На сайте также есть пример интерактивного демо-приложения, в котором объекты появляются по клику.

Заключение

76706631-8a1e-40c1-8700-4762a05f939bРезюмируем, что нам понравилось в letpy:

  • Значительная часть уроков и все справочные материалы находятся в свободном доступе – можно без переплат оценить, нравится ли подход.
  • Система имеет ясный и отзывчивый интерфейс, на платформе легко заниматься. Если в коде есть ошибки, сервис выдает необходимые подсказки.
  • letpy умеет выполнять внеучебные файлы с кодом Python – удобно использовать среду для практических экспериментов в программировании. При этом ничего не нужно дополнительно устанавливать. А получившимися программами в расширенной версии можно делиться в виде веб-приложений.
  • По нашим наблюдениям в чате регулярно отвечает разработчик сайта и другие ученики – если что-то непонятно, помогает не только бот, но и живые люди.

93610435-0903-4b61-a06a-c89cc5e97240Из недостатков, которые мы для себя отметили – отсутствие описания классов и основ ООП. Впрочем, эти темы нельзя считать первоочередными для новичков, так что для такого базового курса это некритично.

973993ba-1b10-4a55-a743-dfdd10be6edcВ любом случае, программа рассчитана так, чтобы, окончив курс, человек имел представление о программировании на Python и мог продолжить обучение самостоятельно.

d40bfe01-ba9a-4072-bb40-a53051feb15cУ letpy есть YouTube-канал, паблик вк и страница facebook. Судя по их активности, проект развивается и совершенствуется. Напишите в комментариях, если вы учились или учитесь на letpy – как вам ресурс?

07
Май
2020

Как с помощью Python скачать все бесплатные учебники Springer Nature

Короткий туториал о том, как скачать 390 учебников с помощью 10 строчек кода на Python 📕🐍. Список книг содержит издания по математике, статистике, электронике и Computer Science.

Издательская компания Springer Nature выложила в открытый доступ более 500 учебников. При помощи скрипта, написанного на Python, мы скачаем все англоязычные книги, указанные в соответствующей таблице Excel.

1. Установка библиотек

Воспользуемся мощью библиотек Python:

  • pandas – обработка и анализ данных.
  • wget – инструмент загрузки файлов.
  • requests – отправка HTTP-запросов.
  • xlrd – обработка экселевских файлов (используется библиотекой pandas).
            pip3 install xlrd pandas wget requests
        

2. Изучение списка учебников

Скачаем таблицу Free+English+textbooks.xlsx, содержащую 390 учебников (все списки и актуальные ссылки находятся здесь). Создадим файл download_textbooks.py и папку download, в которую будут скачиваться файлы.

В таблице Excel нас интересуют столбцы Book Title (название учебника), Edition (год издания) и OpenURL для получения ссылки на скачивание (Рис. 1).

Рис. 1. Столбцы, участвующие в работе скрипта
Рис. 1. Столбцы, участвующие в работе скрипта

Добавим в download_textbooks.py следующие строчки:

Содержимое download_textbooks.py: импорт необходимых модулей, загрузка таблицы эксель в массив pandas и вывод первых десяти строчек массива
            import requests
import wget
import pandas as pd
df = pd.read_excel("Free+English+textbooks.xlsx")
print(df.head(10))

        

Запустим скрипт и получим первые десять строчек из списка (Рис. 2):

Рис. 2. Вывод первых десяти строчек массива pandas
Рис. 2. Вывод первых десяти строчек массива pandas

3. Выбор правильного URL

Напишем цикл для скачивания файлов:

Содержимое download_textbooks.py
            for index, row in df.iterrows():
    file_name = f"{row.loc['Book Title']}_{row.loc['Edition']}"
    url = f"{row.loc['OpenURL']}"
    wget.download(download_url, f"./download/{file_name}.pdf")

        

Неплохо, но работает некорректно: столбец OpenUrl содержит ссылку на страницу с описанием книги, а не на конечный PDF-файл. Рассмотрим подробнее устройство ссылок на сайте издательства:

  • Возьмем какую-нибудь ссылку из столбца OpenUrl, например, http://link.springer.com/openurl?genre=book&isbn=978-0-306-48048-5
  • Она перенаправляет на https://link.springer.com/book/10.1007%2Fb100747
  • На странице есть кнопка для скачивания PDF-файла https://link.springer.com/content/pdf/10.1007%2F0-387-36274-6.pdf

Таким образом, в цикл for нужно добавить 3 шага:

  • Открыть ссылку из столбца OpenURL.
  • Получить перенаправленный URL.
  • Переформатировать структуру строки URL в конечный URL для загрузки PDF-файла.

В итоге код выглядит следующим образом:

Содержимое download_textbooks.py
            import requests, wget
import pandas as pd
df = pd.read_excel("Free+English+textbooks.xlsx")
for index, row in df.iterrows():
        file_name = f"{row.loc['Book Title']}_{row.loc['Edition']}".replace('/','-').replace(':','-')
        url = f"{row.loc['OpenURL']}"
        r = requests.get(url)
        download_url = f"{r.url.replace('book','content/pdf')}.pdf"
        wget.download(download_url, f"./download/{file_name}.pdf")
        print(f"downloading {file_name}.pdf Complete ....")

        

4. Скачивание учебников

Запустим скрипт download_textbooks.py (Рис. 3), откроем папку download и проследим за результатом работы (Рис. 4).

Рис. 3. Пример работы скрипта python, скачивающий файлы из списка Excel
Рис. 3. Пример работы скрипта python, скачивающий файлы из списка Excel
Рис. 4. Скачанные учебники в папке с помощью pandas, wget, requests и xlrd
Рис. 4. Скачанные учебники в папке с помощью pandas, wget, requests и xlrd
***

Вот и всё. Мы освободились от ненужной рутины, автоматизировав процесс скачивания всего за 10 строчек кода, используя библиотеки pandas, wget, requests и xlrd. Приятного чтения!

25
Мар
2020

Суперподборка: более 70 бесплатных русскоязычных онлайн-курсов по IT-специальностям

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

Пандемия COV…

19
Мар
2020

На период карантина GeekBrains открывает доступ к 15 курсам

Базы данных, Python, С, C++, Java, операционные системы и многое другое – успейте прокачать свои навыки до 31 марта, пока обучение по этим курсам бесплатно.

Образовательный портал GeekBrains открывает доступ к курсам по четырем направлениям:

  • программирование,
  • дизайн,
  • управление,
  • маркетинг.

Бесплатное прохождение курсов предоставляется на период карантина, связанного с распространением коронавируса.

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

  1. Основы баз данных
  2. Beб-технологии: уязвимости и безопасность
  3. Операционные системы
  4. HTML/CSS
  5. Основы Java
  6. Базы данных (интерактивный курс)
  7. Процедурное программирование и основы С++
  8. Алгоритмы и структуры на С
  9. Алгоритмы и структуры данных на Python
  10. Основы продакт менеджмента
  11. Основы управления проектами
  12. Погружение в IT-сферу
  13. Автоматизация маркетинговых процессов
  14. Законное индивидуальное предпринимательство и фриланс
  15. Как учиться эффективно

Чтобы получить доступ к курсам, нужно зарегистрироваться на портале и активировать доступ до 31 марта: для этого потребуется заполнить анкету, указать выбранные курсы и оставить адрес регистрационной почты.

«Пандемия коронавируса затронула все сферы нашей жизни. Школьники и студенты постепенно переходят на удаленное обучение, компании переводят сотрудников в удаленный режим работы. Отдельная категория — люди, вернувшиеся из-за границы и вынужденные самоизолироваться на время карантина. Сейчас как никогда остро встает вопрос доступного онлайн-обучения. Мы не можем остаться в стороне в этой ситуации — и делаем часть наших курсов бесплатными»
Гайк Айрапетян, сооснователь образовательного портала GeekBrains

Обращаем ваше внимание, что из-за большого наплыва заявок обработка может занять некоторое время.

10
Мар
2020

Как создать виртуальное окружение в Python и перестать думать о зависимостях

Работаете с несколькими проектами на Python? С этим руководством вы не потонете в зависимостях. Рассказываем, как работать с виртуальным окружением с помощью pipenv и Anaconda.

Е…

06
Мар
2020

Как начать изучение C++ [дубликат]

Посоветуйте какие-то актуальные учебники для изучения C++. Ещё может есть какой-то онлайн учебник что-ли типо learn.javascript.ru но для C++. И где можно найти задачки чтоб попрактиковаться? Какие библиотеки изучать?

23
Фев
2020

Как обходить склик рекламы Adwords и Яндекс

Вообщем-то спустя месяц работы сайта заказчика
Конкуренты начали скликивать рекламу и по итогу большие расходы и 0 профита
Пытался решить вопрос сбором айпа и последующего бана
Но есть ли возможность сделать свой фильтр ботов на js
Дайте …

18
Фев
2020

Отсортировать список участников по алфавиту (runtime error)

Учусь на coursera.
Попалась задача – цитирую:
Известно, что фамилии всех участников — различны. Сохраните в массивах список всех участников и выведите его, отсортировав по фамилии в лексикографическом порядке. При выводе указываете фамилию…

13
Фев
2020

«Каждый охотник желает знать»: теория цвета для веба и приложений

Рассказываем, как правильно подбирать и комбинировать цвета. Цветовой круг, модель HSL, цветовые схемы и психология, советы и правила. Показываем на примерах, как применять в CSS.

09
Фев
2020

Рисуем, программируя. Машинная генерация художественных узоров в векторных полях

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

01
Янв
2020

Открытие школы программистов «Прогтипс» («Progtips»)

Сайт progtips.ru открыт с 2017 года и мы рады регулярно публиковать для вас материалы на тему программирования. Параллельно мы запустили курсы для программистов — за эти годы мы выпустили пять полноценных курсов, которые представлены нашем каталоге. Бо…

05
Дек
2019

Как в действительности исполняются наши программы? (Ассемблер и его друзья)

Понимание того, как выполняются написанные им программы отличает опытного разработчика и является маркером его профессионализма и открывает возможности его профессионального и карьерного роста. А раз так, то и мы должны в этом разобраться!

22
Ноя
2019

Учебный день начинающего программиста

В этой статье поговорим о том, как эффективно обучаться программированию. Программирование — это сложная профессия и надо грамотно выстроить обучение, чтобы с одной стороны, достичь цели, а с другой стороны не отчаяться и не бросить учебу. 1. Пиш…