Открытые бесплатные курсы на технические темы
77,31
рейтинг
17 ноября 2014 в 14:11

Разработка → Должны ли все изучать программирование? перевод

Предлагаю вашему вниманию перевод статьи «Should Everybody Learn to Code?», которая показалась мне интересной.

imageЧтобы проверить, смогут ли профессиональные графические дизайнеры написать простейшую компьютерную программу, Брайан Дорн, в то время студент магистратуры в Технологическом институте Джорджии (Georgia Tech), попросил их прочесть и изменить фрагмент программного кода. Дорн хотел понять, смогут ли они сами разобраться – как автоматизировать работу в Adobe Photoshop. Дизайнеры стали искать информацию в Интернете и, к сожалению, во многих случаях вводили неверные поисковые запросы: например, пытались разобраться с Java, когда на самом деле им был нужен JavaScript для этого конкретного проекта.

Это могло быть связано с «отсутствием общего базового понимания компьютерных и программных структур», писал Дорн в журнале Communications в мае 2011 года.

По мнению его научного руководителя, профессора и директора программы Контекстуализированной поддержки в обучении в Школе интерактивной обработки данных Georgia Tech Марка Гуздайла, результаты этого эксперимента показывают, что «есть много людей, которым нужны знания в компьютерных науках… и которые будут использовать их в жизни, но они никогда не изучали эту дисциплину, и их самообучение проходит неэффективно, что приводит к потере времени и мотивации».

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

Многие уважаемые деятели от бывшего президента США Билла Клинтона до создателя Facebook Марка Цукерберга и физика и космолога Стивена Хокинга публично заявляли о том, что базовые навыки программирования необходимы всем в современном мире. «Умение программировать стало четвертой составляющей грамотности. Каждый должен знать, как наш цифровой мир работает, не только инженеры» – считает Марк Серман, исполнительный директор Mozilla Foundation. Его цитаты, отстаивающие эту позицию, как и похожие цитаты многих других знаменитостей, есть на сайте инициативы code.org.

Согласно прогнозам Бюро трудовой статистики США, рост спроса на ИТ-специалистов и профессионалов с техническим образованием составит 34% к 2019 году. Многие специалисты уже в той или иной степени связаны с программированием. Гуздайл приводит данные исследования Университета Карнеги-Меллон 2005 года, которое предсказывало, что в 2012 году из 90 млн. работающего населения в США более 55 млн. будут использовать электронные таблицы и базы данных, что можно считать элементарным программированием.

Исследование Университета Карнеги-Меллон также показывает, что многие люди занимаются программированием, не осознавая того: например, создавая макросы в электронных таблицах или делая запросы в базах данных c использованием SQL. «Итак, многие специалисты будут иметь дело с программированием» — говорит Гуздайл, — «и данные наших исследований о том, как люди учатся программировать, и об их типичных ошибках, показывают, что базовые знания компьютерных наук были бы им очень полезны для дальнейшего самообразования».

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

Что вам надо изучить


Каждый должен освоить «computational thinking»(1) – так считает Жанетт Винг, корпоративный вице-президент Microsoft Research и в прошлом – профессор компьютерных наук в Университете Карнеги-Меллон. «Computational thinking» помогает людям мыслить абстрактно и разделять задачу на небольшие части. Программирование – это один из способов научиться этому навыку, считает Винг.

«Это не значит, что каждый должен освоить какой-то язык программирования, как Python или C++, хотя многие ставят знак равенства между программированием и набором кода,» – говорит Винг. Напротив, стоит сконцентрироваться на изучении навыка решения задач в компьютерных науках, аналогично тому, как мы учимся решать математические и инженерные задачи. Написание программы – это способ явно выразить действия, которые человек или машина могут выполнить. «Более фундаментальный навык, связанный с критическим мышлением, – это computational thinking, необходимый для того, чтобы понять, какой код требуется написать».

Другая точка зрения


Совсем иначе смотрит на вопрос изучения программирования разработчик ПО Чейз Фелкер, автор статьи в журнале Slate «Возможно, не все должны учиться программировать». «Если честно, одна мысль о том, что можно научиться программировать за год вызывает у меня содрогание: я был бы в ужасе, если бы для меня писал программы кто-то, кто закончил всего несколько классов. Не потому что он (к сожалению, большинство программистов – мужчины) изучил что-то не так, но потому что слишком многого он еще не знает».

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

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

В ответ на заявление мэра Нью-Йорка Майкла Блумберга в 2012 году, что он начнет изучать программирование, программист Джефф Этвуд, автор блога Code Horror, задает вопрос: "… можете ли вы мне объяснить, почему Майкл Блумберг стал бы более эффективен в своей повседневной работе по управлению самым большим городом в США, если бы он проснулся однажды утром первоклассным Java-разработчиком?". Программирование важно, соглашается Этвуд, однако и многие другие навыки важны. «Я бы не советовал всем изучать программирование больше, чем, например, слесарное или водопроводное дело».

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

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

Гуздайл ожидает, что со стороны программистов может быть сопротивление его идеям. «Я не предлагаю всем писать код профессионально. Я бы хотел, чтобы каждый заканчивал университет, будучи способным написать 10 строчек кода, которые нужны именно им». Смысл обучения программированию в высшем образовании – научить студентов определенному уровню компьютерной грамотности, включая способность мыслить в терминах кода и понимать, чем код может быть полезен.

Компьютерные науки в образовании


Специалисты в сфере компьютерных наук считают, что США уже слишком долго откладывают ввод базового образования по дисциплине в среднем образовании. «Многие страны разработали и внедрили национальные программы по обучению компьютерным наукам в школах, чтобы лучше подготовить учеников к новой глобальной экономике. Однако децентрализованная система принятия решений в образовании США сильно сдерживает попытки ввода стандартов программы по компьютерным наукам». – говорится в докладе 2010 года «Addressing Core Equities in K–12 Computer Science Education».

По мнению Гуздайла, самая большая проблема в обучении компьютерным наукам в США – это недостаток учителей. По его оценкам, в стране около 30 000 старших школ, однако только около 2000 учителей, обладающих достаточным уровнем квалификации.

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

Гуздайл считает, что компьютерные науки должны преподаваться в школе, но не в возрасте 5-6 лет, учитывая современную ситуацию: только 12% старших школ в США предлагают классы по компьютерным наукам, и гораздо меньше средних и начальных школ, что создает большой временной разрыв. «Дети скорее всего не столкнутся с программированием еще долго после 5летнего возраста, зачем тогда давать им эту информацию в таком раннем возрасте?»

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

Перспективы


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

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


(1): Термин computational thinking появился относительно недавно, в 1996 году. В русском языке на данный момент нет его устоявшегося перевода (как правило, для перевода используется более широкое понятие «математическое мышление»). Далее в этом тексте мы будем использовать английский термин.

От переводчика

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

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

В связи с этим, рад анонсировать, что мы с Институтом биоинформатики запустили онлайн-курс на платформе Stepic для обучения программированию «с нуля» на языке Python. Первый дедлайн по задачам будет на следующей неделе, 24 ноября, поэтому записаться на курс еще не поздно! Упор в курсе сделан не столько на конструкции языка Python, сколько на формирование алгоритмического мышления через решение задач на программирование.
Автор: @Effect Esther Shein
Stepik.org
рейтинг 77,31
Открытые бесплатные курсы на технические темы
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Комментарии (54)

  • +16
    Через треть века после Ершова идея о программировании, как одной из составляющих грамотности преподносится как последнее достижение западной педагогической мысли?
    • +5
      а чего еще оджидать от перевода. На западе, мне кажется, про Андрея Ершова не слышали =)
      • +4
        Вы меня не поняли. Мне как-то наплевать, чего они там не слышали («Программирование — вторая грамотность» — это, если я не путаю, речь Ершова на конференции ЮНЕСКО в 81 году, так что, скорее слышали, чем нет ). Меня беспокоит, что у нас эта идея появляется в виде перевода, причём, по-видимому, как нечто для автора перевода новое. Результат реформы образования?
        • 0
          Не думаю. Скорее результат панического страха популяризации, пиара или рекламы проектов/продуктов, разработанных в этой стране.

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

          Думаю, что andyudol правильно беспокоит то, что давно озвученная идея оказывается забытой в своей стране — это путь к деградации…
        • +3
          Действительно, «Умение программировать стало четвертой составляющей грамотности» сильно перекликается с «Программирование — вторая грамотность» Ершова. Но с доклада Ершова много воды утекло. Он писал: «Если развитие и распространение книгопечатания привело к всеобщей грамотности, то развитие и распространение ЭВМ приведет ко всеобщему умению программировать». Сейчас компьютер появился дома уже почти у каждого, но мы видим, это не привело к всеобщему умению программировать. И если в восьмидесятые годы практически реализовать эту идею поголовного обучения программированию было сложно (всё же без компьютера и без возможности запустить программу и увидеть, как она работает, программирование остаётся областью абстрактных умозаключений вроде математики), то сегодня это всё вполне реализуемо.
          • +1
            Ага, значит я был не прав — для автора перевода это не новость. Это конечно радует, но я всё равно пну ещё раз.
            По-моему, сама по себе статья слабая и совсем не заслуживает перевода. Этот сказал то, тот сказал это. В заголовке — кодирование, в перспективах — вычислительное мышление.
            А вот сравнить эпоху Ершова и современную, причём сравнить, что изменилось у них там и у нас здесь — это было бы интересно и для этого вполне можно было бы использовать даже эту статью.
            И если в восьмидесятые годы практически реализовать эту идею поголовного обучения программированию было сложно (всё же без компьютера и без возможности запустить программу и увидеть, как она работает, программирование остаётся областью абстрактных умозаключений вроде математики), то сегодня это всё вполне реализуемо.
            Ага, тогда это было сложно, но нужно — нужно было развивать компьютерное дело, для этого надо было срочно нарастить массу, из которой могли бы прорасти в достаточном количестве специалисты.
            Сейчас это уже, вроде, не сложно, но само по себе никому не нужно.
            • 0
              Ну как сказать, никому не нужно. Вот Минкомсвязи, например, говорит, что им нужен миллион программистов, а сейчас 350 тысяч есть. И выпускается по программистким специальностям из университетов около пары тысяч человек в год. Не скоро этот миллион такими темпами наберется.
          • 0
            >Если развитие и распространение книгопечатания привело к всеобщей грамотности, то развитие и распространение ЭВМ приведет ко всеобщему умению программировать»

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

            Все же нужно понимать, что Ершов писал о тех компьютерах, а не о сферических компьютерах XXXIIIII века в вакууме.
    • +4
      Одинаковые идеи приходили в разные головы одновременно (по меркам истории) неоднократно. Так что да, это вполне может быть самостоятельное достижение западной педагогической мысли, которое появилось «через треть века». Впрочем, может и не быть.
    • 0
      То, что мы не знаем Ершова — это грустно, спасибо за наводку.

      Но то что меня огорчает ещё больше — это отношение к развитию образования «там» и у нас. Визуальные системы Scratch, Snap!, написание документации/курсов по популяризации STEM, программирования — «там» это находит поддержку в грантах.

      Вот для примера: курс Beauty and Joy of Computing (BJC), для введения в программирование (курс представлен под открытой лицензией). Там:
      This material is based upon work supported by the National Science Foundation under Grant No. 1138596


      На сайте визуальной системы программирования Snap!
      This material is based partly upon work supported by the National Science Foundation under Grant No. 1138596


      Мы можем даже открыть этот Grant No. 1138596, выделенная сумма — $681,450.00.

      Создание руководства пользователя по Snap! (очень хорошее описание, и почти 80 страниц) — так же частично было оплачено из гранта:
      This work was supported in part by the National Science Foundation grant 1143566, and in part by MioSof
      Открываем grant 1143566, сумма: $220,430.00

      Другой пример, курс Scratch: Programming in Scratch: Making Music, Movies, and Games with Computers:
      This material is based upon work supported by the National Science Foundation under Grant No. 1044106

      Открываем этот Grant No. 1044106, сумма: $200,000.00.

      То есть даже на этих фрагментах — получается вложение более $1 млн — а это поддержка преподавателей, создание качественного (и доступного по открытой лицензии) материала.

      А наши учителя информатики и просто заинтересованные в развитии молодежи — как правило, всё это продвигают на базе своего энтузиазма, например тот же Денис Копосов (что ведёт уже несколько лет уроки робототехники), или автор русского учебника по Scratch.
  • 0
    Забавное совпадение.
    class.coursera.org/pythonlearn-003

    Второе эссе: «What is the impact of programming on our world? Does everyone need to learn programming? How might individual lives and society as a whole be changed if we found a way to include programming and technology at all levels of education?»
  • +5
    Лампочку менять должен только электрик, а программы писать — программист
    • +1
      Странный Вы.
      Хотя бы потому, что воспринимаете текущую профессию как конечную стадию развития человека (с профессиональной точки зрения). Что мешает тому же электрику проработав год-другой вкручивая лампочки осознать, что он может больше и пойти в сторону электронщика или АСУ, где навыки программирования ему не повредят.
      • 0
        Если электронщику нужно написать программу, он вызовет сертифицированного программиста.
        А вообще это сарказм был.
    • +1
      Чтобы была полная аналогия — «поэтому никто, кроме электрика, не должен иметь никакого понятия о том, что такое электричество»
      • +5
        Чтобы была совсем полная аналогия: если вы намерены как результат замены лампочки иметь не просто светящуюся лампочку, но еще и некоторую гарантию, что никого не убьет током, не будет пожара, что лампочка будет нужной мощности, цветовой температуры и соответствовать патрону, в который ее вкрутили, то таки да, имеет смысл звать электрика.
        А то ведь эксепшенов в замене лампочек можно набрать ничуть не меньше, чем в написании программульки на сотню строчек. Лично наблюдал лампу Е14, вкрученную в патрон Е27 через толстый толстый слой фольги для запекания.
        • +3
          Вау! И как, запекло кого-нибудь?
          • 0
            Увы. Люди вообще не поняли, что они сделали не так: все же работало.
      • +1
        Так человечество в этом направлении и движется. Представьте себе недалекое будущее, ты сидишь дома программируешь в свое удовольствие, жена говорит: «Дорогой, в туалете темно, сделай что-нибудь!». Ты как настоящий мужик отправляешь сообщение в сервисную службу: «В туалете темно». Приходит сертифицированный специалист и делает все как надо, и нет тебе дела до того, как работает лампочка и при чем тут электричество.
        • +2
          «делает все как надо» — пугающее начало для фильмов разных жанров.
          • +4
            За жену не переживайте, у электрика нет соответствующего сертификата
          • 0
            Особенно, если это электрик из немецкого фильма про любовь, да.
        • 0
          Не дай Бог в этом недалеком будущем пропадет интернет. Выживаемость то атрофируется.
          • +3
            Да она уже давным-давно атрофирована! Электричество пропадет и все, конец света
  • +9
    Ожидал в конце встретить опрос. Программирование — как рисование или занятия музыкой — если хочешь — занимайся.
  • +1
    Странно, что не вспомнили В.Паронджанова с его призывом «Запомните: программирование должны знать все!», с его «Драконом» и «программированием без программистов».
  • +4
    Калькулятор твой помощник и соперник в играх, Гайштут, 1988 год, если память не изменяет, первая страница:
  • +8
    Добрый вечер. Сейчас я напишу коммент тянущий по объему на пост (: Накипело :)

    Надо ли ВСЕМ изучать программирование / не надо ли изучать программирование — это не тот вопрос над которым стоит ломать голову. Вопрос в общей организации программы обязательного обучения.
    Поясню.
    Например в структуре современной общеобразовательной школы РФ программирование является 5 колесом.
    1. Информатика — второстепенный предмет.
    2. Программирование там — второстепенная тема.
    3. Поступить на программирование в вуз можно не сдавая информатику. (Например набор Русский Математика Физика)
    4. Информатика ни как не интегрирована с другими предметами.

    В этих условиях нужно ли, например, человеку поступающему на литературоведческий изучать программирование. Да нет не стоит! Хотя бы потому, что большинство учебников которые он найдет научат его не программированию, а кодированию программ на одном из языков программирования. Тому же научат и большинство репетиров. Ну будет писатель со знанием C# :) А зачем? Разве что тематические бложики переводить.

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

    При этом важной особенностью программирования является то что оно учит ДУМАТЬ. Даже если взять задачи предолимпиадного уровня — это разминка для мозга которой трудно найти аналоги в школьном курсе.

    Так что учить и учиться программировать стоит. НО стоит только хорошо.
    А обязательные курсы Паскаля (или (даже) Лиспа) ничем никому не помогут.

  • 0
    Лучше делать такие интерфейсы, чтобы можно было пользоваться и не думать о «кишках» и том, как оно там работает. Домохозяйка не знает, откуда берется ток в розетке и как работает утюг и стиральная машина, и это не мешает ей эффективно все это использовать.
    Программирование — это не цель, не магия, не высокое искусство, а просто инструмент для решения определенного круга задач, ровно как молоток — инструмент для забивания гвоздей. Если человеку не нужно решать этот «определенный круг» задач, то и программирование ему изучать незачем, он спокойно сможет искать информацию в интернете и оформлять красивый отчет microsoft word и не зная, что такое композиция и чем интерфейс от абстрактного класса отличается. Безграмотным он от этого тоже не станет
    • +1
      Вы абсолютно правы и одновременно ошибаетесь. Т.е. все ваши посылы истина, но ошибка в том что

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

      тогда и только тогда, когда к нему относятся не как к магии, а как к молотку.

      Артур Кларк в одном из своих знаменитых и часто цитируемых комментариев сказал, что достаточно развитая технология неотличима от магии. Так вот, ИМХО программирование уже достаточно развитая технология.
      • –2
        1) Само по себе программирование — это не технология.
        2) Я понимаю, что намного приятнее думать, что ты не такой как все маг-волшебник, спасаешь мир и делаешь уникальную и супер-сложную работу, даже если это ежедневное клепание форм на WPF или натягивание шкурки на битрикс
        За сим в эту сторону дискуссию не вижу смысла продолжать.
      • 0
        достаточно развитая технология неотличима от магии
        Маленькое, но существенное дополнение — для того, кто этой технологией не владеет.
    • +2
      Домохозяйка не знает, откуда берется ток в розетке и как работает утюг и стиральная машина, и это не мешает ей эффективно все это использовать.
      Подобная «узкая специализация» постоянно фигурирует в фантастических произведениях. Например, в серии книг Warhammer 40000 инженерия (как таковая) превратилась в религию и знания остались лишь у посвященных. Если вы хотите заправить танк, то должны не только открутить крышку горловины бака, но и пропеть обязательно соответствующую литанию богу-машине. Без нее двигатель не заведется (может и заработает, но никто не рискнет проверить). То есть, любое действие с техникой превращается в смесь инженерных действий и религиозных песнопений. И народ уже не знает, что конкретно заставляет двигаться механизм — нажатие кнопки или молитва. А все из-за того, что когда-то техникой стал заниматься узкий круг специалистов с «определенным кругом» задач, которые потом монополизировали эту деятельность.
      Если человеку не нужно решать этот «определенный круг» задач, то и программирование ему изучать незачем
      Я многократно встречался с ситуацией, когда человек просто не знает, что его задачу/работу можно выполнить неким скриптом (будь то JavaScript в Photoshop или VBA в офисе). И он упорно, долго, нудно делает ее вручную (часто делая при этом ошибки от невнимательности или утомления).
      • 0
        Например, в серии книг Warhammer 40000 инженерия (как таковая) превратилась в религию и знания остались лишь у посвященных.

        К счастью мы не в серии книг Warhammer 40000, а на планете Земля в 2014. И узких специализаций за все время существования человечества было и стало великое множество, подавляющее большинство которых, как видно, не монополизировалось. С чего бы это должно произойти с программированием?
        Я многократно встречался с ситуацией, когда человек просто не знает, что его задачу/работу можно выполнить неким скриптом (будь то JavaScript в Photoshop или VBA в офисе). И он упорно, долго, нудно делает ее вручную (часто делая при этом ошибки от невнимательности или утомления).

        Задача этого человека — решать задачу из предметной области.
        Задача программиста в этом случае — автоматизировать задачи предметной области.
        А свести их — задача менеджмента.
        Давайте каждый займется лучше своим делом и в нем развивается, чем будет недопрограммистом+недобухгалтером+недо<еще_какой_нибудь_обязательный_и_всем_нужный_скилл>.
        • 0
          Все это может и звучит красиво с точки зрения сферического идеалиста (хотя лично мне напоминает Jedem Das Seine), но по отношению к реальному миру чревато. Реальный мир эволюционирует, одни профессии и виды занятости сменяют друг друга быстрее, чем человеческая жизнь, и впоследствии такого будет только больше. И чтобы не оказаться лузером, человеку все больше требуется мыслить не только о сегодняшнем дне, но и о завтрашнем. ИТ уже сейчас — главный фронт экономики и во многих случаях единственная отрасль, в которой занятость в условиях кризиса и даже после него не сокращается, а растет. Чего же ожидать завтра? Понятное дело, еще большего проникновения ИТ даже в те сферы, которые сейчас еще не очень ИТфицированы. Пожалуй, по потенциальной роли в обществе с этой сферой в перспективе могут потягаться разве что биотех, медицина, образование и вообще профессии, связанные с развитием человека, и то — по мере их ИТфикации, что опять же только усилит роль ИТ. Точно так же и в производстве, не говоря уже о науке.

          Правда, здесь следует различать понимание актуальных ИТ и сегодняшние компьютерные профессии. Когда мы говорим «ИТ становится всем», это не значит, что весь окружающий мир превращается в Матрицу или Трон. Это значит, что практически везде так или иначе задействуются информационные системы наряду с другими компонентами — которые тоже могут становиться чрезвычайно актуальными. Скажем, та же биоинформатика. Возможно, наступит такое время, когда без элементарных знаний о принципах работы биологических систем не ступишь и шагу, как сегодня ламерам неуютно в информационном обществе. Или как уже сейчас все больше внимания уделяется не только софтверным, но и хардверно-софтверным стартапам, актуальной становится робототехника, 3D-печать. Есть такое представление, популярное с прошлого века, увы, и в наших странах — о том, что пользователю достаточно просто быть пользователем, за него все сделают разработчики «умных» интерфейсов. Возможно. Если в конкретной ситуации требуется просто максимально эффективно решить конкретную задачу, то действительно в этом может лучше всего помочь интерфейс, интуитивно понятный даже ламеру. Но это только одна сторона медали. За кадром остаются вопросы: кто будет разрабатывать такие интерфейсы, кто будет ставить задачу, и что вообще дальше делать человеку. Как в эпоху подобных интерфейсов стимулировать человека далее познавать и творить? Для этого его мозги не должны заплывать жиром, он должен уметь и любить мыслить. В том числе и в логике ИТ, как минимум чтобы человек продолжал контролировать всю эту умную технику и задействовал ее в целях своего развития, а не оказался загнан в «зоопарк» под ее контролем. Еще раз: это не отменяет дружественности к пользователю т. н. «естественных» интерфейсов, но только лишь этого аспекта недостаточно. Пора вообще обществу развернуться лицом к ИТ и понять, что это такое же продолжение человеческого разума, как и «гуманитарная» сфера, и что для всех лучше будет, если ее основы станут частью элементарной грамотности и человеческой культуры не в виде каких-нибудь голливудских стереотипов, а в более реалистичной форме (отнюдь не отменяющей творческое воображение).

          И общество, кажется, к настоящему моменту начинает это наконец понимать. К сожалению, Запад как всегда только сейчас подходит практически к идеям советских визионеров 1960-80-х, вообще ко многим характеристикам, которые были присущи нашему обществу под конец существования СССР — в отношении роли образования и науки, социальной политики, равноправия полов и рас, педагогических принципов и т. д. Потому и очевидную еще со времен Глушкова идею о всеобщем преподавании основ информатики — не только для того, чтобы писать программы, но и чтобы понимать, как они написаны и чего от них ожидать, — там начали активно двигать только недавно, когда уже стало понятно, что в экономике без ИТ никуда. Правда, «у них» речь уже идет о реальном внедрении — свои визионеры наверняка были и в 60-х — а «у нас» как заморозили глушковскую тему в эпоху застоя, так и похоронили. Правда, конкретно в плане информатики в школах нам офигительно повезло — ее подняла «волна перемен» 80-х в «классической» 8-16-битной форме и после этого долго было не до того, чтобы «модернизировать» ее до «обучения навыкам квалифицированного потребителя» в эпоху Win9x. Из-за чего мы, как бы там ни было, сохраняем реальную глобальную конкурентоспособность.
          • 0
            Конечно, проникновение будет. Но, слава Богу, в другом виде, а не в том, котором этого хотели бы программисты :)
            Весь современный айтишный R&D работает на то, чтобы гаджеты «понимали» человека и делали что ему нужно, остальные так или иначе этому тренду следуют.
            Сейчас не нужно знать html, чтобы сделать себе интернет магазин. Он может быть кривой/косой с точки зрения разработчика, но с точки зрения владельца бизнеса он будет выполнять свои задачи — показывать товары покупателям и продавать их. И от него ничего не потребовалось кроме как потыкать мышкой в интерфейсе (пока еще далеком от идеала, но постоянно улучшающемуся и упрощающемуся). Сейчас похожее происходит и с мобильными прилложениями, покликав мышкой на сайте можно получить простенькое приложение под все платформы. И это здорово, этого и ищут пользователи. Пользователю не надо понимать полиморфизм или паттерн декоратор, пользователю нужен работающий вебсайт. И компании предоставляют пользователю максимально простой и быстрый способ этот сайт получить.
            Конечно, фотографы могут бесконечно долго рассказывать, какие у меня получаются ужасные фотки на телефон, но лично меня они устраивают и радуют. И сделал я их не имея понятия, что такое затвор, выдержка и ISO и не имея понятия как устроена и как работает камера в смартфоне.
            Взять например ту же Siri — вот это тренд софта будущего. Зачем забивать голову пользователя кучей ненужного ему хлама, если можно предоставить ему одну кнопку и послушать, чего ж он хочет?

            Я серьезно не понимаю, неужели кто-то считает, что обучить весь мир программированию проще, чем написать для этого мира простые, понятные и удобные программы?
            • 0
              В ваших примерах люди занимаются визуальным программированием. В интернет-магазине мы реализуем бизнес-логику, понятно, что она не на html пишется. И реализовывать её надо не наугад методом проб и ошибок, тогда бизнес пойдёт эффективнее.
        • +3
          Но если человек не является литературоведом, это не значит, что ему не надо читать художественную литературу. Или в этом случае тоже не стоит заниматься «не своим» делом? Многие согласятся с тем, что чтение книг помогает развивать мышление, воображение и вообще делает человека лучше. Возможно, программирование может сыграть такую же роль?
          • 0
            Заголовок поста называется "Должны ли все изучать программирование?" в этом ключе и отвечал.
            Так то конечно, если человеку интересно программировать, играть на гитаре, вязать крючком — почему бы и нет. Но в комментариях на полном серьезе проскакивали мысли и цитаты на тему «не умеешь программировать — неуч», что лично мне казалось странным и мнение я свое, как умел, аргументировал
        • 0
          Задача этого человека — решать задачу из предметной области.
          Задача программиста в этом случае — автоматизировать задачи предметной области.
          А свести их — задача менеджмента.


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

          Если этот человек работает сам на себя, например, бухгалтер, который ведет несколько предприятий/предпринимателей или дизайнер-фрилансер, то о каком «менеджменте» можно говорить? Этот предполагаемый бухгалтер не станет оформлять заявку на том же oDesk-е, так как, во-первых, знать не знает о существовании подобных ресурсов, а, во-вторых, считает каждую копейку и платить за скрипт в VBA в несколько десятков строк не станет.
          Если же это компания (разделенная на департаменты), то бюрократический процесс может длиться днями и неделями, так как у IT подразделения/ департамента уже утверждены свои календарные планы и решать подобные сиюминутные проблемы никто сразу не станет. Тут будет длительный процесс согласования с руководствами департаментов и постановки технического задания.

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

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

      Параллель, проведённая KEugene комментом выше с Warhammer 4000 прекрасна и заслуживает пристального внимания. Я уже встречал людей (заметьте, не в преклонном возрасте, а своих ровестников), которые практически одной ногой там, в мире магии и необъяснимого волшебства микроволновых печей.
      • 0
        Знания о том, чем отличается интерфейс от абстрактного класса, сродни правилам шахмат или старкрафта:). То есть практически никак сами по себе не способствуют эффективной деятельности. если не начать реально кодить и мыслить на уровне программиста.
  • –3
    ИМО, программирование (далее простейших блок-схем, как это было, когда я учился в школе) на достаточном уровне не должно быть. По двум наиболее важным причинам:

    1. Это неминуемо вызовет наплыв низкоквалифицированных рабочих. Хотя бы потому что рынок IT такой. Мне порой кажется, что даже мне устроиться программистом проще, чем химиком (по специальности с красной корочкой и публикациями). И не стоит забывать, что уровень з\п достаточно высок (по крайней мере, в России).

    2. Сама по себе конценпция «дизайнер должен прогать» неправильна. Ну не должно возникать такой необходимости у людей отдаленных от этого. Не возникает же (за исключением, конечно, узкой прослойки, которые это знают) у дизайнеров необходимости знать астрофизику. Откуда тогда притянута необходимость прогать? Если программа вынуждает человека писать свои костыли (привет. GIMP!) это ошибка в дизайне программы, отсутствии нужного сообщества или еще чего, но точно не проблема в пользователе, который не знает как программировать для работы с графическим редактором.
    • +2
      Вы сейчас рассуждаете в парадигме игры с нулевой суммой и при этом с идеальной эффективностью. То есть как будто существует некий фиксированный спрос на программистов (точнее кодеров), который сегодня позволяет им получать нехилые доходы благодаря дефициту предложения; при этом все программисты на рынке труда считаются одинаково квалифицированными. Таким образом, если больше людей со школы будут уметь еще и кодить на достаточном уровне, то они вас задавят конкуренцией, как индусы американцев. Тем не менее в США ИТ продолжают активно развиваться именно потому, что американцы не склонны считать эту отрасль игрой с нулевой суммой.

      Если даже предположить, что из школ будут выходить одни отличники, то это не только будет означать рост предложения, но и так или иначе вызовет рост спроса на ИТ. Условно говоря, мы сможем быстрее приблизить будущее. Даже если в этом будущем наши активы девальвируются, а требования возрастут, оно все равно будет будущим, т. е. в нем появятся такие технологии, которых сегодня не купишь ни за какие деньги. Мотивация доступом к будущему для многих будет посильнее мотивации материальными благами в технически более отсталом обществе. Я в их числе (ну разве что попытался бы эти самые блага побыстрее конвертировать в НТиСП, но это опять же требует времени, а эффективность одиночных усилий в обществе ламеров упирается в закон Амдала). И опять же, для этого я бы начал делать ровно то же самое — массово популяризировать обучение ИТ (наряду с некоторыми другими дисциплинами). Думаю, среди ИТшников в среднем гораздо меньше «альфа-личностей», озабоченных именно относительным статусом над другими, и больше тех, кто стремится вырваться вместе со всем человечеством из этой обезьянщины.

      Так что как ни крути, а совокупный эффект от социализации ИТ или ИТфикации общества для всех и каждого будет явно более позитивным, чем от сохранения статус-кво, а может и единственным возможным.
      • 0
        пожалуй, я не совсем четко высказался по первой части =)

        Меня мало заботит конкуренция, как таковая. Меня беспокоит общий вид служащих отрасли. На текущий момент IT отрасль считается — по не совсем понятным мне причинам — «элитной». Введение более продвинутого программирования в школах не снизит порог вхождения и едва ли привьет нужное мышление, а лишь даст базовые — лайк написать hello world и запустить его — навыки. С учетом «элитарности» сообщества, на мой взгляд, такие люди также будут себя гордо именовать «программистами» и едва ли они будут приближать будущее, как вы описываете. Некоторая подобная вещь наблюдается и сейчас, когда, например, одмины линукс систем с опытом работы овер 5 лет и требованиями шестизначной з\п не могут написать простейший скрипт на баше.

        Не поймите неправильно, я тоже обеимируками и ногами за развитие, но, в моем предтавлении, развитие зависит от желания человека, а не от того, чему его научили в школе.
        • +1
          Без целенаправленного преподавания базовых знаний время, потраченное на обучение индивидом, будет в пределе равняться времени накопления этих знаний. Когда-то уметь бегать и тыкать заострённой палкой в зверя было достаточным образованием. Сейчас этого явно недостаточно и объём «базы» только растёт. К чему вы привели в пример каких-то абстрактных людей с завышенными ожиданиями от жизни я не знаю, но такие часто отсеиваются ещё на стадии чтения резюме, так что не беспокойтесь, они шестизначных зарплат не получат. Как и не будут себя просто так называть программистами вчерашние школьники. Вы часто видите выпускников средних школ, которые себя называют докторами физико-математических наук, известными спортсменами, художниками или певцами? Насколько, по вашему мнению, школьный курс физики снижает порог вхождения в элитное общество химиков-фармацевтов или помогает создать нездоровую конкуренцию на рынке труда?
          • 0
            Сейчас этого явно недостаточно и объём «базы» только растёт.

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

            tl;dr весь вопрос в терминологии. База — это жизненно необходимый минимум. Если человек может прожить сейчас на текущей базе, зачем ее увеличивать? Если считать, что база — это то, что необходимо для изучения других вещей, тогда извините, но в школе надо читать полноценный матан, а не «введение». И кванты читать по физике.

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

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

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

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

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

            PS по математикой здесь, конечно, я понимаю не арифметику начальной школы, а хотя бы уровень квадратных уравнений, неравенств, простейшего функционального анализа.
            • 0
              Но ведь во всех областях тренировки значительно интенсивней обыденной деятельности. Точно так же, натренировавшись на неравенствах, системах уравнений, в обычной жизни уже по беглому взляду на график, представляют себе тенденцию, прикидывают риски бизнеса и т.д. и т.п.
  • 0
    Вопрос по предыдущим курсам. Когда будут разосланы сертификаты за прохождение курсов по C++ и Архитектуре ЭВМ. Почему-то уведомлений до сих пор не было (по крайне мере у меня).
    • 0
      AFAIK на этой неделе.

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

Самое читаемое Разработка