Comments 250
Если кто-то хочет научиться программировать, он не должен для этого предварительно изучать администрирование системы.
Если кто-то просто хочет научиться программировать, он не должен для этого изучать устройство операционных систем.Мне вот интересно согласился бы автор этих строк, чтобы его лечил врач, который просто «научился лечить», не зная при этом даже азов анатомии, химии, биологии и прочих базовых для врача дисциплин?
Пользуясь вашей аналогией, я бы все же сравнил человека из статьи, который «просто хочет научиться программировать», не с врачом, который уже сидит в поликлинике и принимает людей, а, например, со страшеклассником, который в свободное от учебы время почитывает книги и статьи по биологии. Придет время, и, если его интерес к теме сохранится, то он сам и/или с внешней помощью, поймет, чему ему нужно научиться и почему, чтобы стать врачом. А может быть, он вообще не собирается им становиться, а просто развлекается подобным образом или решает какие-то свои задачи.
И ещё, я не соглашусь, что сейчас стало сложнее. Наоборот, средства разработки сейчас куда доступнее. Далеко не все компьютеры были как ZX Spectrum, с интерпретатором Бейсика в ПЗУ после включения. Я помню инструкцию к своему первому компьютеру. «Для подключения принтера спаяйте кабель согласно прилагаемой схеме». Или в другой книжечке, про джойстик. Инструкция, как загружать драйвер, как настраивать джойстик. А на последней странице сам драйвер. В машинных кодах. Ничего, выживали как-то :) Но вот что «раньше было легче» — не согласен.
А когда хочешь просто поправить пару строк в огромном старом проэкте тебе надо доустановить Boost, установить кучу исправлений и обновлений. Поставить упаковщик интаслятора. Настроить всё это. И тогда у тебя возможно получится скомпилировать проект. И вот когда всё получилось можно пробовать эксперементировать с кодом.
Поставил и получил все? Но порой очень сложно разобраться с интерфейсами или ошибками инсталляции. Мне как-то не повезло и на моем ноутбуке эмулятор андроида, встроенный в андроид студио, никак не хотел запускаться. При решении одной проблемы он начинал падать по другой причине. В итоге решение всех проблем заняло довольно долго времени(2-3 дня вроде). Это очень неприятно, и изматывает. Сейчас я даже и не вспомню что я делал для решения проблем, потому как это единичный случай, на моей практике. Те помимо проблем возникающих с изучением самого яп мне пришлось бороться с какими-то случайными и редкими ошибками. В итоге да, все удалось, но осадочек остался
Так и программисту нужно хотя бы уметь поставить нужные ему программы и настроить их.
Зачем?
Затем же, зачем непрограммисту. Это бытовой навык, где-то рядом с умением забивать гвозди или умением ясно выражаться.
У вас профдеформация, вам кажется, что все должны уметь то, что вам видится очевидным, хотя это совершенно не очевидно для человека из иной сферы.Нет.
У меня отец не умеет особо администрировать свой ПК, но умеет им пользоваться.А у меня отец не умел даже пользоваться, приказы секретарша на ПК набирала.
При этом он обладает бытовыми с его точки зрения навыками, которыми вы с большой вероятностью не владеете: изготовить мебель из массива без электроинструмента, синтезировать в домашних условиях клей или герметик, правильно разделать тушу животного.Совершенно верно — только это не «его» точка зрения, а скорее «точка зрения его поколения».
Моя бабушка тоже всегда удивлялась: ну как же так, в деревне живут — а хлеб в магазине покупают! Как там можно-то? Со временем, впрочем, и сама перестала печь, когда ей уже под 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х все наши компьютеры — глубоко неполноценны.Это систематическая ошибка выжившего для отдельных идей. Сколько же их бестолковых-то полегло?
Дело в том, что платформа не дает никаких ощутимых преимуществ, а возможности режет.
Дело в том, что платформа не дает никаких ощутимых преимуществ, а возможности режет.Конечно, но это если у вас есть выбор. А если выбора нет? Посмотрите на web: NPAPI отпилили и Flash — что, разработчики сбежали? Или Google Play: скоро приложения для китайфонов на Android 2.3 перестанут публиковать. Разработчики сбегут? Нет, конечно. Деваться-то им некуда!
Просто чем больше доля рынка, которой вы владеете, тем быстрее можно «закручивать гайки». Microsoft же, не имея даже 5%, начал «закручивать гайки» так, как будто у него все 100%… ну и поплатился за это.
Посмотрите на web: NPAPI отпилили и Flash — что, разработчики сбежали?Да, вместе с приложениями, для которых это было критично. Однако, пример так себе, ибо большинство кейсов перекрываются новыми API.
Просто чем больше доля рынка, которой вы владеете, тем быстрее можно «закручивать гайки».У MS раньше была большая доля рынка по браузерам и где он теперь? Волну поймать можно, но это не стабильное состояние.
Именно поэтому это — хороший пример. Закручивать гайки можно тогда, когда вы, во-первых — лидер, а во-вторых — если вы предлагаете приемлемую альтернативу разработчикам.Посмотрите на web: NPAPI отпилили и Flash — что, разработчики сбежали?
Да, вместе с приложениями, для которых это было критично. Однако, пример так себе, ибо большинство кейсов перекрываются новыми API.
А вот тут — у как раз пример обратного: заморозив в 2001м году развитие своего браузера Microsoft сделал ставку на то, что «через год-два» все пересядут на Avalon… но его разработка настолько затянулась и результат получился настолько невнятным, что разработчики других браузеров смогли «догнать и перегнать».Просто чем больше доля рынка, которой вы владеете, тем быстрее можно «закручивать гайки».У MS раньше была большая доля рынка по браузерам и где он теперь?
Дурацкая ошибка в стратегическом планировании, которая стоила миллиардов, а в недалёком будущем может привести и к тому, что Windows станет историей…
Это навык более высокого уровняРасскажите подробнее о ваших мерах уровней деятельности, пожалуйста.
Зачем?Очевидно затем, что нужно как-то уговорить компьютер работать по алгоритму.
придумал совсем не яТогда объясните эту чудесную методику для простых смертных, раз уж приводите ее результаты как аргумент.
А спаять компьютер для этого надо или достаточно готовый взять?Смешное сравнение, да. В контексте обсуждения, если у вас есть персональный девопс, который с пеленок настраивал и будет настраивать вам окружение, то, пожалуй, можно обойтись и без столь ценного навыка. Но в реальном мире у подавляющего большинства разработчиков такого доброго друга нет.
Мне вам курс по психологии и педагогике прочитать?Ясно, защитить аргументацию вы не в силах.
На текущий момент большинство людей знакомится с программированием именно в условиях наличия такого персонального девопса и с запретом на самостоятельное администрирование. Эти места именуются школами, образовательными центрами, колледжами и вузами.Странно, что вы не в курсе о качестве этого «персонального девопса»): «Вот тебе учебник, остающий на пару версий от ПО. Не важно, что новые версии не особо совместимы между собой. Гугли, разбирайся как хочешь.» Да и в любом приличном IT-вузике или колледже основам администрирования учат.
Я, как человек, прошедший путь от ассистента до директора образовательного центра при вузе, информации о положении дел в данной отрасли имею куда больше, чем обычный программист.Я не знаю, кто вы и каким образом прошли этот славный путь, но раз вы делаете такие заявления, значит слишком давно не видели живого студента и не интересовались его проблемами.
многие вузовские специалисты туда и перешли, значительно повысив качество образовательного процесса.Настолько повысили, что перестали студентам IT-специальностей преподавать администрирование?
В профессиональном стандарте не замечено слово «продвинутость». Есть «уровень квалификации».Ох, как же вас задело) Речь шла про бытовое использование навыков, это слово было использовано не случайно, я даже курсивом выделил.
Я не особо понимаю, для чего, например, программисту, например, микроконтроллеров вы хотите предложить учить администрирование ПК.Микроконтроллеры чаще всего — это сетевые устройства, как можно изучая это обойти стороной основы компьютерных сетей?
Преподавание администрирования программистам в некотором объёме присутствует в качестве общеобразовательной дисциплины, но после длительного обучения программированию.То есть вы со мной сначала согласились, а потом с понтом опровергли?) В переводе на русский язык это означает: «Основы администрирования изучаются параллельно курсу программирования, по ходу программы знания углубляются».
Изучение устройства сетей не есть изучение их администрирования, если вы не в курсе.Для программистов (без «сетевого» уклона, как в ИСиТ) это преподается в рамках одного курса. Странно было бы изучать отдельно сети, а отдельно — их администрирование.
речь об администрировании рабочего ПК, что типовому разработчику программ, не предназначенных для выполнения на этом ПК или ином такого же типа не требуется.Что вы понимаете под «типовым разработчиком программ»?) Программирование многообразно.
Достаточно сложные проекты требуют понимания процесса деплоя, что часто сопряжено как раз с администрированием рабочего ПК.
Я на общепринятом написал, что администрирование присутствует в процессе обучения строго после программирования.Как-то это противоречит вашим же словам выше.
Предмет, кстати, не обязательный, а по выборуМожет в вашей школе он селективный, но в вузиках вас загрузят этой инфомрацией обязательно.
ЗЫ Вот интересно так выходит: у вас есть, возможно, некоторые знания об учебных программах в вашем родном заведении, но вы этот свой опыт лихо экстраполируете на всё вокруг. Если бы вы еще на ГОСТы по специальностям ссылались или иные документы — это дело одно, но вы же начинаете говорить неоднозначные вещи вообще без какой-либо аргументации) У меня заканчиваются поводы вести этот диалог.
Для «программистов без сетевого уклона» администрирование сетей может преспокойно не даваться вовсе или даваться в составе общего курса администрирования.Дичь. Программистов узкой специализации никто не готовит, поэтому дают широкий кругозор.
деплой в нормальной компании должен выполняться отдельным человеком/отделом.Деплой на локальную машину почти с гарантией будет отличаться от «боевого» деплоя, а это уже выпадает из сферы интересов девопса. В лучшем случае это будет связка каких-нибудь скриптов, но это не освобождает от необходимости их понимать.
И уж точно не все разработчики его обязаны знать.«В нормальной компании» обязаны знать все, ибо bus factor.
пытаетесь понизить уровень собеседника до своегоВы со своей хамской манерой общения сами прекрасно справляетесь с этой задачей)
У нас на кафедре в наличии три направления подготовки специальности 230201: одно общее, два специальных узких
Просветите, пожалуйста: как направление может ветвиться на поднаправления?
В стандарте (230201) есть дисциплина «Информационные сети», что же там студенты будут делать на практиках, если не настраивать сети и сетевое ПО? Это одна из основных задач администрирования.
А чего в требованиях к вакансии этого почти никогда не пишут?Иногда пишут (под соусом «базовых навыков работы в *nix-системах»), иногда нет, как и многие другие вещи, которые считаются сами собой разумеющимися для программиста в данной позиции.
Хм, а для чего им на паре по сетям (а не по администрированию сетей) настраивать сети?Чтобы части информационной системы, которую проектирует будущий инженер, смогли общаться по протоколам своего верхнего уровня. Чтобы банально подключение к базе данных прокинуть нужно создать пользователя и ограничить его права.
В норме программа идет по книге «Сети» Таненбаума, там и так много всего, чтобы в один семестр еще и администрирование запихивать.Там немало теории по сабжу, кстати)
у нас самих именно администрирования сетей не было вообщеКак отдельной дисциплины — и у нас не было. Но в рамках других эти знания давались.
Навыки администрирования оных приветствуются, но не обязательны для большинства позицийНо ведь это конкурентное преимущество кандидата, согласитесь?)
Согласитесь, нет смысла требовать от специалиста, работающего над лексическим анализатором, знания никсов.Тут я с вами безусловно согласен. Но нет же учебного курса «разработчика лексических анализаторов», зато есть «Прикладная математика и информатика», а направление для них уже подразумевает куда более широкий спектр знаний и навыков. Но, опять же, все зависит от используемого тулчейна)
Вся проблема в том, что нынешние методы администрирования ПК во многом являются результатом работы разрозненных групп людей, ничего не понимавших в пользовательских интерфейсах и не имевших даже общего соглашения о них.Я согласен с вами, но альтернатив у нас нет и вряд ли это будет уважительной причиной отказываться выполнять свою работу (по должностной инструкции) в некрутой компании и/или на небольшом проекте, где нет выделеной должности девопса, коих большинство.
Но программисту ведь нужно не столько серьезное администрирование уровня предприятий, сколько навык настройки своего рабочего окружения, тестового и продакшна, автоматизация каких-то рутинных операций с этим связанных. Это совсем иной уровень работы.
Для обеспечения возможности общения по протоколам следует знать протоколы, их и учат (топологии, алгоритмы кодирования/декодирования, передачи и т.п.).Вы предлагаете готовить водителя, но так, чтобы он не водил, а ковырялся в моторе.
Программисту для подключения к БД следует знать адрес, пользователя и пароль, а не создать.Как проверить, что всё работает? На личном ноутбуке, конечно же.
Администратор — всего лишь уровень абстракцииЛюбые абстракции имеют свойство течь. Чтобы разобраться с тем, как работает система, ее нужно уметь эксплуатировать хотя бы в игрушечных условиях.
как IDE с автодополнением. Можно всё писать в блокноте, но это не столь эффективно уже, проекты растут, количество знаний и умений тоже.Иметь знания, но не использовать их на практике и не иметь их вовсе — это две большие разницы.
Проблема в том, что настройка среды сейчас излишне сложна, всё можно делать проще.Всё упирается в гибкость. Юзеров все так же нужно будет создавать, инстансы серверов как-то нужно будет отличать друг от друга.
И необходимость специально разбираться и следить за кучей вещей следует убрать, она никак не помогает основной задаче, поэтому является лишней.Не нужно за всем следить, главное — понимать базовые принципы, а они не изменяются десятками лет.
На заре автомобилестроения — так и учили. Вообще есть ощущение, что при взляде назад окажется, что водителей почти всегда так учили.Для обеспечения возможности общения по протоколам следует знать протоколы, их и учат (топологии, алгоритмы кодирования/декодирования, передачи и т.п.).Вы предлагаете готовить водителя, но так, чтобы он не водил, а ковырялся в моторе.
Просто потому, что период времени, когда техника стала достаточно «умной» для того, чтобы это было не нужно, но ещё «недостаточно умной» для того, чтобы полностью заменить водителей (последние лет 20, наверное), окажется, по историческим меркам, весьма коротким…
Специальность с кодами, начинающимися с 01, программистов не выпускают, если в строгом смысле. Это математики, которых учат программировать в той или иной мере.За все специальности не скажу, но насчет озвученной мной — вы неправы, она двойная и набор дисциплин достаточно широк, чтобы покрыть широкий спектр областей промышленной разработки. Качество переподавания этих дисциплин в типичном учебном заведении — это уже другой вопрос.
Обычно этот труд всё-таки разделяют.Сис.админов с программистами? Да. Программистов с девопсами — нет. Бывают редкие исключения, такие же как выделенные разработчики баз данных, но такие конторы достаточно сложно встретить и это обозначает именно сложность процесса, а не факт его наличие. То есть за свою карьеру программисту какие-то начальные навыки администрировании пригодятся почти наверняка. Можно учиться этому на работе, за деньги заказчиков/работодателей, но все же лучше иметь хорошие базовые знания еще с учебной скамьи.
Не каждый вид деятельности возможно рационально разделить.
У нас для этого отдельный сотрудник. Сейчас он отсутствует, в результате чего действительно приходится отрывать программистов от их дел, это действительно сильно тормозит процесс.А не умели бы программисты в девопс, тогда процесс вообще бы встал.
¯\_(ツ)_/¯
Выбирать-то они могут какую угодно работу, я говорю о том, как эти специальности классифицируются с точки зрения системы образования и профподготовки.Я про работу не писал, это и так очевидно. С точки зрения системы образования у них в дипломе написано: "прикладной математик, системный программист". Ну и образовательный стандарт со списком дисциплин.
Где бы ни был, кроме госучреждений, в которых на всём экономили, обычно брали специального недопрограммиста со знанием администрирования в качестве девопс инженера.Может у вас какая-то специфическая область деятельности? Я встречал админов, которые настраивали какую-то инфраструктуру, а деплоем всегда занимались разработчики. Для продакшна часто были специальные команды внедренцев, но в подготовке релизов они не участвовали.
Это навык более высокого уровня, как, например, вождение авто или умение ясно выражаться
Ну то есть вы считаете, что профессиональный конструктор автомобилей не обязан уметь водить авто, а писатель не обязан уметь ясно выражаться?
А конструктор самолетов обязан быть пилотом? Конструктор ракет — космонавтом?
Вы подменяете понятия (с). Конструктор самолётов не обязан быть пилотом, но уметь управлять самолётом, естественно, должен. И конструктор ракет прекрасно знает, как она устроена, как она заправляется, как она управляется. Другое дело, что профессия конструктора ракет не предполагает, что его посадят в ракету и отправят на головы вероятного противника. А профессия программиста обычно предполагает, что ему придется что-то делать на том же компьютере, для которого он пишет софт.
Позвоню брату, скажу, что пора ему увольняться, чего это он без умения управлять что-то там конструирует.
Вы так плохо думаете про вашего брата, что он не знает, что делает?
И это, разумеется, один человек, а разделение труда для увеличения производительности и повышения сложности систем — блажь и выдумка
А причем тут разделение труда? Вы же не про разделение труда целое полотенце постов написали, а про узость профессиональной подготовки.
Если только ввиду экономии. В нормальных крупных организациях вам никто свой компьютер администрировать не позволит.
Кому, программистам? В любой нормальной ИТ-компании программисты свободно настраивают своё окружение сами. Это вообще не работа администратора, кстати. Админ установит вам нужный пакет софта, а кастомизация среды — дело сугубо индивидуальное. Запрещают администрировать только в корпорациях с казематным режимом.
Запрещают администрировать в любой компании, где есть хоть какой-то намек на нормальную СБ.Не путайте «нормальную СБ» и «надувающую щёки СБ».
Нормальная СБ (Google, Microsoft, Yandex и тд. и т.п.) знает, что запрещать человеку администрировать систему = получить снижение производительности без увеличения безопасности. Надувающая щёки СБ (банки, разного рода госструктуры и т.д. и т.п.) — да, может закрутить гаки до состояния, что разработчики оттуда просто сбегут.
При этом, что забавно, из компаний первого класса утечек на порядок меньше, чем из компаний второго класса — но это любителей сертификатов и других бумажек — не останавливает. Но зачем о них-то говорить?
А узкие направления каким образом возникают?
А вы не путайте должностные обязанности и профессиональную подготовку. Узкие должностные обязанности — дело обычное, но это штука временная. Сегодня у вас одна работа, завтра другая. А узкая профессиональная подготовка — это удел редких специальностей, а для программиста это вообще деградация. Вы можете быть специалистом по какой-то одной платформе, но чтобы быть хорошим специалистом, вам нужно будет развиваться вместе с ней, знать хотя бы в общих чертах смежные продукты, знать нюансы её применения и т.д. И уйти с неё, когда платформа постареет.
Сегодня вы работаете за 3 тыщи баксов в компании, где у вас есть администратор деплоя, завтра вам предложат 5 тысяч в компании, где вы должны сами деплоить проекты на препродакшене. Вы назовете вторую компанию нищебродской и откажетесь?
Запрещают администрировать в любой компании, где есть хоть какой-то намек на нормальную СБ.
Вах, полегче с такими заявлениями :) Мне приходилось работать на режимных объектах, и даже там программисты имели права администраторов на своих машинах и на девелоперских серверах. Не давать им такие права — это все равно что стесняться показывать врачу свою голую задницу. Программист — не водитель. Это квалифицированный специалист, и он для ИТ-безопасников помощник, а не враг.
Т.е. по-вашему быть специалистом, допустим, по машинному обучению или обработке сигналов — это деградация? О_о
Вы удивитесь, насколько широкий профиль имеет специалист по ML или DSP. Последний — так ещё и паяльник держать нередко умеет.
Надеяться на людей, не прошедших специальный отбор и контроль — право руководителей тех объектов, ему же потом сидеть
Хм. Если человек попал на то или иное предприятие, значит, он всё-таки какой-то специальный отбор прошёл, верно? И его права, естественно, соответствуют его квалификации, никто не предлагает стажеров пускать на продакшен.
А если вам предложат за 8 еще и рисовать дизайн, рекламировать и продавать продукт, вы согласитесь?
Если предложат то, что я умею, при оплате в полтора раза больше за те же 165 часов в месяц, то естественно соглашусь. И вы согласитесь. И я думаю, даже вам очевидно, что есть некая разница между программистом и продажников, и между программистом, который умеет деплоить собственную работу и который не умеет. И что ваш пример — явный перегиб, исключительно «чтоб хоть какое словечко в спор ввернуть».
Я в своей практике несколько раз сталкивался с саботажем и местью со стороны уволенных сотрудников
Вы же в ВУЗе преподаёте, у вас вон дипломники, содержание курсов хорошо знаете… Какая у вас там практика-то могла быть? Вы же не пошли после профессиональной работы программистом на дауншифтинг преподавать в ВУЗ?
Специалиста по обработке сигналов вы сразу представили в виде одного широкого профиля. А я даже не сказал, какие именно сигналы имел в виду.
А какая разница? Мой вариант подходит примерно для 99% случаев, ваш — для оставшихся. Узкая профессиональная специализация, это крайне редкий кейс в ИТ.
1. Да, пошел на дауншифтинг ради научной работы и перспектив роста в руководство.
Все равно не понял логики. Если нужно вести научную деятельность, и потом получить ученую степень для карьеры, не нужно бросать работу и идти преподавать в ВУЗ. Собственно, и я сам, и мои коллеги, которые этим озадачивались не после получения диплома, а позже, через несколько лет, в аспирантуру не шли, писали дисеры как соискатели, без отрыва от работы.
2. Работу над сторонними проектами никто не запрещает ни во время работы, ни во время обучения.
Вот может меня закидают гнилыми помидорами, но скажу моё мнение: совмещать преподавательскую деятельность и полноценную работу над проектами нельзя. Не хватает времени. Можно ковырять вечером какие-то пет-проекты, но не более того. Вы будете собирать материалы для лекций, будете проверять работы студентов, будете свой план по статьям выполнять, ездить на семинары и т.д. Это не даст вам ни развиваться как программист, ни участвовать в серьезных проектах. Я читал лекции четыре часа в неделю, и то, это суммарно съедало около дня каждую неделю.
Отнюдь, как раз часто просят от фронтендеров быть дизайнерами, а от мобильных программистов продажниками (точнее, маркетолагами)
В первом нет ничего крамольного. Верстка и дизайн UI — смежные виды деятельности, и прекрасно сочетаются в одном специалисте. Второе — нонсенс, но кроме как от вас, я никогда в жизни о таком не слышал, так что насчет «часто», мне кажется, вы преувеличиваете.
В нормальных крупных организациях вам никто свой компьютер администрировать не позволит.В скольки «нормальных крупных организациях» вы работали, позвольте спросить?
Я работал в пяти и у меня есть знакомые, которые работали ещё в пяти. И нигде программисту не пытались отрезать права локального администратора. Ибо это попросту бессмыленно.
Приведёт только к снижению производительности и вряд ли повысит безопасность.
Программист, неспособный взломать современную систему, дырявую, как решето (а других, увы, и нету) — однозначно плохой программист.
Поэтому даже если вы такой себе распальцованный Разработчик, который приходит, садится на предварительно настроенный придворным администратором трон, пишет Очень Важный Код, потом садится на свой Порш Кайен и едет в казино тратить заработанный сегодня миллион, уметь настроить свой компьютер вы должны.
Они должны это уметь ввиду того, что им это придется выполнять в случае экстренных ситуаций
Ну то есть, по-вашему, программиста один на один с компьютером не оставляют, всегда наготове сидит сисадмин, который ему там рабочую среду установит и настроит, заменит памперс и сунет в рот бутылочку с молоком.
Должен кому
Хотя бы самому себе
зачем
Чтобы не быть беспомощным и бесполезным в некоторых абсолютно типичных ситуациях в его работе.
Т.е. по другой аналогии этот ваш старшеклассник хочет в свободное время покататься на шоссейном мотоцикле минуя стадии велосипеда, мопеда и т.п.
Поэтому освоить C++ с нуля, или освоить С++ после питона — явно второе проще.
Тем не менее практика показывает, что эта «магия» очень легко воспринимается, и этому не мешают рассказы о конкретных представлениях в компьютере. «Ну как-то они ж разбираются», — думает ученик, точно так же, как он не задумывается о подробностях работы парсера кода, который умудряется понять, где у него переменная, а где стандартная функция. Вопросы «а как же оно разбирается, какой тип?» возникают уже тогда, когда доходишь в подробных рассказах до соответствующих механизмов (обычно это уже вузовский уровень).
> Я вообще уверен
Пробовали? У меня таки из практического опыта :)
И этот же опыт говорит, что есть два уровня типизации в сознании ученика. Первый это «здесь целое число» или «здесь строка», или в первом даже вообще «здесь число». А вот второй — уже значительно более проблемный в среднем — это «здесь число, влезающее в диапазон 32-битного целого». Существенная часть задач первичного обучения сконструирована так, чтобы не нарываться ни на какие проблемы от того, что мы всем ученикам говорим «целое это integer» и только после того, как они привыкли, начинать упоминать разные short и long. А когда начинаются серьёзные вопросы «а как избежать переполнения?» — всё, суши вёсла, сливай воду.
(Чем тут хорош Python это тем, что целые у него безразмерные. Ещё одна вкусность для такого стартового обучения.)
> он уже недостающие детали того, как может работать динамическая типизация, сам в уме дорисует
Как раз требуется объяснение. Даже если это просто что-то в духе «в каждой переменной лежит код типа, а исполнитель операций анализирует этот код». В уме возникает что-то вроде большого switch — и этого достаточно для успокоения.
> А если переходить в обратном направлении, то нередко первая реакция — ступор, потом мысли «нафига такие сложности», и даже после понимания преимуществ строгой типизации, надолго остаются неприятные ощущения.
У меня мысли типа «нафига такие сложности» возникают регулярно, несмотря на то, что начинал на самых что ни на есть статически типизированных. Потому что это не вопрос происхождения опыта — это вопрос «а нельзя ли именно тут ослабить контроль и получить реальную гибкость».
Можно пример таковой гибкости?
true
, false
, file_not_found
.Но обратной стороной такой гибкости является вылетающие странные ошибки в рантайме — от чего, как раз статическая типизация и призвана защитить.
Так что… лучше не надо. Если вам очень хочется вернуть что-то, что не лезет в заданный тип — значит вам нужно как-то эту информацию донести (std::optional и std::variant вам в помощь). Поступать как в динамических языках (документация говорит что вернётся целое число, а на самом деле могут вернуться ещё
True
и None
) — не стоит.Возьмите какой-нибудь хаскель, где тоже есть безразмерные целые из коробки.
А он уже хоть как-то устоялся? Есть стандарт? (что-то не вижу)
Зато есть свидетельства (например с ходу) того, что устойчивого состояния нет, что разные компиляторы используют несовместимые диалекты… извините, на учебный язык это не тянет, даже если проигнорировать всё требование понимать и поддерживать "высокое" ФП при его освоении. Извините, в сад, пока эти пляски не закончатся.
Потому что теория типов — это про то, как эффективно статически отвергать семантически некорректные программы.
При чём тут теория типов? Не улавливаю никакой связи.
Можно пример таковой гибкости?
У сообщения есть постоянная часть (типизированная) и переменная (грубо говоря, map String->Object, хотя в качестве ключа может быть и кортеж, и список). Что именно будет добавлено у конкретного сообщения, предсказать невозможно, вариантов сотни в зависимости от факторов включая фазу Луны.
Лет сорок назад вас без научной степени и к компьютеру не подпустили бы.
Обучение это алгоритм. Его задача состоит в повышении количества специалистов. Не в фильтрации или отборе, а именно в повышении количества. Если вы получаете снижение основного показателя работы алгоритма, значит необходимо внести изменения.
Автор статьи, который занимается обучением много лет, говорит о том, что алгоритмы, которые он успешно применял, стали давать сбой. Он предлагает усовершенствовать алгоритм. А вы констатируете, что причина в обучаемых.
Ну и риторический вопрос. Если ты можешь учиться самостоятельно, зачем тебе вообще учителя?
Я начинал программировать именно 40 лет назад, даже чуть больше. Никаких таких ограничений типа "без ученой степени не подходить" нет и никогда не было. Более того, операторами например зачастую работали те же студенты. А программировали обычные инженеры.
Никто в первый же день, сразу после вступительной речи, не отправит студентов в ближайший морг, потрошить трупы. Вначале им объясняют, показывают и рассказывают, учащиеся усваивают кучу информации, а уже потом переходят к практике.
И это правильно. Хороший водитель, может, и не является крутым механиком, но он должен понимать, что и как работает в автомобиле, которым он управляет. Но никто в здравом уме не будет учить водить машину в стиле «Вот тебе запчасти, вот инструкция. Вначале будешь учиться собирать из них автомобиль. После этого будешь учиться на нем ездить».
«Вот тебе запчасти, вот инструкция. Вначале будешь учиться собирать из них автомобиль. После этого будешь учиться на нем ездить»Как раз в те «благодатные» времена это было нормой. Хочешь услышать звук в игре — спаяй себе 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 проблемы- появление новых технологий определяется жадностью тех в чьих руках оказались возможности зарабатывать на старых (т к у них в руках и капиталы которые они могут инвестировать когда им это покажется правильным а не тогда когда появится для этого возможность или даже необходимость) и вторая — часть технологий может не появиться никогда так как инвесторы-капиталисты не нашли как получить с них прибыль Так и получается что
Лучшее уже определяется по другой шкалеИ не факт что эта шкала приведёт к чему то хорошему Пример — то же освоение луны. Продвижений там мало а те что есть делаются на деньги государств ( да да и господин Маск тоже получает от своего государства дотации иначе бы уже давно бросил эти ваши Марсы) Что бы меня поняли правильно — я не предлагаю здесь как решить эти проблемы Это ещё никому пока не удалось. Однако первый шаг это что бы как можно больше людей признало их существование. Как известно принятие существования проблемы — половина ее решения.
Ну и если слабых разработчиков не допускать, у них появится стимул учиться и осваивать более сложные технологии.
Если бы разработкой софта занимались квалифицированные математики
Видал я код квалифицированных математиков. Частенько он очень плох.
Да, обе.
«Вот тебе запчасти, вот инструкция. Вначале будешь учиться собирать из них автомобиль. После этого будешь учиться на нем ездить»
Не совсем так, но мой отец, получая в конце 50-х права на управление грузовым автомобилем, сдавал кроме правил пдд и вождения еще и матчасть, и это в те времена было обязательным и абсолютно оправданным. Если он например на своем грузовике сломался где то в тьмутаракани, то починить машину, кроме него самого, чаще всего было просто некому. Потому и машины свои он знал лучше чем себя, и действительно, любую проблему, связанную с ними, мог решить сам…
Мы же в детстве — кто еще помнит — могли разобрать и собрать снова велосипед, или мопед, и на том же велосипеде возили с собой кучу ключей на все случаи жизни…
Сейчас это — уж не знаю, к счастью, или к сожалению, не имеет такого значения. По аналогии с той же машиной — практически в любой точке проблему можно решить в минуты одним телефонным звонком. В Европе, где сейчас живу, ADAC за 49 евро в год приедет в течении часа просто завести двигатель, если у тебя сдох аккумулятор. На велосипеде — у меня шоссейный гоночный — супер легкая карбоновая рама и ничего лишнего. Беру с собой только телефон и спицевый ключ… Как пелось, «до чего дошел прогресс».
По поводу врачей. Как бы сказать. Нам кажется, что к врачам отношение особое и они должны все знать, что это как бы само собой. Но сейчас это не так, и опять таки наверное все из-за прогресса. Сейчас у них такое оборудование и программы, но копни глубже, ничего. Никто никогда не примет решения, если оно противоречит инструкциям или тем же программам.
Но в то же время, продолжительность жизни растет, в основном, благодаря тому, что все работает по инструкции. И если в будущем врач будет врачом только номинально, но по большому счету, админом или даже пользователем строго определенного програмного обеспечения, я думаю, никого это не удивит.
Теперь по программированию. По поводу ученых степеней. Я когда учился в ВУЗе, в середине 80-х годов, меня подпускали к компьютеру, только когда несколько аспирантов или даже доцентов проверят, что ты там за код написал, на бумажке. Это чтобы машину зря не грузить и не расходовать дефицитные в те времена перфокарты и ленты.
Кстати, устройство машины, или как работает ос, никто меня тогда не спрашивал. Правда, я не на программиста тогда учился.
Просто дешевые и некачественные велосипеды требуют внимания раз в 5км (привет Ашанбайкам), средней ценовой категории — 500км, подороже — 2500-5000км.
В общем, за 6-7 последних лет еще ни разу не было такой ситуации, чтобы я не доехал до дома сам. И я не беру с собой ничего, что несет дополнительный груз, пусть даже небольшой — не за чем. И дело не в том, что я лично не смогу что то сам быстро починить, просто проще и быстрее будет позвонить и решить проблему.
И очень много людей, которые вообще ничего не понимают в этом, и они даже не собираются что то в этом понимать. Если у них есть в кармане телефон.
Если бы я лет еще 20 назад так налегке выезжал на 75 км от дома на велосипеде, я бы рисковал остаться где-нибудь с ним на ночь, или пройтись пешком часов 12… в горы на горных байках тоже налегке не поедешь…
Это же ведь только как пример — суть в том, что так сейчас во всем: для совершения большинства действий, еще вчера требовавших багажа определенных фундаментальных знаний, сегодня легко можно обойтись без этого багажа. По крайней мере лично (ясно что этот багаж накоплен и сохранен, и называется накопленным опытом предыдущих поколений).
Осмелюсь заметить, что в медвузе нормальная анатомия начинается с 1 семестра 1 курса. Т.е. к трупам будущий врач допускается практически сразу, по ходу препаровки изучая теорию. Ну разве что в самом начале скелет не дольше пары месяцев.
Можно ещё не с врачом сравнивать, а со строителем. Я вполне могу себе представить, что начинающий строитель-самоучка может удовлетворительно справится с постройкой какого-нибудь сарая или ещё какого-то нетребовательного к квалификации сооружения, или работать в качестве подмастерья.
Можно сравнивать не с врачом, а с обслуживающим мед. персоналом, который сам решений не принимает, а только выполняет четкие указания типа анализы берет или выполняет ещё какие-то процедуры.Я вам умный вещь скажу, только вы не обижайтесь. Лучше всего «чёткие инализы» и «ещё какие-то процедуры» выполняет… компьютер.
Трагедия IT в разрушении «лестницы»: мальчик-на-побегушках, подмастерье, мастер, эксперт… то, что в «материальном» мире выполняли начинающие в компьютерах выполняет какой-нибудь shell-скрипт. И он требует ресурсов точно меньше, чем самый дешёвый «обслуживающий мед. персонал»…
Если провести аналогию с программистами, то Вы ведь намекаете, что профессиональный программист должен понимать принципы работы железа, ОС, компиляторов, баз данных? Я не спорю, что это так, я утверждаю, что все эти знания не сильно помогают, когда надо локально запустить чужой код с применением десятка фреймворков, который упорно не хочет компилироваться/завершается с ошибкой сразу при запуске из-за несовместимости версий установленных фреймворков, или отсутствия переменной окружения, или еще тысячи неочевидных вещей. Лично мне повезло получить хорошее образование по computer science, и я раньше был .NET программистом около пяти лет. Но ситуация, когда просто хочешь, к примеру, поиграться с новой ML библиотекой на питоне, и тратишь 3 часа на прикручивание его к MSSQL, которое по факту не в написании кода, а в решении проблем совместимости версий пакетов, интерпретатора и менеджера пакетов, начинаешь понимать, что, во-первых, что-то с ситуацией в разработке по не так, а во-вторых, весь мой опыт совсем не радикально помогает в методичном гуглеже кодов ошибок и прочтении стековерфлоу.
Понятно, что как работает ОС знать полезно, но это можно делать в процессе изучения программирования. Но сейчас это становится сделать все сложнее.
Если вы поперхнулись, вы хотите, чтобы вас спас опытный хирург, знающий, что с вашим организмом происходит в этот момент, или случайный человек из толпы, сходивший на курсы первой помощи?
Хирург может даже не обладать навыками скорой помощи, его специализация — резать. И даже опытный хирург — тем более мог уже давно подзабыть общие дисциплины, которые проходятся на первом курсе, и при этом быть светилом науки в своей области.
Вы же не попросите стоматолога лечить ОРЗ вашего ребенка — а чо, он же врач, да? Только нихрена не знает как лечить детей.
Как в том анекдоте: я никогда не скажу, что работаю терапевтом в больнице. Лучше уж пусть бабульки и дальше считают меня наркоманкой и проституткой.
sudo apt install nodejs npm
npm i -g create-react-app
create-react-app my-cool-project
cd my-cool-project
npm start
Причём тут у вас пустой бэкенд даже без БД. Шаг влево — шаг вправо от бойлерплейта и начинается.
Вы добавляете новую переменную и думаете, что снижаете сложность алгоритма?
И начинается уже полный докер, именно
-> скачиваете 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 или что-то подобное.
Посчитайте количество переменных в этом алгоритме для вас и для человека, который только пытается освоить написание программ.
<script>
</script>
и всё, можно начинать писать код, вывод на экран при помощи alert() или document.write().<@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
React можно использовать без ES6 и JSX.
Судя по комментарию, вы даже задачи программирования не понимаете.
Это просто наглядный пример нарушения принципа гуманизации, одного из основных принципов педагогики: если обвинять человека в лени, неспособности обучаться или каким-то иным образом задевать его самоуважение, то желания учиться вы этим не вызовите. Поэтому утверждение "они хотят чтобы умение «программировать» появилось у них просто так", не уместно. Тем более в контексте обсуждения образовательной программы.
P.S.
Я ничего против малого количества знаний не имею. Знания — штука исправимая. Просто я против людей, не желающих эти знания получать и говорить потом, что образовательная система видите ли их не мотивирует.
На самом деле людям часто нравится результат, а не процесс, включающий проблемы на пути. Но не полюбив процесс решения этих проблем невозможно достигнуть и результата. Это как представлять себя с Оскаром на сцене, и ждать что тебя просто с улицы на главную роль пригласят. Или мечтать стать миллионером и идти на работу секретаря в офис. Или как в анекдоте: мечтать выиграть в лотерею и не покупать билет.
Это свойственно всем людям, мечтать о каком-то результате и ничего для этого не делать, все мы хотим чтобы "что-то появилось у нас просто так".
Просто нам, как программистам, очевидно что умение программировать так никогда не появится. Но это не значит, что у нас самих нет таких же иллюзий на другие темы.
Многие пользователи вообще никогда ничего не устанавливали
Это очень своеобразный тип пользователя, из которого программист вряд ли выйдет.
учить студентов как настраивать и использовать среду разработки
Если не смог научиться сам — пусть идёт лесом. Мы все через это прошли, он тоже должен справиться.
То есть, у читателей должен быть компьютер, на котором установлен интерпретатор этого языка и необходимые библиотеки, они должны знать, как загрузить код с GitHub, а еще они должны знать, как запустить код, который они загрузили.
Если автор рассматривает это как запредельно сложный уровень, чтобы начать, то дело сводится к тому, что кто-то захотел научиться программировать, но не нашёл операционную систему с предустановленной IDE.
Не сложнее научиться, а проще. Эффект создается толпами людей, которые ломятся в профессию не по призванию, а за деньгами.
Комментаторы, которые тут отписались, просто забыли, насколько были сложные первые шаги. Сейчас для меня развернуть окружение на локалке, а потом подготовить сервер для деплоя — дело нескольких часов, от силы день-другой, если что-то совсем уж незнакомое. Но я помню тот момент, когда был подростком:
1. Программирование. Что-то интересное, хочу научиться.
2. Пошел в книжный магазин. Десятки книг. Какую купить — без понятия. Ну ладно, вот вроде что-то такое «паскаль 3», выглядит интересно.
3. Пришел домой. Переписал в блокнот пару строк кода из книжки. Как его теперь запустить? Ага, нашел «cmd.exe». Запускаю. Паскаль. Как это, команда не найдена?
4. Несколько часов в попытках разобраться, что вообще происходит и как запустить эти гребаные 3 строчки кода.
5. Знаете что? Не так уж это и интересно (на самом деле так и не получилось найти, установить и запустить интерпретатор). Пойду лучше в какой-нибудь postal 2 поиграю.
6. Прошло несколько лет. Установил уже убунту, разобрался как разные пакеты ставить.
7. Опа, «c++ за 21 день», надо бы скачать, посмотреть.
8. За пару часов всё настроил, написал простейший heelo world, скомпилил, запустил.
Сейчас, с одной стороны, многое куда как легче. С другой, вместо «hello world» на пару строчек кода, от незнания, новичок по первому попавшемуся туториалу пытается установить nodejs, yarn, webpack, написать конфигурацию для сборки, react и тд, чтобы просто вывести что-нибудь в браузере.
Очень смешно слушать от сложившихся ИТ-специалистов как это легко сделать. Тут правильнее слушать тех, кто остался за бортом и не смог.
Я много видел тех, кто не смог преодолеть высокий потенциальный барьер входа. Просто откройте стек оверфлоу и посмотрите удаленные, заминусованные, закрытые вопросы.
Другой вопрос, а надо ли нам много программистов? Возможно не нужно учить каждого ребенка программированию, особенно, если у нет склонности.
Ну вот у меня с детства были склонности, а зачем других мучать? Запускать свиней в небо большого ума не надо.
Другой вопрос, а надо ли нам много программистов? Возможно не нужно учить каждого ребенка программированию, особенно, если у нет склонности.А кто ещё будет нужен в массовых количествах? Министрами миллион человек не трудоустроишь, а массовые профессии типа грузчиков или водителей — в ближайшее время будут вымирать. Когда комментарии к видео скатываются к «а знаете почему звука нет? чтобы от грохота подвески о все собранные ямы у вас сердце не остановилось» то это показывает, что люди не понимают что роботу не нужно быть лучше человека если он вдесятеро дешевле!
100500 фреймворков вы лихо оставили за кадром.
Чтобы заработать хоть какие-нибудь деньги нужно несколько лет проучиться. Почему программисты должны достигать этого уровня прочитав одну книжку «выучить XXX за 21 день»?
Вот я, к примеру, пою дома, а могу и станцевать. Можно ли назвать меня певцом и танцором?Зависит от того, как хорошо вы это делаете. От того — платят вам за это или нет не зависит вообще.
Не знаю как с певцами, но знаю как с танцорами (есть знакомые, которые этим делом увлекаются) — очень часто людям приходится платить за то, чтобы их допустили на состязание. И костюмы за свой счёт покупать. Это не значит, что они не умеют танцевать — это просто значит, что они — не профессиональные танцоры.
С фотографами — та же самая история: огромное количество фотографов, снимающих свадьбы, фотографируют откровенно паршиво, гораздо хуже, чем любители, для которых это — хобби.
Почему программисты — должны быть каким-то исключением?
P.S. Кстати и «в былые времена» купить одну книжку по C++ было совершенно недостаточно. Ибо за умение программировать «Hello, World» никто никогда не платил. Платили за умение написать резидентную программу или драйвер, бухгалтерскую систему или систему складского учёта… Чтобы их написать — часто нужно было прочитать и освоить вещи, не имеющие отношения к программированию вообще.
Честно говоря, "хотя бы лендинг" — это хотя бы "небольшую 3d игру". Есть вещи намного проще профессиональных лендингов с адаптивной вёрсткой и встроенным почтовым сервером. )
сразу обмазываешься фреймворками и миллионом других вещей, потому что иначе это никак не работает
И становишься JS-обезьяной. Не, это, конечно, тоже востребованный тип программиста, но те, кто прошёл всё, начиная с ванильного JS — ценятся выше.
а может, проблема в писателях-преподавателях? вы (вышеназванные) видите проблему и упорно не желаете в свих книгах чуть-чуть "спуститься с небес"? вы пишете книги для того, чтобы научить новичков или это всего лишь бизнес и способ повесить ещё одну медаль "автор бестселлера"?
как-то давно в одной из книг (видимо, исключение) была глава, посвящённая настройке окружения. правда, только под винду с оговоркой, что если вы уже это умеете, переходите к следующей главе.
а то получается "как вы все знаете", "очевидно следует" и прочие высокомерные заявления :)
а вот не знаем и неочевидно! расскажите!
Я программист с 12 летнем стажем. При изучении чего-то нового у меня возникают каждый раз мучительные проблемы с тулингом. Как у вас принято создавать проекты? Как отлаживать? Как собрать? Как собрать на другой машине? Это все скучно изучать, а в реальной жизни на работе эти вопросы встали на всю контору один раз и грамотно решены.
Так что понимаю проблему, изложенную автором.
Имея «собранные» коробки, можно при желании самому их собирать с нуля, либо пользоваться готовыми.
Я очень обрадовался появлению react-create-app, где уже всё настроено и можно приступать к написанию компонентов, и итоговое приложение запускается даже так, что его можно открыть с мобильного по ip-адресу во внутренней сети.
Просто я раньше изучал программирование в свободное время. И легче разделить задачи на 1) реакт 2) ноду, и т.д. сначала разобрав что-то, потом другое.
Когда прежде чем написать пару связных компонентов тебе приходится установить разные пакеты, настроить сборку и т.д. — ты и сам процесс не всегда можешь понять — потому что он разовый а не на потоке, и до программирования можешь не добраться. А еще в голове возникает каша — где было программирование, а где была настройка окружения?
Мне нравится подход западных стран, где делают акцент на облегчении вхождения в отрасли и ориентацию на расширение аудитории. Уверен, что у этого есть далеко идущие прагматичные цели, а не просто «облегчальщики дураки, пытаются открыть дверь в отрасль идиотам».
Парадокс. Программисты решают проблемы автоматизации процессов, но при этом редко делают автоматизацию установки библиотек и настройки среды программирования под проект.
Мне кажется наоборот сейчас учиться проще, например при помощи специальных программ, которые на телефон можно поставить и учиться программированию во время поездки в метро. Даже для таких сложных штук как Kubernetes есть интерактивная WEB-среда типа katacoda.
С одной стороны, может быть, проблема эта для кого-то актуальна. Но вот я, как системный администратор, стою с другой стороны от программистов. И я со своей стороны вижу программы, которые написаны так, как-будто на компьютере существует только эта программа, а сам компьютер является сферическим и подвешен в вакууме.
Из того, что вспомнил: нет каких-то библиотек в составе установщика, видимо, у программиста было что-то установлено нестандартное, он это что-то использовал; программа хранит свои данные в папке, куда установлена, при этом, устанавливается она в системный каталог (Program files), соответственно, при работе от пользователя, она писать в этот каталог не может, несколько пользователей не могут иметь разные данные в этой программе; программа для управления видеорегистратором зачем-то требует админские права, при этом данные хранит в каталоге пользователя; программа для управления всё тем же видеорегистратором зачем-то требует аппаратного 3D ускорителя, из-за чего были большие проблемы с запуском в виртуалке; и снова видеорегистратор — программа автоматически прописывается в автозагрузку (слава богу, это отключается), и при нажатии на крестик в заголовке окна не закрывается, а сворачивается в трей, при повторном запуске выдаёт какую-то непонятную ошибку.
Примеров подобных косяков, на мой взгляд связанных с незнанием системного администрирования, я могу ещё привести. И это программы не только от дешёвых китайских видеорегистраторов, это делает и Самсунг для своих ноутбуков, и наши российские программисты для какого-то бухгалтерского софта (не помню названия, что-то связано с зарплатой).
Про встроенные средства программирования — эх… раньше, ты включал компьютер, и он буквально приглашал тебя творить, мигая курсором во встроенном бейсике, или давая возможность его запустить всего одной командой. А сейчас — компьютер, это устройство потребления контента, даже пейнт выпилили из винды, т.к. большинство даже нарисовать рожицу в пейнте не хотят, лучше в котиков/сериалы/игры позалипать.
А ведь для толкового специалиста невозможно не проходить через этот «нецветной и ненаглядный» этап.
Просто — «соберите ингридиенты в кучу, порежьте, порубите, закиньте в кастрюлю, поставьте на огонь и через 40 минут ешьте это
Предполагается, что это все очевидные знания, которые в хозяйку заложены родителями на кухне, учителем на уроках труда или появились сами.
Миллионы книг, туториалов, бесплатные курсы от ведущих вузов, буткампы всякие, до авторов книг можно достучатся по почте и они даже отвечают. Учись не хочу, было бы желание.
Счаз вот пытаюсь понять как тут народ творит и чем живет… — ППЦ. Как новичок.
Я такой же динозавр того же года посвящения. И меня в этом ощущение ППЦ вызывает не внешняя простота и невероятная сложность. По-моему, современную индустрию разработки можно описать одной поговоркой — «Гора родила мышь», особенно в отношении всего, связанного с вебом. Тысячи фреймворков, свистелок, перделок, тулзовин, делающих одно и то же разными способами, но до сих пор нет функции «выровнять по центру по вертикали», нет возможности кастомизировать selectbox, и нет возможности набросать интерфейс мышкой без колупания в стилях и HTML, что предыдущее поколение инструментов разработки, на десктопе, освоило ещё четверть века тому назад.
нет возможности набросать интерфейс мышкой без колупания в стилях и HTML, что предыдущее поколение инструментов разработки, на десктопе, освоило ещё четверть века тому назадТо, что «набрасывалось мышкой без колупания в стилях», как правило, нормально работало только на компьютере автора.
Я ещё помню как в бухгалтерии все компьютеры были c «мылом» на экране, потому что при переходе на LCD 800x600 стало выглядеть фигово (LCD плохо себя ведут с ненативным разрешением), а выставить что-либо другое было нельзя, так как половиной программ становилось невозможно пользоваться при выставлении нестандартного DPI.
То, что «набрасывалось мышкой без колупания в стилях», как правило, нормально работало только на компьютере автора.
Да все программы так писались. Корявое масштабирование с нестандартным DPI — это проблема GUI винды, а не софта.
а выставить что-либо другое было нельзя, так как половиной программ становилось невозможно пользоваться при выставлении нестандартного DPI.
Хм. А зачем вообще было ставить нестандартный DPI? Я понимаю, у одного-двух юзеров с плохим зрением. Но чтобы массово…
Да даже разрешения, которое не было предусмотрено при разработке программы, уже достаточно. Разрабатывали под 640x480. Тут пришли мониторы с 800x600… оставить 640x480 — будет мылить, поставить 800x600 — программа начнёт криво рисовать, элементы будут наезжать друг на друга. А DPI — другая сторона того же эффекта. Видел, как пытались за счёт него скомпенсировать расползание полей GUI. Иногда получалось, но чаще — или неполная компенсация, или ещё более странные эффекты. Сцилла и Харибда уже открыли пасти и облизываются на неосторожного путника.
Рапира на Агате 64 Кб оперативки — прелесть!.. — Ребята с Новосиба пытались за яблочникам угнаться, под них косили. Жалко, что не выросли ничего… Тогда моноблок эппловский помнится появился. 5 дюймов экран чтоли… или 10. Веселое было время. Потом Фортран, Кобол, Ямб(!) :)))
С другой стороны, автора тоже понять можно — к примеру, у меня java окружение с нескольких попыток так и не завелось нормально (включая tomcat), с Андроид Студией приходилось воевать и часть демок не собиралась по неизвестным причинам, а эмуляция девайса заслуживала отдельной песни. Особенно — скорость эмуляции, если в БИОСе была выключена отдельная настройка или ПК (точнее, ЦП) просто ее не поддерживал. Ну и количество образов для эмуляции магическим образом сокращалось в разы).
В общем, да, определенные вопросы есть.
P.S.: с Питоном у меня все-таки получилось. Верю, когда-нибудь с Java тоже все получится)
Научиться программировать становится сложнее