Программированiе сегодня - это ремесленничество, а не инженерное дѣло, несмотря на названiе "инженеръ-программистъ" ("software engineer"). Инженерное дѣло требуетъ знать и математику, и спецiальную около-математическую науку, разработанную для данной области. А ремесленникъ не долженъ ничего этого знать, онъ долженъ только "имѣть опытъ работы".
Нужно ли ремесленнику понимать "предметную область"? Сапожникъ можетъ сдѣлать сапоги для бизнесмена, а можетъ для математика. Тогда сапожникъ будетъ сначала спрашивать у бизнесмена, какiе ему нужны сапоги. Бизнесменъ что-то будетъ говорить, а сапожникъ "переводить на языкъ сапоговъ". Нѣтъ, сапожнику не нужно ничего понимать про инвестицiи или mergers & acquisitions. Сапожникъ долженъ дѣлать сапоги.
Даже когда предметная область касается математики, программистъ все равно пишетъ программу какъ ремесленникъ. Математикъ объясняетъ, что и какъ вычислить, на языкѣ математики, но программистъ "переводитъ это на языкъ сапоговъ" и получаются опять те же сапоги. Всѣ формулы правильны, но программа не работаетъ, потому что перепутано имя перемѣнной, а python молча дѣлаетъ новую перемѣнную съ такимъ именемъ. Ну или потому что написано data_training = data_validation = data_test = dict() и всѣ три указываютъ на одинъ и тотъ же dict().
Главный вопросъ - нужны ли сегодня инженеры-программисты (скажемъ, для 100% verified compiler) или достаточно имѣть ремесленниковъ.
Мой отвѣтъ - инженеры не нужны, потому что сегодня падаетъ ожидаемое качество работы программистовъ. Поэтому скоро chatgpt 5.0 сможетъ ихъ замѣнить.
Примѣръ изъ функцiональнаго программированiя. "Надо ли знать монады"? "Надо ли знать систему типовъ Hindley-Milner?" "Надо ли знать, что такое лямбда-калькулусъ?" Отвѣтъ - если этого не знать, программистъ-ремесленникъ напишетъ программу гораздо хуже и будетъ мучаться съ ея отладкой. Но сегодня это не важно, потому что качество результата мало кого стало интересовать. (Вчера это тоже было неважно.)
no subject
Date: 2023-08-28 08:00 am (UTC)Нужно ли ремесленнику понимать "предметную область"? Сапожникъ можетъ сдѣлать сапоги для бизнесмена, а можетъ для математика. Тогда сапожникъ будетъ сначала спрашивать у бизнесмена, какiе ему нужны сапоги. Бизнесменъ что-то будетъ говорить, а сапожникъ "переводить на языкъ сапоговъ". Нѣтъ, сапожнику не нужно ничего понимать про инвестицiи или mergers & acquisitions. Сапожникъ долженъ дѣлать сапоги.
Даже когда предметная область касается математики, программистъ все равно пишетъ программу какъ ремесленникъ. Математикъ объясняетъ, что и какъ вычислить, на языкѣ математики, но программистъ "переводитъ это на языкъ сапоговъ" и получаются опять те же сапоги. Всѣ формулы правильны, но программа не работаетъ, потому что перепутано имя перемѣнной, а python молча дѣлаетъ новую перемѣнную съ такимъ именемъ. Ну или потому что написано data_training = data_validation = data_test = dict() и всѣ три указываютъ на одинъ и тотъ же dict().
Главный вопросъ - нужны ли сегодня инженеры-программисты (скажемъ, для 100% verified compiler) или достаточно имѣть ремесленниковъ.
Мой отвѣтъ - инженеры не нужны, потому что сегодня падаетъ ожидаемое качество работы программистовъ. Поэтому скоро chatgpt 5.0 сможетъ ихъ замѣнить.
Примѣръ изъ функцiональнаго программированiя. "Надо ли знать монады"? "Надо ли знать систему типовъ Hindley-Milner?" "Надо ли знать, что такое лямбда-калькулусъ?" Отвѣтъ - если этого не знать, программистъ-ремесленникъ напишетъ программу гораздо хуже и будетъ мучаться съ ея отладкой. Но сегодня это не важно, потому что качество результата мало кого стало интересовать. (Вчера это тоже было неважно.)