neophyte
neophyte личный блог
25 мая 2018, 12:23

Магия программирования

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

Добавлю для программистов.
Вы, ребята, простые переводчики. Хорошие или плохие, но вы переводите алгоритм пользователя на язык, который понимает машина.
Алгоритм, который дает вам заказчик, это подстрочник того, что он хочет. Подстрочник этот уже является переводом смутной идеи, созревшей в мозгах заказчика, на общепринятый язык слов, понятный другому.
Подстрочник всегда беднее оригинала. В нем содержатся пробелы и пустые места, которые либо были настолько очевидны заказчику, что он не считал нужным об этом говорить, либо он их в упор не видел из-за своей тупости или из-за ущербности идеи в целом.
Дальше начинается ваша работа, от правильности которой зависит конечный результат. Но если нет идеи вам нечего кодировать. Языки программирования не являются источником идей, развивающих ту или иную область экономики или иной человеческой деятельности. Если идея плоха, то при все вашей переводческой гениальности результата тоже не будет. Будь вы семь пядей во лбу, как программист.
13 Комментариев
  • Чужой
    25 мая 2018, 12:32
    Чтобы делали программисты если бы вы им все не разжевали?)
  • Replikant_mih
    25 мая 2018, 12:35
    Мм, и да и нет. Понятно, что язык программирования это просто язык программирования. Но действительно между идеей и реализацией огромная пропасть, даже между ТЗ и реализацией пропасть, даже между суперподробным ТЗ и реализацией пропасть, а вот тут уже талант, опыт и т.д. программиста играет ключевую роль. Язык предоставляем миллион возможностей, миллион путей решения одних и тех же задач, миллион способов дойти из точки А в точку Б, так что то, что вы описали справедливо только для некоего абстрактного (читай несуществующего) идеального высокого уровня детализации описания задачи программисту.
      • Replikant_mih
        25 мая 2018, 14:55
        Николай Скриган, да, поэтому, например, зарплаты программистов могут отличаться не только на десятки процентов, но и в разы, и, наверное, на порядки, потому что это действительно разные программисты. Многие с кем мне приходилось работать, хороши технически, но только единицы так же хороши в понимании «человеческого языка» — они или слишком буквально все воспринимают, не понимая аналогий, сбстракций или не умеют решать задачи, если они недостаточно детализированы — ну тупо или зависают, или засыпают вопросами или если сами делают, то часто какую-то дичь, а так же многие не умеют погружаться в нужную предметную область. А некоторорые — ну приятно работать с такими)) — иногда можешь просто зацепить идею и чувствуешь как он её налету подхватил, развил и через какое-то время реализовал и хорошо реализовал.
          • Replikant_mih
            25 мая 2018, 15:30
            Николай Скриган, да, да, всё верно :)
  • Jame Bonds
    25 мая 2018, 12:40
    Смешно.
    Для меня программирование все еще попахивает магией.
    Но тем не менее:
    Вы, ребята, простые переводчики.

    Программист — человек, который знает язык, а не переводчик.
  • bocha
    25 мая 2018, 12:49
    Товарищ Сталин, помнится, о языкознании писал. И тоже с глубоким пониманием сути.
  • Виктор
    25 мая 2018, 12:52
    приходи когда познаешь дзен )
  • MK
    25 мая 2018, 13:05
    Не то что я защищаю программистов, но варианты, где программист — обычный «переводчик» — это идеальный мир. Если заказчик в состояние был бы абсолютно детально и понятно описать не разбирающемуся в теме человеку, что ему надо — то да, от программиста бы не требовалось ничего, кроме знания языка программирования. Но мы живём не в идеальном мире. 1С программисты все поголовно знают хотя бы основы бух. учёта.  Создатели вычислительных программ должны знать выч. математику и оптимизацию, иначе они не смогут понять, работает ли написанная ими программа или нет. Продолжать можно долго.

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

    Вы сами указали, что «подстрочник» всегда беднее оригинала. Но если программист вообще не разбирается в теме «оригинальной идеи» и не знает даже основ, то не сможет создать хоть мало-мальски рабочий продукт.
    Это как контекст у переводчиков — если дать переводить техническую литературу переводчику, знакомый только с худ. литературой, то перевод будет литературно правильным, но некорректным по смыслу. Как и переводчик, так и программист, обязаны владеть контекстом, хотя бы на уровне базовых знаний.
  • Unworldly
    27 мая 2018, 09:25
    Для меня программирование все еще попахивает магией.

    Она ещё и многослойная там.

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


    В это месте самые миролюбивые программисты не смогут не заулыбаться.

    Примерно так же, как не сможет не заулыбаться отец, которому его 6-летний сын только что заявил: «Я всё знаю (о мире)».

    Программисты — это не переводчики. Это — создатели. Боги.

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

    Если уж проводить параллели, то программисты куда больше похожи на писателей, нежели на переводчиков…

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн