Как я изучал программирование по бесплатным курсам и книгам

Рассказываю основываясь на своем опыте, на примере языка Python.

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

Для вашего удобства разделил статью на несколько частей -

Какие знания нужны программисту

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

Специальные знания нужны для того, чтобы его применять. И это не обязательно математика или устройство компьютера. Если вы хотите заниматься веб-программированием, вам нужно изучить СУБД, и один из популярных фреймворков, Django/Flask. Математика тоже нужна, но в программировании искусственного интеллекта.

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

Очень важно изучить как работают алгоритмы и паттерны проектирования.

С чего начать изучение

  • Изучение языка

Начал я с курса на Coursera от Михаила Густокашина, преподаватель рассказывает очень хорошо. Задания в основном связаны с математикой, но все задания можно и нужно решать применяя только информацию, которую вы получили на предыдущих лекциях. Задания очень сложные, иногда на одну задачу можно потратить целый день, но зато намного лучше запоминается пройденный материал.

Мне интересна веб-программирование, поэтому я продолжил изучение на Яндекс.Практикум, на бесплатной части курса “Профессия python разработчик”. Окончив пробную часть я окончательно убедился, что мне интересно развитие в этом направлении.

  • Изучить фреймворк и библиотеки

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

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

Изучаем Python. Программирование игр, визуализация данных, веб-приложения  Мэтиз Эрик

У неё есть свежее издание, и затрагиваются интересные мне фреймворки и библиотеки.

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

  • Начать работу над своим проектом

Я решил начать с создания агрегатора с вакансиями для маркетолога. Этот проект затрагивают много знаний которыми я хочу овладеть или улучшить. И хорошо подходит для портфолио.

Несколько советов:

  • Если не понимаете какую-либо тему, попробуйте изучать её в разных источниках.
  • Курсы покупать не обязательно, можно получить необходимые навыки по книгам, главное подходить к выбору основательно
  • Обязательно практикуйте полученные знания
  • При обучении по книгам выбирайте свежие издания, с актуальной информацией
  • Не изучайте программирование ради денег, есть много других не менее востребованных и оплачиваемых профессий, например 3D художник.

Мой первый заказ:

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

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

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

Оставалось добавить горячую клавишу для остановки программы. С этим возникли самые большие сложности. На добавление всего одной дополнительной функции у меня ушло 3-4 дня. Но зато я очень хорошо прокачал навык управления потоками в Python, научился отслеживать их работу, не давать им бесконечно множится, и завершать по необходимости.

Чему я научился:

  • Автоматизировать рутинную работу. Если вы тратите много времени на выполнение похожих действий скорее всего я смогу вам помочь.
  • Написать парсер. Он сможет обирать почти любую информацию из интернета и сохранять в удобном вам виде или отправлять в мессенджер.
  • Сделать серверную часть сайта или админку для управления сайтом.
  • Написать чат-бота почти любой сложности.
  • И многое другое, пишите, возможно сделаю работу для вас за символическую оплату и отзыв:)

На этом всё. Если у вас есть какие либо вопросы, буду рад ответить.

0
78 комментариев
Написать комментарий...
Петр Иванов

вопрос автору - а вы до начала этого обучения с базовой алгоритмизацией были знакомы?
то есть условный оператор if, цикл while,for, массив, переменная

если нет, то насколько сложно было ее освоить до уровня "написать цикл for который считает сумму чисел в массиве или написать цикл for который находит минимальное число в массиве"?

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

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

Ответить
Развернуть ветку
Егор Шукис
Автор

Нет, изучал с нуля. 

А что бы  "написать цикл for который считает сумму чисел в массиве или написать цикл for который находит минимальное число в массиве", достаточно сменить мышление на более логическое и понять как работают самые основы. 

Ответить
Развернуть ветку
Петр Иванов

а сколько заняла вот эта перестройка мышления и вообще обучение до уровня "найти минимальное число в массиве"?
я так понимаю вам вот это далось легко а далее дело техники?

Ответить
Развернуть ветку
Егор Шукис
Автор

Первый месяц, во многом благодаря курсу от Густокашина, задачи на курсе прям заставляют изменять мышление. Так же я сменил игры на телефоне, все они так или иначе связаны с логикой или простой математикой. Перед сном закреплял знания в приложении SoloLearn. Постарался сменить всю поступающую информацию на необходимую, сериалы смотрел только связанные с программированием. Очень помог сериал mr.Robot, он немного приоткрывает сознание и делает его более гибким, благодаря философии солипсизма в сериале. Есть правда и небольшие побочки в этом, например иногда я очень странно строю предложения.

Ответить
Развернуть ветку
Петр Иванов

спасибо за рекомендацию сериалов. а какие игры для телефона?

смотрите вот к вам вопрос такой как к человеку который смог себя мотивировать.
есть у меня типа ученик взрослый 35 лет. типа - потому что до ученика он так и не дошел. он уже год смотрит в инете ролики"как переехать в силиконовую долину" "как переехать в европу", "как изучить программирование" и постоянно мне скидывает эти ролики. также смотрит "какой язык самый лучший", "какой язык проще учить".
в итоге он в совершенстве владеет силиконовой долиной, знает как там что, знает про все страны где работают российские программисты, знает про все языки какой легче учить.
за этот год он 50 раз пытался начать курс яваскрипта. но застревал на первой странице.
на ней обычно const, let - поэтому у него уровень после года обучения ограничен const a=5;
for он уже не понимает, на нем как раз бросал.
это после года.

ему что то можно советовать кроме как в морг?

Ответить
Развернуть ветку
Егор Шукис
Автор

Возможно он хочет не стать программистом, а переехать в силиконовую долину или Европу. Возможно ему стоит попробовать освоить другое ремесло. 

Ответить
Развернуть ветку
Петр Иванов

говорил ему. что типа желание уровня "хааачуууу" это не есть желание. ну типа видео скидывает до сих пор мне. вашу статью тоже скинет наверное т.к. сидит постоянно на всех сайтах по программированию и ИТ.

Ответить
Развернуть ветку
75 комментариев
Раскрывать всегда