Как начать изучать язык программирования c. Как научиться программировать с нуля в домашних условиях

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

С чего начать

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

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

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

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

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

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

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

В любом случае изучите веб-технологии. Это язык разметки HTML, стили CSS и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (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, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.

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

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

Самый популярный сервис в области обучения программированию с нуля, получивший несколько значительных раундов финансирования. Известен тем, что абсолютно бесплатен и создан специально для тех, кто ничего в программировании не понимает. Учит базовым принципам работы с JavaScript, HTML and CSS, Python и Ruby. Обучение проходит в форме коротких упражнений с простыми заданиями и инструкциями. Пользователь пишет код и сразу видит результат своих действий.

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

Если Codecademy исповедует минималистичный подход к обучению, то в Code School любят фантазировать и экспериментировать. Самое интересное у них - не базовые уроки по Ruby, JavaScript, HTML/CSS и iOS, а курсы-продолжения, такие как Rails for Zombies . Кредо компании - Learn by Doing («Обучайся, действуя»). Вместо скучных абстрактных заданий они предлагают пользователям программировать то, что им интересно, например игры про зомби.

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

Treehouse делают акцент на обучающем видео. Даже если вы не готовы к полноценному курсу по созданию сайта, приложения для iPhone или Android, а просто хотите получить базовые знания о том, что такое интернет и как он работает, стоит подписаться на их канал на YouTube. Тех, кто решит начать изучать Ruby on Rails, PHP и другие языки программирования, на сайте ждёт более 1 000 видеоуроков. Они собраны в курсы, посвящённые веб-дизайну, программированию, технологическому предпринимательству и многому другому.

Видео постоянно обновляются, так что курсы морально не устаревают. После каждого видео даются практические задания, интерактивные квизы. В конце каждого курса у вас будет готов небольшой проект. После этого сервис подскажет, что стоит изучить дальше. На сайте есть хороший пользовательский форум, можно получить фидбэк от экспертов, поучаствовать в мастер-классах. Единственный недостаток - обучение стоит денег, от $250 до $490 в год. У Treehouse есть отличный бесплатный дочерний проект для тех, кто уже чему-то научился, - Code Racer . Там нужно кодить на скорость, соревнуясь с противником. В процессе ему можно всячески мешать: например, забрасывать его экран фотографиями кошек.

Если обучение в одиночку вам не подходит, можно пройти онлайн-курсы с другими начинающими на Coursera, Udacity и других профильных сайтах, о которых мы уже . Плюс таких курсов в том, что у вас есть хоть и удалённый, но учитель, и определённый темп обучения, который не позволяет расслабляться. Курс Introduction to Computer Science (на видео) очень популярен среди новичков. Udacity, созданный на базе Стэнфордского университа, хорош тем, что совершенно бесплатно предоставляет университетские курсы в адаптированной под удалённое обучение форме. Рядом с каждым курсом есть шкала сложности. Предполагается, что, пройдя курс с нулевой сложностью, вы будете готовы к прохождению остальных, где изучаются конкретные языки. На Coursera тоже немало курсов для начинающих программистов, например, этот , посвящённый Python, и этот ­- про создание креативных мобильных приложений.

Если подавить гордость и признать, что все вышеуказанные курсы всё равно слишком сложны, можно начать с тех, что созданы специально для детей. Например, приложение для iPad и iPhone Move the Turtle . Это игра, которая обучает программированию через небольшие задания, каждое из которых заставляет двигаться черепашку. Сервис Alice , созданный в Carnegie Mellon University, учит созданию движущихся 3D-героев, параллельно давая основы C++ и Java. Hackety Hack - приложение, обучающее азам Ruby. В отличие от предыдущих оно делает это не через картинки, а уже через конкретные языковые команды. Но, конечно, самое лучшее для детей - это роботы, запрограммированные выполнять простые команды, которые сначала нужно прописать в виде компьютерного кода. Один из таких - робот Sparki, собравший деньги на Kickstarter. Сделать предзаказ можно , и стоить он будет всего $100.

Фотография via Shutterstock

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

Читайте мой личный рейтинг 10 лучших онлайн-курсов для начинающих обучение базовым основам языков веб-программирования с нуля до первых стажировок и начального трудоустройства в известные российские IT-компании. Они доступны на русском языке, в том числе для школьников и подростков. Здесь курсы по самым востребованным языкам от HTML и CSS до 1С, PHP, Java, Python, Ruby и С#. Те, кто дочитают статью до конца, получат ссылки на бесплатные курсы и интенсивы по программированию:)

1. Python для веб-разработчиков от SkillFactory

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

SkillFactory вместе с Игорем Босягиным, R&D-программистом Lamoda помогут освоить основы программирования на Python, фреймворк Django и разработать первые приложения за 6 месяцев. Вас ждут тусовка с полезными знакомствами, экзамен в конце курса, сертификат, а также помощь со стажировкой и трудоустройством. Обучение на курсе доступно из любой точки мира.

Стоимость курса от 33900 до 48900 в зависимости от даты брони места на курсе и количества свободных мест. Как читатель блога сайт вы можете получить 10% скидку, сообщив менеджеру кодовое слово igaryoh после оформления заявки. Читайте подробности о программе и записывайтесь на курс по этой ссылке .

3. Профессия веб-разработчик от GeekBrains

GeekBrains – образовательный проект, который стал частью экосистемы Mail.ru Group и готовит кадры преимущественно для нужд этого IT-гиганта, зачастую силами его же специалистов. Профессия веб-разработчика с нуля здесь даётся через вебинары на протяжении 10 месяцев почти по 8 тысяч рублей в месяц.

Это самый дорогой вариант, но вместе с профессией в комплекте идут бонусом бесплатные курсы по английскому и базам данных. Если вам интересна работа в компании Mail.ru Group или её партнёрах, то записывайтесь в онлайн-университет GeekBrains .

Формат : вебинары + разборы домашних заданий.

Длительность : 10 месяцев.

Стоимость : 7997 рублей в месяц.

4. Профессия веб-разработчик от Нетологии

Веб-разработчик – самая востребованная и актуальная профессия, требующая освоения разных инструментов. Интернет-университеты дают эту профессию на протяжении 8-12 месяцев. Преподаватели – опытные практики из известных IT-компаний дают навыки, которые студенты отрабатывают на реальных проектах. В результате выпускники получают умения, опыт, дипломы, проекты в портфолио и возможное трудоустройство в компании-партнёры.

В Нетологии эту специализацию называют «full-stack-разработчик». Это значит, что выпускник этого курса сможет создать сайт или веб-приложение от начала и до конца, что называется «под ключ». Зарегистрироваться на программу можно .

Формат

Длительность : 8 месяцев.

Стоимость

Читайте также:

5. Профессия веб-разработчик от Skillbox

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

Формат : видеолекции + видеоразборы домашних работ.

Длительность : 12 месяцев.

Стоимость : 39 000 - 50 000 р. или годовая рассрочка по 3900 р. в месяц.

6. Профессия Frontend-разработчик от Нетологии

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

Формат : вебинары + обратная связь по домашним работам.

Длительность : 8 месяцев.

Стоимость : 48 900 — 62 900 р. или годовая рассрочка по 5 240 р. в месяц.

7. Профессия Frontend-разработчик от GeekBrains

За 7 месяцев можно стать фронтендером в GeekBrains. Стоить будет примерно также как и в Нетологии. Но зато рассрочка на 7, а не на 12 месяцев. Подробности и регистрация .

Формат : вебинары + разборы домашних заданий.

Длительность : 7 месяцев.

Стоимость : 7 141 р. в месяц.

8. PHP-разработчик с нуля до PRO от Skillbox

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

Формат : видеолекции + видеоразборы домашних заданий.

Длительность : 12 месяцев.

Стоимость : 29 000 - 50 000 р. или годовая рассрочка 2 900 р. в месяц.

В GeekBrains этому же направлению готовы научить всего за полгода, но по стоимости может выйти дороже, чем в Skillbox. Подробности и регистрация . В Нетологии курс по PHP и базам данных длится 2 месяца и стоит 22 00 - 25 000 рублей, но эта информация для тех, кто внимательно читает статью. Ссылка вот .

Читайте также:

9. Pyton-разработчик от Нетологии

Более глубокая программа по изучению Питона у Нетологии - длится она почти год и включает в себя модули по направлениям HTML/CSS, JavaScript и Django. Подробности .

Формат : вебинары + обратная связь по домашним работам.

Длительность : 11 месяцев.

Стоимость : 48 900 — 62 900 р. или годовая рассрочка по 5 240 р. в месяц.

10. Мобильный разработчик с нуля от Skillbox

Люди всё чаще пользуются мобильными устройствами, отчего растёт фронт работ мобильной разработки и спрос на разработчиков мобильных приложений. Skillbox предлагает обширный годовой курс мобильной Java/iOs/Android-разработки для начинающих с нуля. Читайте подробности о нём и регистрируйтесь по этой, Java-программист . И в эту же компанию добавим курс Java-разработчик от Skillbox .

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

Бесплатные курсы по программированию

Многие сегодняшние разработчики-самоучки начинали своё обучение с изучения веб-программирования, а конкретно с языка гипертекстовой разметки (HTML) и каскадной таблицы стилей (CSS). Нетология даёт возможность изучить эти темы бесплатно за две недели под руководством опытных разработчиков из известных IT-компаний. Регистрируйтесь по этой ссылке , если вы только начинаете свой путь в программировании.

Другие платные курсы для программистов от Нетологии по этой ссылке , а от GeekBrains вот по этой .

P. S.: Всем, кто ищет курсы программирования в Москве, СПб, Екатеринбурге, Минске, Новосибирске, Нижнем Новгороде, Краснодаре и других городах России и СНГ настоятельно советую всё-таки сделать выбор в пользу онлайн-курсов, поскольку именно онлайн-технологии позволяют создавать самые качественные образовательные продукты по доступной цене (из-за отсутствия расходов на аренду), а также связывать лучших учителей и работодателей с учениками и будущими работниками из самых отдалённых от столиц регионов. К тому же, навык онлайн-обучения пригодится и для удалённого обучения в зарубежных школах.

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

П одписывайтесь на меня в Инстаграм , до бавляйтесь

Сказал мне, что на курсе они научат программировать любого человека, даже с нуля. Я спросил его: «А с гуманитарием справитесь?» И мы задумались, были ли случаи, когда «гуманитарий» выучил язык программирования?

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

- Никита, почему именно Ruby?
- Все просто, мы нашли очень хорошего преподавателя.

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


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


А зомбяк не хотите ли? railsforZOMBIES.org

Про Lisp

«Однако я не думаю, что смогу убедить кого-нибудь (старше 25) выучить Lisp.» Пол Грэм, «Побеждая посредственность»

, осваиваю Lisp.

;; Welcome to L(λ)THW! (let ((llthw "(learn lisp the hard way))) (format t "~{~@(~A~)~^ ~}, because ~{~A~^ ~} is easier!" llthw (cddr llthw))) ;; Common Lisp: Powerful, Expressive, Programmable, General Purpose, Multi-Paradigm.


Нашёл для себя удобную браузерную обучалку Learn Lisp The Hard Way

«За те годы, что я проработал в Viaweb, я прочитал множество объявлений о найме на работу. Примерно каждый месяц появлялся новый конкурент. Первое, что я делал после того, как проверял, доступна ли онлайновая демонстрация работы их программы, - смотрел список их вакансий. Через пару лет я научился отличать опасных конкурентов от неопасных. Чем больше отдавало IT-мэйнстримом от описания требуемых кандидатур, тем менее опасна была компания. Самыми безопасными были те, кому требовались специалисты по Oracle. О таких не стоило беспокоиться. Также мы были спокойны, если требовались разработчики на C++ или Java.

Если требовались программисты на Perl или Python, это уже было слегка пугающе - это значило, что компанией или, по крайней мере, ее технической частью заправляли настоящие хакеры. Если бы я когда-нибудь увидел объявление о найме на работу Lisp-хакеров, я бы обеспокоился не на шутку.» Пол Грэм, «Побеждая посредственность»

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

    например

    Общие упражнения:
    Project Euler содержит более 500 математических задач (на теорию чисел, числовых систем и пр.), которые нужно решить, используя программирование на любом языке.
    Code Abbey хранит более 200 задач по программированию. За решения 125 из них выдают сертификат, чем мотивируют многих студентов.
    Rosalind - это ещё один сайт наподобие Project Euler, который предоставляет на выбор более 200 задач по биоинформатике.
    Codingbat.com дарит упражнения по Java и Python, как для новичков, так и для продвинутых программистов.
    codegolf.stackexchange.com – сайт, на котором публикуют и обсуждают программистские головоломки.
    Ruby Quiz - серия головоломок, в которых вас просят написать короткие программы различной сложности. Исходные решения описаны на Ruby, но их можно реализовать на любом языке.

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

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

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

Получение начального понимания языка программирования Python и общих методов программирования (2 выходных дня):

  • Learn Python the Hard Way . Несмотря на название, это довольно простой способ, он делает изучение основных понятий очень легким, и большинство уроков займет менее 10 минут. Тем не менее, я обнаружил, что данный способ не работает для некоторых, более сложных тем, так что я рекомендую остановиться после урока 42 и двигаться дальше.
  • Google’s python class . Читайте заметки и / или смотрите видео и делайте все упражнения, пока вы не будете выполнять их правильно - не подсматривая в ответы . Борясь с упражнениями, которые я постоянно делал неправильно было очень полезным для меня в качестве полученного опыта, и я узнал бы гораздо меньше, если бы я просто посмотрел на ответы и пытался убедить себя, что я понял упражнение.

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

Получение начального понимания веб-фреймворка Django (1 выходной):

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

Во второй раз я не был так сосредоточен на новизне концепции и смог сосредоточиться на понимании того как все части взаимосвязаны.

Получение более глубокого понимания Python / общих концепций программирования (4-8 выходных дня):

  • Udacity’s intro CS class . Udacity курсы, как правило, разделены на 7 сеансов занятий (2-3 часа за сеанс), которые вы можете сделать в своем собственном темпе. (Я большой поклонник педагогики Udacity и рекомендую класс среднего уровня программирования или класс веб-разработки , как последующие для прохождения в этом двухмесячном курсе обучения).
  • Unit 1 of MIT’s intro CS course . Действительно полезны в обучении и на удивление легко усваиваются.

Практика построения простых веб-приложений (2 выходных дня):

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

Создайте свой прототип (2 выходных дня):

  • Создание прототипа всего за 2 выходных дня? Да, вы будете смущены тем как он выглядит (
mob_info