Как стать автором
Обновить

Комментарии 250

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

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

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

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

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

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

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

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

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

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

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

Так вот: установка программ и администрирование компьютера — это бытовой навык того поколения, которое сейчас, в основном и, учится программировать.
НЛО прилетело и опубликовало эту надпись здесь
поколению, которое сейчас только учится (подростки) больше интересны именно телефоны.
А если посмотреть на вопрос под тем углом, что стирается грань между ПК и мобильными устройствами? Производительность отличается все меньше, типично «компьютерные» задачи выполняются и на мобильных устройствах, все чаще видим гибриды от «трансформеров» в духе Asus, до Windows Continuum и Ubuntu Touch. Программное обеспечение смело берет курс на кроссплатформенность (UWP, Xamarin, Qt, Electron, простите, вырвалось). Возможно, сейчас инженеры ищут наиболее удобный форм-фактор идеального устройства, но при этом базовые технологии и концепции остаются теми же самыми.

И это еще если не вспоминать про грядущий IoT.
НЛО прилетело и опубликовало эту надпись здесь
Мобильные устройства более закрыты. Там в целом администрировать просто нечего.
Это конкурентное преимущество Android, например) Да и популярность разного рода рутования и jailbreak'ов говорит о том, что пользователи не всегда согласны с такими ограничениями. Разработчики ратуют за безопасность, но это чаще всего приводит к деградации технологий (как, например, «плюшевый» браузерный API заменил полноценные Java-апплеты).

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

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

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

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

Например, прописывание путей.
Каких путей? Действительно ли возможно написать такую программу, которая бы это автоматизировала и результат устроил бы всех?
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
А для чего рутовать тогда в целом? Да и разные задачи-то.
Я продолжаю свою мысль о том периоде времени, когда разделение на компьютеры и мобильные устройства сотрется окончательно и все мыслимые задачи будет выполнять необходимо на этом инновационном устройстве. Здесь если производители не пойдут на попятную, то юзерам придется с этим что-то делать.

Гарантия у нас, кстати, никого не интересует особенно, телефон чаще умирает от физических повреждений и стоит копейки.
Моих знакомых интересует, например. Многие аккуратно обращаются с устройствами и не меняют телефон по 3-4 года, когда начинает сказываться запланированное устаревание модели. Может дело в репрезентативности выборки? Популярные модели телефонов стоят $500-$1000, какие же это копейки, когда это выше средней месячной зарплаты в России?

Рабочим не дают кастомизировать их фрезерные станки.
Скажем, высоту стула возле АРМа дают регулировать?) Это своего рода эргономика, зачем так бестолково ограничивать работника? Чаще дело ограничивается отслеживанием правовых аспектов использования ПО, но пока это не мешает процессу — делайте так, как удобно.

Сейчас разницы нет, использую винду как самую простую в настройке
Вы постоянно настраиваете ОС?

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

Я рассматриваю телефоны, ноутбуки и автомобили как расходный материал, мне их не жалко.
Не все директорами работают) Многие и вовсе технику в кредит берут.

Хм, мы же говорили о моём окружении.
Нет, мы говорим о том, почему люди массово не рутуют телефоны.
Насчёт телефонов: есть вполне приличные китайские телефоны ..., которые стоят заметно дешевле
Но это ж не Эпол (= У нас (да и не только у нас, кстати говоря) телефон — это статусный аксессуар и если у человека будут финансовые возможности, то выбор будет сделан в пользу флагмана известного производителя. Просто по моде.

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

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

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

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

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

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

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

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

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

У меня (и у всех по факту) есть потребность в одном: получить среду, сразу пригодную для работы.
Не все так просто. Очень много градаций от сурового необходимого минимума до чудо-комбайна, с которым можно делать работу лучше. А обратной стороной гибкости обычно является сложность. Так что, как мне кажется, идеальным балансом было бы два вида интерфейса: «мало переключателей» и «много переключателей». Кмк, популярные дистирибутивы линукса движутся в этом направлении: минимум преключателей в интерфейсе «на каждый день» и возможность открыть терминал, когда нужно немного магии.
Главная проблема линукса не в том, что он сам какой-то непонятный или бестолковый, а в том, что производители оборудования (и драйверов к нему) его игнорируют и есть ненулевой риск получить проблему, для устранения которой потребуется щепотка магии и простыми интерфейсными настройками не отделаться. Но об этом холиварить сейчас я не готов)
НЛО прилетело и опубликовало эту надпись здесь
А можете ссылку дать почитать? Или подскажите, как поискать, пожалуйста, я б почитал, чтобы иметь более полное представление, о чем речь.
Хорошо, постараюсь отыскать, пока что эксперсс-поиск ничего не дал. Но автор там жаловался, что конкретно нельзя вместе с UWP-программой устанавливать службы.

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

Вон, военные могут покупать себе форму, но строго уставного образца, так же и со школьной, можно еще примеры привести.
У военных (и вообще силовых структур, которые имеют обыкновение ходить строем) внешнее единообразие формы — это суровая необходимость. Хотя, это может быть традицией, ведь, к примеру, в Италии нет такого понятия вовсе, а у нас военный не в праве сезонную одежду сменить без письменного приказа министра обороны. В школах идея школьной формы тоже пока ограничивается компромиссным договором с родителями и «белый верх, черный низ», да и государство не горит желанием обеспечивать учеников формой бесплатно.
Она предполагает, что пользователь будет в ней и не будет скачивать фоточки с айфона в чужую экосистему.
Компания не угадала желания сотен тысяч пользователей, ведь инфраструктура в подарок к телефону не идет. Это объективный недостаток, вне зависимости от мотивации.
НЛО прилетело и опубликовало эту надпись здесь
Пока попытки внедрить «мобильную» идеологию на десктопные системы (UWP) терпит неудачи.
А когда UWP был популярен на мобильниках? Расскажите — мне правда интерено.

Движение с мобильников на десктоп идёт — но очень запутанным путём. Через ChromeOS. Именно потому, что уж очень легко Андроид взламывается и root'уется.

У нас (да и не только у нас, кстати говоря) телефон — это статусный аксессуар и если у человека будут финансовые возможности, то выбор будет сделан в пользу флагмана известного производителя.
Когда-то и PC был «статусным акссесуаром». И брендовые PackardBell'ы и IBM'ы покупались «потому что иначе несолидно».
А когда UWP был популярен на мобильниках? Расскажите — мне правда интерено.
Я этого не утверждал) Концепция приложений из магазинов, изолированных, с закрученными гайками безопасности. Это сейчас как iOS, так и в Android.

Когда-то и PC был «статусным акссесуаром».
Известные компании делают все возможное, чтобы такое состояние рынка держалось как можно дольше)
Концепция приложений из магазинов, изолированных, с закрученными гайками безопасности. Это сейчас как iOS, так и в Android.
Ну так и там и там и разработчики и пользователи ненавидят это! Просто им других вариантов не дают.

Проблема в том, что нельзя сначала сделать платформу популярной за счёт того, что программам разрешать в ней делать-всё-что-угодно… а потом взять — и завинтить гайки. Ваше поделие окажется тупо никому не нужным! См. WART
Именно. А не дать ничего взамен полноценному компьютеру — это будет провал.
Да не будет никакого провала. С точки зрения нормального разработчика 80х все наши компьютеры — глубоко неполноценны.

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

Просто нельзя всё одновременно делать: и гайки закрчивать и новую платформу «запускать».
Да не будет никакого провала. С точки зрения нормального разработчика 80х все наши компьютеры — глубоко неполноценны.
Это систематическая ошибка выжившего для отдельных идей. Сколько же их бестолковых-то полегло?

Дело в том, что платформа не дает никаких ощутимых преимуществ, а возможности режет.
Дело в том, что платформа не дает никаких ощутимых преимуществ, а возможности режет.
Конечно, но это если у вас есть выбор. А если выбора нет? Посмотрите на web: NPAPI отпилили и Flash — что, разработчики сбежали? Или Google Play: скоро приложения для китайфонов на Android 2.3 перестанут публиковать. Разработчики сбегут? Нет, конечно. Деваться-то им некуда!

Просто чем больше доля рынка, которой вы владеете, тем быстрее можно «закручивать гайки». Microsoft же, не имея даже 5%, начал «закручивать гайки» так, как будто у него все 100%… ну и поплатился за это.
Посмотрите на web: NPAPI отпилили и Flash — что, разработчики сбежали?
Да, вместе с приложениями, для которых это было критично. Однако, пример так себе, ибо большинство кейсов перекрываются новыми API.

Просто чем больше доля рынка, которой вы владеете, тем быстрее можно «закручивать гайки».
У MS раньше была большая доля рынка по браузерам и где он теперь? Волну поймать можно, но это не стабильное состояние.
Посмотрите на web: NPAPI отпилили и Flash — что, разработчики сбежали?

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

Просто чем больше доля рынка, которой вы владеете, тем быстрее можно «закручивать гайки».
У MS раньше была большая доля рынка по браузерам и где он теперь?
А вот тут — у как раз пример обратного: заморозив в 2001м году развитие своего браузера Microsoft сделал ставку на то, что «через год-два» все пересядут на Avalon… но его разработка настолько затянулась и результат получился настолько невнятным, что разработчики других браузеров смогли «догнать и перегнать».

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

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

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

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

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

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

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

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

речь об администрировании рабочего ПК, что типовому разработчику программ, не предназначенных для выполнения на этом ПК или ином такого же типа не требуется.
Что вы понимаете под «типовым разработчиком программ»?) Программирование многообразно.
Достаточно сложные проекты требуют понимания процесса деплоя, что часто сопряжено как раз с администрированием рабочего ПК.

Я на общепринятом написал, что администрирование присутствует в процессе обучения строго после программирования.
Как-то это противоречит вашим же словам выше.

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

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

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

И уж точно не все разработчики его обязаны знать.
«В нормальной компании» обязаны знать все, ибо bus factor.

пытаетесь понизить уровень собеседника до своего
Вы со своей хамской манерой общения сами прекрасно справляетесь с этой задачей)
НЛО прилетело и опубликовало эту надпись здесь
У нас на кафедре в наличии три направления подготовки специальности 230201: одно общее, два специальных узких

Просветите, пожалуйста: как направление может ветвиться на поднаправления?
В стандарте (230201) есть дисциплина «Информационные сети», что же там студенты будут делать на практиках, если не настраивать сети и сетевое ПО? Это одна из основных задач администрирования.

А чего в требованиях к вакансии этого почти никогда не пишут?
Иногда пишут (под соусом «базовых навыков работы в *nix-системах»), иногда нет, как и многие другие вещи, которые считаются сами собой разумеющимися для программиста в данной позиции.
НЛО прилетело и опубликовало эту надпись здесь
Хм, а для чего им на паре по сетям (а не по администрированию сетей) настраивать сети?
Чтобы части информационной системы, которую проектирует будущий инженер, смогли общаться по протоколам своего верхнего уровня. Чтобы банально подключение к базе данных прокинуть нужно создать пользователя и ограничить его права.

В норме программа идет по книге «Сети» Таненбаума, там и так много всего, чтобы в один семестр еще и администрирование запихивать.
Там немало теории по сабжу, кстати)

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

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

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

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

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

Программисту для подключения к БД следует знать адрес, пользователя и пароль, а не создать.
Как проверить, что всё работает? На личном ноутбуке, конечно же.

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

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

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

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

Просто потому, что период времени, когда техника стала достаточно «умной» для того, чтобы это было не нужно, но ещё «недостаточно умной» для того, чтобы полностью заменить водителей (последние лет 20, наверное), окажется, по историческим меркам, весьма коротким…
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Специальность с кодами, начинающимися с 01, программистов не выпускают, если в строгом смысле. Это математики, которых учат программировать в той или иной мере.
За все специальности не скажу, но насчет озвученной мной — вы неправы, она двойная и набор дисциплин достаточно широк, чтобы покрыть широкий спектр областей промышленной разработки. Качество переподавания этих дисциплин в типичном учебном заведении — это уже другой вопрос.

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

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

¯\_(ツ)_/¯
НЛО прилетело и опубликовало эту надпись здесь
Выбирать-то они могут какую угодно работу, я говорю о том, как эти специальности классифицируются с точки зрения системы образования и профподготовки.
Я про работу не писал, это и так очевидно. С точки зрения системы образования у них в дипломе написано: "прикладной математик, системный программист". Ну и образовательный стандарт со списком дисциплин.

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

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

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

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

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

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

Кому, программистам? В любой нормальной ИТ-компании программисты свободно настраивают своё окружение сами. Это вообще не работа администратора, кстати. Админ установит вам нужный пакет софта, а кастомизация среды — дело сугубо индивидуальное. Запрещают администрировать только в корпорациях с казематным режимом.
НЛО прилетело и опубликовало эту надпись здесь
Запрещают администрировать в любой компании, где есть хоть какой-то намек на нормальную СБ.
Не путайте «нормальную СБ» и «надувающую щёки СБ».

Нормальная СБ (Google, Microsoft, Yandex и тд. и т.п.) знает, что запрещать человеку администрировать систему = получить снижение производительности без увеличения безопасности. Надувающая щёки СБ (банки, разного рода госструктуры и т.д. и т.п.) — да, может закрутить гаки до состояния, что разработчики оттуда просто сбегут.

При этом, что забавно, из компаний первого класса утечек на порядок меньше, чем из компаний второго класса — но это любителей сертификатов и других бумажек — не останавливает. Но зачем о них-то говорить?
НЛО прилетело и опубликовало эту надпись здесь
Предлагается просить СБ прикручивать мне к vim'у автокомплит и ale + hdevtools + stack? С последним я на выходных дома попотел, так что с радостью, на самом деле!
НЛО прилетело и опубликовало эту надпись здесь
А как её обосновывать? «Мне так удобно и привычно код писать» сойдёт?
НЛО прилетело и опубликовало эту надпись здесь
Да, потому что вместо того, чтобы просто сесть и писать код, приходится кого-то убеждать, владеть естественным языком и так далее.

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

А вы не путайте должностные обязанности и профессиональную подготовку. Узкие должностные обязанности — дело обычное, но это штука временная. Сегодня у вас одна работа, завтра другая. А узкая профессиональная подготовка — это удел редких специальностей, а для программиста это вообще деградация. Вы можете быть специалистом по какой-то одной платформе, но чтобы быть хорошим специалистом, вам нужно будет развиваться вместе с ней, знать хотя бы в общих чертах смежные продукты, знать нюансы её применения и т.д. И уйти с неё, когда платформа постареет.
Сегодня вы работаете за 3 тыщи баксов в компании, где у вас есть администратор деплоя, завтра вам предложат 5 тысяч в компании, где вы должны сами деплоить проекты на препродакшене. Вы назовете вторую компанию нищебродской и откажетесь?
Запрещают администрировать в любой компании, где есть хоть какой-то намек на нормальную СБ.

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

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

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

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

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

Вы же в ВУЗе преподаёте, у вас вон дипломники, содержание курсов хорошо знаете… Какая у вас там практика-то могла быть? Вы же не пошли после профессиональной работы программистом на дауншифтинг преподавать в ВУЗ?
НЛО прилетело и опубликовало эту надпись здесь
Специалиста по обработке сигналов вы сразу представили в виде одного широкого профиля. А я даже не сказал, какие именно сигналы имел в виду.

А какая разница? Мой вариант подходит примерно для 99% случаев, ваш — для оставшихся. Узкая профессиональная специализация, это крайне редкий кейс в ИТ.
1. Да, пошел на дауншифтинг ради научной работы и перспектив роста в руководство.

Все равно не понял логики. Если нужно вести научную деятельность, и потом получить ученую степень для карьеры, не нужно бросать работу и идти преподавать в ВУЗ. Собственно, и я сам, и мои коллеги, которые этим озадачивались не после получения диплома, а позже, через несколько лет, в аспирантуру не шли, писали дисеры как соискатели, без отрыва от работы.
2. Работу над сторонними проектами никто не запрещает ни во время работы, ни во время обучения.

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

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

Я работал в пяти и у меня есть знакомые, которые работали ещё в пяти. И нигде программисту не пытались отрезать права локального администратора. Ибо это попросту бессмыленно.

Приведёт только к снижению производительности и вряд ли повысит безопасность.

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

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

Должен кому

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

зачем

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

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

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

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

> Я вообще уверен

Пробовали? У меня таки из практического опыта :)

И этот же опыт говорит, что есть два уровня типизации в сознании ученика. Первый это «здесь целое число» или «здесь строка», или в первом даже вообще «здесь число». А вот второй — уже значительно более проблемный в среднем — это «здесь число, влезающее в диапазон 32-битного целого». Существенная часть задач первичного обучения сконструирована так, чтобы не нарываться ни на какие проблемы от того, что мы всем ученикам говорим «целое это integer» и только после того, как они привыкли, начинать упоминать разные short и long. А когда начинаются серьёзные вопросы «а как избежать переполнения?» — всё, суши вёсла, сливай воду.

(Чем тут хорош Python это тем, что целые у него безразмерные. Ещё одна вкусность для такого стартового обучения.)

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

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

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

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

Возьмите какой-нибудь хаскель, где тоже есть безразмерные целые из коробки.

У меня мысли типа «нафига такие сложности» возникают регулярно, несмотря на то, что начинал на самых что ни на есть статически типизированных.

Потому что теория типов — это про то, как эффективно статически отвергать семантически некорректные программы.

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

Можно пример таковой гибкости?
Можно пример таковой гибкости?
true, false, file_not_found.

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

Так что… лучше не надо. Если вам очень хочется вернуть что-то, что не лезет в заданный тип — значит вам нужно как-то эту информацию донести (std::optional и std::variant вам в помощь). Поступать как в динамических языках (документация говорит что вернётся целое число, а на самом деле могут вернуться ещё True и None) — не стоит.
Возьмите какой-нибудь хаскель, где тоже есть безразмерные целые из коробки.

А он уже хоть как-то устоялся? Есть стандарт? (что-то не вижу)
Зато есть свидетельства (например с ходу) того, что устойчивого состояния нет, что разные компиляторы используют несовместимые диалекты… извините, на учебный язык это не тянет, даже если проигнорировать всё требование понимать и поддерживать "высокое" ФП при его освоении. Извините, в сад, пока эти пляски не закончатся.


Потому что теория типов — это про то, как эффективно статически отвергать семантически некорректные программы.

При чём тут теория типов? Не улавливаю никакой связи.


Можно пример таковой гибкости?

У сообщения есть постоянная часть (типизированная) и переменная (грубо говоря, map String->Object, хотя в качестве ключа может быть и кортеж, и список). Что именно будет добавлено у конкретного сообщения, предсказать невозможно, вариантов сотни в зависимости от факторов включая фазу Луны.

А он уже хоть как-то устоялся? Есть стандарт? (что-то не вижу)

Есть Haskell98, есть Haskell2010, сейчас пилят Haskell2020. Есть де-факто стандартный компилятор ghc, и если вам нужен не он, то вы уже заведомо знаете, что делаете.

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

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

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

Сравнивать вопросы multiparam type classes с обероном, в котором нет ничего — это, конечно, дело благое.

При чём тут теория типов? Не улавливаю никакой связи.

При статической типизации, в общем.

У сообщения есть постоянная часть (типизированная) и переменная (грубо говоря, map String->Object, хотя в качестве ключа может быть и кортеж, и список). Что именно будет добавлено у конкретного сообщения, предсказать невозможно, вариантов сотни в зависимости от факторов включая фазу Луны.

Не вижу, почему бы это не ложилось на обычную статическую типизацию. Можно даже статически гарантировать, что если ключ оканчивается на _str, то там строка, если на _i, то целое, если на _f, то дабл, а если на _obj, то вообще хрен знает что.

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

НЛО прилетело и опубликовало эту надпись здесь

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


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


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

НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь

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

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

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

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

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

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

То я бы хотел жить во втором (погодите-ка, я же и так в нем!). В первом мире до сих пор с перфокартами бегают, а уж про такие удобные штуки, как iPython notebook и мечтать не смеют.
А я — в первом. Потому как «один плохой программист создаст рабочие места для десятка других программистов». Если бы разработкой софта занимались квалифицированные математики используя действительно современные сложные технологии, то программы бы были гораздо надежнее и их бы требовалось меньше для решения тех же задач.
И не обязательно порог вхождения должен быть высоким, но он должен отсекать не умеющих мыслить строго и формально личностей.
От того, что вы уберёте из программирования всех «плохих» программистов, количество хороших программ не увеличится, это нонсенс. Процент — да, увеличится, но не количество.

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

Не совсем так, но мой отец, получая в конце 50-х права на управление грузовым автомобилем, сдавал кроме правил пдд и вождения еще и матчасть, и это в те времена было обязательным и абсолютно оправданным. Если он например на своем грузовике сломался где то в тьмутаракани, то починить машину, кроме него самого, чаще всего было просто некому. Потому и машины свои он знал лучше чем себя, и действительно, любую проблему, связанную с ними, мог решить сам…
Мы же в детстве — кто еще помнит — могли разобрать и собрать снова велосипед, или мопед, и на том же велосипеде возили с собой кучу ключей на все случаи жизни…
Сейчас это — уж не знаю, к счастью, или к сожалению, не имеет такого значения. По аналогии с той же машиной — практически в любой точке проблему можно решить в минуты одним телефонным звонком. В Европе, где сейчас живу, ADAC за 49 евро в год приедет в течении часа просто завести двигатель, если у тебя сдох аккумулятор. На велосипеде — у меня шоссейный гоночный — супер легкая карбоновая рама и ничего лишнего. Беру с собой только телефон и спицевый ключ… Как пелось, «до чего дошел прогресс».
По поводу врачей. Как бы сказать. Нам кажется, что к врачам отношение особое и они должны все знать, что это как бы само собой. Но сейчас это не так, и опять таки наверное все из-за прогресса. Сейчас у них такое оборудование и программы, но копни глубже, ничего. Никто никогда не примет решения, если оно противоречит инструкциям или тем же программам.
Но в то же время, продолжительность жизни растет, в основном, благодаря тому, что все работает по инструкции. И если в будущем врач будет врачом только номинально, но по большому счету, админом или даже пользователем строго определенного програмного обеспечения, я думаю, никого это не удивит.
Теперь по программированию. По поводу ученых степеней. Я когда учился в ВУЗе, в середине 80-х годов, меня подпускали к компьютеру, только когда несколько аспирантов или даже доцентов проверят, что ты там за код написал, на бумажке. Это чтобы машину зря не грузить и не расходовать дефицитные в те времена перфокарты и ленты.
Кстати, устройство машины, или как работает ос, никто меня тогда не спрашивал. Правда, я не на программиста тогда учился.
А тормоза, переключения скоростей, тормоза и прочая и прочая? Раме ключи не нужны))
Просто дешевые и некачественные велосипеды требуют внимания раз в 5км (привет Ашанбайкам), средней ценовой категории — 500км, подороже — 2500-5000км.
ну я выезжаю на круг максимум на 150км — т.е. я могу удалиться от дома макс. на 75 км. Велосипед у меня новый стоил порядка 2000 евро, сейчас дешевле конечно. Перед и после поездки конечно необходимые профилактические мероприятия проводятся, регулярно проверяется состояние всех компонетнов и раз в пол-года максимум год на сервисную проверку. Чисто поставить штамп в гарании, что вовремя осматривался.
В общем, за 6-7 последних лет еще ни разу не было такой ситуации, чтобы я не доехал до дома сам. И я не беру с собой ничего, что несет дополнительный груз, пусть даже небольшой — не за чем. И дело не в том, что я лично не смогу что то сам быстро починить, просто проще и быстрее будет позвонить и решить проблему.
И очень много людей, которые вообще ничего не понимают в этом, и они даже не собираются что то в этом понимать. Если у них есть в кармане телефон.
Если бы я лет еще 20 назад так налегке выезжал на 75 км от дома на велосипеде, я бы рисковал остаться где-нибудь с ним на ночь, или пройтись пешком часов 12… в горы на горных байках тоже налегке не поедешь…
Это же ведь только как пример — суть в том, что так сейчас во всем: для совершения большинства действий, еще вчера требовавших багажа определенных фундаментальных знаний, сегодня легко можно обойтись без этого багажа. По крайней мере лично (ясно что этот багаж накоплен и сохранен, и называется накопленным опытом предыдущих поколений).
НЛО прилетело и опубликовало эту надпись здесь
Так и делаю на своем велике из средней ценовой категории. А вот ашанбайк до сервиса может и не доехать, подкручивать каждые 5 км приходилось то одно, то другое. У меня просто в разных городах разные велы)
НЛО прилетело и опубликовало эту надпись здесь

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

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

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

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

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

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

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

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

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

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

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

sudo apt install nodejs npm
npm i -g create-react-app
create-react-app my-cool-project
cd my-cool-project
npm start
Ну возьмите LTS убунту и попробуйте это сделать без добавления ppa и т.д.
Причём тут у вас пустой бэкенд даже без БД. Шаг влево — шаг вправо от бойлерплейта и начинается.
НЛО прилетело и опубликовало эту надпись здесь

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

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

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

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

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

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

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

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

Можно проще и для любой операционки: запускаем текстовый редактор, создаём файл a.html, в файле пишем
<script>
</script>
и всё, можно начинать писать код, вывод на экран при помощи alert() или document.write().
Проще F12 нажать и перейти на вкладку Console.
Простите, не могу удержаться.

<@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
Интересно, это в какой вселенной программировать учат сразу с реакта? С каких таких пор программирование на JS начинается с установки реакта?
Хайп жи, ну.
Давайте сравним число статей на том же хабре про реакт и про плюсы/паскаль/тот же питон. Как по вашему, что выберет юный падаван?
Если человек выбрал технологию только из-за хайпа, вряд ли он далеко пойдёт.
Сегодня целые отрасли выбирают технологии только из-за хайпа, а вы про какого-то начинающего чайника тут говорите…

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Но программисты из них выходят СИЛЬНО позже.
Установить и настроить средства разработки — это необходимый фильтр, согласен. Мой первый ЯП — ассемблер x8086, утилита debug и купленная у метро книжка Питера Нортона. По жизни тогда был вполне состоявшимся врачом.
А не тот ли самый вы хирург? Простите за юмор, не удержался)
Заодно будем ждать комментария от того самого таксиста )
Не уметь настроить среду разработки — это конечно, сильно. Вспомнился анекдот про школьника, который поступал в ПТУ, но провалился на сдаче документов.
То есть, у читателей должен быть компьютер, на котором установлен интерпретатор этого языка и необходимые библиотеки, они должны знать, как загрузить код с GitHub, а еще они должны знать, как запустить код, который они загрузили.

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

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

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

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

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

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

Сейчас, с одной стороны, многое куда как легче. С другой, вместо «hello world» на пару строчек кода, от незнания, новичок по первому попавшемуся туториалу пытается установить nodejs, yarn, webpack, написать конфигурацию для сборки, react и тд, чтобы просто вывести что-нибудь в браузере.
При этом есть Visual Studio Express, есть тот же дельфи, которые скачал — поставил — и у тебя просто все работает. И IDE, и компилятор, и бд, и отладчик, и все либы для helloworld
Ключевое слово «скачал». Для этого надо 1) знать что качать, 2) откуда качать. Начинающий может не пройти даже первый пункт. Даже сейчас, блин, судя по вопросам дочери, у которой питон на её ноуте есть изначально…
НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь

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


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


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


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

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

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

Чтобы заработать хоть какие-нибудь деньги нужно несколько лет проучиться. Почему программисты должны достигать этого уровня прочитав одну книжку «выучить XXX за 21 день»?
Именно факт оплаты за работу я считаю ключевым в определении того, умеет человек программировать или нет. Если нет оплаты, то мы говорим о приятном и простом хобби. Вот я, к примеру, пою дома, а могу и станцевать. Можно ли назвать меня певцом и танцором?
Вот я, к примеру, пою дома, а могу и станцевать. Можно ли назвать меня певцом и танцором?
Зависит от того, как хорошо вы это делаете. От того — платят вам за это или нет не зависит вообще.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Про встроенные средства программирования — эх… раньше, ты включал компьютер, и он буквально приглашал тебя творить, мигая курсором во встроенном бейсике, или давая возможность его запустить всего одной командой. А сейчас — компьютер, это устройство потребления контента, даже пейнт выпилили из винды, т.к. большинство даже нарисовать рожицу в пейнте не хотят, лучше в котиков/сериалы/игры позалипать.
Ну и вызвать желание хотя бы попробовать — становится сложнее. Уровень того Бейсика — в лучшем случае примитивная графика, а скорее текст — сейчас мало кому интересен, когда вокруг столько готовых разноцветных игр с суперграфикой :(
А ведь для толкового специалиста невозможно не проходить через этот «нецветной и ненаглядный» этап.
Вы просто не знаете, где используется бейсик. На нем пишут вполне даже полноценные дополнения в оффисе.
Ключевое слово было — _того_ Бейсика. А не современного в Офисе. Я не понимаю, как и зачем можно было прочитать иначе.
> Вы просто не знаете, где используется бейсик.
Вы просто домысливаете то, что не писалось. Ну и уводите в бессмысленный оффтопик.
Имхо это как с готовкой пищи — многие судорожно листают поваренные книги, толком не определившись, а что они, собственно хотят приготовить и кто это все будет есть.
Тем более что в редкой поваренной книге пишут, чем отличается тонкостенная тефлоновая сковородка от толстостенной чугунной, о том, как правильно варить яйца, почему в гречу надо воды столько, а в рис — в два раза меньше, чем отличается круглый рис от длинного… и как правильно чистить и резать лук.

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

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

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

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

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

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

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

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

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

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

А как же flexbox?
Рапира… да, было время. Ещё Фокал был, но это уже БК.
БК0010. С Бейском с кассет грузился. И почему я это помню…
Рапира на Агате 64 Кб оперативки — прелесть!.. — Ребята с Новосиба пытались за яблочникам угнаться, под них косили. Жалко, что не выросли ничего… Тогда моноблок эппловский помнится появился. 5 дюймов экран чтоли… или 10. Веселое было время. Потом Фортран, Кобол, Ямб(!) :)))
В Ш из ПЗУ грузился Фокал, Бейсик на нём ни разу не видел (был на 011 или 0010-01, но их только издалека).
Год с небольшим назад по необходимости начал писать большую программу (я взрослый человек, математик, но никогда не программировал со времён советской власти, да и тогда не умел). И вот труднее всего было научиться «прописывать пути». Что это за пути такие и как их прописывают? И где об этом почитать понятными словами? Так что проблема есть и интерактивный учебник — это очень хорошо. Только трудно писать его, поэтому ленятся и не пишут.
Вы знаете, как человек попробовавший писать и локально и в PythonAnywhere, я скажу, что с сервисом у меня проблем было в разы больше. Неизвестно, что и как себя поведет и с каким настройками. С библиотеками, которые через pip install там тоже были вопросы. Вплоть до того, что ряд туториалов специально писали «если вы используете сервис, внесите такие-то изменения».
С другой стороны, автора тоже понять можно — к примеру, у меня java окружение с нескольких попыток так и не завелось нормально (включая tomcat), с Андроид Студией приходилось воевать и часть демок не собиралась по неизвестным причинам, а эмуляция девайса заслуживала отдельной песни. Особенно — скорость эмуляции, если в БИОСе была выключена отдельная настройка или ПК (точнее, ЦП) просто ее не поддерживал. Ну и количество образов для эмуляции магическим образом сокращалось в разы).
В общем, да, определенные вопросы есть.
P.S.: с Питоном у меня все-таки получилось. Верю, когда-нибудь с Java тоже все получится)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.