• Как учить алгоритмы?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    "Грокаем алгоритмы" очень поверхностная. В ней по большей части рассказывается, что такое алгоритмы и какие они бывают, а не разбор и обучение конкретным алгоритмам. Очень простая и в то же время доходчивая - "Структуры данных и алгоритмы" Роберта Лафоре. Правда, она для Java, причём древней версии, но это не очень важно, так как в большинстве учебников в этой области всё равно примеры на псевдокоде. Из классики, которую действительно многие советуют - "Алгоритмы" Стивена Скиены и "Алгоритмы Построение и анализ" Кормена. У Скиены, кстати, описан путь к написанию собственных алгоритмов.
    Ответ написан
    Комментировать
  • С чего начать изучение SQL?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Не хотелось бы зря потратить время на изучение не того, что нужно.


    Вот это меня постоянно удивляет у новичков - боятся изучить что-то не нужное, еще даже не начав что-то учить.

    Пока не дошли хотя бы до уровня мидл разработчик не стоит отбрасывать что-либо. Потом уже сможете сами оценивать реально что нужно, а что нет.
    А до этого уровня - любые знания будут вам только добавлять опыта и интуиции.
    Ответ написан
    Комментировать
  • Ресурсы по обучения Python?

    Вот не плохой порядок:
    https://younglinux.info/python.php
    https://stepik.org/course/67
    https://pythontutor.ru
    https://stepik.org/course/431
    https://pythonworld.ru
    Марк Лутц: "Изучаем Python", "Программирование на Python" и "Python карманнй справочник"
    https://py.checkio.org
    https://devman.org/

    Я не так давно начал изучать python3 самостоятельно, по курсам, учебным материалам и книгам. Чувствую себя всё ещё любителем-новичком и впечатления от старта ещё достаточно свежи. Так что поделюсь своим мнением. Может кому поможет.

    Внимание! Оцениваю ресурсы с точки зрения начинающего. Может быть для фундаментального понимания лучше и какие-то другие ресурсы. Я же оцениваю материалы для ЧАЙНИКА, у которого, по сути, нет никакого опыта даже кодинга, про программирование я вообще молчу. Знание английского позволяет читать со словарём, но смотреть английские курсы - нет. Список от наиболее полезных и понятных до продвинутых, углублённых, шероховатых и тех в которых я не уверен до конца. Мнение субъективное. На истину не претендую.

    https://stepik.org/course/67

    Плюсы:
    + краткая и понятная теория без лабуды и излишнего углубления в детали (в соновном)
    + несколько практических заданий после каждого урока - читаешь условие задачи. Пишешь код где удобно. Копируешь, вставляешь в поле для ответа. Система автоматически прогоняет его через тесты. Если код выдаёт неверный ответ, система об этом сообщает - показывает входные данные и то, что должно быть на выходе. Исправляешь код в своём любимом редакторе и снова вставляешь в поле и так, пока код не начнёт работать, как надо. - Отличная практика. В начале немного раздражает, но ближе к середине появляется азарт. Начинаешь понимать, как работает код не просто в теории а на практике, "руки привыкают".
    + к каждому шагу идут комментарии пользователей и администраторов. Если что-то не понятно, там будут подсказки и интересные мысли. Не плохо придумано.
    + мелкие плюшки, такие как статистика занятий по дням года, репутация и прочее

    Минусы:
    - как минимум в одном месте спрашивается то, о чём не давалось информации в теоретической части. Мелочь, да и в коментах всё ясно, но у людей побомбило.
    - практические задания местами переусложнены и тренируют больше гибкость ума, чем понимание языка и начальные навыки кодинга. Да, гибкость ума, конечно, важна для программиста, но в САМОМ НАЧАЛЕ это больше деморализует. Я бы с интересом взялся за них в конце глав или курса, но не сразу же после первого знакомства со списками. И об этом говорили и другие изучающие в коментах.
    - манера речи преподавателя и текст могут показаться нудноватыми, нужно прилагать усилие воли, заставлять себя не уснуть, продолжать, вслушиваться, всматриваться, вдумываться, разбираться и практиковаться (чистый субъектив, сила воли нужна в любом учении и развитии)

    https://younglinux.info/python.php Лаборатория юного линуксоида: Python. Введение в программирование
    Тоже краткая теория, как на стэпике, но нет системы автоматической проверки выполненных заданий. Просто читаешь, разбираешься и по желанию (рекомендую), выполняешь задания к уроку.

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

    Минусы:
    - тут только теория, практика - просто дополнение.

    https://pythonworld.ru и pythontutor.ru
    Не плохо дополняют выше перечисленные проекты. Тут текст посложнее, несколько менее понятен, чем тем, что выше. Но для разъяснения иногда полезны.

    Ну и поисковик в помощь. Если где проблема, что-то не понятно. Так и пиши в поиске, мол, "как сделать то-то", "как работает то-то" и прочее. Ответы найдёте на всяких вопрос-ответных системах, в блогах, в туториалах и прочее.

    Как освоишь базис, можно взяться за книги Марка Лутца: Изучаем Python, Программирование на Python и Python карманнй справочник. У него очень подробная информация. Новичку совсем без опыта там очень тяжело, но когда пройдёшь базовые курсы, Лутц читается не очень сложно и интересно. После его книг, можешь считать, что знаешь Python.

    Ну и паралельно можно (даже необходимо) практиковаться на всяких https://stepik.org/course/431 https://py.checkio.org https://devman.org/ и прочие. Полезно также придумывать скрипты и програмки, имеющие реальную пользу для вас.
    Ответ написан
    Комментировать