Привет, Хабр! Представляю вашему вниманию перевод статьи Аллена Б. Дауни, автора таких книг как Think Python, Think Java, Think Bayes и других, опубликованной в личном блоге автора.

Я написал несколько книг, в которых c использованием языка программирования Python объясняются темы вроде Байесовской статистики и цифровой обработки сигналов. В дополнение к книгам читатели могут загрузить код с GitHub. Для того, чтобы использовать этот код, нужно знать некоторые основы Python. То есть, у читателей должен быть компьютер, на котором установлен интерпретатор этого языка и необходимые библиотеки, они должны знать, как загрузить код с GitHub, а еще они должны знать, как запустить код, который они загрузили.

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

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

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

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

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

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

С тех пор три вещи сделали путь от пользователя до программиста сложнее.

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

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

Хорошо, и что же мы можем с этим поделать? Вот несколько вариантов:

  1. Назад в будущее. Во-первых, можно создавать компьютеры (как мой Commodore 64), которые бы разрушали барьер между использованием устройства и его программированием. Одной из предпосылок к созданию Raspberry Pi, по словам Эбена Аптона, было желание создать среду, которая бы превращала пользователей в программистов.
  2. Встретиться с болью лицом к лицу. Другой подход — учить студентов как настраивать и использовать среду разработки до того, как они начали программировать (или одновременно с этим).
  3. Отсрочить боль. Третий вариант предполагает использование облачных сервисов, чтобы студенты могли сразу начать программировать и на время отложить подготовку собственной среды разработки.

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

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

  1. Интерактивные учебники, позволяющие запускать код прямо в браузере, как например эта адаптация книги How To Think Like a Computer Scientist
  2. Cреды разработки, работающие через браузер, как например PythonAnywhere
  3. Образы виртуальных машин с уже настроенными и готовыми к работе средами разработки, которые пользователь может загрузить и запустить у себя (при условии, конечно, что он может установить программное обеспечение для запуска виртуальной машины).
  4. Сервисы вроде Binder, представляющие собой среду выполнения в облаке, и позволяющие пользователям получить доступ к некоторым функциям через браузер.

В некоторых своих проектах я использовал сразу все эти инструменты. В дополнение к интерактивной версии How To Think Like a Computer Scientist есть еще интерактивная версия Think Java, подготовленная и поддерживаемая Trinket.

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

Я использовал образы виртуальных машин для некоторых курсов в прошлом, но в последнее время я чаще пользовался онлайн сервисами, как в случае с этим Jupyter-ноутбуком для книги Think DSP. А репозитории для всех моих книг подготовлены для работы с сервисом Binder.

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

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

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


  1. AlexTest
    17.02.2018 13:15
    +8

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


    1. dkasyanov Автор
      17.02.2018 13:54
      +1

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

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


      1. DrPass
        17.02.2018 14:45
        +1

        Я, честно говоря, не вижу смысла ему облегчать путь в этом. Если он способен стать программистом, то ему надо как раз начинать с основ, и да, научиться в том числе администрировать свою рабочую среду. Если не способен, или просто оно ему не особо и интересно — то какая, по сути, разница, получится у него или нет?
        И ещё, я не соглашусь, что сейчас стало сложнее. Наоборот, средства разработки сейчас куда доступнее. Далеко не все компьютеры были как ZX Spectrum, с интерпретатором Бейсика в ПЗУ после включения. Я помню инструкцию к своему первому компьютеру. «Для подключения принтера спаяйте кабель согласно прилагаемой схеме». Или в другой книжечке, про джойстик. Инструкция, как загружать драйвер, как настраивать джойстик. А на последней странице сам драйвер. В машинных кодах. Ничего, выживали как-то :) Но вот что «раньше было легче» — не согласен.


        1. Fox_exe
          17.02.2018 17:53

          Да, сейчас не в пример легче — поставил туже Visual Studio и получил готовый набор всего, что необходимо: Компилятор, Отладчик, Подсветку синтаксиса, Подстановку кода (Itelli sense), визуальный редактор форм (WPF)… IDE сама ведет пользователя «за ручку», показывая как правильно писать и где есть ошибки…


          1. ivan386
            17.02.2018 23:07
            +1

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


            1. Fox_exe
              18.02.2018 10:08

              Порой надо установить компилятор и библиотеки строго определенной версии, да ещё и с нестандартными патчами (Костылями), да под устаревшей OS (Windows XP?) ну и т.д. и т.п.…


              1. iZENfire
                18.02.2018 10:59

                Последние версии программ для Windows XP требуют обновлений самой системы, в частности, до SetvicePack3 и ещё отдельно доустановить Windows Installer 4.5. Если пользователь пройдёт этот квест без посторонней помощи, он сможет стать программистом.


          1. RokkiJoker
            18.02.2018 10:22
            +1

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


        1. tetramino
          19.02.2018 18:23

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

          А если человек хочет стать врачом, ему следует предварительно научиться разделывать туши, точить скальпели и вышивать крестиком?


          1. Free_ze
            19.02.2018 18:32

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


            1. tetramino
              19.02.2018 18:51

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


              1. Free_ze
                19.02.2018 19:02

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


                1. tetramino
                  19.02.2018 20:03

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

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

                  Так и программисту нужно хотя бы уметь поставить нужные ему программы и настроить их.

                  Зачем?


                  1. Zenitchik
                    19.02.2018 20:17

                    Зачем?

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


                    1. tetramino
                      20.02.2018 13:04

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

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

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

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


                  1. Free_ze
                    19.02.2018 20:59

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

                    Зачем?
                    Очевидно затем, что нужно как-то уговорить компьютер работать по алгоритму.


                    1. tetramino
                      20.02.2018 13:07

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

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

                      Очевидно затем, что нужно как-то уговорить компьютер работать по алгоритму.

                      А спаять компьютер для этого надо или достаточно готовый взять?


                      1. Free_ze
                        20.02.2018 13:38

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

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


                        1. tetramino
                          20.02.2018 14:11

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

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

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

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


                          1. Free_ze
                            20.02.2018 14:22

                            Мне вам курс по психологии и педагогике прочитать?
                            Ясно, защитить аргументацию вы не в силах.

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


                            1. tetramino
                              20.02.2018 15:41

                              Ясно, защитить аргументацию вы не в силах.

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

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

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


                              1. Free_ze
                                20.02.2018 16:37

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

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

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


                                1. tetramino
                                  20.02.2018 17:19

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

                                  В профессиональном стандарте не замечено слово «продвинутость». Есть «уровень квалификации».

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

                                  Настолько повысили, что перестали студентам IT-специальностей преподавать администрирование?

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


                                  1. Free_ze
                                    20.02.2018 17:37

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

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

                                    Преподавание администрирования программистам в некотором объёме присутствует в качестве общеобразовательной дисциплины, но после длительного обучения программированию.
                                    То есть вы со мной сначала согласились, а потом с понтом опровергли?) В переводе на русский язык это означает: «Основы администрирования изучаются параллельно курсу программирования, по ходу программы знания углубляются».


                                1. tetramino
                                  20.02.2018 17:36

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

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


                  1. DrPass
                    20.02.2018 05:47

                    Это навык более высокого уровня, как, например, вождение авто или умение ясно выражаться

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


                    1. tetramino
                      20.02.2018 13:15

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

                      А конструктор самолетов обязан быть пилотом? Конструктор ракет — космонавтом? А программист, пишущий софт для магнитолы — музыкантом?


                      1. DrPass
                        20.02.2018 14:31

                        А конструктор самолетов обязан быть пилотом? Конструктор ракет — космонавтом?

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


                        1. tetramino
                          20.02.2018 15:47

                          Вы подменяете понятия (с). Конструктор самолётов не обязан быть пилотом, но уметь управлять самолётом, естественно, должен.

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

                          И конструктор ракет прекрасно знает, как она устроена, как она заправляется, как она управляется.

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

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

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


          1. DrPass
            20.02.2018 05:41

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


            1. tetramino
              20.02.2018 13:19

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

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

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

              Должен кому и зачем?


              1. DrPass
                20.02.2018 14:28

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

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

                Должен кому

                Хотя бы самому себе

                зачем

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


                1. tetramino
                  20.02.2018 15:53

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

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

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

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

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


      1. AlexTest
        17.02.2018 14:51
        -1

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


        1. Moxa
          17.02.2018 15:01

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


          1. rerf2010rerf
            18.02.2018 10:22

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


            1. saboteur_kiev
              18.02.2018 21:03

              Честно говоря, освоить типизацию гораздо проще, чем язык программирования.

              Поэтому освоить C++ с нуля, или освоить С++ после питона — явно второе проще.


              1. 0xd34df00d
                18.02.2018 22:57

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

                Освоить (в смысле навыка написания идиоматического кода) какие-нибудь зависимые типы — ИМХО посложнее, чем после питона выучить плюсы и хаскель вместе взятые.


              1. DrPass
                18.02.2018 23:40

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


    1. rumkin
      17.02.2018 13:58
      +1

      Лет сорок назад вас без научной степени и к компьютеру не подпустили бы.


      1. Hile
        17.02.2018 14:03

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

        Для тех кому «это все лень» или «у них лапки» — есть куча софта для графического программирования, было даже отечественное HiAsm (http://hiasm.com/).

        А если взялся за серьезные темы, будь добр — выучи базовое.


        1. rumkin
          17.02.2018 14:58

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


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


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


          1. Hile
            17.02.2018 15:11
            +1

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

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

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


            1. rumkin
              17.02.2018 15:22
              -2

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


              1. Hile
                17.02.2018 16:50
                -1

                Вообще-то из ваших.


            1. Hardcoin
              18.02.2018 15:02
              +1

              Почему не успевает? Он увидел снижение качества, внёс коррективы и написал об этом. Может и не успевает, но из текста это напрямую не следует.


      1. sshikov
        17.02.2018 21:46

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


        1. Ryppka
          18.02.2018 11:45

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


    1. Kroid
      17.02.2018 15:19
      +3

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

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

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


      1. khim
        17.02.2018 19:51

        «Вот тебе запчасти, вот инструкция. Вначале будешь учиться собирать из них автомобиль. После этого будешь учиться на нем ездить»
        Как раз в те «благодатные» времена это было нормой. Хочешь услышать звук в игре — спаяй себе Covox!

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


        1. Kroid
          17.02.2018 20:13
          +1

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

          То я бы хотел жить во втором (погодите-ка, я же и так в нем!). В первом мире до сих пор с перфокартами бегают, а уж про такие удобные штуки, как iPython notebook и мечтать не смеют.


          1. potan
            17.02.2018 21:08

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


            1. i86com
              18.02.2018 00:51

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

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


              1. khim
                18.02.2018 01:35
                -1

                Если плохие программисты написали что-то глючное и тормозное, рынок всегда рассудит.
                Не надо сюда с религией только приходить. Даже если вы верите в «целительную силу рынка».

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

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

                Рынок выбирает хорошее решение только «при прочих равных», а «прочих равных»-то и нету. Хороший код писать дольше чем тяп-тяп-и-в-продакшн…


                1. Kroid
                  18.02.2018 01:57

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

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


                  1. khim
                    18.02.2018 02:29

                    Спиральное инкрементальное развитие в любой области жизнедеятельности человека теперь религией называется?
                    Религией называется заявление о том, что «рынок — всегда рассудит». Этого и близко нет.

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

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

                    Да, в определённых областях рынок работает неплохо. Но только и исключительно под надзором государства… что автоматически бы должно было лишить проповедников подхода «рынок — всегда рассудит» (если рынок так могуч и хорош, то почему его нужно «подправлять» и ограничивать тысячами разных законов?), но… почему-то на их паству — не влияет ровным счётом никак.

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


                    1. Kroid
                      18.02.2018 13:39
                      +2

                      Рынок не создал человека ядерную бомбу, не создал интернет и не запустил человека в космос. Всё это пришлось делать другими путями — причём два события из трёх случились в стране, буквально помешанной на проповедуемой вами религии… странно, правда?
                      Угу, 3 из 3 создала война. Показательный пример.

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

                      Да, в определённых областях рынок работает неплохо. Но только и исключительно под надзором государства… что автоматически бы должно было лишить проповедников подхода «рынок — всегда рассудит» (если рынок так могуч и хорош, то почему его нужно «подправлять» и ограничивать тысячами разных законов?), но… почему-то на их паству — не влияет ровным счётом никак.
                      Что за подростковый максимализм?

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

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

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


                1. i86com
                  18.02.2018 03:03

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


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

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

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

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

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


                  1. Arlekcangp
                    18.02.2018 04:29

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

                    Тут как раз все наоборот — 3D ускоритель не появляется пока «рынком» не будет извлечена вся возможная прибыль от продажи pentium II (иначе как их потом продать когда с 3d ускорителем все равно какой процессор т к скорость игр зависит от 3d ускорителя) И таким образом имеется сразу 2 проблемы- появление новых технологий определяется жадностью тех в чьих руках оказались возможности зарабатывать на старых (т к у них в руках и капиталы которые они могут инвестировать когда им это покажется правильным а не тогда когда появится для этого возможность или даже необходимость) и вторая — часть технологий может не появиться никогда так как инвесторы-капиталисты не нашли как получить с них прибыль Так и получается что
                    Лучшее уже определяется по другой шкале
                    И не факт что эта шкала приведёт к чему то хорошему Пример — то же освоение луны. Продвижений там мало а те что есть делаются на деньги государств ( да да и господин Маск тоже получает от своего государства дотации иначе бы уже давно бросил эти ваши Марсы) Что бы меня поняли правильно — я не предлагаю здесь как решить эти проблемы Это ещё никому пока не удалось. Однако первый шаг это что бы как можно больше людей признало их существование. Как известно принятие существования проблемы — половина ее решения.


                    1. Hardcoin
                      19.02.2018 00:18

                      Тем не менее, 3d ускоритель появился. А любители идеального до сих пор пилили бы идеальные дрова и не пускали бы в продажу.


              1. potan
                20.02.2018 16:22

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


                1. tetramino
                  20.02.2018 17:22

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

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


            1. lany
              18.02.2018 08:28
              +1

              Если бы разработкой софта занимались квалифицированные математики

              Видал я код квалифицированных математиков. Частенько он очень плох.


              1. 0xd34df00d
                18.02.2018 23:22

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


            1. ToshiruWang
              20.02.2018 15:01

              > программы бы были гораздо надежнее

              Да, обе.


              1. tetramino
                20.02.2018 15:55

                Две программы, проверяющие друг друга на валидность))


      1. Meklon
        17.02.2018 21:25

        Ха) отправляют почти сразу. Многих отправили мыть ванны после трупов и формалина в морге ещё до торжественногг начала.


      1. lagudal
        17.02.2018 22:51

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

        Не совсем так, но мой отец, получая в конце 50-х права на управление грузовым автомобилем, сдавал кроме правил пдд и вождения еще и матчасть, и это в те времена было обязательным и абсолютно оправданным. Если он например на своем грузовике сломался где то в тьмутаракани, то починить машину, кроме него самого, чаще всего было просто некому. Потому и машины свои он знал лучше чем себя, и действительно, любую проблему, связанную с ними, мог решить сам…
        Мы же в детстве — кто еще помнит — могли разобрать и собрать снова велосипед, или мопед, и на том же велосипеде возили с собой кучу ключей на все случаи жизни…
        Сейчас это — уж не знаю, к счастью, или к сожалению, не имеет такого значения. По аналогии с той же машиной — практически в любой точке проблему можно решить в минуты одним телефонным звонком. В Европе, где сейчас живу, ADAC за 49 евро в год приедет в течении часа просто завести двигатель, если у тебя сдох аккумулятор. На велосипеде — у меня шоссейный гоночный — супер легкая карбоновая рама и ничего лишнего. Беру с собой только телефон и спицевый ключ… Как пелось, «до чего дошел прогресс».
        По поводу врачей. Как бы сказать. Нам кажется, что к врачам отношение особое и они должны все знать, что это как бы само собой. Но сейчас это не так, и опять таки наверное все из-за прогресса. Сейчас у них такое оборудование и программы, но копни глубже, ничего. Никто никогда не примет решения, если оно противоречит инструкциям или тем же программам.
        Но в то же время, продолжительность жизни растет, в основном, благодаря тому, что все работает по инструкции. И если в будущем врач будет врачом только номинально, но по большому счету, админом или даже пользователем строго определенного програмного обеспечения, я думаю, никого это не удивит.
        Теперь по программированию. По поводу ученых степеней. Я когда учился в ВУЗе, в середине 80-х годов, меня подпускали к компьютеру, только когда несколько аспирантов или даже доцентов проверят, что ты там за код написал, на бумажке. Это чтобы машину зря не грузить и не расходовать дефицитные в те времена перфокарты и ленты.
        Кстати, устройство машины, или как работает ос, никто меня тогда не спрашивал. Правда, я не на программиста тогда учился.


      1. SQLap
        18.02.2018 10:23

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


    1. DaylightIsBurning
      17.02.2018 15:56

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


      1. khim
        17.02.2018 19:55
        -1

        Можно сравнивать не с врачом, а с обслуживающим мед. персоналом, который сам решений не принимает, а только выполняет четкие указания типа анализы берет или выполняет ещё какие-то процедуры.
        Я вам умный вещь скажу, только вы не обижайтесь. Лучше всего «чёткие инализы» и «ещё какие-то процедуры» выполняет… компьютер.

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


        1. Ryppka
          18.02.2018 11:49

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


          1. Arris
            18.02.2018 15:23

            Современную — нет. А в каком-нибудь 2060 году — бабульку, выросшую в обнимку с компьютером — ага, уговорит ;-)


    1. algotrader2013
      17.02.2018 23:15
      +1

      Если провести аналогию с программистами, то Вы ведь намекаете, что профессиональный программист должен понимать принципы работы железа, ОС, компиляторов, баз данных? Я не спорю, что это так, я утверждаю, что все эти знания не сильно помогают, когда надо локально запустить чужой код с применением десятка фреймворков, который упорно не хочет компилироваться/завершается с ошибкой сразу при запуске из-за несовместимости версий установленных фреймворков, или отсутствия переменной окружения, или еще тысячи неочевидных вещей. Лично мне повезло получить хорошее образование по computer science, и я раньше был .NET программистом около пяти лет. Но ситуация, когда просто хочешь, к примеру, поиграться с новой ML библиотекой на питоне, и тратишь 3 часа на прикручивание его к MSSQL, которое по факту не в написании кода, а в решении проблем совместимости версий пакетов, интерпретатора и менеджера пакетов, начинаешь понимать, что, во-первых, что-то с ситуацией в разработке по не так, а во-вторых, весь мой опыт совсем не радикально помогает в методичном гуглеже кодов ошибок и прочтении стековерфлоу.


      1. algotrader2013
        17.02.2018 23:19

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


    1. saboteur_kiev
      18.02.2018 00:14

      IMHO, автор имел ввиду что для написания hello world, не нужно предварительно изучить администрирование.
      Понятно, что как работает ОС знать полезно, но это можно делать в процессе изучения программирования. Но сейчас это становится сделать все сложнее.


      1. ToshiruWang
        20.02.2018 15:06

        Сейчас берут пример printf(«Hello, world!»); запускают и не могут увидеть результат — окошко просто закрывается и все дальнейшие примеры «вывести сумму чисел от 1 до 5» тоже. Вот и получается — создай окошко, сделай контейнер для вывода, преобразуй в строку, выведи. Для простых задач far+perl получается лучше (или консоль+vi+perl).


    1. pda11111
      18.02.2018 04:54

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


      1. Kroid
        18.02.2018 13:45

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


        1. saboteur_kiev
          18.02.2018 21:05

          Прикол в том, что хирурги не спасают тех, кто поперхнулся.

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

          Вы же не попросите стоматолога лечить ОРЗ вашего ребенка — а чо, он же врач, да? Только нихрена не знает как лечить детей.


          1. tetramino
            19.02.2018 20:21

            Прикол в том, что хирурги не спасают тех, кто поперхнулся.

            Хирурги с вами не согласны))


    1. ToshiruWang
      20.02.2018 14:54

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


  1. MooNDeaR
    17.02.2018 13:20
    +8

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


    1. vanxant
      17.02.2018 13:40

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


      1. Hile
        17.02.2018 14:07
        -1

        habrahabr.ru/post/349322

        Шах и мат.


        1. rumkin
          17.02.2018 14:10
          +2

          Это как раз таки в пользу статьи.


      1. Vadem
        17.02.2018 14:29
        -2

        sudo apt install nodejs npm
        npm i -g create-react-app
        create-react-app my-cool-project
        cd my-cool-project
        npm start
        


        1. vanxant
          17.02.2018 14:33
          +1

          Ну возьмите LTS убунту и попробуйте это сделать без добавления ppa и т.д.
          Причём тут у вас пустой бэкенд даже без БД. Шаг влево — шаг вправо от бойлерплейта и начинается.


          1. Hile
            17.02.2018 14:42
            -1

            Докер (ахахахаха)


            1. rumkin
              17.02.2018 15:05
              +4

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


              1. sumanai
                17.02.2018 21:24

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


              1. Hile
                17.02.2018 21:33

                Ну начнем с того, что это шутка (ахахаха — как бэ намекает)

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

                p.s. вот такие суждения его и породили частично ( парадокс )


                1. Suvitruf
                  17.02.2018 21:39

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


                  1. Hile
                    17.02.2018 21:57

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

                    Скоро допилят — будет всем счастье, а если нет, то оно вам не надо.


              1. Hile
                17.02.2018 21:35

                И наконец, упрощение установки != снижение сложности алгоритма.
                Вас мотает из стороны в сторону, от камента к каменту, больше не буду на вас реагировать, ничего личного.


            1. AlexanderG
              17.02.2018 20:03

              И начинается уже полный докер, именно


          1. Moxa
            17.02.2018 14:43
            -1

            легко, https://nodejs.org/
            -> скачиваете lts версию
            -> распаковываете
            ->
            export NODE_HOME=<путь до ноды>
            export PATH=$PATH:$NODE_HOME/bin
            ->…
            -> profit!


          1. Vadem
            19.02.2018 12:54

            Ну возьмите LTS убунту и попробуйте это сделать без добавления ppa и т.д.

            Тогда первой командой будет
            curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

            или можно просто скачать deb пакет.
            Причём тут у вас пустой бэкенд даже без БД.

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


        1. rumkin
          17.02.2018 15:07

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


          1. Vadem
            19.02.2018 12:50

            Ну тогда codesandbox.io


        1. Imp5
          18.02.2018 01:53

          Можно проще и для любой операционки: запускаем текстовый редактор, создаём файл a.html, в файле пишем

          <script>
          </script>
          
          и всё, можно начинать писать код, вывод на экран при помощи alert() или document.write().


          1. sumanai
            18.02.2018 08:34

            Проще F12 нажать и перейти на вкладку Console.


        1. Arris
          18.02.2018 15:28

          Простите, не могу удержаться.

          <@insomnia> Нужно выполнить всего три команды, чтобы поставить Gentoo
          <@insomnia> cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-update && . /etc/profile && emerge sync && cd /usr/portage && scripts/bootsrap.sh && emerge system && emerge vim && vi /etc/fstab && emerge gentoo-dev-sources && cd /usr/src/linux && make menuconfig && make install modules_install && emerge gnome mozilla-firefox openoffice && emerge grub && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi /boot/grub/grub.conf && grub && init 6
          <@insomnia> это первая

          (с) bash


      1. MooNDeaR
        17.02.2018 17:42

        Интересно, это в какой вселенной программировать учат сразу с реакта? С каких таких пор программирование на JS начинается с установки реакта?


        1. vanxant
          17.02.2018 17:48
          +1

          Хайп жи, ну.
          Давайте сравним число статей на том же хабре про реакт и про плюсы/паскаль/тот же питон. Как по вашему, что выберет юный падаван?


          1. Suvitruf
            17.02.2018 19:48
            +1

            Если человек выбрал технологию только из-за хайпа, вряд ли он далеко пойдёт.


            1. quwy
              19.02.2018 02:43

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


      1. Carburn
        17.02.2018 21:50

        React можно использовать без ES6 и JSX.


        1. Free_ze
          19.02.2018 13:25

          Редкое руководство с примерами будет без ES6 и JSX.


        1. hd_keeper
          19.02.2018 16:48

          Только зачем?


    1. rumkin
      17.02.2018 14:11

      Судя по комментарию, вы даже задачи программирования не понимаете.


      1. MooNDeaR
        17.02.2018 19:06

        Интересно какие именно слова заставили вас так подумать? Еще интересно, в чем же задача программирования, о великий гуру? :)


        1. rumkin
          18.02.2018 00:27

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


          1. MooNDeaR
            18.02.2018 02:37

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

            P.S.
            Я ничего против малого количества знаний не имею. Знания — штука исправимая. Просто я против людей, не желающих эти знания получать и говорить потом, что образовательная система видите ли их не мотивирует.


          1. Source
            18.02.2018 12:57

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


  1. Zenitchik
    17.02.2018 13:36
    +2

    Многие пользователи вообще никогда ничего не устанавливали

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


    учить студентов как настраивать и использовать среду разработки

    Если не смог научиться сам — пусть идёт лесом. Мы все через это прошли, он тоже должен справиться.


    1. sumanai
      17.02.2018 20:12

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

      Все когда-то устанавливают программу впервые.


      1. Zenitchik
        19.02.2018 15:25

        Все когда-то устанавливают программу впервые.

        Но программисты из них выходят СИЛЬНО позже.


  1. Ryppka
    17.02.2018 14:13
    +1

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


    1. ArsenAbakarov
      17.02.2018 14:41
      +1

      А не тот ли самый вы хирург? Простите за юмор, не удержался)


      1. wegres
        17.02.2018 14:52

        Заодно будем ждать комментария от того самого таксиста )


  1. wegres
    17.02.2018 14:31
    +3

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

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

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


    1. dezconnect
      18.02.2018 18:32

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


      1. ToshiruWang
        20.02.2018 15:27

        Поэтому DOS (не после спектрума, но после подобного) выглядел проще, а Виндовс получался запуском команды win. Потом уже всякие 95 выглядели логичным продолжением и не вызывали ужаса.


  1. Scf
    17.02.2018 15:05
    -2

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


  1. Kroid
    17.02.2018 15:39
    +2

    Статья правильные вопросы поднимает.

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

    1. Программирование. Что-то интересное, хочу научиться.
    2. Пошел в книжный магазин. Десятки книг. Какую купить — без понятия. Ну ладно, вот вроде что-то такое «паскаль 3», выглядит интересно.
    3. Пришел домой. Переписал в блокнот пару строк кода из книжки. Как его теперь запустить? Ага, нашел «cmd.exe». Запускаю. Паскаль. Как это, команда не найдена?
    4. Несколько часов в попытках разобраться, что вообще происходит и как запустить эти гребаные 3 строчки кода.
    5. Знаете что? Не так уж это и интересно (на самом деле так и не получилось найти, установить и запустить интерпретатор). Пойду лучше в какой-нибудь postal 2 поиграю.
    6. Прошло несколько лет. Установил уже убунту, разобрался как разные пакеты ставить.
    7. Опа, «c++ за 21 день», надо бы скачать, посмотреть.
    8. За пару часов всё настроил, написал простейший heelo world, скомпилил, запустил.

    Сейчас, с одной стороны, многое куда как легче. С другой, вместо «hello world» на пару строчек кода, от незнания, новичок по первому попавшемуся туториалу пытается установить nodejs, yarn, webpack, написать конфигурацию для сборки, react и тд, чтобы просто вывести что-нибудь в браузере.


    1. vanxant
      17.02.2018 15:56

      При этом есть Visual Studio Express, есть тот же дельфи, которые скачал — поставил — и у тебя просто все работает. И IDE, и компилятор, и бд, и отладчик, и все либы для helloworld


      1. Stanislavvv
        19.02.2018 15:20

        Ключевое слово «скачал». Для этого надо 1) знать что качать, 2) откуда качать. Начинающий может не пройти даже первый пункт. Даже сейчас, блин, судя по вопросам дочери, у которой питон на её ноуте есть изначально…


    1. fatronix
      17.02.2018 21:54

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

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


      1. ivan386
        17.02.2018 23:24

        Так он играбельный уже или пишется?


        1. fatronix
          18.02.2018 10:32

          Это было 15 лет назад. Был играбельный, да.


  1. questor
    17.02.2018 16:33
    +2

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


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


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


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


    1. khim
      17.02.2018 20:08

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


  1. tehSLy
    17.02.2018 16:36

    Кто то жалуется, что у ЯП нынче слишком низкий порог вхождения, кто то, что сложно поставить IDE по гайду из интернетов. Вот честно, #nooffense, но статья такой бред. Вот описан прям таки пользователь ПК возрастной планки 60+ начала 2000-х (ну, немного утрируя конечно). И программу то поставить в тягость, и принципы то понять — в тягость, и все сложно, пойду грядки окучу. Конкретно для питона — устанавливаешь компилятор + IDE (под Windows идут пакетно) — пишешь код. Надуманность проблемы — колоссальна, увы, жалею потраченное время :(


    1. Eldhenn
      17.02.2018 20:07

      > устанавливаешь компилятор + IDE (под Windows идут пакетно) — пишешь код

      100500 фреймворков вы лихо оставили за кадром.


      1. Suvitruf
        17.02.2018 20:20

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


        1. altai2013
          17.02.2018 21:00
          -1

          Если говорить о веб-программировании, то да — сразу обмазываешься фреймворками и миллионом других вещей, потому что иначе это никак не работает. В былые времена, изучая какой-нибудь С++, достаточно было купить одну книжку по C++, установить одну интегрированную среду разработки и начать писать программы. Сейчас такой путь невозможен. Нет такой книги по веб-программированию, прочитав которую начинающих верстальщик смог бы хотя бы лендинг сделать. Потому что лендинг в наше время — это дикий замес из CSS, jQuery, Bootstrap/Foundation, карт Google/Яндекс, адаптивности, SSL-сертификатов, настройки веб-сервера и почтового сервера, администрирования Linux и массы разного другого, от мастерского владения Photoshop/Illustrator до понимания SVG и Javascript-анимации. И всё перечисленное — это только самый первый шаг, самый базовый уровень, с которого хоть какая-то работа и деньги начинаются. И я сейчас даже не говорю о программистских абстракциях, которые улетели в космос от примитивов времен Commodore и Spectrum.


          1. khim
            17.02.2018 21:51

            «Уменить програмиировать» и «мочь зарабатывать деньги» — это разные стадии. Вернитесь к тем же, уже в сотый раз упоминаемым, докторам.

            Чтобы заработать хоть какие-нибудь деньги нужно несколько лет проучиться. Почему программисты должны достигать этого уровня прочитав одну книжку «выучить XXX за 21 день»?


            1. altai2013
              17.02.2018 22:25
              -1

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


              1. khim
                17.02.2018 22:39

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

                Не знаю как с певцами, но знаю как с танцорами (есть знакомые, которые этим делом увлекаются) — очень часто людям приходится платить за то, чтобы их допустили на состязание. И костюмы за свой счёт покупать. Это не значит, что они не умеют танцевать — это просто значит, что они — не профессиональные танцоры.

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

                Почему программисты — должны быть каким-то исключением?

                P.S. Кстати и «в былые времена» купить одну книжку по C++ было совершенно недостаточно. Ибо за умение программировать «Hello, World» никто никогда не платил. Платили за умение написать резидентную программу или драйвер, бухгалтерскую систему или систему складского учёта… Чтобы их написать — часто нужно было прочитать и освоить вещи, не имеющие отношения к программированию вообще.


              1. fatronix
                17.02.2018 22:59

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


          1. Hardcoin
            19.02.2018 00:08

            Честно говоря, "хотя бы лендинг" — это хотя бы "небольшую 3d игру". Есть вещи намного проще профессиональных лендингов с адаптивной вёрсткой и встроенным почтовым сервером. )


          1. Zenitchik
            19.02.2018 15:30

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

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


        1. Eldhenn
          17.02.2018 22:37
          +1

          Нет, конечно, мы учимся писать Hello, world. А потом, окрылённые этим навыком, сразу ставим все 100500 фреймворков и на них одновременно пишем. Перехода нет, да он и не нужен.


  1. SantaCluster
    17.02.2018 20:03

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


    1. Tepex
      17.02.2018 21:32
      +1

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


  1. leotsarev
    17.02.2018 22:20

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


  1. rustamaha
    17.02.2018 22:57

    В любом случае — хорошо когда есть выбор.
    Имея «собранные» коробки, можно при желании самому их собирать с нуля, либо пользоваться готовыми.
    Я очень обрадовался появлению react-create-app, где уже всё настроено и можно приступать к написанию компонентов, и итоговое приложение запускается даже так, что его можно открыть с мобильного по ip-адресу во внутренней сети.
    Просто я раньше изучал программирование в свободное время. И легче разделить задачи на 1) реакт 2) ноду, и т.д. сначала разобрав что-то, потом другое.
    Когда прежде чем написать пару связных компонентов тебе приходится установить разные пакеты, настроить сборку и т.д. — ты и сам процесс не всегда можешь понять — потому что он разовый а не на потоке, и до программирования можешь не добраться. А еще в голове возникает каша — где было программирование, а где была настройка окружения?
    Мне нравится подход западных стран, где делают акцент на облегчении вхождения в отрасли и ориентацию на расширение аудитории. Уверен, что у этого есть далеко идущие прагматичные цели, а не просто «облегчальщики дураки, пытаются открыть дверь в отрасль идиотам».


  1. ivan386
    17.02.2018 23:30

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


  1. Marui
    18.02.2018 04:53
    -1

    Вся проблема в том, что программировать не стало проще или сложнее. Программировать стало так же. Языки упрощаются. Но данные растут быстрее. Итого, для каких-нибудь VK или Одноклассников нужно писать на Java так, как писали на С++ в 90е-2000е. Теперь сервисы должны держать много-миллионный онлайн. Везде потоки и масштабируемость. Как всегда, в принципе. Только потоков-серверов не 5, а 500000. Программирование не стало проще, как этого ожидали.


  1. mapcuk
    18.02.2018 04:53

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


  1. kvazimoda24
    18.02.2018 04:53

    С одной стороны, может быть, проблема эта для кого-то актуальна. Но вот я, как системный администратор, стою с другой стороны от программистов. И я со своей стороны вижу программы, которые написаны так, как-будто на компьютере существует только эта программа, а сам компьютер является сферическим и подвешен в вакууме.
    Из того, что вспомнил: нет каких-то библиотек в составе установщика, видимо, у программиста было что-то установлено нестандартное, он это что-то использовал; программа хранит свои данные в папке, куда установлена, при этом, устанавливается она в системный каталог (Program files), соответственно, при работе от пользователя, она писать в этот каталог не может, несколько пользователей не могут иметь разные данные в этой программе; программа для управления видеорегистратором зачем-то требует админские права, при этом данные хранит в каталоге пользователя; программа для управления всё тем же видеорегистратором зачем-то требует аппаратного 3D ускорителя, из-за чего были большие проблемы с запуском в виртуалке; и снова видеорегистратор — программа автоматически прописывается в автозагрузку (слава богу, это отключается), и при нажатии на крестик в заголовке окна не закрывается, а сворачивается в трей, при повторном запуске выдаёт какую-то непонятную ошибку.
    Примеров подобных косяков, на мой взгляд связанных с незнанием системного администрирования, я могу ещё привести. И это программы не только от дешёвых китайских видеорегистраторов, это делает и Самсунг для своих ноутбуков, и наши российские программисты для какого-то бухгалтерского софта (не помню названия, что-то связано с зарплатой).


  1. Error1024
    18.02.2018 04:59

    Полностью согласен с автором, я начинал с BASIC, а если бы надо было ставить всякие Node js/gcc/git/..., колдовать с командной строкой, вводя магические символы, мучиться от неверных переменных окружения, и производить запуск/компиляцию с помощью кучки MAKE/bat/sh файлов, то я бы мог просто сдаться, так и не написав совой первый «Hello World!».

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


    1. netch80
      18.02.2018 15:19

      Ну и вызвать желание хотя бы попробовать — становится сложнее. Уровень того Бейсика — в лучшем случае примитивная графика, а скорее текст — сейчас мало кому интересен, когда вокруг столько готовых разноцветных игр с суперграфикой :(
      А ведь для толкового специалиста невозможно не проходить через этот «нецветной и ненаглядный» этап.


      1. saboteur_kiev
        18.02.2018 21:06

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


        1. netch80
          18.02.2018 21:26

          Ключевое слово было — _того_ Бейсика. А не современного в Офисе. Я не понимаю, как и зачем можно было прочитать иначе.
          > Вы просто не знаете, где используется бейсик.
          Вы просто домысливаете то, что не писалось. Ну и уводите в бессмысленный оффтопик.


  1. Equin0x
    18.02.2018 05:19

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


    1. Arris
      18.02.2018 15:38

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

      Просто — «соберите ингридиенты в кучу, порежьте, порубите, закиньте в кастрюлю, поставьте на огонь и через 40 минут ешьте это прекрасное кушанье неудобоваримое месиво»

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


      1. Eldhenn
        18.02.2018 17:30

        > и через 40 минут ешьте

        Скорее, «и выпекайте на среднем огне до готовности».


  1. D1k1y
    19.02.2018 00:01

    Сейчас учиться сложно!? Да ну, сейчас легче легкого. Посмотрите, что писал тот же Абрамов по этому поводу twitter.com/dan_abramov/status/915883346772840448
    Миллионы книг, туториалов, бесплатные курсы от ведущих вузов, буткампы всякие, до авторов книг можно достучатся по почте и они даже отвечают. Учись не хочу, было бы желание.


    1. 0xd34df00d
      19.02.2018 01:19

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

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

      В замечательное время живём.


  1. SurAnd
    19.02.2018 00:01

    Друзья мои… чего копья ломаете… вот про себя скажу. Начинал с Бейсика, Рапиры. и Паскаля. В далеком 1988 году. Динозавр. Потом работал программером и создавал на Oracle для операторов связи продукты. Ушел из специальности на повышение в 2010 году. Счаз вот пытаюсь понять как тут народ творит и чем живет… — ППЦ. Как новичок. Хотя поражает, конечно, с одной стороны, простота внешняя и всякие автоустановщики сред, с другой невероятная сложность всего этого внутри… Вот и Python поставил и JupterNotebook — разминаю мозг питончиком… Скрипит… )) Чего про новичков говорить… а может им легче наоборот…


    1. DrPass
      19.02.2018 01:01
      +1

      Счаз вот пытаюсь понять как тут народ творит и чем живет… — ППЦ. Как новичок.

      Я такой же динозавр того же года посвящения. И меня в этом ощущение ППЦ вызывает не внешняя простота и невероятная сложность. По-моему, современную индустрию разработки можно описать одной поговоркой — «Гора родила мышь», особенно в отношении всего, связанного с вебом. Тысячи фреймворков, свистелок, перделок, тулзовин, делающих одно и то же разными способами, но до сих пор нет функции «выровнять по центру по вертикали», нет возможности кастомизировать selectbox, и нет возможности набросать интерфейс мышкой без колупания в стилях и HTML, что предыдущее поколение инструментов разработки, на десктопе, освоило ещё четверть века тому назад.


      1. khim
        19.02.2018 06:06

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

        Я ещё помню как в бухгалтерии все компьютеры были c «мылом» на экране, потому что при переходе на LCD 800x600 стало выглядеть фигово (LCD плохо себя ведут с ненативным разрешением), а выставить что-либо другое было нельзя, так как половиной программ становилось невозможно пользоваться при выставлении нестандартного DPI.


        1. DrPass
          20.02.2018 05:45

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

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

          Хм. А зачем вообще было ставить нестандартный DPI? Я понимаю, у одного-двух юзеров с плохим зрением. Но чтобы массово…


          1. netch80
            20.02.2018 11:29

            > Хм. А зачем вообще было ставить нестандартный DPI?

            Да даже разрешения, которое не было предусмотрено при разработке программы, уже достаточно. Разрабатывали под 640x480. Тут пришли мониторы с 800x600… оставить 640x480 — будет мылить, поставить 800x600 — программа начнёт криво рисовать, элементы будут наезжать друг на друга. А DPI — другая сторона того же эффекта. Видел, как пытались за счёт него скомпенсировать расползание полей GUI. Иногда получалось, но чаще — или неполная компенсация, или ещё более странные эффекты. Сцилла и Харибда уже открыли пасти и облизываются на неосторожного путника.


            1. DrPass
              20.02.2018 13:01

              Ну это просто программист делал форму «на коленке», не заморачиваясь с обработкой изменения размеров окна. Все равно что сейчас сделать сайт по-быстренькому на табличной вёрстке. Даже в пресловутой Delphi, к примеру, якоря для контролов появились в 1998-м году, что позволяло делать приложения, которые автоматически масштабируются под любое разрешение без лишних телодвижений.


      1. Free_ze
        20.02.2018 11:55

        до сих пор нет функции «выровнять по центру по вертикали»

        А как же flexbox?


    1. ToshiruWang
      20.02.2018 15:42

      Рапира… да, было время. Ещё Фокал был, но это уже БК.


      1. SurAnd
        20.02.2018 17:11

        БК0010. С Бейском с кассет грузился. И почему я это помню…
        Рапира на Агате 64 Кб оперативки — прелесть!.. — Ребята с Новосиба пытались за яблочникам угнаться, под них косили. Жалко, что не выросли ничего… Тогда моноблок эппловский помнится появился. 5 дюймов экран чтоли… или 10. Веселое было время. Потом Фортран, Кобол, Ямб(!) :)))


  1. shuhray
    19.02.2018 07:50

    Год с небольшим назад по необходимости начал писать большую программу (я взрослый человек, математик, но никогда не программировал со времён советской власти, да и тогда не умел). И вот труднее всего было научиться «прописывать пути». Что это за пути такие и как их прописывают? И где об этом почитать понятными словами? Так что проблема есть и интерактивный учебник — это очень хорошо. Только трудно писать его, поэтому ленятся и не пишут.