Содержание

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

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

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

Создаете свой первый сайт? Попробуйте использовать конструктор сайтов без кода
Для создания сайта с помощью такого конструктора, как Wix, вам не нужны навыки кодирования. Этот инструмент поставляется с 800+ дизайнерскими шаблонами и позволяет управлять сайтом с мобильного > Попробуйте Wix бесплатно, нажмите здесь

Лучшие места для самостоятельного обучения программированию

1.

Академия кодаКодовая академия

Эта платформа электронного обучения находится в ведении компании Ryzac, Inc. Она существует уже почти десять лет, что означает наличие опытных operaТоры и хорошо зарекомендовавшие себя учебные программы. Регистрация и обучение в Code Academy фактически бесплатны.

Вы можете просто использовать свой адрес электронной почты или даже учетную запись Google, чтобы начать. Бесплатные аккаунты получают больше доступа, чем вы думаете. Вы можете выбрать один из 14 самых популярных языков кодирования и скриптов, включая HTML, Java, PHPи многое другое.

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

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

Цена: бесплатно

Посетить Code Academy

2.

Битовая степеньBitDegree

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

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

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

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

Цена: варьируется

Посетить BitDegree

3. Udemy

Udemy

Udemy — еще одна платформа электронного обучения, которая предназначена не только для программирования. Тем не менее, те, кто хочет кодировать, обнаружат, что у него есть огромное количество ресурсов в этой области. При быстром поиске курсов программирования было обнаружено более 11,000 XNUMX курсов.

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

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

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

Цена: варьируется

Посетить Удеми

4.

FreeCodeCampFreeCodeCamp

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

Он предлагает сочетание более 6,000 учебных пособий и курсов, большинство из которых хорошо управляемы и интерактивны по своей природе. Дизайн на самом деле поразительно похож на дизайн Code Academy, хотя и с более архаичным шаблоном.

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

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

Цена: бесплатно

Посетить FreeCodeCamp

5. Массачусетский технологический институт OpenCourseWare

MIT OpenCourseWare

Для тех, кто предпочитает изучать программирование, немного напоминающее формальность, Massachusetts Institute of Technology (MIT) MIT OpenCourseWare — идеальный выбор. Несмотря на то, что здесь есть большое количество курсов, Массачусетский технологический институт знаменит — вы понимаете — технологиями.

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

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

Для тех, кто ненавидел школу и закончил ее, поклявшись никогда не возвращаться, избегайте этого сайта, как чумы. Это действительно вызывает воспоминания об университетских днях, которые могут стать кошмаром для некоторых (например, меня). Больше никаких 48-часовых программ для этого парня!

Цена: бесплатно

Посетить OpenCourseWare

6. царапать

Scratch

Несмотря на интерактивность, простоту использования, геймификацию и многое другое, мы ничего не покрыли для младших. Именно здесь на помощь приходит Scratch. Это интерактивная игровая платформа для обучения детей, особенно в возрасте от 8 до 16 лет, только одному языку — Scratch.

Разработан и operaСозданный Массачусетским технологическим институтом, этот отличный инструмент абсолютно бесплатен и позволяет детям изучать логику программирования вместе со своими родителями. Для детей младшего возраста у них также есть альтернатива, ScratchJr.

Хотя на самом деле это не инструмент для обучения программированию, он формирует важную основу для детей, когда они готовятся к будущему. С помощью Scratch можно отточить такие важные навыки, как рассуждение, творчество и сотрудничество. И это весело. 

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

Цена: бесплатно

Посетить Scratch

Зачем учиться программированию?

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

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

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

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

Насколько сложно научиться программировать самому?

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

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

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

Этот список ясно показывает, что существуют легко доступные, всесторонние и даже бесплатные способы обучения. Хотя как намек;

Вот некоторые более простые для изучения языки программирования и сценарии: HTML/CSS/JavaScript, Python, рубин, Java, PHP.

Заключительные мысли

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

Есть много вакансий и компаний, которые не потребуют от вас диплома специалиста по информатике, так что это способ продвинуться вверх, если вы этого хотите. Фактически, некоторые из сайтов в этом списке поддерживаются крупными техническими именами, включая Amazon, Microsoft и Google.

Читать далее:

  • Как сделать игровое приложение бесплатно
  • Отличные платформы для создания веб-сайтов и мобильных приложений
  • 3 простых метода создания собственного сайта
  • Программирование для детей — что вам нужно знать

Как научиться программировать С НУЛЯ для новичков и бесплатно

Курсы покупать не обязательно! Единственный способ научиться программировать — это сесть и начать программировать. Самое лучшее — это читать статьи с пошаговыми инструкциями по написания простых программ, и тут же пробовать повторять, с небольшими модификациями от себя. Или купите хорошо структурированную книгу по тому языку, что выбрали для старта. Обязательно практикуйте полученные знания. При обучении по книгам выбирайте свежие издания, с актуальной информацией (смотрите на год издания! это очень важно!).

Не существует лучшего языка программирования, и как только вы выучите один, вам будет легко освоить и второй и третий. Так что не стоит зацикливаться на выборе первого языка.  Можете начать с Python — он простой. Но лучше руководствоваться сферой применения. Изначально понять что именно вы собираетесь программировать: это что-то в интернете (web-приложения и сайты), программы для компьютера (десктоп) или мобильные приложения. От этого и следует на самом деле отталкиваться. Так как для каждой мною перечисленной сферы есть свой «самый правильный язык».

Если не понимаете какую-либо тему, изучайте её «гуглением» — это лучший и правильный путь. Нужно рассмотреть её с разных сторон и в разных источниках: блоги, форумы, видео на Ютубе.

Если изучение на «боевом языке программирования» идет трудно. И вы совсем не понимаете базовых концепций и абстракций. Тогда попробуйте специальные программы для детей. Это нормальная практика для понимания азов. Многие программы для детского обучения просты, но некоторые из них, например, Scratch, подходят для любого возраста. 

Пройдите бесплатные онлайн тренинги: Stepik.org, FreeCodeCamp, Codecademy, Hour of Code, Khan Academy, Codecademy, Code. org или попробуйте приложение Solo Learn. Эти курсы и программы познакомят вас с основами программирования для создания своего первого проекта. Для тех кто дружит с английским можно посоветовать пройти гарвардский онлайн-курс CS50 — это бесплатно. 

До сих пор популярны следующие языки программирования: Python, JavaScript, Java, С, С++, С#, PHP 

Набирают популярность следующие языки программирования: Dart, Kotlin, Go, Rust, Scala

Отличный курс «Программирование на Python для новичков»

Курс посвящен базовым понятиям и элементам языка программирования Python (операторы, числовые и строковые переменные, списки, условия и циклы). Курс является вводным и подойдет слушателям, не имеющим опыта написания программ ни на одном из языков программирования. Ссылка: https://stepik.org/course/67/promo

МООК но не совсем. Если говорить о зарубежных международных площадках в стиле курсов, то мне очень нравится подход к обучению на FreeCodeCamp — он более настоящий что-ли.

freeCodeCamp (« Free Code Camp ») — в юридическом плане это некоммерческая организация. В техническом плане это интерактивная обучающая веб-платформа, онлайн-форум сообщества, чаты, онлайн-публикации и местные организации, которые намерены проводить обучение в Интернете доступное для всех в мире. Все онлайн курсы по программированию от FreeCodeCamp (FCC) бесплатны. Особенность ресурса в том, что ученики проходят обучение не поодиночке, а в группах с другими студентами. По завершении всех задач проекта студенты становятся партнерами других некоммерческих организаций и создают им веб-приложения, что дает студентам практический опыт разработки.

freeCodeCamp был запущен в октябре 2014 года и зарегистрирован как Free Code Camp, Inc. Основатель, Куинси Ларсон, является разработчиком программного обеспечения, который занялся программированием после аспирантуры и создал freeCodeCamp как способ упростить прогресс ученика от новичка до реальной работы.

freeCodeCamp — это моя попытка исправить крайне неэффективный и обходной способ, которым я научился писать код. Я посвящаю свою карьеру и всю оставшуюся жизнь тому, чтобы сделать этот процесс максимально эффективным и безболезненным. […] Все те вещи, которые превратили обучение программированию в кошмар для меня, — это вещи, которые мы пытаемся исправить с помощью freeCodeCamp. Куинси Ларсон

Первоначальная учебная программа была ориентирована на MongoDB , Express.js , AngularJS и Node.js и, по оценкам, занимала 800 часов. Многие уроки были ссылками на бесплатные материалы на других платформах, таких как Codecademy , Stanford или Code School . Курс был разбит на «Путевые точки» (быстрые интерактивные учебные пособия), «Костры» (задачи по алгоритмам), «Ziplines» (интерфейсные проекты) и «Basejumps» (проекты с полным стеком). За завершение front-end и full-stack проектов студенту вручались соответствующие сертификаты.

Учебная программа была обновлена ​​в январе 2016 года, чтобы меньше полагаться на сторонний материал, и переключить фокус с AngularJS на React. js в качестве предпочтительной интерфейсной библиотеки. К курсовой работе был добавлен ряд дополнений, в том числе D3.js и Sass , которые увеличили общее время до 2080 часов и добавилось еще два сертификата: по визуализации данных и бэкэнду.

Куинси Ларсон — создатель freeCodeCamp

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

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

Он живет в Техасе со своей семьей и проводит время, работая над freeCodeCamp, пишет и интервьюирует авторов для публикации на freeCodeCamp, координирует проекты с открытым исходным кодом, такие как Chapter (бесплатная альтернатива MeetUp) выступая за свободный и открытый Интернет и играет со своими двумя маленькими детьми.

Учебный план freeCodeCamp

Учебная программа для самостоятельного обучения  включает 1400 часов интерактивных задач по программированию и проектов веб-разработки, а также 800 часов участия в проектах с открытым исходным кодом  для некоммерческих организаций и постоянно расширяется за счет новых задач и проектов.  Это соответствует примерно одному году программирования на полную ставку. Учебная программа разделена на адаптивный веб-дизайн , алгоритмы JavaScript и структуры данных , библиотеки, визуализацию данных , API и микросервисы , а также информационную безопасность и обеспечение качества. По завершении каждого раздела участники получают сертификат.

Учебный план делает упор на парное программирование , предназначенное для развития культуры сотрудничества и совместного обучения, которое может преодолеть сомнения учащихся в адекватности своих навыков (обычно называемое « синдромом самозванца »). 

Языки и технологии, которые в настоящее время преподаются в freeCodeCamp, включают HTML5 , CSS 3 , JavaScript , jQuery , Bootstrap , Sass, React.js, Node.js, Python , Express.js, MongoDB и Git . 

Некоммерческая работа freeCodeCamp

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

В 2016 году freeCodeCamp объявил о своей инициативе «Открытый исходный код для блага», которая позволяет распространять и открывать исходные коды своей некоммерческой работы для всех некоммерческих организаций. Mail for Good — это один из проектов, который помогает организациям отправлять массовые сообщения электронной почты по невысокой цене, который служит более дешевой альтернативой таким сервисам, как MailChimp .

Обучение доступно только на английском языке.

Что я хотел бы знать, прежде чем научиться программировать | Ави Фломбаум | Учиться. Любовь. Код.

Опубликовано в

·

Чтение: 7 мин.

·

16 сентября 2016 г.

Я начал учиться программировать в 11 лет, перепрограммировав компьютерную игру Nibbles… чтобы сделать ее сложнее.

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

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

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

1. Очень важно научиться работать с другими разработчиками.

Когда вы учитесь сами, возникает соблазн измерить, сколько вы знаете, тем, сколько вы можете сделать за определенное время. Хотел бы я знать, что моя личная скорость не так важна, как моя способность работать с другими. Я думал: «Я добрался из точки А в точку Z за неделю. В следующий раз я хочу сократить это вдвое», тогда как я должен был думать: «Как мне добраться из A в F, пока кто-то другой переходит из F в M, а другой человек идет из M в R». Потому что это — это то, как на самом деле происходит программирование в реальном мире.

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

2. Знание того, как что-то работает, не равнозначно знанию того, как это использовать.

В программировании существует множество архитектур и шаблонов. Когда вы начинаете учить себя, у вас, вероятно, есть один из двух вариантов: ( 1) вы можете игнорировать их или ( 2) вы можете использовать их, не обязательно зная, как они работают или почему они существуют. Например, если вы никогда не чувствуете боли, связанной с объектной ориентацией, вы можете использовать объектно-ориентированный код, не понимая, почему он лучше, или полностью игнорировать объектно-ориентированный код и писать все процедурно.

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

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

3. Никогда, никогда не бойся выставлять себя напоказ.

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

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

4. Старайтесь быть своими героями.

Всегда подражайте программистам, на которых равняетесь. Я помню, как подумал: «Я хочу писать код, как этот человек — о, они пытались написать книгу? Я попробую написать книгу. Они написали библиотеку? Попробую написать библиотеку. У них есть блог? У меня будет блог». Я бы во всем подражал успешным программистам, делающим то, что я хотел. Ни одна из написанных мной библиотек так и не взлетела. Ни одна из книг, которые я написал, так и не взлетела. Ни один из блогов, которые я вел, так и не взлетел. Но прохождение движений научило меня тому, что значит быть профессиональным программистом — и всему, что с этим связано.

5. Читайте книги, даже если вы их не понимаете.

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

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

  • Учитесь программировать Криса Пайна — хорошая книга для тех, кто не программировал ни на одном языке 064
  • Гибкая разработка с Rails Дэвид Хайнемайер Ханссон
  • Weaving the Web Тим Бернерс-Ли — хороший источник истории и контекста того, что мы делаем сегодня

6.

То, как выглядит ваш код, имеет абсолютное значение.

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

7. Лучше быть специалистом в чем-то одном, чем быть экспертом ни в чем.

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

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

8. Ruby может быть хорошей отправной точкой.

( 7) здесь важнее. Конкретные языки не так важны для новичков, но в Flatiron School мы настоятельно рекомендуем начать с Ruby, прежде чем переходить к другим языкам, таким как JavaScript. Мац, программист, создавший Ruby, создал язык, чтобы сделать других программистов счастливыми, и, на мой взгляд, Ruby действительно ценит ваше счастье. Он включает в себя сложность, индивидуальность и множественность подходов к каждому проекту.

Голландский ученый-компьютерщик Эдсгер Дейкстра однажды сказал: «Инструменты, которые мы используем, оказывают глубокое (и коварное!) влияние на наши мыслительные привычки и, следовательно, на наши мыслительные способности». Это означает, что языки программирования могут фактически изменить то, как мы думать о проблемах. Мышление в Ruby не является близоруким или ограничивающим. Это освобождающий, выразительный способ мышления, и не случайно он также используется для создания потрясающих вещей. Если бы мне пришлось учиться заново, я бы все равно начал с Ruby.

9. Обучение программированию не происходит сразу.

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

10. Полностью влюбиться в него.

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

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

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

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

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

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

Но правда в том, что программировать на самом деле довольно просто.

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

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

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

Мой опыт программирования

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

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

Почему сложно программировать

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

  1. Установка новых языков очень утомительна . Это первое занятие для будущего программиста и по сей день то, что я больше всего ненавижу в программировании. Это может создать неправильное представление о том, что программирование действительно сложно, потому что новички экстраполируют сложность настройки на то, как это будет происходить каждый следующий момент.
  2. Слишком много языков, инструментов, библиотек и плагинов. Начать программировать очень сложно, потому что нужно выучить огромное количество вещей, и вы понятия не имеете, с чего начать.
  3. Начальные классы, как правило, состоят из людей, которые раньше изучали программирование. Таким образом, вы можете подумать, что недостаточно умны для программирования из-за несправедливого сравнения. (Однажды я знал женщину, получившую степень магистра гражданского строительства, что намного сложнее, чем вводное программирование, и она сказала мне, что недостаточно умна для кодирования из-за своего первого класса. Это
    бананов
    , и все же люди падают. за это, потому что какой-то занудный ребенок имеет десять лет опыта до начала занятий.)

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

Рассмотрим инструкции по установке большинства языков. Откройте терминал или командную строку. Введите точный набор инструкций по загрузке и установке языка с учетом регистра. Используйте Гитхаб. Домашний. Версии тоже имеют значение. Вы используете 32 или 64 бит? Потому что, если вы не уверены, что он вылетит с загадочным сообщением об ошибке, вы почувствуете себя идиотом.

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

Как вы преодолеваете начальные трудности?

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

В качестве альтернативы вы можете ознакомиться с учебными пособиями в Интернете, но помните, что иногда они предназначены для уже опытных программистов, которые знают, что такое Homebrew и GitHub, и умеют писать команды в Терминале. Если вы получите один из них, вы можете попытаться следовать ему, но не расстраивайтесь, если вы облажались. Это расстраивает и не означает, что все кодирование будет таким.

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

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

С какого языка/инструмента следует начать?

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

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

Основы почти всех языков и инструментов одинаковы. Переменные. Петли. Функции. Указатели. Куча. Деревья. Хеширование. Рекурсия. Эти понятия существуют в большинстве языков. Если вы выберете основной язык, вы будете изучать его в основном одинаково, поэтому не имеет значения, выберете ли вы Ruby, Python, C++, Java или PHP.

Место языков имеет значение для чего вы хотите их использовать. Хотите писать приложения для iPhone? Предпочтительными языками являются Swift или Objective C. Нужно создать веб-страницы? JavaScript пригодится. Да, вы можете использовать практически любой язык для любой задачи, если повозитесь с ним и получите нужные плагины. Однако с некоторыми языками легче начать работать с определенными типами проектов, чем с другими.

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

Каким должен быть твой первый проект?

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

Это служит двум целям:

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

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

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

Примеры хороших проектов:

  • Базовая текстовая приключенческая игра. Без графики, но все же требует изучения таких понятий, как циклы, переменные, обработка ввода-вывода.
  • Простой сайт. Начните с простого отображения статической страницы. Возможно, добавляйте комментарии, пользователей, фотографии или интерактивные элементы, когда узнаете больше.
  • Простое приложение. Что бы вы хотели иметь на своем телефоне? Начать может быть глупо, не волнуйтесь.
  • Скрипт для автоматизации утомительной задачи.

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

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

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

Какие ресурсы следует использовать?

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

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

  1. Получите книгу, которая научит вас языку + проект, который вы хотите . В вашем местном книжном магазине или библиотеке должен быть компьютерный отдел, вы можете просто выбрать любой из них. Мне нравится O’Reilly, но есть и много хороших. (Если вы еще не выяснили, на каком языке, просто погуглите свой тип проекта и поищите предложения.)
  2. Посетить МООК . Coursera, edX, MIT, Harvard, Stanford и другие обучают компьютерному программированию онлайн. Еще раз повторюсь, что важнее всего не конкретный класс, а то, обучает ли он интересующей вас области языка/проекта.
  3. Возьмите обучающую программу/веб-сайт . Опять же, их тонны. Я использовал Google для Python, когда впервые захотел изучить Python.

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

Делайте то, что делают настоящие программисты, и спрашивайте у Google

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

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

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

Предупреждение № 1: не копируйте и вставляйте

Первый совет, когда дело доходит до этого шага, никогда не копируйте и вставляйте. Копирование и вставка — это плохо, потому что вы не пытаетесь понять код, который копируете. Если вам нужно расшифровать, напротив, вы, естественно, спросите себя: «Зачем это? почему бы не что-то другое?» Даже если у вас нет отличного ответа сразу, ввод текста для себя откроет ваш разум для ответа, тогда как копирование и вставка отключит мышление.

Предостережение №2: попробуйте сами, прежде чем искать решение

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

Стоит ли изучать информатику?

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

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

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

Краткое изложение рекомендаций

Это был длинный пост, поэтому позвольте мне повторить последние пункты, прежде чем я уйду:

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