Что нужно программисту? -16



Прочитал статью «Математика для программиста». Удивительно, что в ней куча букв, но нет внятного смысла. Я решил исправить этот фатальный недостаток.



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


  1. Мостик из предметной области и задачи к разработчику.
  2. Мостик от разработчика к компьютеру.

Первая задача — инженерная. Это, собственно, процесс решения задачи, творческий этап.


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


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


Иной раз само кодирование простое, однако понимание того, что необходимо закодировать — является крайне нетривиальной задачей. Вплоть до исследований в computer science, когда необходимо сделать что-то новое, доселе неизведанное.


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


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




Комментарии (11):

  1. gleb_l
    /#23756235

    1. Формализация задачи (то есть, ЧТО нужно сделать)

    2. Решение (КАК сделать это самое ЧТО)

    Это приложимо вообще к инженерии, не только программной.

    • LARII
      /#23756479

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

      Или как мне сказали на одном местном предприятии: "Нам не нужно решение задач, нам нужен ответственный."

  2. DaneSoul
    /#23756465 / +19

    На Хабре что какой-то флеш-моб кто «статью» короче напишет?

    • nick1612
      /#23756775 / +3

      Важно еще соответствие содержания статьи всему множеству заявленных тем. - Программирование, Алгоритмы, Математика, Научно-популярное, Химия.

      Тут все четко - 5 из 5, "твёрдо по темам, сжато по фактам".

    • lastrix
      /#23758605 / +4

      Скоро хабр переименуют в твиттер и ограничат длинну статьи в 255 символов.

  3. valis
    /#23758431

    А я тут архитектором заделался как-то. Работал с разными командами разработчиков, во многих предметных областях. Знал как разрабов, которые легко войдут в любой Фреймворк и любую предметную область, так и тугих, которые застряли в конкретной области и на конкретном стеке и ничего не поделать

    Могу с уверенностью сказать что главное для разработчика два качества

    1. Умение учится

    2. Умение абстрагироваться.

    Второе даже по моему важнее ибо жить в одной предметной области и на одном стеке можно до пенсии (я и людей на Delphi 6 в 2021 году встречал), а вод абстрагирование для разраба крайне важно. Ибо это отличает разработчика от кодера.

    • HemulGM
      /#23762723

      Как абстрагирование связано со стеком? Какая разница какой стек используется?

  4. Mishima_Zaibatsu
    /#23758529 / +4

    Иной раз само кодирование простое

    "Болтовня ничего не стоит. Покажите мне код" © Linus Torvalds.

    У меня есть множество идей. Уже продуманных и решенных в уме. Осталось дело за малым — написать практическую реализацию. Которая мысленно тоже кажется несложной. Всего лишь сесть и написать код. Всего лишь. Ну вы поняли :)

  5. spooky
    /#23761165

    del

  6. lair
    /#23761339

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

    … написав статью, в которой, по крайней мере, нет кучи букв. Ну да, "исправили".