Что такое кодить. Кодинг – «новый черный». Платное и бесплатное обучение онлайн и оффлайн Основы кодинга

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

Хороший код является хорошо сопровождаемым, многократно используемым и тестируемым. Следующие шаги покажут вам и/или вашей команде разработчиков, как справиться с разными программными задачами и держать все в хорошем состоянии насколько возможно. Я ознакомлю вас с “лучшими практиками”, которые помогут вам писать хороший код и помогут сделать вас и вашу команду счастливой и эффективной.

1. Используйте стандарты кодинга

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

Вы можете создать свои собственные стандарты оформления кода, но лучше использовать один широко-используемый. Используя Стандарт Кодинга Zend Framework , или PSR-1 Стиль Кодинга , остальным будет проще адаптироваться.

2. Используйте комментарии

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

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

3. Занимайтесь рефакторингом

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

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

Рефакторинг — больше искусство ежели наука, но существует несколько хороших правил которые могут пролить свет на это:

  • Если ваша функция или метод больше 20-25 строк, скорее всего там содержится слишком много логики, и вы можете разделить её на две или более функции/метода поменьше.
  • Если название вашей функции или метода состоит более чем из 20 символов, стоит пересмотреть имя, или пересмотреть всю функцию/метод используя первое правило.
  • Если вы имеете много вложенных циклов, вы используете слишком много ресурсов не понимая этого. В общем, вам стоит пересмотреть логику, если вы вложили более двух циклов. Три вложенных цикла — просто ужасно!
  • Рассмотрите есть ли подходящие паттерны проектирования которые вы можете использовать. Вам не стоит использовать паттерны просто ради использования паттернов, но паттерны предлагают проверенные решение, которые могут быть подходящими.

4. Избегайте глобального кода

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

В идеале, вам не стоит определять какие либо блоки глобально. Выражения switch, try-catch, foreach-циклы, while-циклы и тому подобное должны быть описаны внутри метода или функции. Методы должны быть описаны внутри классов, а классы и функции внутри пространств имен.

5. Используйте имена со смыслом

Никогда не используйте имена подобные $k , $m и $test для ваших переменных. Как можно прочесть такой код в будущем? В хорошем коде имена переменных, методов/функций, классов; должны нести смысловую нагрузку. Несколько хороших имен для переменных: $request , $dbResult и $tempFile (Зависит от вашего стиля кодинга).

6. Используйте структуры со смыслом

Структуризация вашего приложения является важной; не используйте сложных структур, всегда придерживайтесь простоты. Когда даете имена директориям и фалам, используйте принцип именование о котором вы договорились с командой, или который отвечает стандартам кодинга. Всегда отделяйте четыре части PHP приложения друг от друга – CSS, HTML Шаблоны, JavaScript, PHP код – и для каждого попробуйте отделить библиотеки от бизнес-логики. Также хорошей идеей является сохранять сохранять иерархию директорий настолько малой насколько возможно, тогда вам будет легче искать части кода и ориентироваться в структуре.

7. Используйте системы контроля версий

Раньше, хорошие группы разработчиков доверяли CVS . Теперь, мы имеем вариацию доступных решений. Управление изменениями и ревизиями должны быть простыми но эффективными, так что выбирайте любую систему контроля версий, которая будет работать лучше всего с потоком вашей команды разработчиков. Я предпочитаю использовать распределённую систему контроля версиями, как Git, или Mercurial; оба бесплатные/с открытым исходным кодом и очень мощные. Если вы не знаете что такое система контроля версий, я рекомендую вам ознакомится с серией статей Шона Гадгстона Introduction to Git .

8. Используйте инструменты автоматического построения

9. Используйте документаторы кода

Для больших приложений охватывающих несколько классов и пространств имен, вам стоит иметь автоматически сгенерированую API документацию. Это очень полезно и все в команде будут знать «что есть что». И если вы работаете над несколькими проектами одновременно, вы сочтете эту документацию благодатью, ведь вы наверняка забудете особенности структуры и прочие отличия между проектами. Один из таких документаторов который вы можете рассмотреть это DocBlox .

10. Используйте Тестирование

Существует множество инструментов, которые я очень ценю, но один, который я явно ценю — фреймворки которые помогают автоматизировать процесс тестирования. Тестирование (а именно систематичное тестирование) важно для каждой части вашего приложения на миллион долларов. Хорошие инструменты для тестирования — PHPUnit и SimpleTest для юнит тестирования ваших PHP Классов. Для тестирования GUI, я рекомендую SeleniumHQ tools .

Итог

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

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

Языки программирования

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

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

Подходящая методика обучения

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

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

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

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

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

Фиксация успеха

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

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

Понятные сроки обучения

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

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

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

Общение с другими программистами

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

Правильный и неправильный подход

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

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

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

  • CheckiO - игра, в которую вы можете играть в своем браузере, она требует решения проблем в JavaScript или Python для продвижения по игре.
  • CodeMonkey - в основном предназначена для детей, но если вы новичок, вы можете узнать какой-либо код, играя в эту игру.
  • Codewars - это не настоящая игра, скорее решение совместных задач для программистов. Это отличный способ овладеть кодингом, так как игра поддерживает многие языки.
  • Code Combat – это онлайн-платформа, это где можно научиться кодировать, играя в реальную игру.

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

Вывод

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

И я объясню, почему.

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

Перенесемся на шесть лет вперед: я сижу в аэропорту Будапешта и читаю книгу о HTML…

Спустя еще шесть лет меня взяли в североирландскую стартап-компанию в качестве широкопрофильщика. Да, похоже, на это ушло определенное время. Но сколько именно? Не могу сказать точно. Но много. Мифические 10 тысяч часов? Нет. Если бы меня попросили назвать приблизительную цифру, то я бы сказал, что к тому дню я «накодировал» около 8 тысяч часов. Технически говоря, если верить правилу 10 тысяч часов, то через 2 тысячи я стал бы экспертом в этой области.

Но стану ли?

Вот, чего мне удалось достичь за 8 тысяч часов. Усаживайтесь поудобнее, так как мой рассказ будет долгим. Я кодил на следующих языках: C, HTML, CSS, JavaScript, Java (Android), Swift, PHP, Ruby, Python, Chuck, SQL, работал со следующими фреймворками: Node, Angular, Bootstrap, Foundation, React, Rails, CodeIgniter, Ionic и создавал целевые страницы, сайты вордпресс, решения по электронной коммерции, контент электронной среды обучения (eLearning), сайты Moodle и Totara, сайты Mahara, пакеты Common Cartridge и SCORM, программы для Android и iOS, гибридные программы, внутренние веб-приложения, электронные книги, журналы, игры, а также дополнительные приложения для настольных игр. Итак, к чему я веду?

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

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

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

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

Источник: LifeHacker

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

Только то, что вы владеете английским, не означает, что вы сможете писать романы или даже рассказы. Это же можно сказать и про кодинг.

То, что вы выучили язык, вовсе не означает, что вы знаете, как написать программу. Добавим к этому мириады фреймворков, плагинов, библиотек, препроцессоров, постпроцессоров, стандарты кодирования, отраслевые стандарты, разработку через тестирование (TDD), разработку через реализацию поведения (BDD), системы управления контентом, версификацию файлов, непрерывную интеграцию (CI), управление релизами и развёртыванием, отладку, тикетинг, каскадные модели, - и scrum-методы, а также их комбинации, и я не уверен, что еще все назвал. Суть в том, что понятие «кодер» охватывает примерно все упомянутое выше. Программирование же затрагивает лишь небольшую часть. Важную, но все же небольшую.

Тем не менее, программирование продолжают упрощать...

Apple запустила Playgrounds, MIT - Scratch, а Lego готовит Boost, и все пытаются продать кодинг молодому и подрастающему поколению, будто хотят заполнить рабочие места новых программистов в 2020-х.

Я это вижу следующим образом: «Не беспокойтесь о коде, возьмите эти виртуальные части пазла и все, вы можете программировать». Если бы такое было правдой. Вот, что нужно знать о программировании: оно основано на тексте. Всегда было и будет на много лет вперед. Дети, играющие в Lego Boost, Playgrounds или Scratch, не станут более опытными программистами к 22 годам, чем те, которые начали изучать программирование с 16 и работали с настоящим языком программирования. Собственно, откуда вообще такие ожидания? Я не думаю, что мой ребенок научится сам зарабатывать на хлеб до 22 лет. А вот если он будет изучать кодинг в течение 6 лет, то я гарантирую, что он быстро найдет работу.

Playgrounds от Apple.

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

Захар День

куратор профиля «Дизайн и программирование»
Школы дизайна НИУ Высшей школы экономики

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

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

Что касается бытового уровня, то в повседневной работе иногда нужно вытащить какую-нибудь картинку или обойти криво написанный код, который не даёт вам на сайте что-то сделать. История из жизни. Мы периодически заказываем еду домой на сайте одной сети ресторанов. После логина через Facebook поле для ввода телефона на сайте заблокировано, а без телефона нельзя заказать еду. Достаточно удалить в коде сайта слово disabled, чтобы не остаться голодным.

В веб-разработке порог входа значительно ниже, чем в мобильной. Чтобы разрабатывать под браузер, необходимо изучить язык гипертекстовой разметки HTML, каскадные таблицы стилей CSS и единственный язык программирования под браузер - JavaScript (не путать с Java).

Последние несколько лет активно развивается JavaScript. С его помощью можно писать практически под всё, а если под что-то нельзя, то в ближайшем будущем, скорее всего, будет можно. В любом случае без JavaScript ничего дельного в браузере сделать нельзя, потому что это единственный язык программирования, который понимает браузер. Но в данный момент в экосистеме JavaScript всё весьма непросто для новичков, к тому же сам язык не очень выразительный. Зато очень развита и удобна для начинающего разработчика экосистема языка Ruby, хоть он постепенно и теряет свою популярность. Более того, важен не только язык, а фреймворк (большой инструмент, состоящий из обширного количества библиотек) на этом языке - Ruby on Rails. С его помощью можно за пару часов сделать многопользовательский веб-сервис. Это моя личная рекомендация для старта.

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

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

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

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

Егор Яковишен

Senior Frontend Developer в Look At Media

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

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

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

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

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

Я бы точно порекомендовал ходить на митапы - когда программисты собираются и по очереди выступают с какими-то докладами. Это мотивирует, там всегда приятная атмосфера, можно подойти к любому человеку и задать вопросы по теме. Из самых известных - регулярные встречи разработчиков JavaScript MoscowJS Meetup , «Я.Субботник» и Moscow Tech Meetup.

Где учиться в Москве

Moscow Coding School

Большинство курсов в MCS разработаны в основном для тех, кто с кодом знаком понаслышке. Обучение интенсивное, длится обычно четыре-шесть дней по выходным. За это время слушатели узнают основы и в конце могут создать более-менее рабочий проект. В качестве преподавателей выступают ведущие разработчики из стартапов и медиа: Hello Computer, Hyperboloid, SoundCloud, Look At Media и Meduza. Помимо HTML/СSS и инструментов веб-разработки, можно научиться основам создания мобильных приложений. Занятия проходят в красивом пространстве DI Telegraph на Тверской, а команда собирается в основном из представителей креативных индустрий.

Центр компьютерного обучения «Специалист»

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

Где учиться онлайн

Codecademy

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

Programming and the Web for Beginners

Проверенная временем Coursera сотрудничает с известными учебными заведениями, поэтому внушает особое доверие. Курсы более подробные, к тому же, в отличие от Codeacademy, заниматься придётся как в школе: есть хоть и удалённый, но учитель и определённый темп, который не позволит расслабляться. Интересный вводный курс Гарвардского университета есть ещё на edX .

HTML Academy

Полезный русскоязычный ресурс с 37 разделами, посвящёнными разным аспектам работы с вёрсткой: от занятия по структуре HTML-документа до курсов о новых возможностях HTML5 и CSS3. Для тех, кто хочет стать профессионалом, есть два онлайн-интенсива (базовый и продвинутый).

Статьи по теме