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

Для Windows Phone 19.03.2019
Для Windows Phone

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

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

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

10. Выясните, почему вы хотите программировать

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

9. Выберите правильный язык

7. Попробуйте приложения для детей

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

6. Воспользуйтесь бесплатными онлайн-тренингами

Бесплатные онлайн тренинги и проекты (Codecademy , Hour of Code и др.) могут помочь вам в написании первой программы. Учебные пособия от Khan Academy, Codecademy, Code.org и других познакомят с основами программирования и всем необходимым для создания игры, сайта или другого проекта. Найдите нужный источник в зависимости от языка программирования, воспользовавшись . Это хорошая отправная точка, однако дальнейшее обучение вам нужно взять на себя.

5. Пройдите онлайн-курс

Онлайн-курсы по программированию предполагают более обширную образовательную подготовку по сравнению с сайтами, предлагающами онлайн-тренинги по одному языку. Такие курсы предназначены для обучения основным навыкам в течение нескольких месяцев на занятиях университетского уровня. Я большой поклонник гарвардского онлайн-курса CS50 (его можно пройти бесплатно). Существуют также другие возможности . Вы даже можете получить образование университетского уровня, выбрав один из 15 онлайн-курсов .

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

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

3. Изучайте, играя

Иногда лучшим способом обучения являются игры. В то время, как многие учебники по программированию обучают вас программировать простые либо сложные игры, некоторые обучающие сайты сами являются играми: Code Combat и CodinGame - инструменты, используя которые вы можете весело провести время.

2. Найдите наставника или станьте им

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

1. Разберите чужой код

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

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

На деле нужно помнить всего три правила для успешной стратегии обучения:

  1. Идите к привычке, а не к цели
  2. Учёба в одиночку приносит страдания
  3. Создавайте

А теперь подробнее о каждом из пунктов.

1. Концентрируйтесь на построении привычек, а не на целях.

Мы привыкли воспринимать цель любой деятельности как самоцель (уж извините за тавтологию), но от этой привычки нужно избавляться. Если поставить себе цель похудеть на 30 килограмм за 3 месяца, можно заработать стойкое отвращение ко всем на свете фитнес-клубам, возненавидеть диетические хлебцы и овсянку и вздрагивать от приснившегося во сне бургера. Так не пойдёт. Гораздо эффективней формировать в себе привычку - к другому питанию, к другому образу жизни, к другому расписанию, не бегая ежеминутно к весам и не подсчитывая страдальчески калории в ресторане.

То же работает, когда учишься программировать. Если вы хотите стать веб-разработчиком за 21 день, ничего, кроме разочарования, вы не получите. Если вы скажете себе: «Мне нужно посвящать программированию 20-30 часов в неделю и заниматься этим ежедневно» (не «для того чтобы», а «потому что мне нравится это делать»), в конце концов вы достигнете цели, о которой даже не мечтали.

Здесь работает принцип постепенного увеличения нагрузки (да-да, как в спорте). Начинайте с 15 минут занятий в день. Если почувствуете, что можете больше, увеличьте продолжительность до 20 минут. Не пытайтесь перепрыгнуть свои собственные возможности, устраивая 10-часовые марафоны кодинга - это может дать вам ложное чувство удовлетворения, но в итоге выльется в усталость.

Ваша цель: не ставить цель, а постепенно развиваться .

2. Учёба в одиночку = боль и страдания.

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

Опытный наставник

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

Сообщество единомышленников

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

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

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

3. Создавайте!

В первый год своего обучения веб-разработке я создал несколько проектов:

Клон Digg;

Приложение интернет-магазина (на Rails 4, совместная разработка);

Приложение в стиле GeekSquad;

Онлайн-класс;

Приложение для изучения иностранных слов

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

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

4. Не вымирайте

Это секретный, четвёртый пункт, который доступен тем, кто дочитает пост до конца.

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

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

22.12.14 157K

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1. Самостоятельно

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

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

Платформа с бесплатными курсами по веб-разработке freeCodeCamp

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

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

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

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

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


Сервис вопросов и ответов на технологические темы «Тостер»

Оттачивать навыки удобно на специальных площадках, где можно посоревноваться с другими программистами, решая с помощью кода различные практические задачи. В числе таких сервисов - Codewars , TopCoder и HackerRank .

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

2. С помощью ментора

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

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

3. У преподавателей «живых» курсов

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

Популярные русскоязычные онлайн-площадки, которые занимаются системной подготовкой программистов: «Нетология », GeekBrains и Loftschool .

Если предпочитаете заниматься очно, можете поискать образовательные центры, которые обучают программированию в вашем населённом пункте. К сожалению, такие заведения чаще всего присутствуют только в больших городах. В качестве примера можно привести компьютерную академию «ШАГ », у которой есть филиалы в нескольких странах.

4. В университете

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

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

Как выбрать направление и язык

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

  1. Веб-разработка . Популярные языки: JavaScript, PHP, Python, Ruby.
  2. Мобильная разработка . Популярные языки: Java, Swift.
  3. Разработка игр и программ для настольных компьютеров . Популярные языки: C++, C#, C.
  4. Big Data, машинное обучение . Популярные языки: Python, R, Scala.

На что обратить внимание при выборе

Чтобы сделать правильный выбор направления и, в частности, языка, учитывайте следующие факторы: сложность освоения и количество обучающих материалов в Сети, ваши личные предпочтения (что именно хотите разрабатывать) и востребованность языка на рынке труда.


График востребованности языков на международном рынке труда / research.hackerrank.com

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

Если не можете определиться

Если вы в замешательстве, присмотритесь к JavaScript - языку, на котором написан почти весь веб. Многие организации и программисты советуют новичкам выбирать именно этот язык в качестве первого.

Например, основатель образовательного ресурса freeCodeCamp Квинси Ларсон JavaScript всем начинающим. Ларсон приводит очень простые аргументы:

  1. JavaScript относительно легко освоить. А чтобы написать что-то и запустить на этом языке, достаточно иметь редактор кода и браузер.
  2. JavaScript - самый востребованный язык на международном рынке труда и у него большие перспективы. В экосистему JavaScript инвестируют крупные компании вроде Google, Microsoft и Facebook.
  3. У JavaScript очень широкая сфера применения: от сайтов и браузерных игр до мобильных приложений.

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

Что ещё должен знать программист: математика и английский?

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

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

Как получить первый опыт и первую работу

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

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

  1. Выполните несколько заказов на . Это могут быть «Фрилансим » или Upwork . Предлагайте свои услуги бесплатно, тогда к вам придут первые заказчики.
  2. Найдите единомышленников и создайте с ними общий проект. Люди объединяются для таких целей почти на каждой образовательной площадке, где есть курсы по программированию.
  3. Выберите курсы, организатор которых помогает с трудоустройством. Например, в GeekBrains после обучения открывается доступ к стажировкам от разных компаний, в том числе - оплачиваемым. GeekUniversity и «ШАГ» гарантируют трудоустройство своим выпускникам.

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



Рекомендуем почитать

Наверх