«Как первые программисты написали программы для программирования без программ для программирования?» — Яндекс Кью
Популярное
Сообщества
ИсторияПрограммирование
Симеон Дункан
·
123,9 K
Ответить2УточнитьДостоверно
Вадим Румянцев
Программирование
3,7 K
Специалист в области разработки систем управления. Трансгуманист. Интересуюсь… · 3 янв 2021
В самых первых компьютерах программы писались в машинных кодах и первично вводились в память при помощи тумблеров, отвечающих за состояние каждого бита. Или же задавались напайкой соответствующих битам перемычек в постоянном запоминающем устройстве. Самые опытные программисты знали начальный загрузчик побитово наизусть и могли его ввести с тумблеров по памяти.
Конечно, достаточно тоскливо было вводить с тумблеров начальный загрузчик каждый раз при обнулении памяти, но у первых компьютеров часто были ферритовые запоминающие усстройства, не теряющие содержимое памяти при отключении питания.
Вот такой интерфейс для ввода программ был на машинах до 1960-х годов:
(кстати, это пульт системы IBM S/360 – первого компьютера, в котором придумали делить память на байты, благодаря чему видны группы по 8 тумблеров).
Потом, имея такую введённую по битам программу (начальный загрузчик), можно было с её помощью уже вводить, например, с перфоркарт другие программы на машинном языке, не манипулируя битами. В конечном итоге на машинном языке были написаны первые трансляторы с ассемблера, затем на ассемблере – первые трансляторы с языка высокого уровня. А имея транслятор с языка высокого уровня на одной машине, можно уже его дописать таким образом, чтобы он генерировал машинный код для другой машины, и на этой второй машине не повторять полностью всю цепочку.
Сейчас, разумеется, все программы для новых компьютеров поначалу пишутся при помощи старых компьютеров.
Весь этот процессс развёртывания выполнения сложных программ при помощи многоэтапного усложения от самых простых называется bootstraping, или раскрутка.
7 экспертов согласны
115,2 K
Данил Тимофеев
3 января 2021
Вадим, спасибо Вам за интереснейший ответ на уровне лекции. И за фото ЭВМ с Эрикой в правом нижнем углу.
Комментировать ответ…Комментировать…
Первый
Николай Новак
Программирование
36
Я программист с 1965 года. Окончил физический факультет ЛГУ в 1972 г. Работал инженером (п… · 31 мар 2021
Писали на бланках с 4 или 5 колонками: код операции и три адреса. Карандашом — чтобы стереть, если неправильно. Регистров, насколько помню, не было — для обработки массива команда модифицировалась сложением с константой. Команды и адреса записывались в восьмеричном коде. Понятия байта ещё не было. Через каждые 8 строк оставляли промежуток, который потом кодировался… Читать далее
Рамиль Османов
11 августа 2021
Комментировать ответ…Комментировать…
Иван Гагаринов
10
Работаю разработчиком с 2017 года, фронтендер. Также являюсь наставником в онлайн-школе… · 18 февр 2021
Что бы понять ответ на этот вопрос, я бы поррекомендовал ознакомиться с трудами фон Неймана и Тьюринга. Особенно впечатляет знаменитая статья Тьюринга, где он описывает вычислительную машину. Есть хорошая книга Петцольд — Читаем Тьюринга. Не смотря на то, что принято считать, что первые программы писались на машинном коде и вводились при помощи тумблеров(как это хорошо.
.. Читать далее11,5 K
Комментировать ответ…Комментировать…
Алексей Губко
31
Юрист. Пишу статьи и книги по правовым и политическим вопросам, по психологии и для детей. · 23 янв 2021
Вот так и «раскручивается» искусственный интеллект. Сначала биты, потом один другого, потом другой третьего… Через несколько десятилетий раскрутится так, что человека задвинет.
Леонид Карнаух
8 февраля 2021
Вряд ли. ИИ пока не создан.
Комментировать ответ…Комментировать…
Юрий Солов
127
Электроника радиотехника электрика программирование музыка строительство вера христианство · 14 янв 2021
Вадим Румянцев всё верно ответил, но хочу добавить, что тот же вопрос можно задать в отношении любых технологий и инструментария. Например, как с нуля создать точный измерительные прибор, например, хотя бы – микрометр? 1. Берём щепку. 2. Выстругиваем из неё палочку. 3. На палочке делаем насечки — готова первая линейка. 4. … 5… 100500. Упаковываем микрометр в… Читать далее
30,6 K
Комментировать ответ…Комментировать…
Alexey Bigbss64
Занимаюсь компьютерами с 1974 года. Первый компьютер М222 он же БЭСМ 4 · 4 февр 2021
Я начинал програмистскую карьеру с отечественных ЭВМ м-220 в середине 70-х . Программы писались в машинных кодах. То есть вообще без использования языков программирования, потом появились мнемокоды ( автокоды), для которых требовались простейшие компиляторы. Скажем такая команда как умножение в машинных кодах обозначалась 004 , а в мнемокоде буквой У. Для того чтобы… Читать далее
10,2 K
Леонид Карнаух
8 февраля 2021
Программу писали на перфокартах путем выдавливания окошек. Перфокарты в ЭВМ вводили уже другие специалисты. Если… Читать дальше
Комментировать ответ…Комментировать…
Первый
Александр
12
инвалид, раньше летал, починяю компьютеры, товары для детского творчества · 23 янв 2021
Для ЭВМ не пробовал, а вот для станка с чпу в конце 80-х доводилось «набивать» программу на перфоленте вручную специальным дыроколом.Необходимо было уметь читать программу с перфоленты «по дырочкам».
12,5 K
Валерий Прохоров
25 января 2021
Я в училище с перфокарт программы читал, пока не поставили перфоратор, где вверху перфокарты печатался листинг.
Комментировать ответ…Комментировать…
Виталий
8
Действующий программист.
1948 г.р. Закончил спецшколу интернат №18 при МГУ, первый набор… · 29 янв 2021Я работаю программистом с 1971. В начале своей карьеры писал программы для БЭСМ-4 в машинных кодах. Ввод через перфокарты. До этого будучи студентом мехмата МГУ работал на Урале 2 (ввод данных через перфорированную кинопленку) и Днепр 1 ввод через тумблеры. Сейчас работаю удаленно.
Виктор Яргунов
30 января 2021
Как можно удаленно тумблерами щелкать-то и перфоленту заправлять?)))
Комментировать ответ…Комментировать…
Иван Иванов
2
Преподаватель экономики, увлекаюсь ИТ, историей технологий, космосом · 10 февр 2021
Первый Бейсик для ПК Альтаир Билл Гейтс и Пол Аллен писали на мини-компьютере PDP-11. Гейтс писал интерпретатор Бейсик, а Аллен написал эмулятор ПК Альтаир для PDP-11 (грешным делом, не помню, какая там стояла ОС), на PDP-11 их могло быть несколько).
Комментировать ответ…Комментировать…
Den Goldmaker
20
#define FALSE TRUE //счастливой отладки · 15 февр 2021
Очень просто: 1. отжал рычаг 2. выставил восемь тумблеров в положение 0 или 1 3. вжал рычаг 4. байт ушёл на ферритовую матрицу 5. … 6. профит а можно было пропустить пункт 1 а вместо пункта 3 нажимать БКК (Большую Красную Кнопку) ! Читать далее
Комментировать ответ…Комментировать…
Вместо программиста — кнопка «Сделать хорошо»: может ли компьютер писать код и не поздно ли уже «идти в айти»
Технологии
Никита Логинов
Нейросеть AlphaCode выступила в конкурсах программирования на уровне человека. Но до полной автоматизации по-прежнему далеко — ИИ ещё долго не заменит разработчиков.
Демонстрация работы AlphaCode: слева — словесное описание задачи, справа — итог работы нейросети, изображение DeepMind
В начале февраля компания DeepMind представила нейросеть AlphaCode, которая смогла на равных участвовать в конкурсах по программированию и писать код неплохого качества. Главный научный сотрудник компании Ориол Виньялс заявил, что «сотрудники в восторге от потенциала» AlphaCode — от неё ждут способности помогать писать код и «создавать новые способы производства софта».
Новость об AlphaCode вызвала очередную волну обсуждений о том, что профессия разработчика вот-вот потеряет актуальность, потому что программистов заменят компьютеры. TJ разобрался в истории вопроса и попытался понять, насколько серьёзна конкуренция со стороны ИИ.
В идеале должна получиться компьютерная программа, которой можно словами описать желаемое приложение (или даже игру), нажать кнопку и через какое-то время получить готовый продукт: приложение или игру. То есть, это разработка софта без участия разработчиков — людей, которые пишут и поддерживают код программы.
Автоматизировать программирование первыми захотели сами программисты, причём почти сразу после создания компьютеров. Тогда инженерам приходилось писать программы прямо в машинных кодах, управляя отдельными электрическими сигналами в ячейках памяти и регистрах процессора. Работать с потоками нулей и единиц было крайне утомительно и скучно, так что инженеры принялись «учить» компьютер понимать и человеческий язык, а не только свой машинный.
В 1952 году американская учёная и коммодор флота Грейс Хоппер создала первый компилятор — программу-переводчик с «очеловеченного» машинного кода на обычный. В этом языке ассемблера место многих машинных «слов» заняли более понятные mov (переместить) или add (сложить), что даже визуально сделало код проще. Язык ассемблера (он отличался для каждой модели компьютера) открыл вторую эпоху программирования — которая, впрочем, продлилась недолго.
Язык ассемблера и машинный код, изображение Android Authority
Возможностей ассемблера быстро перестало хватать, так что уже с конца 1950-х годов начали появляться языки третьего поколения: Fortran, ALGOL, COBOL, Basic, Pascal, C и так далее. В них ещё больше машинных инструкций было обёрнуто в понятные слова вроде begin, end, if, else, return. Формировались новые методы программирования, больше похожие на человеческое мышление. С годами языки программирования становились всё ближе к людям и всё дальше уходили от машинного кода.
Сейчас программисты используют языки программирования третьего и четвёртого поколений (C++, C#, Python, PHP, Java, JavaScript). Понять код на таких языках даже без подготовки порой не труднее, чем средневековую поэзию, особенно если это Python или PHP. Фреймворки вроде .NET, Qt, Django, Spring и отдельные библиотеки дают миллионы готовых частей программного кода. Отпала надобность писать отдельно для каждой модели компьютера.
За 70 лет с создания первого компилятора программисты неплохо автоматизировали свою работу: вместо сотен или тысяч строк на языке ассемблера теперь достаточно написать одну понятную строку на современном фреймворке. Благодаря такому упрощению программирование стало «второй грамотностью» в 21 веке, а вычислительные устройства, работающие под управлением программ, проникли во все сферы жизни.
Программы-компиляторы не просто переводят исходный код в машинный, но и хорошо оптимизируют его. Ещё 20-30 лет назад имело смысл писать особо «тяжёлые» участки программы на языке ассемблера, чтобы выжать максимум скорости. В начале века компиляторы начали генерировать код не хуже былых ассемблерных вставок, а сейчас отдельные программисты уже вряд ли смогут оптимизировать программу так же хорошо, как компиляторы GCC, LLVM/Clang, MSVC или ICC.
Современные компиляторы даже способны самостоятельно прогонять собранную программу по типовым сценариям использования, анализировать статистику её работы и переписывать код на более быстрый или компактный. Ручная оптимизация не исчезла полностью, но стала более высокоуровневой — то есть, программист обычно оптимизирует общую структуру программы.
Компиляторы сами генерируют новый код, подчас очень сложный. Но всё же они не пишут программы полностью с нуля, как в случае идеальной автоматизации. Первые попытки создать программы, которые пишут программы, начались на самой заре компьютерной эры и вылились в появление отдельной парадигмы — метапрограммирование.
Идея метапрограммирования проста: если обычные программы манипулируют данными (текстом, графикой, звуком и так далее), то в роли таких данных может выступать код другой программы. Тогда программы будут изучать и модифицировать другие программы или даже сами себя, в том числе и прямо во время работы.
Программист, например, может написать краткий шаблон, «заготовку» нужной ему программы, а компилятор развернёт его в полноценный работающий код. Это умеют делать многие популярные языки программирования — шаблоны и макросы в том или ином виде есть в C++, Rust, Haskell, Python, Lua и так далее.
Макрос всего в шесть строк добавляет в LISP оператор for, изображение Пола Грэма
Используя метапрограммирование, разработчик может даже написать шаблон нового языка, созданного под одну конкретную задачу. Компилятор сгенерирует этот язык программирования и впоследствии на нём напишет нужную программу. Такой подход с использованием узкоспециализированных предметно-ориентированных языков (DSL) особенно часто используют любители языка LISP.
Метапрограммирование позволяет человеку писать минимальное количество строк — по сути, программист в общих чертах «объясняет» компьютеру, как должна выглядеть итоговая программа, после чего компьютер делает всю остальную работу. Это уже куда ближе к идеалу автоматизации — программе, которая сама пишет программы.
Софт, работающий по принципам метапрограммирования, давно не редкость. Приложения создают отчёты и документацию, веб-фреймворки генерируют HTML-страницы, которые когда-то писали полностью вручную. Браузеры и другие программы используют самомодификацию кода в виде JIT — компиляции исходного кода в машинный прямо во время его выполнения.
Расплата за такую экономию времени и сил — сложность программирования и слабая предсказуемость работы сгенерированных программ. Этот подход требует очень высокой квалификации программиста. Для примера, есть простейшая задача метапрограммирования: написать код, который выводит на экран сам себя без чтения ввода или файлов. На Python такую программу можно уложить в одну короткую строку:
Блок code недоступен
Но чтобы прийти к ней, нужно совершить ряд нетривиальных умственных усилий, не сваливаясь при этом в бесконечную рекурсию. Ещё сложнее — отчётливо продумать, как будет выполняться метапрограмма, которая «рефлексирует» чужой или собственный код, и модифицирует его.
Этот подход скрывает в себе столько труднопредсказуемых ошибок и уязвимостей, что некоторые опытные программисты советуют его остерегаться, так как он редко оправдывает себя. Да и в целом метапрограммирование не выглядит хорошим способом получить полностью автоматическую программу-разработчика. Зато таким способом выглядит искусственный интеллект.
В середине 1950-х годов учёные и инженеры, видя успехи компьютеров, пришли к мысли, что искусственный интеллект вполне можно создать в рамках обычной компьютерной программы. Причём не ИИ узкого профиля, а «сильный искусственный интеллект», аналог человеческого. Эта мысль стала доминирующим подходом к созданию ИИ вплоть до середины 1990-х годов.
Явную формулировку идее символического ИИ придали учёные Ньюэлл и Саймон в 1976 году: они выдвинули гипотезу, что интеллект невозможен без вычислений с участием чисел, слов, выражений и прочих символов — а с другой стороны, таких вычислений достаточно для появления или создания интеллекта. Этот тип ИИ, работающий на основе символов, в 1980-х годах получил название «старого доброго искусственного интеллекта» (GOFAI).
Поначалу прогресс в этой области действительно впечатлял. Появились языки LISP и Prolog, хорошо подходящие для программирования ИИ. На них разработчики написали множество экспертных систем, способных самостоятельно рассуждать и делать выводы, а также просто мощных программ для науки, промышленности, здравоохранения, госсектора, финансовых структур. И эти языки используются до сих пор — например, на Prolog написан один из компонентов «ИИ-компьютера» IBM Watson.
В 2011 году IBM Watson даже без доступа к интернету обыграл лучших игроков в аналог «Своей игры», фото IBM
Мощь языка LISP продемонстрировала программа SHRDLU в 1968 году: на транзисторном компьютере PDP-6 с примерно 144 килобайтами памяти она «понимала» текстовые команды на обычном английском языке и давала вразумительные ответы, логически связанные с запросами.
Все эти успехи вызвали эйфорию в среде исследователей ИИ в 1960-х годах: казалось, что остаётся только выстроить правильные логические отношения между символами (предметами, явлениями, понятиями) — и вот он, полноценный искусственный разум. Разработку софта не ставили главной целью ИИ — считалось, что он легко справится с любой задачей, которая по силам человеку. В том числе, сможет сам писать программы.
Но уже в тех же 1960-х годах символический подход начали жёстко критиковать: например, философ Дрейфус пришёл к выводу, что «потолок» такого ИИ — решение игровых задач, которые не имеют практической ценности. В 1973 году математик Лайтхилл в своём знаковом отчёте повторил этот аргумент в более категоричной форме: он показал, что ни одна система ИИ не добилась ожидаемых успехов, и что символический подход в принципе неспособен привести к созданию искусственного интеллекта.
Дело в том, что разработка любого символического ИИ, оперирующего отдельными понятиями, рано или поздно сталкивается с комбинаторным взрывом. Пока программа занимается «игрушечной проблемой» — программистам по силам создать для неё обработчик входных данных (например, команд пользователя). Но при попытке масштабировать программу до универсального ИИ, количество комбинаций входных данных растёт взрывными темпами.
Проще говоря, можно создать символический ИИ для бесед с человеком или игры в шахматы, но невозможно создать такой ИИ, который мог бы усвоить любое человеческое знание или умение, или даже неограниченно обучаться в рамках одной задачи. На его создание уйдёт бесконечное количество времени и ресурсов компьютера.
Японская LISP-машина LIME, изображение IPSJ
Отчёт Лайтхилла повлёк за собой первую «зиму искусственного интеллекта» — интерес к созданию символического ИИ резко упал, власти и частные компании прекратили финансировать исследования. Ситуацию не спас и успех экспертных систем, под которые даже начали выпускать LISP-машины — компьютеры, аппаратно оптимизированные для выполнения программ на этом языке. Рынок LISP-машин потерпел крах в 1987 году, а к 1995 году стало очевидно: идея символического ИИ несостоятельна, нужен другой подход.
Исследователи искусственного интеллекта негласно приняли аргументы Дрейфуса, который указывал на немалую роль бессознательных процессов в человеческом мозге. Учёные решили «спуститься» с символьного представления знаний и попытаться создать субсимволический ИИ — например, в виде искусственной нейронной сети, компьютерную модель которой американские нейробиологи предложили ещё в 1943 году.
Если символический ИИ оперирует цельными смысловыми единицами (предметами, явлениями, понятиями, визуальными образами), то субсимволический — более мелкими единицами, которые сами по себе не имеют смысла. Например, отдельными буквами, слогами или пикселями картинки. Причём субсимволический ИИ соединяет единицы исключительно по статистике их соединений в прошлом, тогда как символический использует для этого логические операции.
Допустим, человек спрашивает у программы: «Как у тебя дела?». Символический ИИ, написанный на LISP, разбивает эту фразу на отдельные слова, делает вывод, что речь о нём самом, и что человек спрашивает не о конкретных делах, а хочет услышать некую интегральную оценку состояния. После чего смотрит, с какими вариантами такой вопрос связан по смыслу, возможно как-то оценивает своё текущее состояние, и отвечает: «У меня всё хорошо».
Минус такого подхода — в его малой гибкости. Программист может заложить десятки вариантов слов, которые динамически соединяются в разные по форме вопросы с одним смыслом: «Как дела?». Но первое же «Чё как?» вызовет ступор у символического ИИ, потому что такая форма вопроса не выводится логически из заложенных вариантов.
Нейросеть разбивает входные данные (в данном случае — изображение крестика) на «частицы» и прогоняет через несколько слоёв нейронов, изображение Cornell University Library
Субсимволический ИИ в лице нейросети разбивает фразу «Как у тебя дела?» на отдельные буквы и с помощью своеобразного многослойного «трафарета» оценивает, что могут означать именно такие буквы именно в такой последовательности, после чего создаёт подходящий ответ, так же собирая его по кусочкам через многослойный «фильтр».
Плюс этого подхода в том, что хорошо обученная нейросеть одинаково воспримет вопросы «Как дела?», «Как поживаешь?», «Чё как?» и так далее. Минус — в его «бессмысленности». Если символический ИИ в процессе работы логически рассуждает, что похоже на мышление, то нейросеть «рефлекторно» выдаёт ответы исключительно на основе статистики, выведенной из прошлого опыта — даже не осмысливая, о чём речь. Похожим образом работают бессознательные области мозга, порождая то, что называют интуицией.
В 1990-х годах субсимволический ИИ принялись исследовать на практике: появились первые рабочие образцы нейросетей для распознавания образов (1992 год) и управления автомобилем (1995 год). Но лишь в 2010-х годах нейросети стали массовым явлением, когда компьютерная индустрия смогла предложить подходящее оборудование.
Примерно так выглядит рабочая станция для работы с нейросетями — «топовый» процессор и несколько мощных видеокарт, фото Bizon Tech
Искусственная нейронная сеть, как и настоящая биологическая, основана на параллельной работе миллионов или миллиардов нейронов. Компьютеры 1990-х и 2000-х годов долгое время были малопоточными — даже видеокарты имели считанные десятки или сотни вычислительных ядер. Только когда на рынке стали появляться видеокарты с тысячами вычислительных ядер и гигабайтами видеопамяти — инженеры получили возможность массово делать достаточно мощные и функциональные нейросети.
Бум практического использования нейросетей начался примерно в середине 2010-х, и за эти годы субсимволический ИИ стал обыденным инструментом в руках учёных, частных компаний и даже госструктур.
В 2015 году появился и первый «нейропрограммист»: учёный-информатик Андрей Карпати обучил нейросеть Torch7 на 400 мегабайтах исходного кода Linux, после чего она за ночь создала более 38 тысяч строк нового кода. По словам Карпати, этот код выглядит так, будто его написал программист на языке С — правда, он не работает и даже не компилируется из-за массы ошибок и неточностей.
После этого исследователи представили ещё несколько нейросетей, которые писали или тестировали код, а летом 2021 года случилось, пожалуй, знаковое событие. Microsoft и Open AI запустили GitHub Copilot — ИИ-сервис, который дописывает за программистом участки кода сразу по пять-десять строк. Это «умное автодополнение» сразу стало популярным на практике — к середине осени Copilot генерировал уже 30% нового кода, который программисты всего мира добавляли на GitHub.
Пример работы GitHub Copilot, изображение GitHub
И вот теперь, в начале февраля, компания DeepMind представляет нейросеть AlphaCode, похожую на то, что инженеры и учёные пытались создать 70 лет — она принимает описание задачи на английском языке и выдаёт код, который собирается и работает. Основой «опыта» для AlphaCode послужили 715 гигабайт исходного кода различных проектов на GitHub, а Copilot обучали на нескольких терабайтах созданного кода.
Получается, ИИ уже пишет программы — и как помощник программиста, и как сам программист, причём с неплохой результативностью. Copilot понравился половине разработчиков, которые пробовали его в работе, а AlphaCode смог попасть в 54,3% лучших участников конкурсов программирования. Ещё важнее, что нейросети выдают полностью новый код, а не компиляцию кусков кода, который написали люди (хотя изредка у Copilot бывает и такое).
Всё указывает на то, что компьютер в принципе может писать программы вместо человека. Автоматизация программирования постепенно дошла от компиляторов и фреймворков до искусственного интеллекта. Однако профессия программиста не перестанет быть актуальной ещё несколько десятилетий, а возможно, что компьютеры не смогут полностью вытеснить людей из разработки софта в обозримое время.
- AlphaCode относительно неплохо работает в «тепличных» условиях конкурсного программирования, где задания подробно и точно описаны, но в реальной разработке софта нет таких условий. Нейросети, как и любые субсимволические ИИ, очень узкоспециализированы, их обучают для одной конкретной задачи. Задача AlphaCode — участвовать в конкурсах по программированию.
- Лучшие нейросети выдают всего по 10-20 строк работающего и нормально оформленного кода ценой огромного потребления энергии, тогда как типичное приложение или игра состоят из десятков тысяч строк кода. Причём даже такая небольшая производительность нейросети требует огромных массивов уже написанного кода для обучения. Чтобы AlphaCode смогла правильно написать 200 строк хотя бы в одной попытке из трёх — ей понадобится столько кода для обучения, сколько человечество ещё не создало. Сейчас нейросеть выдаёт меньше строк кода, чем содержится текста в её заданиях.
- Субсимволический ИИ неспособен «размышлять», оперируя логикой, он работает чисто статистически, отталкиваясь от прошлого опыта. Нейросеть не может намеренно создать новый алгоритм или метод программирования, а в работе с новыми языками программирования нейросети совершенно бесполезны — без тысяч или миллионов программ, написанных людьми, этот тип ИИ просто не сможет обучиться языку.
- Даже долгое и дорогое обучение на уже созданном коде не даёт высокой точности работы «ИИ-программистов». Нейросеть Codex от OpenAI умеет писать на 12 языках программирования, но её код запускается и работает без ошибок только в 37% случаев. Подсказки Copilot просто небезопасны — 40% генерируемого им кода содержит уязвимости. Пробуя нейросети в работе, разработчики обычно приходят к выводу, что до полной автоматизации их профессии ещё далеко.
- Нейросети работают по принципу «чёрного ящика» — весь процесс проходит в скрытых слоях искусственных нейронов непрозрачно для людей, так что нельзя сказать, почему нейросеть в каждом конкретном случае выдаёт определённый вариант. Такая неподотчётность может помешать полной автоматизации программирования — люди предпочтут держать под контролем хотя бы ключевые моменты разработки софта.
- Субсимволический ИИ неспособен осознанно придерживаться каких-либо принципов — например, программировать в едином стиле. Порой нейросети выдают очень странный код, который вряд ли написал бы живой разработчик — но тем не менее, он работает. По мере роста объёмов генерируемого кода количество таких участков будет увеличиваться, а это создаст массу проблем с поддержкой софта. Людям нужен человекочитаемый код, а не типично машинный фарш из символов — именно для этого изобретали компиляторы, фреймворки и прочие вещи.
Как и в предыдущие десятилетия, автоматизация программирования угрожает в первую очередь самой простой и рутинной работе. Компиляторы избавили человека от необходимости составлять вручную машинные коды, а метапрограммы стали генерировать несложные и тривиальные компоненты софта. Когда-то разработчики восхищались средой разработки, которая подсказывает программисту названия функций, а теперь ИИ успешно подсказывает целые фрагменты кода — но это очень простые фрагменты.
«Идти в айти» всё ещё имеет смысл и будет иметь многие десятилетия, однако будущим программистам стоит заранее обеспечить себе защиту от конкуренции со стороны ИИ. Прежде всего — стараться получить как можно более высокую квалификацию в программировании или занять ключевые позиции в разработке софта (архитектура ПО, менеджмент, и так далее). Или же занять ниши, где нейросети бесполезны из-за неспособности обучиться (новые и малопопулярные области программирования).
Пусть сейчас у программистов нет особых поводов для беспокойства, но ИИ вряд ли будет оставаться таким же «бестолковым» и зависящим от человека, как нынешние нейросети. Символический подход может взять реванш в виде гибридного ИИ, где «неосознанная интуитивность» нейросетей будет дополнена способностью к логическим рассуждениям, как у программ на LISP и Prolog. В таком случае автоматизация программирования вполне способна дойти до такого уровня, что потеснит даже сильнейших разработчиков.
#лонгриды #программирование #ии #нейросети #будущее #it
Как написать компьютерный код за 7 шагов?
Написание кода — один из основных этапов жизненного цикла разработки программного обеспечения. Речь не всегда идет о творчестве, которое требуется в такой задаче, как написание лучших эссе. Он включает в себя преобразование идеи решения и требований в функциональную систему, которую можно использовать для различных бизнес-целей клиента. Как только готовое программное решение разработано и запущено внутри компании, процессы его разработки и обновления никогда не останавливаются. Программное обеспечение требует постоянной технической поддержки, регулярных обновлений системы, добавления новых функций и инноваций, рефакторинга кода и постоянной отладки.
Однако, чтобы избежать частых исправлений кода, очень важно выбрать опытных разработчиков, которые хорошо владеют технологиями и языками программирования, необходимыми для вашего проекта программного обеспечения для бизнеса. В принципе, есть разные виды сотрудничества с программистами. Вы можете создать собственную команду разработчиков специально для своей компании или иметь дело с аутсорсинговыми поставщиками программного обеспечения, которые предоставят вашему программному проекту необходимых инженеров. В обоих вариантах вы можете изучить их резюме, провести собеседования и тестовые задания и т. д. Поэтому в этой статье мы хотели бы более подробно рассмотреть процесс написания кода для программных решений, чтобы сделать их максимально функциональными и работоспособными. .
7 шагов написания компьютерного кода
Осознание цели программного решения
Любое программное решение начинается с идеи. Если говорить о предприятиях, которые готовы приобрести средства автоматизации, то целью разработки и интеграции программного обеспечения является устранение конкретных повседневных проблем, автоматизация процессов и повышение производительности в целом.
Итак, чтобы выбрать подходящие технологии и написать программный код, инженеры должны четко понимать, что это за решение, какие функции оно должно содержать, какое назначение и т. д. Ни один процесс разработки ПО не начинается с написания кода, Обычно он начинается с написания технических спецификаций, определяющих спектр технологий и языков программирования. Подводя итог, можно сказать, что первым шагом в написании кода является планирование.
Проектирование решения
На этапе планирования жизненного цикла разработки программного обеспечения не отображается, как будет выглядеть программная система, как будут функционировать функции, как они будут связаны друг с другом и т.д. Таким образом, перед тем, как приступить к написанию кода программы, архитекторы решений и дизайнеры UX/UI несут ответственность за создание дорожной карты проекта, которая включает его функции, связь между ними, за какое действие отвечает каждая функция и т. д. Дорожная карта проекта программного обеспечения условно делит весь проект на спринты, которые разбивают процесс разработки на несколько этапов, включая сроки, необходимые инженеры, объем работ и оценку.
Прототип программы – тестовая версия будущего решения, то есть как будет выглядеть пользовательский интерфейс, включая каждую страницу, насколько он интуитивно понятен и удобен, соответствует ли он брендбуку клиента и другим индивидуальным требованиям и т.д.
Написание кода
После того, как предыдущие два этапа завершены и одобрены руководителем проекта и заказчиком, следующий переходит к этапу разработки кода написания. Написание кода делится на два варианта — frontend и backend разработка. Front-end инженеры отвечают за видимую часть программного обеспечения, в то время как back-end разработчики соединяют фактическую заднюю часть решения с передней частью, чтобы сделать его функциональным. Обычно инженеры создают исходный код с комментариями о том, за что отвечает каждая часть, которая будет использоваться на следующем этапе написания кода.
Компиляция исходного кода
После того, как исходный код всей программы готов, следующим этапом является компиляция исходного кода, детали которой зависят от среды программирования. Обычно инженеры используют специальные инструменты компиляции, которые преобразуют исходный код в исполняемый код или окончательное программное обеспечение, заставляя каждую функцию решения работать в соответствии с машинными языками пользовательских компьютеров. В результате этого шага разработчики получают унифицированный программный код, который легко открывается на их компьютерах и может быть использован. Этот этап также помогает определить ошибки и ошибки в коде, препятствующие преобразованию кода в исполняемый файл.
Запустить исполняемый код
Исполняемый код не является завершенной программой, но вы можете открыть окончательный файл кода в подходящей среде программирования, то есть в операционных системах. Так как весь программный код у вас перед глазами, вы можете редактировать его в удобной среде.
Отладка программы
После редактирования кода программы он готов к тестированию с целью выявления возможных ошибок, означающих системные ошибки. Обычно программные системы проходят различные ручные и автоматические тесты, которые проверяют, все ли функции работают стабильно, и проводят различные сценарии, чтобы подтвердить, что система полностью жизнеспособна. Совершенно нормально иметь такие проблемы, так как код включает в себя множество мелких деталей, и такие случаи только позволяют глубже изучить написание кода. Разнообразие возможных ошибок довольно велико, и вы можете найти ошибки в разных частях кода. Конечно, этап компиляции влечет за собой отладку, но он не отлавливает все системные ошибки, поэтому инженеры перепроверяют корректность кода.
Обслуживание кода
Любой тип программного решения, включая его код, требует постоянного обслуживания и регулярных обновлений. С годами меняются технологии и языки программирования, поэтому программный код может стать неактуальным и устаревшим. Этот процесс называется унаследованным кодом, и его необходимо реорганизовать. Этот процесс влечет за собой пересмотр кода, изменение и исправление. Также написание кода нуждается в постоянной технической поддержке на случай, если система выйдет из строя и потребует быстрых решений.
Кроме того, готовая программная система может быть интегрирована с новыми функциями, что также требует написания кода для новых функций в соответствии с описанным выше алгоритмом. Процесс написания кода, как и сервис написания Trust My Paper, имеет определенную структуру и основные этапы, которые необходимо соблюдать для получения успешных результатов.
Подводя итог
В целом, чтобы сделать процесс написания кода для программных систем быстрым и эффективным, мы хотели бы подчеркнуть важность найма высококлассных инженеров-программистов, имеющих опыт работы с подобными проектами. Написание кода не всегда проходит гладко, разработчики должны уметь правильно и быстро находить решение возникающих проблем.
Биография
Лилли Дженкинс — креативный копирайтер и автор контента. Она работала копирайтером после окончания школы, поэтому ее писательские навыки хорошо отточены. Она пишет публикации в таких областях, как маркетинг, бизнес, образование и личная жизнь. Больше, чем писать, Лилли любит путешествовать и читать профессиональную литературу.
Обучение детей написанию компьютерных программ
by Marshall Brain
Краткое введение. Если вы ищете быстрый и простой способ научить своего ребенка «настоящему языку программирования», ничего не загружая и не покупая, попробуйте эти учебники по Python. Ваш ребенок будет писать и изменять код всего за несколько минут.
Допустим, у вас есть дети, и вы хотели бы помочь им научиться программированию в раннем возрасте. Как отец четверых детей, я пытался подойти к этому с нескольких разных точек зрения. Здесь я хотел бы собрать несколько идей для родителей, которые ищут разные варианты.
Начнем с важного: все дети разные. Некоторые дети бегло читают и пишут на годы раньше других. Для них научиться программировать, наверное, проще. У некоторых детей базовые аналитические навыки появляются намного раньше, чем у других (вот история о девятомлетний писатель, пишущий полноценные приложения для iPhone). И так далее. Вы пытаетесь познакомить своих детей с программированием, и оно может с первого раза «взять», а может и не «взять» просто из-за этих различий. Так что вы ждете несколько месяцев и пытаетесь снова, или вы можете попробовать другой подход. Поймите, что в первый раз, когда вы пытаетесь познакомить своих детей с программированием, они могут вообще «не понять». И это нормально.
Второе, что нужно понять, это то, что настоящие аналитические способности часто не начинают проявляться у многих детей до 11, 12 или 13 лет, поэтому ожидать огромных прорывов до этого может быть нереально.
Тем не менее, есть много забавных вещей, которые вы можете попробовать уже в пять или шесть лет…
Игры
Давайте начнем с нескольких игр. Вот три игры, которые особенно понравились моим детям. Они обучают базовым идеям решения проблем по-разному:
- Волшебная ручка (подождите несколько секунд, чтобы увидеть слово «играть», затем нажмите слово «Играть»)
- Фантастическое изобретение
- Аудитория наведите на него стрелку. Увеличивайте или уменьшайте внешний круг, перетаскивая его. Попробуйте направить поток на полосы. Когда полосы заполнятся, щелкните в любом месте, чтобы перейти на следующий уровень)
Если поискать в Интернете, то можно найти множество игр «решение проблем», подобных этим трем.
Еще есть эта игра, которая на самом деле очень хорошо обучает простым навыкам программирования:
- Light Bot (нажмите кнопку «Играть» и начните с основ)
Я люблю Light Bot. Это займет детей на пару часов, начиная с 7 или 8 лет. Некоторые головоломки в LightBot слишком сложны для детей. На YouTube есть пошаговые руководства, которые помогают.
Предпочитаете игры на планшете или телефоне? Wired.com недавно рекомендовал здесь приложение для роботов. См. также этот список.
LOGO
Как только вы попробуете Light Bot, он может немного напомнить вам LOGO — язык для детей младшего возраста. Вы можете узнать больше об этом на следующей странице:
- Программирование LOGO (нажмите на одну из программ справа и посмотрите, как она запускается, а затем измените)
- Программирование LOGO (содержит руководство по командам LOGO и упражнения для попробуй)
Или зайдите в Google. В сети много информации о LOGO.
Python для детей
Логотип довольно ограничен. Что, если вы хотите научить своих детей «настоящему» языку программирования? Python может быть хорошим вариантом, чтобы попробовать, потому что он теперь довольно вездесущ, и его легко начать. Эти руководства помогут вам быстро начать работу:
Python Turotials
Или введите «Python для детей» в Google — там много всего.
Большие усилия
Одному из моих детей очень понравилась игра Lego Mindstorms. Это набор робототехники Lego. Я видел детей в возрасте шести или семи лет, выполняющих с ним содержательные программы. Он использует графический язык, который довольно прост для понимания. Если вы не против потратить 200 долларов, то это определенно стоит посмотреть. Если вы обнаружите, что вашему ребенку это действительно нравится, вы также можете заглянуть в FIRST Lego League (команды FLL создают роботов Mindstorms, работают над презентациями и т. д.). Один из моих детей был в команде FLL в течение нескольких лет, и это было здорово для него.
Преимущество Mindstorms в том, что он позволяет детям создавать интересные вещи. Проблема в том, что через месяц или два вы можете обнаружить, что достигли предела своих возможностей. [Да, на YouTube есть взрослые, которые хвастаются удивительными, продвинутыми вещами, но я подозреваю, что эти люди — гении.]
Друг порекомендовал эту образовательную систему для программирования моделирования роботов. Это бесплатно:
RoboMind
Другим большим достижением является Phrogram, ранее известный как Kids Programming Language. У KPL было огромное преимущество в том, что он был бесплатным и довольно удивительным. Он поставлялся с десятками примеров программ и мог делать как простые, так и сложные вещи (например, действительно хороший автомат для игры в пинбол был одним из образцов). Но по какой-то причине они убили KPL и превратили его в Phrogram. Phrogram стоит 50 долларов, и я не пробовал, но, если предположить, что это аналогичный пакет, он того стоит.
Вот бесплатная система от MIT под названием Scratch:
- Scratch
Мои дети играли с ней пару дней. См. также эту страницу.
Если ваши дети хотят создавать игры, попробуйте один из вариантов:
- GameMaker
GameMaker — довольно сложный инструмент с большим количеством опций. Есть учебные пособия, которые помогут вам начать работу. Я бы не стал использовать это как «первый набег», возможно, но это то, что нужно учитывать для второго набега.
Также есть бесплатная электронная книга по созданию игр на Python, в которой говорится: «Написана так, чтобы ее могли понять дети в возрасте от 10 до 12 лет, хотя она отлично подходит для любого возраста, который никогда раньше не программировал»:
- Invent with Python
Друг предположил, что это хорошее введение.
Еще одна вещь, которую стоит попробовать:
- Codecademy. com
Слоган: «Codecademy — это самый простой способ научиться программировать. Это интерактивно, весело, и вы можете делать это со своими друзьями».
MIT App Inventor
Этим летом мои близнецы (12 лет) посещали занятия по использованию MIT App Inventor. Это впечатляющая система для создания простых приложений на устройствах Android. В первый день близнецы создавали простые приложения для Android, а затем сами создали кучу приложений. Им очень понравилось!
MIT App Inventor
Если вам нужна вводная информация, вы можете найти множество вводных видеороликов, подобных этим:
com/embed/nC_x9iOby0g?feature=oembed» frameborder=»0″ allow=»accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture» allowfullscreen=»»>Создание веб-сайтов
Что делать, если ваш ребенок хочет создавать веб-сайты? Теперь это область программирования. Вот одно бесплатное всеобъемлющее образовательное приложение, которое я видел:
- The Odin Project
Опять же, это не для маленьких детей, но определенно возможно для подростков с ловкостью. Он охватывает множество тем: HTML, CSS, Ruby on rails, Javascript и т. д. Это может стать карьерным путем, если вашему ребенку это действительно нравится — на рынке труда доступно множество возможностей.
Как насчет простого веб-сайта, вообще без программирования? Я бы порекомендовал WordPress. Вы можете начать с ним здесь:
- WordPress: простой и быстрый способ создать веб-сайт
Вы можете делать удивительные вещи без кода. Но это действительно помогает, если ребенок «технарен» и любит собирать вещи.
Настоящее программирование — курс Java в Стэнфорде
Мой сын (около 13 лет) начал посещать бесплатные онлайн-курсы Java в Стэнфорде и многому научился. Класс включает лекции YouTube и классные задания , которые закрепляют концепции, обсуждаемые в классе. Среда программирования, используемая в классе, называется Eclipse. Eclipse — это полнофункциональный инструмент разработки с отличным отладчиком, к тому же бесплатный. Это класс, в котором учился мой сын:
Введение в информатику | Методология программирования
См. также:
CS106A: Методологии программирования
Нашему сыну нужна была небольшая поддержка со стороны родителей (т. для игры под названием «Прорыв»), он был полностью занят и расширил эту базовую игру в ряде направлений без каких-либо подсказок с нашей стороны. Я чувствую, что этот курс научил его тому, как быть «настоящим» программистом.
В Стэнфорде есть много курсов для изучения — нажмите, чтобы просмотреть список. Их предложения представляют собой ценный ресурс для всех, кто хочет изучать программирование.
После того, как вы освоитесь с Java, может быть интересно попробовать что-то вроде этого — сочетание Greenfoot и Java:
Реальное программирование — программирование на C и C++
Языки программирования C и C++ — два наиболее широко используемых языка программирования языков в мире. Существуют бесплатные компиляторы, которые легко доступны, и можно найти множество обучающей информации бесплатно. Вот два ресурса, которые помогут вам начать работу:
- Основы программирования на C
- Программирование на C и программирование на C++
Google — ваш друг, и он может помочь вам найти множество других вещей.
Обучение написанию приложений для iPhone и iPad
Создание приложений для iPhone и iPad не для новичков, но это определенно то, что могут освоить учащиеся средних и старших классов, если у них есть навыки программирования. И аудитория этих приложений огромна благодаря App Store, которым управляет Apple. Вот шаги, которые вам нужно предпринять, если вы хотите начать:
Шаг 1 – Шаг 1 – это покупка компьютера Mac у Apple, чтобы вы могли компилировать приложения. Самая дешевая точка входа — Mac Mini за 600 долларов. MacBook Pro — это ноутбук, который стоит примерно в два раза дороже.
Шаг 2 . Если у вас есть Mac, перейдите в Mac App Store и загрузите XCode. Это бесплатно. Этот пакет содержит среду разработки, компилятор, SDK и библиотеки, а также симулятор, чтобы вы могли тестировать свои приложения на смоделированных устройствах iPhone и iPad.
Шаг 3 – Apple предлагает серию вводных руководств:
Начните разрабатывать приложения для iOS уже сегодня
Создание вашего первого приложения для iOS – Hello, World
Создание второго приложения для iOS – раскадровки
Ваше третье приложение для iOS: iCloud
Шаг 4 – Пройдите курс по разработке приложений в Стэнфорде: CS 193P Разработка приложений для iPhone. Вот первая лекция:
Шаг 5 – После того, как вы разработаете свое первое приложение, наступит время для первой отправки в магазин приложений – вам нужно заплатить 9 долларов США.9, чтобы присоединиться к программе разработчиков Apple, чтобы сделать этот шаг.
Google может помочь вам ответить практически на любой вопрос или проблему, с которой вы столкнетесь во время обучения.
А как насчет приложений для Android?
После разговора об Apple Apps будет справедливо поговорить и о платформе Android. Вот «официальный сайт»:
- Создание вашего первого приложения
Это довольно технический материал. Тем не менее, подросток со способностями должен быть в состоянии приблизиться к этому. Эта страница следует тому же принципу:
- Хотите научиться программировать для Android? Начните здесь
Google снова ваш друг. Используйте такие фразы, как «Начало работы с приложениями для Android» и «Как написать свое первое приложение для Android». Найдите что-то, что будет удобно для вашего подростка. Также рассмотрите вариант Standford: CS193a Программирование Android или:
Курс Android Зима 2011 г. Лекция 01 – Приветственная демонстрацияСо временем это устареет, но это хорошее введение.
Штамп BASIC (и см. ниже для Arduino)
На самом деле мне повезло, когда я вовлек своего 10-летнего сына в программирование с помощью устройства под названием BASIC Stamp. Так что я хотел бы провести здесь немного времени, говоря об этом. Это недешево, но у него есть три преимущества:
- Он сочетает в себе программирование и простую электронику
- Программирование, как правило, очень простое
- Вы можете делать с ним настоящие вещи или, по крайней мере, вещи, которые кажутся более реальными ( моим детям в любом случае), чем Mindstorms.
Мы впервые познакомились со штампом BASIC, когда нашли этот комплект в магазине Radio Shack за 9 долларов.0:
Что такое микроконтроллер BASIC Stamp Kit
Вы также можете заказать его здесь:
BASIC Stamp Activity Kit
Большое предостережение заключается в том, что для его использования вам потребуется компьютер с последовательным портом. Если у вас нет такого компьютера (большинство компьютеров, выпущенных с 2005 года, не имеют последовательного порта), вам потребуется USB-версия комплекта за 160 долларов:
BASIC Stamp Discovery Kit — Serial (с USB-адаптером и кабелем)
И если вы собираетесь это сделать, я мог бы предложить вам вместо этого рассмотреть этот набор роботов, потому что он стоит ту же цену:
Набор роботов Boe-Bot – версия USB
Итак, вы уже видите, что BASIC Stamp не прост и не дешев. Нам уже приходилось беспокоиться о типах портов и о том, какой комплект получить. И если это вас отталкивает, так тому и быть.
Но мы купили комплект в магазине Radio Shack, и у нас была старая машина с последовательным портом, мы ее настроили, и все заработало, и… вот что в ней было удивительно. Мой ребенок мог сидеть с книгой сам по себе, и сам он мог подключать маленькие схемы и писать маленькие кусочки кода, и все это работало. Программы и электроника настолько просты, что с ними справится даже 10-летний ребенок. Это, по общему признанию, простые вещи, например, подключить кнопку и заставить ее мигать светодиодом, или заставить вращаться серводвигатель, или издавать звуки, исходящие из динамика. Но мысль о том, что мой ребенок (который по большей части ненавидит читать) может заставить все это работать, была впечатляющей. И тогда он мог бы думать о расширениях самостоятельно. Тривиальные расширения, да, вроде мигания двух светодиодов, но расширения.
Преимущество этого подхода в том, что вы можете купить другие элементы на Parallax. com, и их довольно легко подключить. Одной из первых вещей, которые мы купили, был PIR-модуль (10 долларов), который вы используете в охранной сигнализации или автоматическом освещении, чтобы чувствовать тепло человеческого тела. Мы также купили небольшую текстовую ЖК-панель ($25). И он построил устройство, которое могло считать людей, проходящих мимо. Если у вас семья из шести человек, сколько раз они пользуются лестницей в доме? Сколько раз они открывают холодильник? С помощью этого устройства вы можете узнать. (Холодильник был забавный – его открывали где-то 50 раз в день!)
Следующей вещью был ультразвуковой датчик ($30). С этим и ЖК-дисплеем вы можете построить небольшую ультразвуковую рулетку. У них есть много таких маленьких датчиков, которые вы можете попробовать. Мы использовали акселерометр, термометр, считыватель RFID-меток и т. д.
Его последнее приключение связано с модулем GPS (90 долларов США) и устройством чтения/записи USB-накопителей (35 долларов США), которые он использовал в проекте научной ярмарки. . С помощью USB-накопителя вы можете подключить USB-накопитель (также известный как «флэш-накопитель») и читать и записывать файлы. Таким образом, вы можете создать текстовый файл и начать загружать данные. Затем вы можете подключить GPS, позволить ему собирать данные и сохранять их на карту памяти. Благодаря этому вы можете создавать дорожки из хлебных крошек везде, куда бы вы ни пошли. Затем вы можете подключить карту памяти к USB-порту вашего ноутбука, загрузить данные в электронную таблицу и построить точечный график…
…или вы можете поместить данные в карты Google, как описано здесь:
Отображение координат GPS с помощью Google Maps
Как оказалось, Parallax GPS не самый лучший. Когда мы впервые подключили его, он никогда не захватывал спутники. После часа поисков в Google мы выяснили, что вам необходимо установить GPS примерно в 10 дюймах от Stamp (из-за электрических помех, создаваемых Stamp). Было бы замечательно, если бы этот факт был раскрыт в документации Parallax. Но даже после этого у этого устройства иногда могут возникнуть проблемы с блокировкой (например, наше вообще не работает в дождливую погоду). В машине работает, если поставить на приборную панель, но не из салона. [Все эти проблемы в конечном итоге привели нас к сайту Sparkfun.com, на котором представлен гораздо лучший выбор GPS-модулей, которые несколько менее просты в использовании.]
Это также привело нас к поиску материалов в Интернете о BASIC Stamp. Этого много. Например, есть люди, создающие автопилоты из BASIC Stamps:
- Учебное пособие по автопилоту Basic Stamp, часть 3 (это страница, которая научила нас не помещать GPS на доску Stamp)
- BASIC Stamp Код БПЛА теперь в бета-версии
Таких вещей можно найти много. Затем вы обнаружите, что существует множество других платформ, более совершенных, чем Stamp, например, Arduino, Teensy, Microchip PICkit (см. также эту книгу и эту книгу), Gumstix и т. д.
Arduino
С момента написания этой статьи платформа Arduino действительно завоевала популярность и заменила штамп BASIC в сердцах и умах любителей. Существует так много разных вариантов Arduino, так много разных аксессуаров, так много разных наборов, что теперь это очень богатая среда и очень весело.
Вот несколько примеров различных доступных комплектов:
- Комплекты Arduino
- Комплекты
- Комплекты Arduino
- Материалы для Arduino
- Комплект датчиков
- Программирование Arduino: начало работы с эскизами
Самый простой способ начать работу с Arduino — это купить его (например, купить Arduino Uno) и начать программирование. Эта статья является отличным введением в процесс загрузки среды разработки на ваш компьютер и начала программирования:
Arduino How To
В первый раз, когда я попробовал это, это не сработало. Было две настройки (тип Arduino и COM-порт), которые мне нужно было установить, и статья давала рекомендации. Мы приобрели ряд аксессуаров, в том числе этот сенсорный экран, и получили массу удовольствия от Arduino.
Raspberry Pi
Raspberry Pi — очень маленький, но полноценный компьютер, который умещается в руке.