Как стать программистом с нуля самостоятельно

С чего начать учится программированию с нуля чайнику?
В этой статье я постарался подробно разобрать, можно ли стать программистом с нуля самостоятельно и какие варианты есть для того, чтобы освоить программирование самостоятельно и начать зарабатывать на этом.
UPD: Тем, кто ищет, с чего начать изучать программирование с нуля в 2018 (или пока только собирается и приступит в 2019 :)), сильно повезло благодаря книге Якова Крамаренко «Введение в разработку программного обеспечения». Я искренне рекомендую с ней ознакомится — она стоит того, чтобы обновить статью №1 по рейтингу Google и отзывам читателей для тех, кто изучает программирование самостоятельно.

Постарался дать самый лучший — на мой взгляд — путь. Предупреждаю — он не из легких! Дальнейшее прочтение может стоить вам многих часов интересных занятий :)

Скажу сразу — если вы решите изучать программирование только самостоятельно, не вкладывая денег — придется потратить больше времени. Рассчитывайте на освоение новой специальности минимум через год, если занимаетесь обучением параллельно с другой работой.

Если вы найдёте, чем дополнить эту статью, чтобы сделать её полезнее для людей — напишите в комментариях.

С чего начать изучение программирования

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

Книга по веб-программированию для начинающих

В 2018 появилась книга «Введение в разработку программного обеспечения» Якова Крамаренко. Для изучающих программирование с нуля — возможно лучшая книга, с которой стоит начать. Книга освещает начальные шаги в веб-разработке, не затрагивая серверной части. Яков в доступной форме рассказывает про HTML, CSS  и Javascript, которые необходимы, если вы изучаете веб-программирование.

Поэтому теперь у вас есть выбор — дочитать до конца эту статью и воспользоваться моими рекомендациями, или начать с книги Якова :)

Ви можете розпочати вчити програмування українською or start learn programming in English — все варианты доступны! Главное начать :)

Для тех, кто только начинает освоение программирования я считаю это хорошим вариантом. Книга доступна бесплатно, хотя она стоит того, чтобы заплатить автору!

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

Также я очень рекомендую Гарвардский курс по основам программирования CS50: https://cs50.harvard.edu/.

Версия 2016 года есть в переводе: https://courses.prometheus.org.ua/courses/Prometheus/CS50/2016_T1/about.

Лучше пройти курс на английском. И язык прокачаете, и информация посвежее. Хотя сильно курс не менялся — только в 2017 вместо PHP начал использоваться Python.

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

Дальше — мои оригинальные рекомендации, актуальные и сегодня.

Каким программистом стать?

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

Лучший выбор в такой ситуации — на мой взгляд — начать изучать веб-разработку. Здесь ниже порог входа для новичков и есть возможность раньше начать выполнять несложные заказы.

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

Как самостоятельно стать программистом с нуля

Что нужно чтобы стать программистом

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

1. Разобраться в HTML и CSS

Хороший курс для базового освоения HTML и CSS: https://learn.shayhowe.com/html-css/ (English) или https://webref.ru/layout/learn-html-css (перевод).

По возможности я рекомендую все материалы читать на английском — он 100% понадобится вам в работе программистом.

После этого стоит посмотреть на возможности Bootstrap, который стал стандартом де-факто для ускоренной разработки веб-приложений: http://getbootstrap.com/

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

На этом тоже можно зарабатывать — как на фрилансе, так и работая в ИТ-компании, которая специализируется на веб-разработке.

Но раз мы решили стать программистом — двигаемся дальше!

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

2. Познакомиться с jQuery

Для этого я рекомендую книгу «jQuery — учебник для начинающих»:
http://anton.shevchuk.name/jquery-book/

Если понравилось — можно продолжить разбираться с frontend и начать изучать Javascript.

Если следом пойдет https://angularjs.org/ или http://backbonejs.org/ — то это путь во фронт-енд разработку. Хорошая специальность, тем более, что такие знания пригодятся любому программисту, который выбрал веб-разработку.

Мой совет — пока остановиться на jQuery и двигаться дальше.

3. Освоить серверный язык программирования

Тут выбор большой. Самые перспективные языки программирования — Ruby, Java, Python, Node.JS (Javascript для сервера).

Самым простым языком программирования для начинающего будет Python. Если вы изучите Python, а затем фреймворк Django для веб-разработки — у вас будет все необходимое для самостоятельной реализации довольно сложных проектов.

Хороший вариант — язык программирования Python и Django

Плюс — Python и Django научат вас «правильному» программированию.  Python стабильно входит в ТОП5-10 самых востребованных языков, а хорошие специалисты в Python одни из самых высокооплачиваемых программистов. Python одновременно простой и понятный для начинающих программистов язык программирования, и при этом используется во многих крупных компаниях и на больших проектах.

Вообщем я люблю Python и рекомендую начать с него.

Для самостоятельного освоения прочтите «Python для детей» Джейсона Бриггса или посмотрите:

Язык программирования Python за 10 минут

Язык программирования Python — подробно для начинающих

Среди других материалов рекомендую Learn Python The Hard Way. книгу «Простой Python. Современный стиль программирования». И, конечно The Python 2 Tutorial и The Python 3 Tutorial.

Django — возможно лучший фреймворк для веб-разработки

Лучший инструмент на все случаи жизни очень сложно найти. Django имеет все шансы стать таким инструментом для веб-разработки.

Я точно рекомендую познакомится с ним.

С чего начать для изучения Django:

Начните с официальной документации, там очень хороший tutorial: https://docs.djangoproject.com/en/2.1/intro/

Затем посмотрите http://www.tangowithdjango.com/

Tango with Django — это хорошая возможность подтянуть английский и одновременно получить понимание того, как устроены веб-проекты и как всё работает.

Вариант №2 — PHP и WordPress

Другой путь — начать с PHP и работы с популярными CMS. Если вы изучаете программирование сами и хотите быстро начать работать — начните с PHP.

Многие считают PHP «не совсем настоящим» языком программирования и для этого есть основания. PHP редко используется в крупных веб-приложениях и заточен только для веб — использовать его в других областях не получится.

С другой стороны — PHP лидирует по количеству запущенных в мире сайтов. На нем основаны самые популярные CMS (системы управления сайтами).

Для старта рекомендую книгу: «Изучаем РНР и MySQL» авторов Линн Бейли и Майкл Моррисон

После этого разберитесь с созданием тем под WordPress — это вероятно самая популярная CMS в мире, если оценивать по количеству запущенных сайтов.

Хорошо разобравшись с этим, уже можно найти работу. Под PHP и WordPress очень много сайтов, поэтому работы хватит всем.

Как начать зарабатывать программистом

Многие представляют работу программиста-фрилансера так:

Хочу стать программистом

Или так:

Как стать программистом с нуля

На самом деле это выглядит примерно так:

Программирование для начинающих

Если вы готовы к работе программиста и ищете способ зарабатывать — добро пожаловать на фриланс! Фриланс-биржи позволят вам найти простые заказы (возможно почти бесплатно на первых порах) — чтобы получить практику. Как правило, работа в ИТ-компании может быть прибыльнее, если вы просто ищете работу программиста.

Уже после пункта 2 — освоив HTML, CSS и jQuery — можно идти на фриланс биржи и брать несложные заказы, нарабатывая профиль.

Знаете английский? https://www.upwork.com/

Совсем нет, даже со словарем? http://freelance.ru/

К тому времени, когда вы сможете самостоятельно делать сайты, вам будет проще найти клиентов — будут отзывы и опыт.

Быстрый путь в веб-разработчики

Исходя из моего опыта, на изучение программирования с нуля уйдет от 6 до 12 месяцев в лучшем случае, при этом 6 месяцев — это если вам кто-то помогает.

Чтобы ускорить процесс входа в ИТ — ищите возможность пойти на тренинг (возможно понадобится не один) или найдите человека, который будет заниматься с вами. Реально без человека, который передаст вам свои знания — очень сложно, можно просидеть год за книгами и так и не начать. А со знающим человеком, который может просто рассказать о сложных вещах — намного легче.

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

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

Как только почуствуете уверенность в том, что можете что-то создать — ищите компанию, где сможете развиваться дальше или клиентов.

HTML, CSS, Python и Javascript — это только базовые знания, первый этап. Дальше очень важна практика, изучение алгоритмов и инструментов для разработки.

Учиться на программиста

Если есть вопросы — задавайте в комментариях! Надеюсь эта статья поможет вам сделать первый шаг. Успехов!

Как стать программистом с нуля самостоятельно: 74 комментария

  1. Первый родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет Как вообще такой бред может в голову прийти? нет слов!

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

      1. Здравствуйте!Мне 14,начинаю изучать программирование.Такой возраст оптимален для начала изучения?Выучил HTML и CSS,изучаю JavaScript.Мне пока бросить JS и начать изучать Phython,или уже после JS начинать его учить?Либо вообще параллельно все учить?Спасибо заранее!

  2. Допустим, что вы разобрались с тем, что такое программирование и каким программистом вы хотите стать.

  3. Статья очень интересная, спасибо. Как найти наставника чтобы начать с нуля. Спасибо за ответ.

    1. Жамшид, чтобы найти наставника нужно в первую очередь общаться и спрашивать об этом людей.
      И если вы найдете такого человека — расчитывайте на необходимость много работать самостоятельно и оплатить работу вашего наставника, даже если он не просит об этом.

      Я беру 2-3 людей в месяц для индивидуальной работы, если они готовы серьезно заниматься и реализовать проект под моим руководством.

    1. Дарья, я сейчас занимаюсь только индивидуально. Час занятия стоит $30.
      Курс веб-разработки на Django и Python — $600. Правда он расчитан на людей, которые уже немного знают HTML и имеют опыт программирования хотя бы на школьном уровне.

      Напишите мне подробнее про ваши цели и опыт — постараюсь подсказать, с чего лучше начать.

  4. Здравствуйте меня зовут Акмал я из Таджикистана
    Хочу с вами поболтать по поводу программирование есть вайбер 933007363 мой вайбер напишите помогите студенту учиться !!!

    1. Акмал, я помогаю студентам тем, что делюсь своим опытом на сайте itman.in :)
      Просто поболтать у меня нет возможности, поскольку кроме этого сайта я веду еще несколько проектов.
      Если вам нужна помощь, чтобы освоить программирование быстрее, и вы готовы оплатить это время — напишите мне в Skype — sergey_sharmazanov. Обсудим, смогу ли я помочь.

  5. а что делать если я знаю [HTML + CSS + JavaScript(«»)] backend [php+mySQL («15-25%»)] ?
    не подскажете где найти продолжение программирования ;
    Благодарю !

    1. Лучшее развитие вы получите, занимаясь над реальными проектами в ИТ-компании. Попробуйте отправить резюме на junior-разработчика в компании, которые специализируются на PHP и Javascript, ваших знаний должно быть достаточно, если вы можете самостоятельно разработать сайт с помощью перечисленных языков.

  6. Мне всё очень понравилось, спасибо,мне 14 лет и я хочу стать программистом меня это очень интересует,так хочеться чтобы мне кто-то помог бесплатно но к сожалению это платно ,я с детсва проходил игры полностью ,мне очень хочеться стать программистом если что пишите на мою почту вот a414550@gmail.com

  7. Учусь в школе, планирую стать программистом.Подскажите пожалуйста какой-нибудь источник ,благодаря которому можно быстро освоить язык программирования.И еще я бы хотел уточнить разве не Paskal самый простой язык программирования?

    1. Илья, если вы учитесь в школе, не гонитесь за скоростью освоения языка. Поступайте в профильный ВУЗ и параллельно изучайте программирование. Несколько источников перечислены в статье. Вам я также порекомендую Гарвардский курс CS50 — https://www.edx.org/course/introduction-computer-science-harvardx-cs50x

  8. А что делать мне, если я знаю основы РНР, HTML5, CSS-3, Bootstrap 3 есть свой личный сайт?

    1. Реализуйте свои знания :)
      Переговорите со знакомыми, найдите бизнесменов и предложите им создать сайты за минимальные деньги или бесплатно. Зарегистрируйтесь на фриланс-биржах. Выполните несколько проектов, наберитесь опыта — и отправляйте резюме в компании, которые занимаются разработкой на PHP.

  9. Привет! Мне 35 лет. Давно нравится программирование. Но, никак не решался начать изучать. Вот решил стать программистом, хоть это и звучит нереально в моем возрасте. Хочу зарабатывать на этом. Сергей, подскажи пожалуйста с чего мне начать в моем возрасте. Я обучаем. Два высших образования. Владею тремя языками. Буду благодарен ответу и дальнейшему сотрудничеству. Спасибо!

    1. Rustam, легче всего начать зарабатывать сейчас будет на Front-End, вероятно. Но это все равно потребует времени для выхода на нужный уровень.
      Со знанием языков можно попробовать себя на позиции менеджера проектов или Sales в ИТ-компании.
      И параллельно изучать программирование.
      35 лет ни о чем не говорят, было бы желание. Программирование можно освоить в любом возрасте.

  10. Толковая статья для начинающего путь программиста. Благодарность автору :-)

  11. Привет! Спасибо за интересный пост!
    Чтобы немного расширить тематику, хотел бы добавить информацию о том, с чем придется столкнуться человеку, работающему программистом:
    https://www.youtube.com/watch?v=cNzDT_SHodQ

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

  12. Сергей , что вы думаете по поводу гендерных предрассудков в программировании ? На сколько реально выйти за рамки этих предрассудков и работать на едином уровне ? И получать достойные заказы ?

    1. Лидия, я думаю гендерные предрассудки в области разработки ПО не имеют больших оснований для существования.
      Есть хорошие примеры, когда девушки становились прекрасными разработчиками.
      Просто станьте лучшим программистом, и у вас будет очередь из достойных заказчиков :)

  13. Здравствуйте. Спасибо за статью. мне 49 лет скоро. Когда появились ЭВМ, я самостоятельно выучила basic, fortran. Разрабатывала программы. Но так сложилось, что не было возможности дальше работать. Сейчас не поздно заняться программированием? Я самостоятельно изучаю фотошоп, иллюстратор и корел. Есть работы.

    1. Ольга, я не думаю, что для изучения программирования есть ограничения по возрасту. Особенно, если у вас есть опыт и понимание, как работает программирование вообще, как правильно составить алгоритм для решения задачи. Есть много направлений и ниш, в которых вы найдёте себя, если есть желание программировать. Кроме популярных фронт-енда и веб-разработки, есть Data Science, которая постоянно растёт. И я думаю у человека с возрастом и хорошим знанием алгоритмов будет преимущество в этой области. Это как один из примеров.

  14. Спасибо за материал. А как вы посоветуете найти человека-проводника для совсем начинающего? Есть ли какие-то хорошие сервисы с услугами такого обучения? В общем, как найти хорошего репетитора?)

    1. Ольга, всё зависит от ваших личных предпочтений, целей и финансовых возможностей.
      Если вы только хотите начать изучать программирование — я рекомендую приобрести книгу «Python для детей» и пройти её.
      Это даст вам хорошее понимание программирования вообще, с которым можно будет двигаться дальше.

    1. Сергей, напишите подробнее про свой опыт. Можно мне на почту — sergey.sharm@gmail.com.

      Вообще — вполне можно. Хотя ваш успех будет зависеть от разных факторов. Знаете ли вы английский? Насколько быстро сможете освоить разработку?
      Рекомендую посмотреть Гарвардский курс CS50, чтобы определиться, действительна ли эта тема интересна. Если почуствуете, что программирование — ваша тема — возвращайтесь, порекомендую, что делать дальше.

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

    1. Рома, все зависит от вашей ситуации и целей.
      1. ВУЗы есть разные. MIT или Harvard я однозначно рекомендую :)
      На мой взгляд, в ВУЗ нужно идти не потому, что родители после школы туда послали. А потому, что знаешь, зачем тебе знания и контакты, которые ты там получишь.
      Просто вы сможете обучаясь в ВУЗе работать или реализовывать свои проекты, применяе полученные знания разработки.
      2. Если освоить веб-разработку, то полученные знания пригодятся в любой сфере программирования.
      Почти все современные мобильные приложения — это взаимодействие между клиентом и сервером через веб.

    2. В этой статье я постарался описать самый быстрый путь для тех, кто хочет освоить программирование и начать им зарабатывать как можно быстрее.
      И этот путь — на мой взгляд — не самый правильный с точки зрения того, как нужно становиться программистом.
      Если пока не определились или никуда не торопитесь, я порекомендую пройти Гарвадский курс CS50. Он доступен через интернет.
      Другой вариант — если хотите изучать программирование, но не уверены, что будете заниматься именно веб-разработкой — начните с Python и Django.
      Python даст хорошие навыки.
      Django позволит быстро понять хорошие принципы веб-разработки (не просто создание сайтов освоить, а понять как делать веб-проекты). И потом можно будет решать — двигаться в эту сторону дальше или попробовать другую сферу программирования.

  16. Здравствуйте, подскажите, пожалуйста. Куда поступать на программиста после 9 класса?
    Спасибо за отве.

  17. Здравствуйте. Знаю HTML, CSS, JQ, BOOTSTRAP . Могу ли я уже полностью создавать рабочие сайты? И погрузится во фриланс? Так как нету 18, поэтому не могу найти работу, остаётся только фриланс. Хватит ли этих языков? Или надо ещё что то?

    1. Если знания хороши — вполне можно искать и делать несложные заказы. Хотя я бы поискал возможность устроиться Junior программистом или не стажировку в одну из аутсорсинговых ИТ-компаний. Возможно возраст и не будет помехой.

  18. Сергей, респект вам за статью, очень и очень стимулирует, по моему любого человека, наверное любой задумается, о начале карьеры программиста. Каждый чайник преобрел стимул, после прочтения этой статьи

  19. Добрый день. Спасибо за статью. Было интересно. Программированием не увлекался раньше, т.к. по роду деятельности был далек. Но пришлось столкнуться на работе с редактированием макросов и языком VBA, пришлось заниматься переработкой старых кодов под новые нужды. Подскажите в какую сторону двинуться дальше? Что почитать? Увлекло меня это. Хотел бы развиваться и дальше.

  20. Сергей,спасибо за статью,но есть вопрос. Скажем, не зная серверных языков , а зная только css,html можно ли создать простенькие сайты? Ну так, для опыта.

    1. Мне сложно ответить :)
      Я просто не пробовал что-то делать без школьных знаний )))

      Если серьёзно — то при программировании будут очень полезны знания не только школьных предметов, но и программы ВУЗа.
      Поэтому если точно решили стать программистом, и есть возможность учиться — учитесь. Никто не мешает параллельно работать.

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

  21. Мне 27, абсолютно ничего не понимаю и все это для меня вообще страшные и непонятные слова, даже их определения непонятны) как думаете возможно начать учиться самостоятельно или не стоит даже начинать? Я просто среднестатистический пользователь ПК. Вообще не представляю с чего начать. Хотелось бы иметь хотя бы 20-30 т.р в месяц доп дохода от этой деятельности. Что делать? С чего начать? Чтоб прям все для мега чайника… На чем остановиться? Дайте совет, пожалуйста.

    1. Евгений, в доп. доход от программирования я не очень верю. Тут или это ваше — и тогда можно и больше зарабатывать, или не ваше — и тогда уж…
      В любом случае — начните и всё поймёте.

      Я специально написал статью от простого к сложному. А сейчас ещё и книга неплохая появилась. И CS50… — для изучающих программирование — просто рай. Действуйте и напишите о результатах!

  22. Здравствуйте, полезная статья. Есть образование в тех вузе ,но гуманитарное направление, хотя специализация ‘экономическая информатика ‘ специальность ‘экономика и управление’ ещё на первом курсе пытались писать программы на языке Delphi, т. е. какие-то азы и понимание что это такое есть ,но все это стерлось , так как после универа прошло 7 лет и я была занята совсем в другой сфере- строительство и продажа недвижимости, хочу сменить сферу и сейчас есть свободный год, в декрете, работаю параллельно со своими клиентами по недвижимости, но выходить снова на работу в офис не планирую. Вы рекомендовали пару книг — с них стоит начать?Так же нашла курсы с ноября в нашей стране и городе , 2 семестра, думаю записаться. Ещё вопрос -,так как со временем и его распределением сложно ( малыш ещё 3 мес.), как думаете ,дистанционна я форма обучения намного не эффективнее дневной? так как разница в цене не существенная, но хотелось бы получить максимум знаний.Английским владею на уровне разговорном ,т.е. проблем нет, так же навыки в продаже у меня отличные и опыт — возможно ли это применить в IT и в каком направлении IT они мне могут пригодиться? Благодарю заранее за ответ!

    1. Оля, если у вас разговорный английский и есть опыт в продажах — я рекомендую прямо сейчас начинать общаться в ИТ компаниях, можно даже удалённо. Такие люди нужны.
      Относительно эффективности обучения — тут сложно заочно что-то оценивать. Конечно, лучше, когда ты видишь человека, который передаёт тебе знания. Хотя с другой стороны, важно, насколько хорошо этот человек способен передать. Однозначного ответа у меня нет.
      Начните с CS50, в статье есть ссылка.

  23. Никогда не занималась, да что уж там, даже не интересовалась программирование. За 2 месяца упорной учебы и практики выучила несколько ЯП, ну и плюс верстка и дизайн. Да, было много бессонных ночей, в прочем в программировании это нормально, привыкаешь. Сейчас стабильный заработок на фрилансе 5-6 тысяч долларов, + беру отдельные заказы как ЧП.
    19 лет)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *