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

Статей написанных на эту тему на Хабре довольно много, вот только некоторые из них: Почему трава зеленая, а программисты крутые, Как стать программистом Java, Программировать с нуля. «Сейчас» — самое подходящее время, чтобы начать, Научиться программировать становится сложнее.

На дворе 2019 год. Теперь каждый дядя Вася гикбрейнс, нетология, хекслет, html-академия из деревни Пупкино считает своим долгом научить тебя программировать на Python за умеренную плату или делать сайт на вордпрессе за 5 минут. Большинство современных онлайн-платформ для обучения программированию, как правило, имеют бесплатные вводные курсы (которые подскажут вам, каким тегом вставить картинку на веб-сайт, или научат выводить «Hello World» на Java, но не более того).

За то, чтобы узнать что-то кроме важности закрытия тега параграфа в HTML или узнать о таких умных словах как «Angular» или «SVG» придется уже выложить денежку. Я конечно понимаю, что им (как и всем, в нашем бренном мире) необходимо монетизировать свой ресурс таким образом, но ведь заплатив за месячную подписку или пройдя несколько курсов, на той же html-академии, вы не будете знать и уметь больше, чем если бы вы прочитали пару увесистых книжек по теме, или пролистали официальную документацию и поупражнялись самостоятельно, а у любого более или менее серьезного работодателя эти курсы котируются чуть хуже чем диплом какого-нибудь Тюменского Индустриального Университета (т.е. никак).


Дополнительные 4 часа с наставником стоят 12 000 рублей. Наставнику будет гораздо комфортнее если вы запишитесь именно на этот вариант курса, будет ли комфортнее вам — другой вопрос.


Если вам все же хочется потратить деньги на что-нибудь, непосредственно связанное с программированием, то лучше потратьте их на покупку лицензии Sublime Text 3 (чувствую, как евангелисты Atom или Brackets уже занесли курсор над минусом моей кармы). Вы перестанете видеть окошко, с просьбой о покупке, после каждых десяти нажатий Ctrl+S, а компания, выпускающая самый шустрый, удобный и функциональный редактор кода, станет на 80$ богаче.

Есть множество отличных курсов на coursera, edx или codeacademy. По моему мнению это те немногие ресурсы, заслуживающие внимания, если вы хотите действительно получить знания. На edx можно и вовсе проходить все курсы аудитом, т.е. совершенно бесплатно (также есть возможность получить сертификат по завершению обучения за 100$, но, думаю, что показатель продаж у этих сертификатов такой же как и у лицензионных версий Windows в России, т.е. стремится к нулю).



И насчет знаний английского для изучения программирования на зарубежных ресурсах: если ваш уровень английского настолько низок, что не позволяет даже почитать w3schools.com или посмотреть новый видос на канале The Coding Train, то я вообще не знаю как вы работаете электриком в селе Погорелка Тюменской области зачем вы в принципе интересуетесь изучением программирования. Ну серьезно, стыдно, интересующемуся сферой IT человеку, не иметь уровня Intermediate в наши дни, товарищи, стыдно! На крайний случай всегда остается возможность нажимать на синюю стрелочку, на странице гугл-переводчика. Да что уж там, в Хроме есть возможность мгновенного перевода страницы на русский язык.


Я очень положительно отношусь к обучению программированию по книгам. Одна только O'Reilly выпускает их в год больше, чем количество людей, начинающих изучать программирование, и через неделю бросающих изучение. Мой совет: не ленитесь выполнять упражнения после прочтения каждой главы (они могут показаться слишком тривиальными, но practice makes perfect, человек запоминает информацию посредством повторения намного эффективнее).


Пиратство — это тема отдельных дискуссий на 100500 комментариев, но если дело касается процесса обучения, то это можно (хотя бы частично) оправдать. Я не призываю вас скачивать книги по программированию с Флибусты пиратить электронные книги, но если возможности купить их, в данный момент, у вас нет, то свободный (пока еще, до определенной степени) интернет предложит вам кучу возможностей решения этой проблемы.


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

Комментарии (16)


  1. ivlevAstef
    26.01.2019 21:10
    +6

    Статья хорошая и правильная. Но «Ну серьезно, стыдно, интересующемуся сферой IT человеку, не иметь уровня Intermediate в наши дни, товарищи, стыдно” — Слегка задело. Сам являюсь не первый год тимлидом/архитектором, но мой уровень английского достаточен чтобы писать код и читать блоги/научные труды американских программистов (и то со словарём). По стандартной системе я ели как смогу попасть в elementary.

    Хотя на самом деле каждый день жалею что не знаю английский, потратив 5 лет на его изучение. При этом знаю порядка 4 языков на уровне написания коммерческого кода, и ещё с 10 на уровне чуть выше hello world.

    Немного по теме: при собеседовании людей лично я ценю больше если человек прочитал книжку нежели закончил курсы. А если ещё прочитал «нужную»книжку и понял то это почти гарантированный оффер. А если ещё и код писал и может показать то все шансы сразу в мидлы попасть. Хотя конечно все зависит от качества кода/понимания.


    1. Neikist
      26.01.2019 21:17
      -3

      Вот тоже погрустнело. Сам свободно читаю код и документацию, статьи на медиуме, но даже далеко на pre-intermediate не тяну. И это код писать совершенно не мешает.


    1. edogs
      26.01.2019 21:53

      Вообще стандартная схема оценивания нередко разделяется на прослушивание, разговор, чтение, написание. Нам кажется автор, в контексте обучения по англоязычным материалам, подразумевал Intermediate в чтении.
      Разговорный лично у нас уже почти на нуле, когда-то был upper-intermediate, но за отсутствием практики почти обнулился. На слух благодаря фильмам и курсам на английском еще как-то держится. А вот с чтением никаких проблем от слова вообще, с написанием так-то проблем нет, но времена адски путаем кроме простейших, ибо для фриланса на фиг не нужны.


    1. barrakuda9111
      26.01.2019 23:19

      Значит для меня не все потеряно, только недавно начал JS изучать, английский также со словарем «юзаю». Давно понимаю необходимость изучить язык, но, блин, не все же сразу. Тут мозги закипают только от одного JS.


  1. wegres
    26.01.2019 21:27

    Если в заставке Роллтон против JavaScript, то логичнее вместо последней книжки с мышкой вставить книжку с носорогом…


    1. shalm
      27.01.2019 18:35

      если в заставке роллтон, то книжки и курсы лучше заменить на разные свободные источники чтоб дожить до окончания обучения


  1. toxicmt
    26.01.2019 22:04

    Несправедливо забыт наш code-basics.ru, на котором мало того что все бесплатно (и открыто, лежит на гитхабе), так еще и уровень проработки больше чем на той же codeacademy, ну и русский конечно же.


    1. Neikist
      26.01.2019 22:08
      +2

      Про stepik тоже уже привычно забыли хотя там тоже все бесплатно и этого всего немало.


  1. janvarev
    26.01.2019 22:28
    +4

    У меня, кстати, одна рекомендация:
    научитесь немного программировать в той области, которая близка вам. Вы же, надеюсь, зачем-то хотите научиться программировать? Не только ради денег? (Программировать чисто ради денег работенка еще та)

    Из общеупотребительных примеров:
    — для аналитиков — освоить сложные формулы и макросы в экселе. Полезно+интересно. Обучающих материалов куча.
    — для всех — запрограммируйте игру. На любом движке (RenPy, какой-нибудь текстовый движок, GameMaker, Construct). Обучающих материалов обычно по каждому движку достаточно много. Метод дает очень классную отдачу, потому что пишется сразу приличный объем кода, и приходится начинать думать об архитектуре, именовании переменных и т.д. (что, кстати, не дают микрозадачи по программированию).


    1. Neikist
      26.01.2019 22:40

      Хе, у меня это было ступором. Процесс программирования и написания кода нравился — но к чему его приложить идей никаких не было вообще. Впрочем до сих пор это присутствует. Нет чего то конкретного что хочется сделать, в кайф сам процесс написания кода.


  1. Moskus
    26.01.2019 23:04
    +1

    Важный момент, про который пока маловато пишут: обучение программированию — это не то же самое, что обучение в школе или игра-квест. Программирование — процесс, требующий владения абстрактными мыслительными операциями — анализ, синтез, индукция, дедукция. Это не процесс, состоящий из повторения предопределенных шагов с приемлемой точностью в определенном порядке. Тогда как множество (совсем молодых, только появляющихся на рынке труда) людей эффективно демонстрируют святую уверенность, что программированием можно заниматься, просто комбинируя готовые решения или решая возникающие проблемы по готовым шаблонам. Это отражается и в их языке, когда они говорят «учить программирование» (заучивать, запоминать, а не вырабатывать навыки и понимание), «знаю Питон» (владею синтаксисом). Конечно, говнокодером или ответственным за натягивание макета на Wordpress с такими умениями и отношением вполне можно быть, но вот программистом — не очень.


  1. YuraLia
    26.01.2019 23:19

    learn.javascript.ru — очень неплохой ресурс.


  1. oldbie
    27.01.2019 00:04
    -4

    Какая-то статья ниачём, поток сознания без четкого посыла. Автор, вы не могли бы мне помочь и выделить из своей статьи тезисы? У меня турдности и получается что-то вроде не хотите платить — не платите =)! Нет я конечно тоже старый пират, но тут вы неправы почти во всем: и винда продается, и курсера с codecademy не то чтобы денег не просят.
    И про английский тоже не согласен. Знать надо, конечно! Но не надо на нем учиться если думаешь только по-русски. Ну конечно люди разные, но я как-то для себя слабо представляю эффективное обучение на языке без свободного владения, т.е. способности бегло на нем думать, говорить\формулировать.


    1. Neikist
      27.01.2019 01:10

      Да нет, на английском вполне можно учиться даже имея beginner или elementary, на себе проверено. Да и курсера денег не просит, как и многие другие.


  1. morgot
    27.01.2019 01:24
    +1

    Было бы желание. Многие люди в 90ые годы учили Си/Асм по сжатым оффлайн мануалам / хидерам, безо всяких переводов, пояснений, и stackoverflow'a.

    А вообще, все индивидуально. Я вот люблю книги, а кому-то легче учить по видеокурсам, другим же удобней учитель, который объяснит и разжует инфу. Просто нужно что-то делать, а не искать «волшебную таблетку».


  1. theaklair
    27.01.2019 19:12

    Люди платят вышеперечисленным ресурсам с наставниками за мотивацию, в том числе. Но минус мотивации в том, что она может бесследно испариться в любой день.
    В свою очередь формат книг не всем подходит, да и не всегда оптимальный.
    Вот прочел я, к примеру, «Подробное руководство» Флэнагана по JS, когда был полным новичком… Что-то в голове осело, конечно, но большинство прочтенного быстро выветрилось без конкретной практики.
    Позже я понял, что лично мне больше подходит формат практических видеокурсов и чтения документации — поэтому нужно исходить из того, что больше подходит отдельно взятому человеку.
    P.S. Факт прочтения книжки говорит только о самом факте её прочтения. Цените людей за профессионализм и готовность к обучению.