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

С чего начать учится программированию с нуля чайнику?
Такой вопрос поступил недавно от одного из подписчиков рубрики «Программирование с нуля«.  Давайте разберёмся, можно ли стать программистом с нуля самостоятельно и какие варианты есть для того, чтобы освоить программирование самостоятельно и начать зарабатывать на этом.

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

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

Про альтернативный — быстрый путь — я расскажу к конце статьи.

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

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

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

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

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

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

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

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

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

После этого стоит посмотреть на возможности 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 одни из самых высокооплачиваемых программистов. Python не только простой и понятный для начинающих программистов язык программирования, но и используется во многих крупных компаниях.

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

Для самостоятельного освоения посмотрите:

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

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

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

Для Django — https://docs.djangoproject.com/en/1.10/intro/tutorial01/.

Уроки или курс Django на русском — http://itman.in/uroki-django/

Быстрый вариант — 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 месяцев — это если вам кто-то помогает.

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

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

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

Коротко — мы начинаем с создания полноценного проекта на Python и Django, в процессе работы осваивая необходимую базу HTML и язык программирования.  На все уходит 2-2,5 месяца, если у вас уже есть опыт, и 3-4 месяца, если начать с нуля. За это время можно реально получить навык программирования, убрать страх «я не смогу» и разобраться с направлениями и необходимой базой для веб-разработки.

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

Подробнее напишу об этом подходе в следующий — как он работает и почему экономит время, почему начать стоит именно с Django и Python.

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

В любом случае, будут вопросы — пишите!

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

  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. Мне сложно ответить :)
      Я просто не пробовал что-то делать без школьных знаний )))

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

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

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

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