Тарифы Услуги Сим-карты

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

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

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

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

Программирование и возраст

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

Начать учить программирование можно в любом из трех возрастных категорий:

– Те, кому 11-12 лет или меньше, и они задумываются о начале обучения. Точнее, задумываются, как правило, их родители;

– Люди, кому от 14 до 18 лет;

– Те, кому от 20 – 30 лет и старше.

Как правило, дети 12 лет или меньше сами редко задумываются о том, чтобы стать программистом, да и вообще о становлении кем-либо. Чаще детей к этому подталкивают родители. Важно понять, есть ли у ребенка к этому интерес и, соответственно, какова может быть перспектива его развития в этом направлении.

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

Мой ребенок, когда ему было 6 лет, лекции по программированию и даже старался успеть все записать за преподавателем «с доски» в свою тетрадку. А на практические занятия на ПК в компьютерном классе ребенок не любил ходить, хотя и не отказывался там присутствовать.

Как понять предрасположенность ребенка?

Есть два пути:

  1. Лучше узнать свое чадо, дабы понять, есть ли у него логическое мышление, тяга к науке, к технике и какие-либо необычные способности, умения и знания. Все это вместе взятое поможет понять, является ли программирование той сферой, в которой может преуспеть юный ум.
  2. Второй путь – просто предложить будущему программисту эту сферу и заинтересовать его, ненавязчиво подтолкнув к ней.

Где учат программированию

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

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

В некоторых школах есть кружки по программированию.

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

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

Как направить ребенка?

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

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

Надо показать ребенку, как пишутся программы. На примере какой-нибудь простой игрушки. Неплохо для этого подходит Visual Basic, имеющийся внутри стандартного Microsoft Office, точнее, внутри Excel. Да и сам Excel – это возможность писать простые формулы, и тем самым автоматизировать вычисления. Можно привлечь для этого, например, знакомого студента или репетитора.

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

Но с детьми, надо понимать, не все так просто. То, что ребенку интересно сейчас, может ему стать неинтересно прямо завтра. Интерес надо все время подпитывать и поддерживать, и это уже не искусство программирования, а искусство воспитания.

Как выбрать направленность в сфере программирования?

В один прекрасный момент, лучше через несколько месяцев после покупки компьютера, предложите ребенку стать программистом. Объясните, как это перспективно и интересно, что ему можно будет создавать даже игры. При этом важно упомянуть игры вскользь, чтобы ребенок на «игростроении». Сфера эта хоть и интересная, но довольно сложная и узкая.

Сразу обязывать ребенка к чему-то не надо. Просто не фиксируйте внимание ребенка на конкретных сферах программирования.

Какой язык программирования учить?

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

Как уже упоминалось, Visual Basic встроен внутри Excel. Либо можно установить его отдельно.

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

  • Бейсик,
  • Паскаль или
  • Делфи.

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

Если учить программирование в возрасте с 14 до 18 лет

Возрастная категория примерно от 14 до 18 лет отличается тем, что здесь заинтересовать подростка родителям будет гораздо сложнее, хотя вполне возможно. Главное, использовать интересы, увлечения подростка или еще что-то такое, благодаря чему можно направить его пытливый ум в сторону программирования.

Как правило, в этом возрасте подростки активно используют компьютер с телефоном и уже сами решают, кем им стать. По крайней мере, те, кому интересен этот вопрос как таковой.

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

Взрослые люди тоже учат программирование

Возрастной диапазон от 20-30 лет и выше относится к той категории, в которой человек является сформировавшейся личностью и точно знает, чего он хочет добиться, и потому идет к своей цели прямолинейной поступью.

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

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

Люди, которые после 20-30 лет, начинают осваивать программирование с полного нуля и зачастую достигают замечательных результатов.

Можно стать программистом и в 40 лет при наличии сильной мотивации и склонности к написанию кода (программ).

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

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

С чего начать

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

Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

  • Самообразование . Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно , и приложений , которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
  • Университет . Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
  • Ментор . Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о , где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
  • Специализированные практические курсы . Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

Какой язык, технологию и направление выбрать

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

  • Наличие на рынке вакансий . Конечная цель этого пути - найти работу программистом. А это будет трудно сделать, если на рынке вакансий никто не будет искать разработчиков на вашем языке программирования. Проверьте сайты с вакансиями, посмотрите, кого больше ищут, выпишите десяток языков. И переходите к следующему критерию.
  • Низкий уровень вхождения . Если вам придётся потратить длительное время на изучение языка, это может отбить у вас охоту к программированию вообще. Почитайте о тех языках, которые вы выбрали выше. Просмотрите литературу, которую нужно будет прочитать, чтобы изучить эти языки. И выберите те, о которых пишут, что они лёгкие, или которые вам показались лёгкими. Такими языками могут оказаться PHP, Ruby, Python.
  • Кайф от процесса . Если вам не нравится писать код на выбранном языке, вы не будете получать удовольствия от этого процесса, от работы и от жизни. А оно вам надо? Делайте правильный выбор.

Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли - разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.

В любом случае изучите веб-технологии. Это язык разметки , стили и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

Как получить начальный опыт

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

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

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

Если вы знаете английский язык, регистрируйтесь лучше на англоязычных биржах. Рынок там больше. Если не знаете английского, учите его. А пока что вам доступны русскоязычные биржи фриланса. Ищите небольшие проекты, которые соответствуют вашему уровню знаний или чуть выше него. Подайте заявку на пару десятков таких заданий. И приготовьтесь получить море отказов. Но если одна-две заявки выстрелят, у вас будет шанс получить реальный опыт.

Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или . Не стесняйтесь задавать там вопросы.

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

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

Почему стоит выбрать Python

Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python . Я очень советую выбрать именно его в качестве первого языка программирования.

Код программы на Python читабелен. Вам даже не нужно быть программистом, чтобы в общих чертах понять, что происходит в программе. Из-за несложного синтаксиса Python вам понадобится меньше времени для написания программы, чем, например, на Java. Огромная база библиотек, которая сэкономит вам кучу сил, нервов и времени. Python является высокоуровневым языком. А значит, вам не нужно особо думать о ячейках памяти и о том, что там разместить. Python - язык широкого назначения. И он такой простой, что даже дети могут его выучить.

Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

PHP - ещё один очень популярный язык. И, мне кажется, он даже проще, чем Python. Очень легко найти себе ментора или решение какой-нибудь проблемы на форуме. Всё потому, что в мире существует огромное количество PHP-программистов разного уровня. В PHP нет нормального импорта, есть множество вариантов решения одной и той же задачи. А это усложняет обучение. И PHP заточен исключительно под веб.

Языки C и C# очень сложны для новичка. Ruby - хороший выбор в качестве второго языка, но не первого. JavaScript - очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

Важен ли английский язык

Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

Что нужно знать, кроме языка программирования

Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что - зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.

Последние шаги

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

22.12.14 156348

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

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

Что нужно знать «чайнику»

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

Чтобы стать программистом, нужно быть не только умным, но еще терпеливым и настырным. Обучение программированию всегда сопровождается головой болью, красными от недосыпания глазами и отрешенным взглядом. Именно по нему можно легко узнать программиста.

Многие начинающие обучение считают написание кода чуть ли не самой романтической профессией. Особенно увеличилось количество желающих познать программирование после просмотра фильма «Матрица ». Именно главный герой этой картины Нео подтолкнул многих к становлению на путь постижения программных наук:

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

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

Программирования как отдельной отрасли и специализации не существовало как таковой. Его основы преподавались лишь как привязка к другим инженерным дисциплинам. И даже те крохи знаний, которые давались студентам в этой области, не соответствовали современным стандартам и утратили свою актуальность еще 20-30 лет назад.

В странах бывшего СССР основным языком программирования, преподаваемым в технических ВУЗах, был Бейсик.

Ситуация кардинально не изменилась и через 10 лет. Лишь некоторые учебные заведения, учуяв веяния нового времени, в начале двухтысячных года начали перекраивать свое обучение под мировые стандарты. И только с этого момента программирование стало восприниматься как отдельная профессия и специализация обучения:

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

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

В некоторой мере такая тенденция сохраняется и по сей день. Хотя в наше время количество профессионалов, занимающихся преподаванием, заметно возросло.

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

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

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

Чаще всего выбор падает на язык программирования C (си) . Именно с него большинство новичков во всем мире начинают свое обучение. На основе C было создана основная часть программных языков, и во многом они наследуют его структуру и синтаксис.

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

Рассмотрим особенности этого языка, делающего его оптимальным для изучения:

  • Простая для понимания основа – часть встроенных возможностей языка для простоты вынесена в отдельно подключаемые библиотеки. К таким элементам относится большая часть математических функций и методов для работы с файловой системой;
  • Оптимально подогнанная система типов – благодаря простому набору типов данных и строгой типизации уменьшается риск допущения ошибок в процессе написания программного кода;
  • Направленность C на процедурный тип программирования, при котором соблюдается четкая иерархия всех элементов кода;
  • Доступ к памяти машины с помощью указателей;
  • Минимальное количество поддерживаемых ключевых слов;
  • Поддержка области действия имен;
  • Поддержка пользовательских типов данных (объединения и структуры ).

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

Программы (компиляторы) для программирования

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

Компилятор – специальная программа, переводящая программный код в форму, понятную для компьютера.

Вот несколько специализированных компиляторов с поддержкой языка C:

  • Borland C++ — бесплатный компилятор, идеально подходящий для начинающего обучение. В отличие от предыдущего инструмента, отличается ясным и понятным интерфейсом. Поэтому его освоение не вызовет особых трудностей даже при самостоятельном освоении азов программирования:

  • Code::Blocks – бесплатная среда разработки, поддерживающая написание кода на нескольких языках. Средний по сложности освоения вариант:

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

Как начать свой путь к карьере программиста с помощью самостоятельного изучения программирования? Это один из самых популярных вопросов на многих форумах, которым задаются практически все новички.

Для начала необходимо усвоить основной принцип, самый главный из всех – учитесь искать информацию самостоятельно, с помощью интернета, различной литературы, научных статей. Без этого навыка невозможно ничего изучить самостоятельно, особенно программирование. В интернете очень много сайтов, книг и приложений для изучения с нуля, но вот так сразу садиться и погружаться в эту массу новой информации – не самый легкий путь для новичков. Очень полезным в данном случае будет, если найдете, опытный наставник. Он будет давать советы и сможет помочь принять верное решение, объяснить что-либо в непростой ситуации. Такого ментора можно найти через ваших знакомых программистов, а также на различных тематических форумах и онлайн-конференциях.

Следующий шаг, который необходимо предпринять новичку – выбрать правильный для него язык программирования. Очень помогает в данном вопросе знание конечной цели – для чего было надо изучать программирование и какой-то конкретно язык. Если же таких сведений нет, то при выборе языка можно руководствоваться следующими принципами: низкий уровень вхождения – чтобы не пропало желание программировать, наличие хороших вакансий на рынке – чтобы после обучения найти высокооплачиваемую работу. Сильно на этом шаге не стоит зацикливаться, потому что лучше начать с «любого» языка, чем тратить много времени в поисках того самого «идеального». Ведь потом, освоив начальные знания одного языка, можно будет без особых трудностей переключиться на изучение другого.

Теперь самый главный пункт – практика. Очень много новеньких тормозит на нем. Важно как можно быстрее начать писать первые строки собственного кода, несмотря на то что это кажется очень сложным. Можно выполнять все задания из учебников, перепечатывать примеры оттуда, после освоения – усложнять их собственными идеями. Так же можно попробовать зарегистрироваться для получения собственных проектов. Да, новичку искать и выполнять заказы будет очень сложно, но зато это будет реальный опыт, который будет не стыдно потом показать работодателю.

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

Наконец, последний, но не маловажный пункт, который касается провалов и неудач. Так вот, их не стоит бояться. Чем больше усилий было потрачено, чем сложнее далось обучение чему-либо, тем проще будет в дальнейшем и тем дольше будет в памяти усвоенная информация. Попытки, не увенчавшиеся успехом, при должном их анализе и поиске ошибок помогут приобрести более глубокое понимание. Анализировать свои ошибки, находить их и уметь собственноручно проводить критику– очень важные качества, необходимые для самостоятельного изучения не только программирования, но и любых других наук. И самое главное – это вера в себя и свой успех. Ее наличие позитивно скажется на эффективности обучения, и при уверенности в себе и своих способностях есть все основания полагать, что самостоятельное изучение программирования увенчается успехом.

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

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

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

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

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

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

Версия 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 (перевод).

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

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

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

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

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

Если понравилось — можно продолжить разбираться с 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 для детей» Джейсона Бриггса или посмотрите:

Среди других материалов рекомендую 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/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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