Содержание

как начать писать код / TeachMePlease

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

  • Я прошёл онлайн‑курс по Python, но всё равно не знаю, как написать полноценную программу.
  • Я знаю теорию, но не могу применить её на практике.
  • Я знаю, что такое цикл while, но не знаю, как и в каких случаях использовать его.

Разбираемся, в чём может быть проблема и как её решить.

Проблема: искусственная среда программирования

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

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

Проблема: чрезмерные руководства

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

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

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

Синтаксис — это просто набор символов, которые используются для определённого языка программирования. Можно провести параллель с естественными языками: умение написать и произнести фразу на французском “S’il vous plaît” не имеет смысла, если вы не знаете её значения.

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

Решение 1: использовать реальные среды разработки

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

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

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

Решение 2: писать код с нуля

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

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

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

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

Решение 3: писать много кода, очень много кода

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

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

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

Решение 4: просить о помощи

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

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

Чтобы получить корректный ответ на свой вопрос, стоит научиться правильно составлять запрос:

  1. Скопируйте сообщение об ошибке, которое выводится в редакторе и укажите его в вопросе.
  2. Нет сообщения об ошибке, объясните, какого результата вы ожидаете от работы программы, и что происходит при её запуске на самом деле.
  3. Вставьте фрагмент кода, укажите код полностью в посте, если он небольшой. Если большой — используйте Github Gist или Pastebin и укажите ссылку на код.
  4. Отформатируйте код. Не вставляйте его обычным текстом, используйте редактор кода.
  5. Напишите, что вы уже пытались сделать с кодом.
  6. Используйте корректную терминологию — в этом вам поможет изучение теории.

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

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

Источник: When You Know the Basics, but You Still Can’t Code

5 способов быстрее научиться программировать

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

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

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

1. Изучайте примеры кода

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

2. Не просто читайте примеры кода — запускайте их!

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

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

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

Теперь скомпилируйте и запустите код. Убедитесь, что он делает именно то, что должен.

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

3. Начните писать свой код как можно раньше

Как только вы что-то поймёте про язык — даже если от него у вас уже кружится голова — начните писать программы на нём. Иногда трудно найти идеи для программ. Это нормально, в самом начале вам не надо придумывать свою идею.

Вы можете найти источники идей в статье «Где новичку в программировании найти упражнения и идеи для проектов?»

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

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

4. Научитесь использовать отладчик

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

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

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

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

5. Ищите больше источников

Если вы что-то не понимаете, в первую очередь посмотрите альтернативные объяснения — интернет полон информации о программировании. Мы все воспринимаем новую информацию по-разному: может быть, вам для понимания нужны картинки, а кому-то другому — подробные инструкции или множество книг с детальными объяснениями.

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

На основе статьи «5 Ways To Learn Programming Faster».

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

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

Чтобы разработчик сразу видел результат труда, боги создали для него IDE — integrated development environment, по-русски — среду разработки. Это программа, в которой программист пишет код, ловит ошибки и наблюдает результат.

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

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

Visual Studio Code

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

VS Code распознаёт почти все существующие языки программирования, самостоятельно или с помощью плагинов, и форматирует их соответствующим образом. Кроме этого, у него глубокая поддержка HTML, CSS, JavaScript и PHP — он проследит за парными тегами, закрытыми скобками и ошибками в командах.

Вот самые интересные возможности VS Code.

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

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

Множественное выделение и поиск. Чтобы поменять много одинаковых значений переменных или найти все одинаковые слова или команды, VS Code использует свой алгоритм обработки. Благодаря этому редактировать код становится проще, а замена функций или переменных происходит быстрее.

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

Найденные одинаковые слова и команды можно тут же заменить на другие

Навигация по коду и описания функций. Когда пишешь большую программу, легко забыть то, что делал в начале — как работает функция или какого типа переменная используется в этом месте. Чтобы этого избежать, VS Code может показывать саму функцию, описание переменной или какие параметры передаются при вызове команды. Ещё это пригодится, если код достался вам по наследству от прошлого разработчика и нужно быстро понять, какие куски кода за что отвечают и как работают:

Сразу после установки VS Code не умеет показывать результаты работы кода, когда мы делаем веб-страницы. Это можно исправить с помощью расширения Live HTML Previewer. Для этого заходим в раздел «Extensions», щёлкая на последнем значке на панели слева или нажимая Ctrl+Shift+X, и начинаем писать «Live HTML Previewer» в строке поиска.

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

WebStorm

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

Автоподстановка. Некоторые IDE с автоподстановкой тормозят и не предлагают сразу все варианты переменных или команд — но не WebStorm. Здесь всё работает с первой буквы и понимает, когда надо предложить переменную, а когда команду или служебное слово:

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

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

Чтобы сразу видеть, что получается на странице, нам понадобится плагин LiveEdit. По умолчанию он выключен, но его можно включить или поставить отдельно в любое время. После активации нужно будет в настройках плагина поставить галочку «Update application in Chrome on changes in» — она как раз отвечает за обновление информации в браузере Chrome. Теперь можно писать код и сразу видеть результат:

Sublime Text 3

Бесплатный редактор, который назойливо предлагает занести денег разработчикам. Про Sublime Text у нас есть отдельная и более подробная статья — почитайте, там тоже интересно.

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

Пример разметки HTML-кода в Sublime Text

Вот что ещё умеет программа сразу после установки:

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

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

Emmet сокращает время на написание кода, подставляя вместо стандартных команд целые куски готового кода

JavaScript & NodeJS Snippets упрощает написание кода на JavaScript и работает по тому же принципу, что и Emmet

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

Так как эта статья — для начинающих программистов, которым важно сразу видеть изменения в коде, то посмотрим, как это делает Sublime Text.

Сразу после установки он этого делать не умеет, но нам поможет плагин LiveReload. Он показывает все изменения в браузере, как только мы сохраняем рабочий файл с кодом. Это не так изящно, как в VS Code, но в случае с Sublime Text простительно. Дело в том, что привыкнув однажды писать в нём код, сложно пересесть на что-то другое, что работает с той же скоростью. Установка LiveReload состоит из двух компонентов — плагин для Sublime Text и расширение для браузера.

После установки давайте посмотрим, что у нас получилось. Создадим файл tested.html в Sublime Text, разметим его внутри стандартным шаблоном как HTML-документ, а рядом откроем окно браузера.

В реальном времени мы не увидим на странице те изменения, которые вносим в код, как это было в VS Code. Но если нажать Ctrl+S, чтобы сохранить все данные, то браузер моментально показывает то, что мы сделали.

Если вы серьёзно настроены программировать, присмотритесь к Visual Studio Code. Почти со всем он справляется сам или с плагинами, не нужно подключать дополнительно браузеры или сторонний софт.

Любите, чтобы после установки были доступны почти все нужные функции? Попробуйте WebStorm — платную, но мощную среду разработки.

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

почему всем нужно научиться писать код

Навык программирования может пригодиться не только тем, кто хочет создавать программы или сайты профессионально. О том, как умение писать код может облегчить жизнь, рассказал Илья Щуров, доцент кафедры высшей математики ВШЭ и преподаватель Центра непрерывного образования факультета компьютерных наук НИУ ВШЭ. T&P публикуют конспект его лекции «Программирование как новый английский, или Почему программирование не только для разработчиков».

Илья Щуров

доцент кафедры высшей математики ВШЭ и преподаватель Центра непрерывного образования факультета компьютерных наук НИУ ВШЭ

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

Опрос профессиональных программистов этого года показал, что 81% из них программируют в качестве хобби. Это означает, что программирование доставляет удовольствие, что это не просто работа, но и развлечение. Вы можете пользоваться готовыми программами, и в 95% случаев вы будете это делать, даже если вы профессиональный программист. Но в любой области есть задачи, которые никто до вас не решал, и умение программировать позволяет решать их гораздо эффективнее. Однажды я был в call-центре, и меня попросили объединить две таблицы. Человек, который поручил мне эту задачу, ожидал, что я начну по одной копировать ячейки из первой таблицы во вторую. Я перенес пару записей, мне надоело, и я написал короткий скрипт, который брал данные из одной таблицы и вместо меня заполнял гугл-форму, что не очень сложно. Мне это понравилось, но больше всего мне понравилось то, что коллеги смотрели на меня так, будто я владею какой-то магией.

Писать код интересно, но, с другой стороны, это испытание. Ты взаимодействуешь с компьютером, и очень часто это взаимодействие, особенно если ты осваиваешь новую технологию, новый язык, выглядит так. Ты пишешь код, считаешь, что написал его верно, а компьютер говорит, что у тебя ошибка синтаксиса. Действительно, забыл точку с запятой, исправил, запустил заново. А компьютер говорит: «Закрой скобку». Через несколько таких итераций программа начинает работать, и становится ясно, кто в доме хозяин. Дело в том, что и у навыка программирования, и у процесса обучения ему есть некоторые побочные (в том числе положительные) эффекты.

1. Экстремальный опыт руководства

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

2. Новый подход к информации

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

3. Профессиональная коммуникация

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

4. Ответственность

Почему уметь программировать может быть опасным? Первая причина — «тыжпрограммист». Если вдруг кто-то узнает, что вы умеете программировать, на вас начинают сыпаться запросы: «Переустанови мне операционную систему, пожалуйста, ты ж программист», «Почини чайник, ты ж программист» и так далее. Это не самая страшная проблема, есть пострашнее. Например, в 2001 году на первом курсе, когда интернет еще был медленным, я решил, что нужно сделать какую-то штуку, чтобы быстрее обмениваться информацией с друзьями. Я подумал: есть почта, и она работает. Тогда я завел отдельный почтовый ящик для нашей тусовки и написал скрипт. Робот заходил в этот ящик, брал письма, которые туда пришли, и пересылал их всем, кто был подписан на эту штуку. Так сейчас работают гугл-группы. Если я хотел написать всем, я отправлял письмо на этот общий ящик; если кто-то хотел ответить, он отвечал на него же, письмо попадало ко всем, и можно было что-то обсуждать.

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

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

Как научиться?

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

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

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

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

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

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

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

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

Есть мнение, что на фоне развития искусственного интеллекта и машинного обучения программисты скоро будут не нужны: компьютеры сами научатся себя программировать. Но мне кажется, что это не так. До тех пор, пока есть задачи и пока нужно объяснять, как их решать, программирование будет существовать. Безусловно, программирование сильно эволюционирует, за последние 20 лет оно изменилось очень сильно. Но от того, что компьютеры стали умнее, разработчиков меньше не стало — наоборот, их стало гораздо больше. И мне кажется, что дальше будет происходить то же самое.

Как писать код при коллективной разработке | GeekBrains

Семь принципов, сводящихся к «не навреди».

https://d2xzmw6cctk25h.cloudfront.net/post/1716/og_cover_image/c64401308b4d0dea70ff9bed28d0d5b7

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

Сервисы Git, SVN, Mercurial упрощают коллективную разработку, но не заменяют основных правил эффективного взаимодействия. Именно о них и пойдет речь.

Принцип первый. Разделение по интересам

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

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

Принцип второй. Разделение по опыту

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

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

Принцип третий. Общие правила оформления

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

Сразу договоритесь об основных моментах:

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

Принцип четвертый. Карта вопросов

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

Принцип пятый. Визуализация

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

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

Принцип шестой. Перекрестный опрос

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

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

Выгоды здесь две:

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

Принцип седьмой. Время на проверку

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

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

Создан помощник программистов, который будет писать за них код. Видео

| Поделиться

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

Виртуальный коллега-программист

Корпорация Microsoft разработала нейросетевого помощника программиста, который позволит упростить процесс написания кода. Проект получил название Copilot (второй пилот – англ.), и в его основе лежат технологии искусственного интеллекта стартапа Open AI.

Copilot развернут на базе GitHub, одного из крупнейших в мире Git-репозиториев. С 2018 г. он принадлежит Microsoft. Open AI тоже имеет определенные связи с корпорацией. Как сообщал CNews, в 2019 г. она вложила в этот стартап $1 млрд.

Виртуальный помощник программиста обучен взаимодействовать с различными фреймворками (средами разработки). Он понимает несколько языков программирования, но на момент публикации материала Copilot был заточен в первую очередь под JavaScript, Go, Python, Ruby и TypeScript.

Copilot постоянно обучается и со временем начинает давать все более дельные советы

Со слов главы GitHub Нэта Фридмана (Nat Friedman), Copilot – это именно помощник программиста, а не его заменитель. Это находит свое отражение и в названии проекта.

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

Как работает Copilot

В основе системы Copilot лежит система искусственного интеллекта Codex за авторством специалистов OpenAI. Для ее обучения были задействованы ресурсы самого GitHub, то есть миллионы строк кода в файлах, хранящихся в открытых репозиториях.

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

Первый взгляд на Copilot

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

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

На момент публикации материала Copilot был доступен в виде дополнения (плагина) к бесплатному редактору Microsoft Visual Studio Code. Также он работает и через любой современный в браузер в GitHub Codespaces. Оценить возможности Copilot сможет любой разработчик, без каких-либо ограничений.

Классическое программирование уходит в прошлое

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

Грузовые дроны и воздушные такси: какой будет Москва будущего

Инновации и стартапы

Немалую роль в этом играет и сама Microsoft. За месяц до запуска Copilot она создала инструмент для написания ПО без развитых навыков программирования. Проект получил название Microsoft Power Apps, и он пригодится тем, кто пишет на языке Power Fx.

С его помощью пользователи смогут разрабатывать программы в формате диалога с компьютером. Например, при разработке приложения в сфере электронной коммерции можно будет описать в диалоге желаемую цель на естественном английском языке: «find products where the name starts with ‘kids» («найти продукты, название которых начинается со слова «детский»» — англ).

Скоро писать программный код смогут абсолютно все

После этого Power Apps задействует алгоритмы искусственного интеллекта и предложит варианты преобразования этого запроса в формулу Microsoft Power Fx. Пользователю же останется только выбрать наиболее подходящий вариант, например «Filter(‘BC Orders’ Left(‘Product Name’, 4)=»Kids»)».

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

Lobe полностью бесплатна. Результат ее работы затем можно использовать в сторонних ПО и устройствах.

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

В июне 2020 г. CNews писал, что Amazon запустила сервис Honeycode для создания приложений без необходимости написания программного кода. Проект полностью бесплатный, и использовать его могут как обычные потребители, так и крупные компании. К примеру, Slack, разработчик одноименного мессенджера, уже заявила о готовности к использованию Honeycode в своей работе.



Как писать код на Python лучше: 6 рекомендаций

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

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

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

Правильный алгоритм и структура данных

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

В Python у множеств и словарей скорость поиска O(1), так как они задействуют хеш-таблицы. Множества и словари используются вместо списков, когда в коллекции:

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

Временная сложность различных структур данных в Python описана здесь.

Использование встроенных функций и библиотек

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

Почему они такие быстрые? Потому что реализованы на языке C. Это относится к таким встроенным функциям Python, как min, max, all, map и другим.

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

Например, вместо такого кода:

newlist = []

for word in wordlist:
    newlist.append(word.upper())

Лучше написать вот такой:

newlist = list(map(str.upper, wordlist))

Или:

newlist = [word.upper() for word in wordlist]

Здесь используется встроенная функция map, которая написана на C. А значит, код выполнится намного быстрее, чем с циклом.

Использование множественных присваиваний

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

Например, так:

firstName = "John"
lastName = "Henry"
city = "Manchester"

В Python для этого есть способ получше:

firstName, lastName, city = "John", "Henry", "Manchester"

Такое присваивание значений переменным будет гораздо более четким и элегантным.

Использование генераторов списков вместо циклов

Генераторы списков позволяют всего в одной строке кода создать новый список на основе элементов существующего списка.

В этом снова проявляется элегантность Python. Ведь именно такой способ создания нового списка (а не определение пустого списка и добавление в него элементов) считается более характерным для Python.

Еще одно преимущество генераторов списков: при добавлении элементов в список Python они быстрее, чем метод append.

Например, вот как используется здесь метод append:

newlist = []
for i in range(1, 100):
    if i % 2 == 0:
        newlist.append(i**2)

Но лучше задействовать генератор списка:

newlist = [i**2 for i in range(1, 100)  if i%2==0]

Код обычно выглядит чище при использовании генераторов списков.

Правильный импорт

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

Импорт ненужных библиотек приведет к замедлению скорости выполнения кода.

Пример: предположим, нужно найти квадратный корень числа. Вместо вот этого:

import math
value = math.sqrt(50)

Используйте это:

from math import sqrt
value = sqrt(50)

Конкатенация строк

В Python для конкатенации строк используется оператор +. Но есть и другой способ  —  метод join, который более характерен для Python. С ним конкатенация строк выполняется быстрее, чем с оператором +.

Почему? Потому что оператор +создает новую строку, а затем копирует старую на каждом шаге.

Например, вот так:

output = "Programming " + "is " + "fun"

В то время как метод join() работает по-другому:

output = " ".join(["Programming" , "is", "fun"])

Вывод обоих методов будет одинаковым. Единственное отличие: метод join() работает быстрее, чем оператор +.

Заключение

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

Спасибо за внимание!

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

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Pralabh Saxena: 6 Tips To Make Python Code Run Incredibly Faster

Как написать код за 6 шагов

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

Подробнее: Компьютерные навыки: определения и примеры

Что такое код?

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

Подробнее: Узнайте, как стать программистом

Почему так важно писать код?

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

Связано: 15 хорошо оплачиваемых вакансий в области информатики

Как писать код

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

  1. Установите цели
  2. Выберите язык
  3. Найдите ресурс
  4. Загрузите редактор
  5. Начать практику
  6. Продолжить обучение

1. Установите цели

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

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

2. Выберите язык

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

Существуют десятки языков программирования, которые используются для множества различных проектов. Если вы хотите кодировать веб-сайты, вам следует изучить HTML, JavaScript или CSS.Если вы хотите разрабатывать программы анализа или искусственного интеллекта, вам нужно знать Python. Если вы заинтересованы в создании приложений для персональных компьютеров, вам подойдет базовый язык, например C ++. Вам нужно будет поэкспериментировать и провести собственное исследование, чтобы найти язык, который вам подойдет.

3. Найдите ресурс

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

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

4. Скачать редактор

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

5. Начните практиковать

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

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

6. Продолжайте обучение

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

Советы по написанию кода

Вот несколько полезных советов по написанию успешного кода:

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

Как написать программу: кодирование, тестирование и отладка — видео и стенограмма урока

Написание кода

Компьютерный код — это, по сути, список инструкций, которые могут выполняться определенной программой.Большая часть кода состоит из текстовых документов, поэтому их можно использовать для множества различных программ. Документу присваивается уникальное расширение файла, указывающее на природу кода. Например, файл, созданный с помощью Python, сохраняется с расширением .py, например myprogram.py. Однако фактическое содержимое файла по-прежнему представляет собой простой текст.

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

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

Вот пример того, как выглядит типичная IDE:

Пример IDE

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

Синтаксис

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

Исходный код в виде обычного текста

Теперь давайте посмотрим на код в IDE:

Тот же код в IDE

Цвета упрощают распознавание различных элементов кода.Например, в примере кода элементы for, in и print являются ключевыми словами, имеющими особое значение.

Подсветка синтаксиса упрощает чтение кода. Однако это не меняет фактического значения кода и предназначено только для читателей.

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

Большинство IDE также имеют встроенную систему автозаполнения в той или иной форме. Вы можете быть знакомы с этим, если используете текстовые сообщения на смартфоне. Когда вы начнете печатать, программа определит, что вы пытаетесь напечатать. Например, если вы наберете «pr», IDE предложит «напечатать». Автозаполнение в среде IDE обычно предоставляет список вариантов на выбор, а не только наиболее вероятный вариант. Это экономит при наборе текста, а также сокращает количество опечаток. Автозаполнение в среде кодирования также называется интеллектуальным завершением кода.

Онлайн-компиляторы

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

Онлайн-компиляторы бывают нескольких видов и для многих языков программирования.Одним из популярных инструментов является набор программ repl.it. Например, компилятор Java 10 доступен здесь: https://repl.it/new/java10. Ниже приведен пример компилятора и его выходных данных.

Онлайн-компиляторы также используют подсветку синтаксиса и автозавершение кода.

Тестирование

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

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

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

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

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

Отладка

Теперь предположим, что ваше тестирование показывает, что результат не соответствует ожиданиям. Что теперь? Пора начинать отладку.

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

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

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

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

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

Краткое содержание урока

Интегрированная среда разработки или IDE — это программное приложение для форматирования кода, проверки синтаксиса, а также запуска и тестирования кода.

Некоторые специальные инструменты в среде IDE включают подсветку синтаксиса и автозаполнение.

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

Результаты обучения

После завершения этого урока вы должны уметь:

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

лучших способов научиться кодировать

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

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

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

Что такое кодирование?

Для начала нам нужно определить, что такое кодировка . Большинство программистов согласятся, что кодирование:

Последний найденный купон Udacity:

Выбор проверенного персонала

ЭКСКЛЮЗИВНО: СКИДКА 65%

На курсах Udacity

Начните свою весну с новыми навыками — поторопитесь и выберите курс Udacity своей мечты с огромной скидкой 65%! Этот эксклюзивный код купона Udacity активен в течение ограниченного времени.

Срок годности: 28.07.2021

2948 Пользователей

Осталось всего 37

×

ЭКСКЛЮЗИВНО: СКИДКА 65%

На курсах Udacity

Начните весну с новыми навыками — поторопитесь и выберите свой курс Dream Udacity с огромной скидкой 65%! Этот эксклюзивный код купона Udacity активен в течение ограниченного времени.

Идите и покупайте со скидкой!
REDEEM DEAL

Срок годности: 28.07.2021

2,948 Пользователей

Только 37 Осталось

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

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

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

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

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

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

Самые популярные результаты

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

Зачем мне учиться кодировать?

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

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

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

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

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

Как видите, существует причин, по которым вы должны начать учиться программировать прямо сейчас. По этой причине мы составили следующее пошаговое руководство. Закапывайся и получай удовольствие!

Пошаговое руководство по кодированию для чайников

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

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

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

Шаг 1. Определите, почему вы хотите научиться кодировать

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

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

Рассмотрим:

  • Какие навыки вы хотите получить в итоге .Хотите стать разработчиком веб-сайтов ? Или, может быть, вы бы предпочли иметь возможность создавать мобильные приложения или работать в области разработки программного обеспечения? Вам нужно будет хорошенько об этом подумать, потому что это в значительной степени будет определять языки, которые вы собираетесь изучать.
  • Почему вы хотите научиться кодировать ? Является ли обучение программированию просто тем, что вас интересует, чем вы собираетесь заниматься в свободное время? Или программирование — это то, чем вы хотели бы продолжить карьеру?
  • Сколько времени и денег вы можете потратить .Если у вас будет всего пара часов в неделю, чтобы посвятить себя изучению программирования, вероятно, нет особого смысла записываться на интенсивный курс. Точно так же, если вы хотите присоединиться к интенсивному курсу с поддержкой, вы должны быть готовы заплатить за это.

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

Шаг 2. Выберите правильные языки

Для разных типов программирования требуются разные навыки.Например, если вы хотите научиться программировать веб-сайт, вам следует изучить такие языки, как HTML , CSS , Java и JavaScript .

Аналогичным образом, для разработки мобильных приложений требуется Java (для Android) или Swift (для iOS). Выбор правильного языка чрезвычайно важен, поэтому ниже мы перечислили некоторые из самых популярных среди новичков:

Ява

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

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

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

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

Питон

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

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

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

Рубин

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

Если у вас есть планы стать веб-разработчиком, я бы порекомендовал изучить хотя бы основ Ruby .Таким образом, вы будете знакомы с языком, даже если вам не придется работать с ним напрямую. Начните с курса Learn Ruby on Rails , который посвящен тому, что такое Ruby on Rails и как он используется в веб-разработке.

Твердость

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

Если вы хотите войти в захватывающий новый мир блокчейнов и смарт-контрактов, я бы порекомендовал начать с курса Space Doggos Interactive Solidity или курса Ultimate Learn Solidity .

HTML

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

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

CSS

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

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

JavaScript

JavaScript — еще один язык, который является весьма универсальным и чрезвычайно распространенным — очень похожим на Java и Python.

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

Если вы хотите стать достойным веб-разработчиком переднего или заднего плана, мы рекомендуем изучить JavaScript. Откройте для себя основы с помощью курса, такого как Introduction to JavaScript course или Interactive JavaScript Tutorial, , а затем переходите на более сложный курс , когда вы освоите основы языка.

Шаг 3. Выберите правильные ресурсы, которые помогут вам изучить

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

Некоторые из них включают:

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

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

Бонус

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

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

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

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

Шаг 4. Загрузите редактор кода

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

У большинства языков программирования есть свои редакторы кода, которые вы можете скачать. Обычно они идут в комплекте с интерактивными средами разработки (IDE), которые помогут вам создать понятный, безошибочный код. Простые языки, такие как HTML и CSS, можно записать прямо в простой текстовый документ, если вам это будет проще.

Шаг 5. Практикуйтесь в написании программ

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

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

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

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

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

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

Шаг 7. Взломайте чужой код

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

Найдите где-нибудь программу или файл кода — GitHub — отличное место для начала — и откройте его в своем редакторе кода .

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

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

Шаг 8: Продолжайте учиться

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

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

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

Самые популярные результаты

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

Последние подсказки

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

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

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

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

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

Оставьте свой честный отзыв

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

Прочитав это, вы научитесь программировать. | Исаак Лайман | Обращает на себя внимание

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

Я пишу это для:

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

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

Хотите прочитать эту историю позже? Сохранить в журнале.

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

Приступим.

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

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

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

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

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

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

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

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

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

  • Компьютер.
  • Подключение к Интернету. Вам необходимо подключение к Интернету, чтобы вы могли использовать Google. Когда вы не знаете, как что-то делать (что происходит примерно 787283493857 раз в день), вы гуглите это. Когда ваше приложение выдает сообщение об ошибке, вы можете погуглить его. Вы все гуглите.
  • Редактор кода (или IDE, который является редактором кода на стероидах). Думайте об этом как о Microsoft Word (или, еще лучше, о приложении Эдварда) для кодирования. Это помогает вам систематизировать и корректировать код.
  • Компилятор или интерпретатор. Это программа, которая читает ваш код, пытается найти ошибки, чтобы сообщить вам о них, собирает ваш код в красивый небольшой пакет, а затем передает его компьютеру для выполнения. Он делает и много других вещей, но это то, о чем вам нужно знать прямо сейчас.
  • Хорошие наушники. Это поможет вам игнорировать людей, чтобы вы могли сосредоточиться.

Вероятно, у вас уже есть компьютер. Поскольку вы читаете это, у вас определенно есть подключение к Интернету и переводчик (в Internet Explorer и Google Chrome есть встроенные интерпретаторы). В Интернете доступно множество бесплатных редакторов кода (например, этот). Я не могу помочь вам с наушниками, но хорошая альтернатива — смотреть на людей, пока они не уйдут.

Итак, все готово, верно?

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

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

Вам не нужно знать, что означают все эти слова. Что вам действительно нужно знать, так это то, что языки программирования с похожими парадигмами обычно имеют аналогичный синтаксис , то есть словарный запас и грамматику. Итак, после того, как вы выучили один язык (например, JavaScript), вы уже прошли 75% пути к изучению похожих языков, таких как Python и Ruby.

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

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

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

В предложении есть три ошибки: лишний пробел после «for», дополнительный апостроф в «Alice’s» и использование Бобом дружбы Алисы и доверять. Да, и «без» написано с ошибкой.Вы, вероятно, видели все эти ошибки в первом предложении, но они более очевидны во втором, и очевидно — ваш лучший друг, когда вы сканируете документ с кодом из 200 строк.

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

«Салли. Вы не должны называть это. Как только вы дадите ему имя, вы начнете к нему привязываться.

Вы называете свои данные по двум причинам:

  1. Вы заранее не знаете, что это такое. Знает ли Facebook ваш день рождения до того, как вы его введете? Нет, конечно нет. Код Facebook использует имя типа dummy's_birthday за кулисами (подчеркивание стоит, потому что в именах переменных не должно быть пробелов). Он прикрепляет это имя к любому дню рождения, который вы вводите. Таким образом, код может быть одинаковым независимо от того, является ли ваш день рождения 10 июня, 9 сентября или 86 декабря.Он просто перемещает dummy's_birthday по программе, пока не достигнет уродливого складского компьютера.
  2. Вы не хотите забывать, что это значит. Предположим, компьютерной программе нужно знать, что 86 декабря — ненастоящая дата. Так что где-то вы должны сказать, что в декабре 31 день. 31 — это число, фрагмент данных. Но если вы используете цифру 31 по всему коду, а также числа вроде 30 и 28 (потому что, слава богу, декабрь — не единственный месяц), ваш код будет сложно читать.Для чего все эти числа? Так вы их называете. 31 превращается в the_number_of_days_in_de December , и ваш код становится понятным. Красивый.

Компьютеры ожидают, что вы объявите своих переменных. Объявление переменной похоже на свидетельство о рождении для части данных. Это выглядит так:

var the_number_of_days_in_de December

Оперативное слово здесь — var . Это сокращение от «переменная». Аббревиатура удобна тем, что ее быстрее набирать.Его также можно набирать только одной рукой, поэтому, если все, что вы делаете, объявляете переменные в течение всего дня, ваша другая рука может делать потрясающие вещи, например грейпфруты сока и тренироваться с посохом.

Еще одна вещь, которую вы делаете с переменными, — это присваивает им . Здесь вы присоединяете имя к фрагменту данных. Выглядит это так:

the_number_of_days_in_de December = 31

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

При написании программы необязательно назначать каждую переменную явному фрагменту данных. Вы можете объявлять переменные и назначать их вещам, которых еще нет. Например, вы можете объявить var dummy's_birthday и указать приложению, чтобы оно ждало, пока пользователь введет его. Все, что они наберут, станет dummy's_birthday . Вам даже не о чем беспокоиться.

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

var great_song_lyrics = 'La la la, la la la tonight'

Whoa.Curveball. Я просто объявил переменную и присвоил ей одновременно . Я чертовски эффективен. Принесите этому человеку грейпфрут.

Теперь я могу написать great_song_lyrics в моем коде, где захочу, и компьютер будет знать, что я имею в виду «Ла-ла-ла, ла-ла-ла сегодня вечером» . Это похоже на то, что мы говорим … в код .

Не верите? Попробуйте прямо сейчас. Если вы читаете это на телефоне, вам нужно будет открыть на компьютере веб-браузер, например Google Chrome.Нажмите клавишу F12 на клавиатуре (если у вас Mac, попробуйте это вместо этого). Вы увидите что-то вроде этого:

Это может быть выровнено по правому или нижнему краю вашего браузера.

Убедитесь, что выбрана вкладка «Консоль». Щелкните пустую область рядом с символом > , введите объявление и назначение переменной и нажмите Enter:

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

Ура! Консоль (интерпретатор ) понимает вашу переменную. Переменная great_song_lyrics оценила (это было понято) как "La la la, la la la tonight" . Это идеально (кстати, не имеет значения, используете ли вы одинарные кавычки ' или двойные кавычки ", если вы используете их в совпадающих парах).

Мы поговорим о других вещах, в которых могут храниться переменные всего секунду.

Многие языки программирования требуют, чтобы вы указали, какой вид переменной вы объявляете. В C ++, например, нет ключевого слова var . Есть ключевое слово int (для объявления малых целых чисел), ключевое слово long (для объявления больших целых чисел), float и double ключевые слова (для объявления десятичных чисел), ключевое слово string (для объявления фрагменты текста) и некоторые другие. Не беспокойся об этом прямо сейчас.Вы сможете узнать это позже.

Объекты

Важной частью программирования является обучение организации данных. Возьмем пример с днем ​​рождения: у Facebook сотни миллионов дней рождения (а также годовщин и дат распада) хранятся в памяти компьютера на его складе. Как он узнает, что к чему? Если бы я дал вам список из миллиарда свиданий, вы бы знали, кому они принадлежат и для чего они нужны? Конечно, да, потому что вы великий Calendifus, греческий бог произвольно значимых дат.

К счастью, в Facebook не просто куча произвольных дат. Они связывают ваш день рождения, годовщину, ваш родной город, историю трудоустройства, ваше имя и все остальное, что они знают о вас, вместе с уникальным идентификатором (например, на вашей карточке социального обеспечения или ваших водительских правах). Вероятно, это большое число, так сказать, из шляпы. То есть ваш номер 12884002, и каждый фрагмент данных, который у них есть, имеет этикетку с надписью «12884002», и когда вы входите в систему, они ищут все, что имеет этот номер.Все организовано именно так.

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

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

 var dummy = {
id: 12884002,
age: 28,
name: 'Bob',
favour_song: 'Photograph, by Nickelback'
}

Каждый фрагмент данных в объекте похож на качели.Имя находится слева, данные справа, а в середине : для балансировки. На самом деле все, что мы сделали, это объявили четыре переменные: первые две — числа, а последние две — строки. Но они организованы вместе, поэтому мы можем найти их всякий раз, когда нам нужно что-то узнать о манекене . И вместо того, чтобы называть их «переменными», мы называем их «свойствами» или «полями». Объект может иметь любые свойства, если вы поместите их все вместе в { фигурных скобках } .

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

 dummy.id 
dummy.name
dummy.age
dummy.favorite_song

Каждое из них точно так же Переменная. Мы можем присвоить ему что-то и обратиться к нему позже. Хотите изменить имя Боба? Легко:

dummy.name = 'Alice'

И все.Хорошее обновление, не правда ли? С этого момента всякий раз, когда вы набираете dummy.name , он будет ссылаться на «Алису».

Массивы

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

Хороший пример — все ваши тупые твиты.Твиттер не знает, сколько твитов вы собираетесь написать. Вы начали с 0, и посмотрите, где вы сейчас находитесь. Twitter использует массив, чтобы хранить их все. Массивы в JavaScript выглядят так:

 var dumb_tweets = ['Привет, Twitter!', 'Мои друзья такие классные', 'Кому-нибудь нужен LaCroix?'] 

Помните, как использовались объекты { фигурные скобки } ? В массивах используется [ квадратных скобок ] . Этот массив состоит из трех строк, разделенных запятыми. И да, это такая же переменная, как и все остальное.Вы можете использовать dumb_tweets в любом месте вашего кода, и он будет ссылаться на массив, который мы только что определили.

Если вы хотите сослаться на определенную строку в массиве, сделайте это так:

 dumb_tweets [0] 
dumb_tweets [1]
dumb_tweets [2]

Мы используем имя массива dumb_tweets , а затем внутри [ квадратных скобок ] мы используем номер (или индекс ) объекта (или элемент ), на который мы хотим сослаться.Я знаю, что это странно, что первый элемент в массиве имеет номер 0. Но теперь это твоя жизнь. С этого дня вы всегда будете начинать счет с 0. Так устроен программист.

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

 dumb_tweets [2] = 'Я сожалею буквально обо всем, что я когда-либо сказал' 

Что бы ни случилось с 'Кто-нибудь хочет LaCroix?' ? Это ушло навсегда.Поглотила бездна. Прощай!

Массивы могут содержать строки, числа, даты, объекты и даже другие массивы. Вы можете помещать массивы внутри массивов внутри массивов внутри массивов.

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

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

 var nested_object = {
an_array: [
{
another_array: [
{
still_another: [
{
message: 'Мигните дважды, если вам нужна помощь'
}
]
}
]
}
]
}
}
}

Чтобы получить доступ к сообщению , вы можете написать:

 вложенный_объект.an_array [0] .another_array [0] .yet_another [0] .message 

И компьютер узнает, что вы имеете в виду «Моргните дважды, если вам нужна помощь». .

Объекты (продолжение)

Еще одна странная часть, а затем мы можем перейти к интересным вещам.

Все в JavaScript тайно являются объектами (не рассказывайте! Его родители были бы такими безумными). Например, наш массив dumb_tweets имеет свойство, которое мы никогда не объявляли:

 dumb_tweets.length 

Что, черт возьми, длина ? Что ж, это свойство, которое JavaScript создает и обновляет для вас автоматически.Он сообщает вам, сколько элементов находится в массиве. В этом случае это будет 3. В массиве 3 элемента. Иди, посчитай их, но не начинай с 0 на этот раз, потому что я солгал, и ты должен начинать отсчет с 0 только в особых случаях. Черт возьми.

Время для страшной истории у костра.

Давным-давно в альтернативной вселенной жил программист по имени МакЧак. Он был единственным кодировщиком во всей вселенной. Ему пришлось самому написать весь код, который когда-либо существовал.

Блин, это была просто сказка. Успокаивать.

Дело в том, что кодировщик не является островом. Мы все постоянно используем код, который не писали - на самом деле, его ведрами.

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

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

Массивы JavaScript имеют собственный API. Свойство length является частью этого API. Другой его частью является метод push , который добавляет элемент в конец массива:

 dumb_tweets.push («Человек, я ненавижу хорошее отношение») 

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

 [«Привет, Twitter!», «Мои друзья такие классные», «Я сожалею буквально обо всем, что я когда-либо сказал», «Человек, я ненавижу хорошее отношение»] 

Помните, индекс этого последний элемент равен 3 (потому что вы начали отсчет с 0), поэтому вы должны называть его dumb_tweets [3] . А dumb_tweets.length теперь будет оцениваться как 4.

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

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

Функция - это другое слово для метода . Это просто фрагмент кода, который что-то делает и (обычно) имеет имя.Функции легко объявлять в JavaScript:

 function giveMeOne () {
return 1
}

Начнем с ключевого слова function . Затем мы даем функции имя, как если бы мы объявляли переменную (здесь я использовал заглавные буквы вместо подчеркивания для разделения слов). Затем мы используем круглые скобки (через секунду вы поймете, почему). Затем мы используем { фигурные скобки } . Внутри фигурных скобок находятся все строки кода, которые мы хотим выполнить, когда функция называется (всякий раз, когда выражение обращается к ней по имени).

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

 var the_loneliest_number = giveMeOne () 

Это не так уж сложно, правда? Мы объявляем переменную с именем the_loneliest_number . Часть присваивания нашего оператора вызывает giveMeOne () , и поскольку эта функция говорит, что возвращает 1 , выскакивает 1.Таким образом, наша переменная будет содержать номер 1. Выполните оба этих блока кода в консоли вашего браузера. Затем введите the_loneliest_number , нажмите Enter, и вы увидите, что значение равно 1.

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

giveMeOne () - это что-то вроде dumb_tweets.push () . Основные отличия:

  1. giveMeOne () - это функция, которую мы написали сами. push () - это функция, которую написали незнакомцы. Ничего страшного, они не против, если мы им воспользуемся.
  2. push () - это метод dumb_tweets (и любой другой массив, который мы когда-либо создадим). giveMeOne () - это global , что означает, что нам не нужно ссылаться на конкретный объект, чтобы использовать его.

Вы заметите еще одну вещь, которая кажется в них отличной: giveMeOne () использует пустые скобки, но push () ожидает, что мы поместим в скобки часть данных. Фактически, push () был бы бесполезен, если бы мы не могли сказать ему, что добавить в наш массив. Часть данных, которую мы ему передаем, называется аргументом . Аргумент - это просто фрагмент данных, который мы помещаем в функцию. Объявление функции, которая ожидает аргументы, выглядит так:

 function addTheseNumbersTogetherPlz (number1, number2) {
return number1 + number2
}

Эта функция не слишком отличается от giveMeOne () .Но вместо пустых скобок в них есть имена переменных, разделенные запятой. Это наши аргументы. Оператор return делает именно то, что кажется: он складывает число1 и число2 вместе, а затем выводит результат. Вы бы вызывали функцию следующим образом: addTheseNumbersTogetherPlz (3, 4) . И выскочит 7.

Ооо! Математика! Страшно, правда? Практически все языки программирования позволяют писать математические выражения так же, как вы использовали их для этих простых калькуляторов TI, которые вы использовали в средней школе., чтобы мгновенно вырастить шею (нет, экспоненты не используются; для этого вам понадобится API).

Вы также можете написать функцию следующим образом:

 function addTheseNumbersTogetherPlz (number1, number2) {
var sum = number1 + number2
return sum
}

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

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

Программы должны быть написаны для чтения людьми и только случайно для выполнения машинами. ~ Гарольд Абельсон

Вот где код дает дополнительных удовольствия. (Это уже было весело.)

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

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

Допустим, мы пишем приложение, которое определяет, разрешено ли конкретному человеку входить в ночной клуб. Представьте, что в JavaScript API есть метод, который определяет возраст пользователя.Назовем его getUserAge () . Мы также представим, что есть два других метода: allowThemInTheNightclub () и throwThemOutOnTheirButt () . Как мы можем помочь нашей программе решить, какой из этих двух последних методов вызвать, на основе возвращаемого значения первого метода?

 var age = getUserAge () 
if (age> = 21) {
allowThemInTheNightclub ()
} else {
throwThemOutOnTheirButt ()
}

Видите, насколько хорошо выравнивается правая сторона? Монотипия на победу.

Вы уже знаете, что делает первая строка. Возраст будет иметь значение, например 13, 21 или 101. Теперь нам нужно знать: возраст 21 год или старше? Если так, они могут повеселиться. Если нет, им нужно будет уйти.

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

  • === (три знака равенства) сравнивает значения с обеих сторон, чтобы убедиться, что они в точности равны. Если они равны, результатом будет истинное значение . 6 === 6 будет true .
  • ! == сравнивает значения с обеих сторон, чтобы убедиться, что они не равны в точности. Если они не равны , результат будет истинным . 6! == 3 будет true .
  • > проверяет, больше ли значение слева, чем значение справа. 6> 3 будет истинным .
  • < проверяет, больше ли значение на правой стороне , чем значение на левой стороне . 3 <6 будет истинным .
  • > = проверяет, больше ли значение в левой части, чем значение в правой части, или равно ему. 6> = 6 и 6> = 5 оба являются истинными .
  • <= проверяет, больше ли значение на правой стороне , чем или равно значению на левой стороне . 6 <= 6 и 6 <= 7 оба являются истинными .

if утверждения оценивают сравнение, которое вы им даете. Если он оценивается как true , они выполняют код внутри своего блока (строки кода внутри { фигурных скобок } ).Если он оценивается как ложный , они пропускают этот код.

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

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

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

 var the_real_slim_shady = ['Меня зовут', 'Меня зовут', 'Меня зовут', 'Waka waka Slim Shadyyy'] var index = 0 
while (index rap (the_real_slim_shady [index])
index = index + 1
}

в то время как циклы используют тот же синтаксис, что и инструкции if . Вы используете круглые скобки, вы переходите в сравнение, вы завершаете его блокировкой.Но блок if выполняет код внутри него только один раз (или ноль раз, если результат сравнения дает false ). Блок , в то время как блок выполняет код внутри него снова и снова , пока условие не станет ложным . То есть оценивает состояние; если истинно , блок выполняет; затем он снова оценивает состояние; если истинно , он выполняет блок снова ; затем он снова оценивает состояние; и так далее, навсегда.Я придумал здесь воображаемый API, в котором есть метод rap () , а все остальное - обычный JavaScript.

Сколько раз будет выполняться цикл? Что ж, в первый раз, когда он оценивает сравнение, он проверяет, является ли индекс (который равен 0) меньше, чем the_real_slim_shady.length (что есть - продолжайте, посчитайте их - 4). Поскольку сравнение истинно , он выполняет код, который возвращает the_real_slim_shady [0] , потому что индекс все еще равен 0.Затем происходит волшебство: он меняет index на index + 1 , или 0 + 1, что равно 1. Затем он снова вычисляет выражение сравнения. 1 по-прежнему меньше 4, поэтому он выполняет блок снова, но на этот раз, поскольку индекс равен 1, он возвращает the_real_slim_shady [1] . Возьми? Он прекратит выполнение блока, когда index будет равно 4, что хорошо, потому что the_real_slim_shady [4] не существует. Когда цикл работает с несколькими элементами в массиве, мы говорим, что повторяет .

Если вы объявляете переменную и не присваиваете ей значение, она будет содержать специальное значение под названием undefined . Это забавное слово означает «двигайся, здесь не на что смотреть». В основном это бесполезно.

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

Функции очень эгоистичны. Если вы объявляете переменную внутри функции, функция не позволит никакому коду вне себя использовать эту переменную.Например:

 function whatHappensInVegas () {
var wildIndiscretions = ['partied', 'danced']
return 'Я ничего не признаю'
}
whatHappensInVegas ()
whatHappensInVegas ()
whatHappens if (VegasIndisnd) 0) {
getADivorce ()
}

У нас есть очень простая функция. Он объявляет переменную wildIndiscretions , но не возвращает ее. Внешний мир об этом ничего не знает! Мы даже запускаем функцию трижды, потому что мы молоды и полны сил.Заявление if пытается проникнуть в личную жизнь функции, но не может. Код внутри блока if никогда не будет выполнен. Фактически, сравнение wildIndiscretions.length> 0 приведет к ошибке (это не сработает, и вы увидите сообщение, объясняющее почему), потому что wildIndiscretions - это undefined вне функции whatHappensInVegas . У него нет или свойств, не говоря уже о длине .

Однако, если вы переместите этот блок if внутри блока function (конечно, до того, как вернет оператор ), тогда он получит доступ к wildIndiscretions . Надеюсь, у тебя был брачный договор, дружище!

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

 function isEven (num) {
// Эта функция определяет, является ли "num" четным или нечетным.
// Если даже, возвращает истину. Если нечетное, возвращается false. // ДЕЛАТЬ: добавить второй аргумент, который позволяет указать
// сообщение, которое будет отображаться, если "число" нечетное.
return (num% 2) === 0 // Эй, эй, делай это как Исаак
// Если ты не со мной, детка не мудрый - aac
}

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

Последнее и самое важное, чему я могу вас научить: если вы не знаете, как что-то делать, сразу переходите на google.com и спрашивайте. Щедрость сообщества программистов поразит вас.Тысячи разработчиков по всему миру свободно делились своим кодом и знаниями на таких сайтах, как GitHub и Stack Overflow, а это означает, что все, что вам нужно, чтобы стать экспертом в любом языке программирования, - это постоянное подключение к Интернету и умение читать.

Чтобы написать хорошие запросы Google, нужно немного попрактиковаться. Хороший шаблон выглядит примерно так:

 [язык программирования] как [что-то] 

Например, вы хотите знать, как удалить элемент из массива в JavaScript? Я не буду тебя учить.Попробуйте ввести в Google следующее: «JavaScript, как удалить элемент из массива». Первые несколько результатов должны предоставить вам всю необходимую информацию (с примерами!)

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

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

Льдогенератор - хорошая аналогия компьютерной программы. Его входы - вода и электричество (они поступают из API, известного как «муниципальные коммунальные службы»). На выходе получается лед (который подается в API, известный как «высокий стакан кока-колы»). Вам все равно, что происходит в середине? Не сейчас, если ты достаешь лед без особых проблем.Но однажды ледогенератор сломается. И тот, кому нужно это исправить, будет очень заботиться о том, насколько просты, надежны и качественно сконструированы его внутренние компоненты.

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

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

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

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

Удачи!

  • «Как думать как компьютерный ученый» Аллена Дауни, Джеффри Элкнера и Криса Мейерса.Это более хорошо написанная и исчерпывающая (но, возможно, менее интересная) версия того, что я здесь написал, ориентированная на язык программирования Python.

Как начать писать код

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

«Написание кода», «кодирование» и «программирование» - в основном взаимозаменяемые термины. Вообще говоря, умение писать код - это процесс создания инструкций, которые говорят компьютеру, что и как делать. Коды написаны на разных языках, таких как javascript, C #, Python и многих других.

Различные языки программирования используются для разных функций, и очень важно знать несколько из них, а не только один. Некоторые языки более тесно связаны друг с другом, чем другие. Например, если вас интересует веб-разработка - создание веб-сайтов - вы, вероятно, захотите изучить HTML, CSS и Javascript, а также связанные библиотеки и фреймворки, такие как jQuery или Angular. Но вопрос на миллион долларов: с чего начать?

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

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

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

  3. Выберите, как и где вы хотите учиться. Онлайн-курсы из дома? Высшее образование? Только основы из книг, видео на YouTube и онлайн-статей?

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

  5. Начни творить и практикуйся, практикуйся, практикуйся!

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

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

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

Какой

лучший язык?

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

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

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

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

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

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

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

  • Python - Python можно использовать для создания веб-сайтов, программного обеспечения, игр и графических пользовательских интерфейсов (GUI) рабочего стола, а также для обеспечения доступа к базе данных. Python можно использовать отдельно или как часть другого фреймворка, такого как Django.

  • Цель C - Этот язык ООП основан на C, который был создан Apple.Он используется для разработки приложений для продуктов Apple, но несовместим с Android и другими платформами.

  • C ++ - C ++ используется для разработки программного обеспечения, игр и приложений, но, в отличие от C, он совместим с несколькими платформами, включая Apple и Android, а также Windows и Blackberry.

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

Сначала создайте строку и присвойте ей значение: «Hello, World»

Теперь давайте что-нибудь сделаем с этим значением, записав его где-нибудь на экране (ПРИМЕЧАНИЕ: речь идет не о понимании всего кода, а просто для того, чтобы обратить внимание на их сходство).

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

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

Если вы только начинаете, может быть полезно окунуть пальцы ног в воду перед погружением.Пройдите несколько онлайн-курсов, чтобы узнать, подходит ли вам программирование. Javascript.com, принадлежащий Pluralsight, предлагает несколько интересных вариантов курсов, которые помогут вам научиться программировать дома.

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

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

Наконец, получайте удовольствие! Знаете ли вы, что есть игры для программирования, в которые можно играть, чтобы развить свои навыки? Попробуйте CodinGame, Hour of Code, Minecraft: Education Edition или FreeCodeCamp. И не забывайте о большом количестве видео на YouTube, которые вы можете посмотреть во время обеденного перерыва или в свободное время.

Начните учить себя писать код с помощью этих советов и пошаговых инструкций уже сегодня!

Как на самом деле написать хороший код.Я профессионально писал код… | Марк Джордан | Гениально просто

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

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

Я пытался понять, как уйти от принципов высокого уровня («SRP», «KISS», «легко удалить» и т. Д.). Несмотря на то, что это хорошие идеи, придумывать реальные методы написания хорошего кода кажется сложнее.

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

Ограничения

Во-первых, не навреди:

«Только не пишите плохой код». Звучит достаточно просто, правда?

Я думаю, что там может быть что-то полезное.Когда я имею дело с библиотеками, фреймворками, программированием и дизайном, я постоянно убеждался, что ограничения универсально более полезны, чем способности. Другими словами: сказать мне, что я, , не могу, гораздо полезнее, чем сказать мне, что я могу. Программирование - это безумный мир волшебства и чудес: буквально все возможно. Особенно при написании Ruby.

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

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

Первая задача - выбрать язык, который налагает ограничения на тип кода: машинописный текст - это здорово, что-то вроде C # или Go очень скучно, и я постоянно говорю себе, что однажды выучу Haskell или Rust.

Я для себя после очередной jenga-подобной иерархии наследования или сумасшедшей вложенной функции, производящей функцию.

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

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

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

Шесть заповедей для написания хорошего кода

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

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

Хотя все это похвальные цели для разработчиков программного обеспечения, я рискну добавить еще одну цель: ремонтопригодность. В частности, «хороший код» - это код, который легко поддерживается организацией (а не только ее автором!) И будет жить дольше, чем просто спринт, в котором он был написан.Ниже перечислены некоторые вещи, которые я обнаружил за свою карьеру в качестве инженера в больших и маленьких компаниях в США и за рубежом, которые, похоже, коррелируют с поддерживаемым «хорошим» программным обеспечением.

Никогда не соглашайтесь на код, который просто «работает». Напишите превосходный код.

Заповедь №1: Относитесь к своему кодексу так, как вы хотите, чтобы кодекс других относился к вам

Я далеко не первый человек, который напишет, что основной аудиторией вашего кода является не компилятор / компьютер, а тот, кто следующий должен будет читать, понимать, поддерживать и улучшать код (что не обязательно будет вами через шесть месяцев после сейчас же).Любой достойный инженер может создать код, который «работает»; отличного инженера отличает то, что он может эффективно писать поддерживаемый код, который поддерживает бизнес в долгосрочной перспективе, и обладает навыками для простого, ясного и удобного в обслуживании решения проблем.

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

Примером языка, который многие считают «чистым» и читаемым, является Python. Сам язык обеспечивает некоторый уровень дисциплины пробелов, а встроенные API многочисленны и довольно последовательны. Тем не менее, можно создавать невероятных монстров. Например, можно определить класс и определить / переопределить / отменить определение любого и каждого метода в этом классе во время выполнения (часто называемое исправлением обезьяны). Этот метод естественным образом приводит в лучшем случае к несовместимому API, а в худшем - к невозможности отладки монстра.Можно наивно подумать: «Конечно, но этого никто не делает!» К сожалению, они это делают, и не займет много времени просмотр pypi, прежде чем вы столкнетесь с существенными (и популярными!) Библиотеками, которые (ab) широко используют исправление обезьян в качестве ядра своих API. Недавно я использовал сетевую библиотеку, весь API которой изменяется в зависимости от сетевого состояния объекта. Представьте, например, что вы вызываете client.connect () и иногда получаете ошибку MethodDoesNotExist вместо HostNotFound или NetworkUnavailable .

Заповедь № 2: Хороший код легко читать и понимать, частично и полностью

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

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

Код

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

Некоторые другие мысли о «локальной» читаемости:

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

  • Имена имеют значение. Activate Thinking Fast and Slow - System 2 - способ, которым мозг формирует мысли и вкладывает реальные, внимательные мысли в имена переменных и методов. Несколько дополнительных секунд могут принести значительные дивиденды. Переменная с правильным именем может сделать код более интуитивно понятным, тогда как переменная с плохим именем может привести к подделкам и путанице.

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

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

  • Разделение интересов. Данный проект управляет бесчисленным количеством локально важных допущений в различных точках кодовой базы. Раскройте каждую часть кодовой базы как можно меньшему количеству этих проблем. Допустим, у вас есть система управления людьми, в которой объект-человек может иногда иметь пустую фамилию.Для кого-то, кто пишет код на странице, отображающей объекты человека, это может быть очень неудобно! И если вы не ведете справочник «Неуклюжие и неочевидные предположения, которые есть в нашей кодовой базе» (я знаю, что нет), ваш программист страницы отображения не узнает, что фамилии могут быть нулевыми, и, вероятно, будет писать код с нулевым указателем. исключение в нем, когда последнее имя имеет нулевой регистр. Вместо этого обрабатывайте эти случаи с помощью хорошо продуманных API и контрактов, которые разные части вашей кодовой базы используют для взаимодействия друг с другом.

Заповедь № 3: Хороший код имеет хорошо продуманную структуру и архитектуру, чтобы сделать состояние управления очевидным

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

Заповедь №4: Хороший код не изобретает колесо заново, он стоит на плечах гигантов

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

Тем не менее, вполне разумный контраргумент состоит в том, что зависимости не приходят «бесплатно» без каких-либо недостатков.Используя стороннюю библиотеку или библиотеку с открытым исходным кодом, которая добавляет некоторые интересные функции, вы принимаете на себя обязательства и становитесь зависимыми от этой библиотеки. Это большое обязательство; если это гигантская библиотека и вам нужна лишь небольшая часть функциональности, действительно ли вам нужно обновлять всю библиотеку, если вы обновляетесь, например, до Python 3.x? Более того, если вы столкнетесь с ошибкой или захотите улучшить функциональность, вы либо зависите от автора (или поставщика), который предоставит исправление или улучшение, либо, если это открытый исходный код, окажетесь в положении изучения ( потенциально существенная) кодовая база, с которой вы совершенно не знакомы, пытаясь исправить или изменить непонятную часть функциональности.

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

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

Базы данных

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

  • «Традиционная» схема SQL: Postgres / MySQL / MariaDB / MemSQL / Amazon RDS и т. Д.
  • Хранилища ключевых значений: Redis / Memcache / Riak
  • NoSQL: MongoDB / Cassandra
  • Размещенные БД: AWS RDS / DynamoDB / AppEngine Datastore
  • Работа с тяжелыми грузами: Amazon MR / Hadoop (Hive / Pig) / Cloudera / Google Big Query
  • Сумасшедшие вещи: Erlang’s Mnesia, iOS Core Data

Уровни абстракции данных

В большинстве случаев вам не следует писать необработанные запросы к той базе данных, которую вы случайно выбрали для использования.Скорее всего, существует библиотека, которая находится между БД и кодом вашего приложения, отделяя проблемы управления параллельными сеансами базы данных и детали схемы от вашего основного кода. По крайней мере, у вас никогда не должно быть сырых запросов или встроенного SQL в середине кода вашего приложения. Лучше превратить его в функцию и централизовать все функции в файле, который называется чем-то действительно очевидным (например, «query.py»). Например, строку типа users = load_users () бесконечно легче читать, чем users = db.query («ВЫБРАТЬ имя пользователя, foo, bar из пользователей LIMIT 10 ORDER BY ID») . Этот тип централизации также значительно упрощает согласованный стиль в ваших запросах и ограничивает количество мест, куда можно перейти для изменения запросов в случае изменения схемы.

Другие общие библиотеки и инструменты, которые стоит рассмотреть

  • Очереди или службы Pub / Sub. Выберите поставщиков AMQP, ZeroMQ, RabbitMQ, Amazon SQS
  • Хранение. Amazon S3, Облачное хранилище Google
  • Мониторинг: Graphite / Hosted Graphite, AWS Cloud Watch, New Relic
  • Сбор / агрегирование журналов. Loggly, Splunk

Автоматическое масштабирование

  • Автоматическое масштабирование. Heroku, AWS Beanstalk, AppEngine, AWS Opsworks, Digital Ocean

Заповедь № 5: Не переходи ручьи!

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

Заповедь № 6: По возможности позвольте компьютеру делать работу

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

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

Заключение

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