Пользователь
0,0
рейтинг
24 октября 2012 в 08:01

Разработка → Чем же занимаются программисты, и как объяснить это остальным? из песочницы


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

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

— Чем занимаются программисты? Это не так-то просто рассказать… Ответьте мне для начала: как в двух словах можно описать, например, суть профессии хирурга?
— Хирург проводит операции.
— Да, отличное описание! Ну а, скажем, футболиста?
— Играет в футбол!
— Угу, а хирург «занимается хирургией». А если без однокоренных слов?
— Пинает мяч?
— Вот это точно. А что же делает программист, кроме как «разрабатывает программы»?
— …
— Программист пишет код. Исходный код своей программы, составленный на каком-то специальном языке программирования. Точнее говоря, сначала он продумывает структуры своих данных, потом составляет алгоритмы для работы с этими структурами — ну а затем уже представляет это в виде кода.
— Что ещё за «структуры данных»? Разве он не управляет компьютером, не нажимает кнопки?
— Эх...



Миф №1: программист работает с компьютерами


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

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



Миф №2: машина умеет думать


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

— В общем, код любой программы представляет собой набор команд, а компьютер их тупо исполняет.
— То есть, он не понимает сути самих команд? Но как он воспринимает текст, который я ввожу на экране?
— Когда ты крутишь педали на велосипеде — понимает ли он, что ему сейчас нужно поехать вперёд?
— Нет, но ведь едет. Поскольку его цепь преобразует вращение педалей во вращение колёса.
— Именно! Также и компьютер преобразует введённый тобой текст в набор чисел.
— Каким образом?
— У каждого символа текста есть свой числовой код, который знает компьютер. Это называется кодировкой. Например, английская «a» кодируется числом 97, а знак равенства — числом 61.
— Поэтому машина и может понимать текст, который мы ей сообщаем?
— Нет, она «понимает» не смысл. А лишь то, каким образом этот текст хранить, и как к нему обращаться.
— Выходит, сначала мы вводим текст, затем компьютер разбивает его на символы, а каждый символ уже представляет в виде числа?
— Верно. Сложные структуры представляются в виде более простых, которые и «понимает» машина.

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



Миф №3: язык программирования нужен для составления алгоритмов


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

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

— Правда, многие из нынешних языков программирования уже содержат «в себе» набор заранее составленных алгоритмов, которые разработчик может использовать в качестве готовых. Поэтому язык всё же немного облегчает процесс составления алгоритмов.
— То есть, если один программист составил какой-то алгоритм, то его тут же могут использовать другие?
— Да, и это происходит постоянно. Это одна из причин, почему отрасль IT так быстро развивается. Однако новые алгоритмы приходится составлять самому.
— А составь какой-нибудь прямо сейчас!
— Легко. Классический пример: у вас есть книга, в ней 1000 страниц. Вам нужно открыть в ней, к примеру, 875-ю страницу. Как бы вы стали это делать?
— Ну, просто пробежал от первой до 875-й, только и всего.
— Угу, и придётся тебе глядеть на номер каждой страницы. А представь, если все их уголки слиплись — сколько времени тогда пройдёт? А вот мне достаточно перебрать лишь 3 страницы!
— Как?
— Вначале я выберу страницу, которая находится посередине книги, то есть 500-ю. Потом посмотрю: в какую из образовавшихся половин должна попасть искомая страница?
— Во вторую. А дальше что?
— То же самое. Интервал с 500-й по 1000-ю я снова поделю надвое, открыв центральную страницу. Получится интервал от 750-й страницы до 1000-й, в нём я опять выберу центральную. Какой будет номер?
— 750 плюс 125… Так это же и есть 875!
— Вот видишь. Всего 3 действия! Даже если я буду не совсем точен при выборе центральной страницы, я всё равно найду нужную намного быстрее тебя. Этот алгоритм носит название «дихотомия». Хотя в реальности программисты используют куда более сложные алгоритмы.
— И ты можешь записать его на бумаге?
— Конечно. Где там моя ручка?


Псевдокод
повторяем цикл:
	
        ищем(в книге, центральную_страницу);
	
        если (центральная_страница = искомой_странице)
                выходим из цикла;
	
        иначе
                если (центральная_страница < искомой_страницы)
                        удаляем(в книге, все страницы от первой до центральной);
                иначе
                        удаляем(в книге, все страницы от центральной до последней);

— Ну как, алгоритм ясен?
— Хм… Да, и впрямь ясен.
— Сейчас он записан в виде, уже слегка похожем на реальный программный код.
— А в чём отличия?
— В реальном коде все слова будут написаны на английском, а также будет заранее описана структура «книга» (помните, что я раньше рассказывал про структуры данных?). Плюс, для действий «ищем» и «удаляем» тоже будут составлены свои алгоритмы. Но в целом — всё то же самое.
— И ты занимаешься этим изо дня в день?
— В основном.
— И тебе не скучно?
— Ничуть!



Миф №4: программирование — это скучно


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

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

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



От автора:

Данный диалог вполне реален, вплоть до финальной реплики. Конечно, он порядком приукрашен — но, уверяю вас, примерно так всё и было ;)
Константин @Efrit
карма
22,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (235)

  • +18
    Феерическая расстановка точек над программистами
  • +25
    — В реальном коде все слова будут написаны на английском


    А вот это не факт
    • +12
      Да, Вы правы.
      Однако в большинстве ЯП всё-таки используется именно английский, поэтому я не стал вдаваться в подробности.
      • +11
        ChinesePython

        #!/usr/local/bin/cpython
        回答 = 读入('你认为中文程式语言有存在价值吗 ? (有/没有)')
         
        如 回答 == '有':
                写 '好吧, 让我们一起努力!'
        不然 回答 == '没有':
                写 '好吧,中文并没有作为程式语言的价值.'
        否则:
                写 '请认真考虑后再回答.'
        
        • +4
          Хм. По моему скоро будет очень актуально :)
          • +15
            Главное, чтобы не стало актуально это:

            image
        • +1
          вот это взрыв мозга
        • +3
          Кстати в некоторых языках, например в JS можно называть переменные кириллицей:
          var переменная = 2,
            окно = window,
            алерт = alert;

          окно.алерт(переменная);
          • +4
            Да во многих можно… C#, Ruby, etc.
            Только не нужно, please…
        • +3
          Вспомните 1С
          • +1
            И сразу забудьте!
        • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Как интересно. Закодированный код )
      • +1
        Вы на PHP обработку выгрузки товара из 1с в формате CommerceML видели? Жуткая смесь английского и русского.
        • 0
          Ну да, но ведь обычный XML. Ничего страшно.
    • +2
      Вы про Фортран?
      • +1
        В уме я держал 1С, но есть много разной экзотики, вроде BrainFuck, в этих языках вообще одни символы. В некоторых языках, вроде php специально для извращенцев добавили возможность писать с использованием почти всех символов unicode, включая русский язык
        • –3
          Так 1С же… ну не совсем язык.
          • +7
            Почему? Там есть встроенный вполне полноценный язык, заточенный под решение определенных задач по бух. и упр. учету. Можно, конечно, его не считать языком программирования, это вопрос исключительно терминологии, но тогда php и ява-скрипты тоже необходимо считать не языками программирования.
            • +1
              Я бы даже сказал что там два языка — язык программирования и язык запросов.
              Еще там код для 7.7 и 8.х очень сильно отличается, но это уже детали.
          • +3
            Да, 1С — технологическая платформа, а не язык ;)
            А вот внутренний ЯП 1С, каким бы… странным не был — работает. И нет никаких причин не называть его языком.
          • +1
            Вполне обычный императивный язык. Все базовые синтаксические конструкции присутствуют.
      • +1
        Про 1С
  • +33
    Убийца — деструктор
    • +32
      Угу, garbage collector — сотрудник крематория, а отладчик — патологоанатом.
      • +3
        Какой вы быстрый, однако)
        • +4
          Девелопер-следователь!
          • +2
            main-loop — сансара
      • +1
        отладчик — судмедэксперт :)
        • +1
          Реаниматор.
    • +1
      А garbage collector — главный злодей))
      • +2
        GC — всего лишь серийный убийца. Главный злодей — с противоположной стороны экрана.
  • +11
    А я когда завожу простой будильник на утро — чувствую себя программистом будильника. Ведь я «программирую» его выполнить действие «звонок» при выполнении условия «7:00».
    • +2
      В таком случае, все пользователи являются программистами, а разработчики пишут языки программирования, пусть и визуального.
  • +28
    В общем-то это объяснение с развенчанием мифов ещё не создаёт отличия от магии.

    Можно открыть любую классическую фэнтэзи и заняться тем же самым.

    «Миф №3: руны нужны для составления заклинаний».
    • +5
      В принципе, верно.
      Просто в нашем случае, люди часто даже не в курсе про наличие каких-то «рун» (языков программирования) и «заклинаний» (алгоритмов).

      А так, аналогия очень хорошая :)
      • +86
        [магический аналог]
        • +3
          Очень классная идея. Жаль, что в оригинальном изображении половина названий впонле понятны для обычных людей — так бы с удовольствием залил куда-нибудь.
      • +8
        Это подметил еще Артур Кларк в книге «Черты будущего»
        «Любая достаточно развитая технология неотличима от магии.»
        • +2
          А непосредственно о компьютерной Сети подметил, наверное, Вернор Виндж в «True Names».
    • +2
      С рунической магией такая шутка не прокатит.
  • +13
    >>Разве он не управляет компьютером, не нажимает кнопки?

    Таких стереотипов нет. А автор поговорил сам с собой, а не с реальным человеком. Не-программисту вообще плевать, чем там программист занимается. «управляет», «нажимает» — это словоблудие, никто задумываться не будет. Программист чё-то там делает и ладно. Бухгалтер деньги считает. Как? Фиг его знает. Директор управляет. Откуда он знает как лучше? Фиг его знает. И так все остальные профессии. Никто без особой нужды не будет даже задумываться о тонкостях не своей профессии.
    • +3
      Случается так, что заказчик начинает требовать объяснить за что он платит деньги.
      • +3
        Ну, за результат, очевидно.
        • +2
          Конечно очевидно! Но некоторые начинают лезть не в свое дело. Хорошо, что мало таких.
        • +1
          Результат бывает меньше чем в половине случаев. Которые по эффекту с лихвой покрывают провалы. Заказчик хочет сразу оптимизировать и оставить только те, которые «выстрелят».
    • +31
      «сидят целыми днями, кнопки нажимают, не работа, а фигня какая то»(с) — такой стереотип есть. И относится не только к программистам, а практически ко всем, кто делают свою работу на компьютере.
      • –5
        Это не стереотип, это шутливая подколка.
        • –6
          Минусующие не отличают, когда человек говорит в шутку, а когда всерьёз.
        • +5
          Вот не стоит так категорично. Сам лично на себе испытал такую «шутку», от коллег, которые по своей профессии занимались чисто физическим трудом. А я сидел за компом «нажимал кнопки и получал больше их». И жаловались они, ни разу не в шуточной форме.
          • –7
            Шутить можно и с серьёзным лицом. Они не имели в виду буквально то, что произносили, я уверен в этом.
            • +19
              О да. В этом мире нет зависти, нет зла, нет несправедливости. Все просто шутят. Безусловно. :)
              • –1
                Они не имеют в виду буквально, что суть его работы в нажимании кнопок. Это произнесено вслух, но это лишь упрощение. Имеют они в виду следующее: «Ты сидишь на стуле и занимаешься какими-то интересными вещами, и за это тебе платят деньги. Со стороны я вижу только нажатия кнопок, но не имею представления о сути твоей работы, поэтому вслух я упомяну только о кнопках, хотя знаю, что твоя работа заключается не только в этом. Возможно, твоей работой интереснее заниматься чем моей, и к тому же комфортнее. Хотел бы я оказаться на твоём месте, но обстоятельства так сложились, что я занимаюсь другим, и я этим недоволен».
                • +4
                  обстоятельства так сложились
                  И чьими руками они складывались? Кто в школе предпочитал бить очкариков, а не быть очкариком?
          • +2
            Что за «коллеги» с настолько различающимся типом труда и кругозором?
      • +11
        А токарь стоит и ручки у станка крутит. А шофер вообще сидит и только руль крутит и на педали нажимает.
        Каждый занят своим делом, всё нормально.
        • +2
          За них мотор работает, между прочим…
    • +2
      Позвольте не согласиться: когда-то давно я так же спрашивал своего будущего «сенсея». Да, согласен, так бывает редко… но бывает ;)
    • +9
      Тоже подметил такое. Какой-то собеседник у программиста очень любопытный и прямо-таки слёту понимающий. Попробуйте поговорить об этом с любым гуманитарием, результат будет другой. Не в обиду сказано.
      • +1
        Собеседников было 4 человека, и двое из них как раз были технарями (но не в IT).
        Конечно, понимали они всё не «слёту». Это я просто большую часть «уточняющих» реплик в статью не включил :)
      • +6
        Напоминает книги Кастанеды, там все книги построены на этом приёме — гуру-индеец и его любопытный собеседник. Вот только в реальной жизни так разговоры не строятся, выглядит ужасно неестественно.
  • +38
    > Чем же занимаются программисты, и как объяснить это остальным?

    «Метод называется «парное программирование». У сотрудников на двоих один стол и один компьютер. Один из сотрудников — «ведущий» — работает на клавиатуре и вводит в компьютер пароли. Другой, «штурман», следит за дизайном и проверяет компьютер на предмет наличия вирусов.» ©
    • +28
      Прекрасный, эталонный пример надмозга!

      Оригинал из комментариев:
      «Their method is „pair programming“—where two people share one desk and one computer. One person is the „driver,“ controlling the keyboard and typing in code. The other „navigates,“ monitoring design and scanning for bugs.»
    • +8
      Дааа Следит за дизайном и проверяет компьютер на наличие вирусов — это шикарно ).
      • +3
        «and typing in code» = «и вводит в компьютер пароли» — тоже неплохо.

        Если попробовать перевести оригинал гуглопереводчиком, то получится ближе к оригиналу: «Их метод „парное программирование“, где два человека делят один стол и один компьютер. Один человек является „драйвером“, управление клавиатурой и введя код.Других „переход“, дизайн мониторинг и сканирование на наличие ошибок.»
        • +8
          «and typing in code» и тупит в коде :)
    • +6
      … и лепит пощечины если «ведущий» отвлекся на фэйсбук.
  • +3
    А где ссылка на сайт?
    • +1
      В разговоре я рассказал про codeacademy.
      В статье я ссылку давать не стал, дабы не выглядело как реклама.
  • +48
    А я — серверный программист.
    • +29
      А я — алгоритмист
      image
      • +6
        А я сотрудник QA

        МАГ_и_Я.jpg
      • +13
        А я — экзорцист:)
        image
        • +9
          Казимир, перелогинься!
        • 0
          .
        • –6
          А я — слива лиловая.
          • –4
            А я — томат
    • +2
      «ГАМИЯ»…
  • +1
    Я думаю, вам гораздо проще было бы обьяснить собеседнику суть вопроса, если бы вы разделили программирование на составление алгоритмов(сюда же — выбор архитектуры и технологий) и кодирование (запись алгоритма понятным машине языком).

    * А хирург, как правило, ещё и диагноз ставит, а не только операции проводит
    • +2
      Ну да, проводит диагностическую операция и потом ставит по ней диагноз :)
      • +4
        диагностическое вскрытие
        • +1
          вскрытие показало, что пациент умер от вскрытия? (с)
        • 0
          Хирург — лапаротомию. Патологоанатом — вскрытие.
  • +1
    Спасибо! Что-то подобное в голове давно вертелось, но никак не сформировывалось в цельный текст. Теперь буду знакомых гуманитариев в вашу статью тыкать, которые ставят нашу профессию на одну ступень с бухгалтерией.
    • 0
      Слабо бухгалтерию выучить?
      • +2
        Моя девушка, по первому образованию математик, по второму экономист, работает бухгалтером и сильно жалуется на свою работу именно в плане рутины и механических действий. И завидует мне, программисту, как я с радостью бегу на работу после выходных.
        Если задел ваши религиозные чувства, искренне извиняюсь.
        • +1
          Нисколько :) Просто это известная привычка программистов считать себя умнее остальных. Сам программист со стажем 15 лет, если что :)
          • +1
            Издержки профессии :)
            • +1
              Издержки завышенного ЧСВ. Узнайте на досуге, сколько получает главбух/маркетологи (те которые политику компании продумывают, а не клиентов обзванивают). И подумайте — почему.
              • +5
                Вы теплое с мягким путаете. Я про интересность, а вы про заработок.
                В курсе. И в курсе почему.
                • +2
                  Сложная интелектуальная задача — всегда интересна. Когда можешь с ней справится, конечно. Не важно, какие алгоритмы составлять — как выдержать 10к запросов в минуту, или свести налоги к минимуму — это одинаково интересно. И кстати, именно за сложную и ответственную работу — как раз и платят много.

                  тут правда, надо учитывать, насколько ты любишь свою работу. Если чуствуешь, что это — не твоё, то стоит просто сменить работу, а не жрать кактус
                  • +2
                    Согласен с вами. Но в нашей стране не всегда именно так. Продавцы зарабатывают больше производителей, что, как минимум, нечестно.
                    • +4
                      То, что продавцы, получают больше чем производители — говорит лишь о том, что сложнее продать (почему — отдельный вопрос) чем сделать. Так что — всё честно.

                      Главное, на мой взгляд — перестать пытаться понять «почему всё так несправедливо!» и просто жить по текущим правилам: Продавцам проще живётся — ок, станьте продавцом. Не получается — ок, молчим и пишем программы дальше.
                      • +2
                        А вы занимались производством?
                        • 0
                          Не только занимался, но и занимаюсь. Я программист/scrum master
                          • +3
                            Программирование, конечно, тоже производство. Но я имел ввиду другое. Я работал в отделе, который производил некий физический прибор поштучно. Причем именно производил. Я наблюдал все этапы от проектирования плат до монтирования на мощностях заказчика. Если вы занимались только программированием, то вы даже не представляете, сколько это гемора.
                            А видел, как студент последнего курса кулинарного техникума заключил крупный договор о продаже и получил положенных 10% как премию. В деньгах это составило что-то около 3млн рублей. Он даже не знал, что с ними делать. Потом придумал — купил Ренджер Ровер Спорт. Нам бы, производителям, такую рентабельность.
                            • +2
                              Не завидуйте. То, что он заключил этот контракт — не значит что он упал ему с неба.

                              И самое главное — что Вам мешало заключить подобный контракт, и получить свои три миллиона?
                              • +3
                                Что помешало? Наверное, ЧСВ, которое уже было упомянуто. Не хочу быть продавцом, хочу быть созидателем.
                                • 0
                                  Тогда стоит осознать простую истину — когда вы делаете то, что Вам нравится, вы должны быть готовы за это чем то платить.
                            • +1
                              Нам бы, производителям, такую рентабельность.

                              Надо было лишь взять этого студента на работу за день как он заключил договор и получил бы он не 3 млн, а, в лучшем случае, 30 тыс премии. А ещё лучше самим этот договор заключить.

                              • +3
                                Вспоминается байка про Эдисона — «Я беру 1 доллар за удар, и 99 за то, что знал куда ударить»
                            • +1
                              Заключив договор, можно и на бабки попасть. Так что это плата за риск…
                            • +1
                              Насчет гемора не знаю, но работа сложная и интересная. На всех уровнях. И где производить и как тестировать платы, и что делать, когда вдруг прекратился выпуск какой-нибудь микросхемы (единственной на момент разработки, обладавшей нужными параметрами), и как организовывать тестирование/калибровку прибора (особенно, если он точнее, чем всё, что можно было бы использовать для контроля), и заказ дизайна/производство корпуса, и, конечно, поиск клиентов. Всё работа, главное, чтобы энтузиазма хватило до выхода на самоокупаемость.
                          • –3
                            Зачем вы написали, что вы скрам-мастер? Вы считаете это каким-то достижением?
                            • +1
                              меня спросили, занимался ли я производством, я посчитал нужным написать, чем я занимаюсь. Могу я узнать, что не так?
          • +3
            Так они и вправду умнее остальных…
        • +3
          Посоветуйте ей пойти в крупную фирму. Составлять договора, проводить теневые операции. Да в конце концов стать 1С-программистом (не зряж про них шуштят, что они наполовину бухгалтеры).

          А насчёт весёлости работы программистом — круто составлять алгоритмы (задача сеньоров и редких мидлов), а вот кодить — скучно и рутина.
          • +1
            Она работает крупной компании.
            • +2
              Значит джуниором/мидлом — если так можно выразиться. По работе приходилось много общаться с бухгалтером (делали интеграцию с 1С, встроенную мини-бухгалтерию, составлял договора с субподрядчиками) — да, куча глупых (с моей точки зрения) вопросов по ИТ, но блин, когда доходило до бухгалтерии — мы менялись ролями, и я, наверное, смотрелся не менее глупо.
              • +1
                В штате уже года 3.
                • +1
                  Мы ведь знаем, что это ни о чём не говорит. Я видел программистов с 20-летним стажем, и они были не больше чем мидлы. Поймите меня правильно, уровень определяется не временем в компании, а ответственностью, на тебе лежащей
                  • +1
                    Да, конечно, я это учел.
                  • +1
                    они были не больше чем мидлы

                    Обидно как-то звучит.
                  • +1
                    Я видел программистов с 20-летним стажем
                    На каком языке? Сегодня иметь стаж на приличной Яве больше 10 лет просто физически невозможно…
                    • +1
                      Стажем в отрасли. Не вижу проблемы.
                      • 0
                        … стажем говнокодерства в отрасли… тоже не вижу проблемы…
                        • 0
                          Вы, видимо, принципиально не видите возможности работать в отрасли и не быть говнокодером.

                          Поучительно, да.
                          • –1
                            До 2002 — 2004 года — практически да.
                            • 0
                              Расскажите это Фаулеру, МакКоннелу и Казману. Это если не думать.
                              • 0
                                У Фаулера имеются большие заслуги по части обесценивания стажа работы до 2002 года в ИТ-отрасли…
                                • 0
                                  То есть его собственный опыт вам ни о чем не говорит.

                                  Круто.
                                  • 0
                                    «Опыт» есть у «всех», а лавры «основателя теории рефакторинга» приписываются почему-то именно Фаулеру (хотя он вроде как только основной популяризатор). Скорее всего, заслуженно. Значит, у него есть что-то кроме кроме опыта, и это «что-то» значит намного больше, чем этот «опыт»… Насчёт его опыта — ну, я не настолько хорошо его знаю, чтобы судить о его опыте…
                                    • 0
                                      лавры «основателя теории рефакторинга» приписываются почему-то именно Фаулеру (хотя он вроде как только основной популяризатор). Скорее всего, заслуженно

                                      Незаслуженно. Материалы по рефакторингу впервые появились в 1991 году.

                                      Насчёт его опыта — ну, я не настолько хорошо его знаю, чтобы судить о его опыте…

                                      Зато вы, видимо, настолько хорошо знаете всех остальных людей с опытом работы до 2002 года, чтобы о них судить.
                            • 0
                              А до 90х все жили в пещерах, ага.
                              • 0
                                С++ по сравнению с Java — где-то так и есть…
                                • –1
                                  Не холивара ради, а интереса для :)

                                  Чем же, по-Вашему, нынешний C++11 со своим вполне «сахарным» синтаксисом, удобными смарт-поинтерами и кучей готовых быстрых алгоритмов из настолько хуже Явы?
                      • 0
                        <сарказм>А, забыл, плюс ещё и руководящей работы...</сарказм>
                        • +1
                          Ну впрочем да, если вы считаете программистов (причём как я понял исключительно кодеров на языках новой волны) вершиной эволюции, то Руководитель наверное мнится вам этаким большим глупым дядькой, нифига не понимающим, но вечно требующим всякую фигню
                          • 0
                            Руководитель наверное мнится вам этаким большим глупым дядькой, нифига не понимающим, но вечно требующим всякую фигню
                            Челом из числа ваших «Я видел программистов с 20-летним стажем, и они были не больше чем мидлы», вовремя отхватившим у судьбы счастливый билет — в 80% случаев…
                          • 0
                            1) Почему эта «новая волна языков» вообще распространилась? Почему людей перестал устраивать тёплый ламповый С++, как в середине 1990-х?

                            2) С появлением встроенного в IDE рефакторинга любой «кодер», повылизывав месяц свой код, сможет ощутить, что такое хороший код и хороший дизайн программы. Так что «кодеры» подтягиваются до уровня «программистов» и понятие «кодер» всё более становится анахронизмом.
                          • 0
                            С 2004 года слышу, что существуют какие-то «кодеры», которые сами не составляют никаких алгоритмов, но до сих пор так не с одним и не пообщался… Может они бывают только на С++ и 1С (на первом последний раз что-то писал в 1997, а на втором — ничего и никогда), а не на Яве?
                    • +2
                      А на неприличной? :)

                      запомните, Программист — это не на языке. На языке — это кодер. А алгоритмы от языка мало зависят (если мы говорим о языках со схожей парадигмой). Как и умение их создавать
                      • –3
                        Программист — это не на языке
                        Три года назад я для себя открыл, что программист — это на IDE. Продвинутая IDE позволяет на соответствующем языке менеджить в десять раз больше закодированной функциональности;-)

                        А на неприличной? :)
                        Если умножить количество строк кода, которые чел менеджил, на количество лет, в течение которых это было, то доля неприличной будет мала… так что можно не брать в расчёт…
                        • +1
                          Вам не приходит в голову, что именно необходимость вручную оперировать существенно большим объемом кода и информации, чем сейчас и с помощью IDE, приводит к возникновению ряда полезных навыков, на которых построено половина современных практик разработки?

                          Да, люди разрабатывали медленнее, а совокупная сложность систем была ниже. Но опыта (в том числе и очень полезного) это никак не отменяет.

                          Если умножить количество строк кода, которые чел менеджил, на количество лет, в течение которых это было, то доля неприличной будет мала…</blockquote.
                          Вообще-то, ровно наоборот. То, что раньше требовало сотен и тысяч строк кода, сейчас укладывается в одну-две.

                          Ну и да, если бы вы знали, что code is a liability, вы бы не меряли работу строками кода. У нас вот количество кода в системе (не считая тестов), которую мы ведем два года, уменьшается. А количество функциональности — увеличивается.
                          • 0
                            У нас вот количество кода в системе (не считая тестов), которую мы ведем два года, уменьшается. А количество функциональности — увеличивается.
                            Без нормального языка и нормальной IDE позволить себе такую роскошь практически невозможно.

                            Да, люди разрабатывали медленнее, а совокупная сложность систем была ниже. Но опыта (в том числе и очень полезного) это никак не отменяет.
                            Особенно выращенного на многодетнем опыте убеждения, что «дешевле выкинуть и переписать с нуля, чем вникать и исправлять»… Да, процентов 20 того опыта полезны и сегодня. Только даже не всем повезло тогда набраться такого, полезного сегодня, опыта…

                            необходимость вручную оперировать существенно большим объемом кода и информации, чем сейчас и с помощью IDE, приводит к возникновению ряда полезных навыков, на которых построено половина современных практик разработки?
                            Привела в конце концов к встраиванию средств анализа кода и автоматизированного рефакторинга в IDE. А до этого — ну да, привела к появлению навыков хорошего оформления и ручного форматировния нового набираемого кода…
                            • 0
                              Без нормального языка и нормальной IDE позволить себе такую роскошь практически невозможно.

                              Кто вам это сказал?

                              Автоматические тесты и компилятор были существенно раньше ваших «нормальных IDE», а базовые подходы рефакторинга опираются именно на них. И Pragmatic Programmer тоже написан больше, чем десять лет назад.

                              Особенно выращенного на многодетнем опыте убеждения, что «дешевле выкинуть и переписать с нуля, чем вникать и исправлять»…

                              Это утверждение верно до сих пор. Просто современный бизнес предпочитает сделать дороже, но без потери преемственности.

                              А до этого — ну да, привела к появлению навыков хорошего оформления и ручного форматировния нового набираемого кода…

                              Макконнела вы, видимо, не читали. Иначе бы знали, что дело далеко не в хорошем оформлении и форматировании, дело в сокрытии информации, структурировании кода и именовании.

                              Как раз сейчас «хорошая IDE» позволяет в один клик перейти к телу метода, посмотреть его, а потом вернуться обратно — и все это не теряя контекста; поэтому многие позволяют себе плевать на именование под лозунгом «все равно посмотрят».
                        • +2
                          Три года назад я для себя открыл, что программист — это на IDE. Продвинутая IDE позволяет на соответствующем языке менеджить в десять раз больше закодированной функциональности

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

                          А ваши текущие рассуждения похожи на «Раньше этот математик был идиотом, т.к. разговаривал на русском языке. Но пять лет назад он выучил английский и пару жаргонных выражений — и стал значительно умнее»
                          • 0
                            «Раньше этот математик был идиотом, т.к. разговаривал на русском языке. Но пять лет назад он выучил английский и пару жаргонных выражений — и стал значительно умнее»
                            «Раньше этот математик был идиотом, т.к. пользовался римскими цифрами и не знал математической нотации, т.е. вместо '8*16=128' писал 'VIII multiplicate per XVI es CXXVIII' (латынь не знаю, поэтому пишу на интерлингве). Но пять лет назад он выучил арабские цифры и современную математическую нотацию — и стал значительно умнее»
                            • 0
                              Вот как раз тут вы не правы. Он не стал умнее, он получил более эффективный инструмент.
                          • 0
                            Быть может, ещё через 3 года Вы поймёте, что код — это лишь изложение мыслей разработчика, алгоритма, а не то, ради чего затевался весь сыр-бор.
                            До этого я в течение 15 лет полагал, что «хорошо программировать можно и в текстовом редакторе». Так что такое «Я видел программистов с 20-летним стажем, и они были не больше чем мидлы.», я очень хорошо представляю. Мидлы — это в лучшем случае. Если уже давно не выбились в «руководители» (которые нередко не могут заменить в качестве разработчиков тех, кем руководят)…

                            Да, а ещё я понимаю, что программирование — это в большей мере структуры данных, чем код…
                            • 0
                              Если уже давно не выбились в «руководители» (которые нередко не могут заменить в качестве разработчиков тех, кем руководят)…

                              А должны? Вообще-то это совершенно не обязательно.
                            • +1
                              Уважаемый, мы разговариваем о разных вещах. Выши рассуждения — это рассуждения секретарши: «Раньше я набирала текст на печатной машинке, а сейчас пользуюсь компьютером — Всё так класно стало!» Вот только для руководителя, который диктует текст — особой разницы нет.

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

                              И да, руководитель решает несколько иные задачи, чем создавать алгоритмы работы программы. так что и уметь выполнять работу подчинённых ему не обязательно. Хотя и полезно
      • НЛО прилетело и опубликовало эту надпись здесь
        • +3
          Замените слово «бухгалтер» на «программист» — и получите взгляд со стороны, на программистов. И да, один мой начальник (не ИТ) когда то так прямо и заявлял — скоро программистов не будет, всё будет делаться автоматически
          • НЛО прилетело и опубликовало эту надпись здесь
            • +3
              работа бухгалтера полностью автоматизирована

              Если полностью, то бухгалтер не нужен. А он нужен. Странно?

              работа программиста практически нет

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

                    Боюсь, у Вас слишком упрощённое понимание работы бухгалтера в стиле «приход-расход-налог=прибыль»
                    • НЛО прилетело и опубликовало эту надпись здесь
                  • +1
                    Читал недавно про «работу» вируса. Уточняю, белкового вируса ;-). Там этапов типа «генератор кода генерирует код генератора кода» штук двадцать.
                    • НЛО прилетело и опубликовало эту надпись здесь
              • НЛО прилетело и опубликовало эту надпись здесь
                • 0
                  Почему это делают люди?

                  Потому что только человек может сопоставить все участвующие в операции факторы с действующими нормами.

                  Неужели компьютер уже сам может писать программы?

                  Да. Термин «метапрограммирование» вам не знаком?
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • +1
                      Человек там нужен только лишь для того, чтобы принимать решение в нестандартных ситуациях.

                      Я не знаю, как в мире, а у нас в стране каждая третья ситуация нестандартная.

                      Ну и да, программирование тоже крайней формализованный процесс. Если его входные данные стандартизовать до той же степени, что в бухучете, половину программистов можно будет уволить.
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • +2
                          Осталось быть последовательным и сказать «так же, как и бухгалтеры, которые просто вбивают цифры».
                          • НЛО прилетело и опубликовало эту надпись здесь
                  • +1
                    Термин «метапрограммирование» вам не знаком?
                    И часто вы занимаетесь им за деньги?
                    • 0
                      Ну да, а что?
                • +4
                  1. Почему это делают люди?

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

                  2. Зачем это вообще нужно делать

                  Учёт и агрегация raw-данных для анализа. Нужен «всем» от руководителей и владельцев предприятий для обоснованного принятия решений и контроля их выполнения до государства для проверки правильности исчисления налогов. Если про различные правила, имеющие отношения к физической безопасности людей, говорят, что они написаны кровью, то положения об учёте написаны рублём убытков (включая недополученную прибыль).
                  • НЛО прилетело и опубликовало эту надпись здесь
                    • +2
                      1. Хоть один случай когда программиста посадили за ошибку в коде можете привести? Не за создание заведомо зловредного кода, а за ошибку?

                      2. Опять же, хоть одно надуманное правило БУ?
                      • НЛО прилетело и опубликовало эту надпись здесь
                        • +2
                          2. Посмотрел сейчас в вики — двойная запись появилась 500 лет назад в европейской традиции, а ещё раньше у инков. Просто так взяли и надумали, причём независимо друг от друга на разных континентах, разделенных океанами и практически не имеющих сообщений? И пользуемся 500 лет? Двойная запись — это, прежде всего, инструмент для статистики и аналитики. А многие люди применяют её даже не подозревая об этом.Взял человек бумажку, написал слева сколько у него денег есть, а справа сколько он должен, потом отдал долг и обе цифры уменьшил — вот и двойная запись. Была бы запись одинарная (записывал бы только общее сальдо в один столбик) он бы не смог ответить на вопрос сколько у него денег и сколько он должен. Согласитесь, знание того, что у вас 100 рублей в плюсе даёт намного меньше информации для принятия решений, чем знание, что у вас 100 рублей, и никому не должны, или 101 рубль и рубль должны, или 1000000, а должны 999900. В первом случае можно вообще не переживать о долгах, во втором отдать рубль и тоже не переживать, а вот в третьем трижды подумать чем отдавать, особенно если срок возврата не пришёл.
                          • НЛО прилетело и опубликовало эту надпись здесь
                            • +2
                              В чём же она анахронизм? Руководителю предприятия не нужно знать сколько у него активов и пассивов и как они они распределены?
                              • НЛО прилетело и опубликовало эту надпись здесь
                                • +1
                                  Чьих трудозатрат? Бухгалтеру всё равно какие первичные документы вводить, а компьютеру почти всё равно как их учитывать. Вам неудобно реализовывать учёт по двойной записи? Реализуйте как хотите, лишь бы отчёты выдавались стандартно.

                                  Чем он безумен? По мне так вполне логичен, по крайней мере те разделы, с которыми приходилось плотно работать.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                  • 0
                                    >>Вам неудобно реализовывать учёт по двойной записи? Реализуйте как хотите, лишь бы отчёты выдавались стандартно.

                                    Как угодно вести нельзя, есть определенные требования налоговой по ведению бухгалтерского и налогового учета, среди них есть двойная запись и определенный план счетов. Те, кого не устраивает учет по двойной записи обычно ведут еще и управленческий учет, построение которого имеет мало чего общего с бухгалтерским
                                    • 0
                                      Налоговая будет ковыряться в исходниках и проверять существуют в коде сущности актив и пассив? Я думал, главное для них чтобы бумаги (представления данных, вьюшки) соответствовали требования, а внутри хоть вообще ведите учёт только первичных документов, формируя отчёты on demand.
                                      • 0
                                        Налоговая может ковыряться в оборотно-сальдовой ведомости, ведение которой я не представляю без ведения бухгалтерского учета с двойной записью и стандартным планом счетов
                                    • 0
                                      «It's just a view»
                                    • 0
                                      Вот, «требования налоговой». От этого и пляшут. Бухучёт выполняет в РФ функции налогового учёта. А нужен ли он самим хозяевам предприятия и начальству или им хватит управленческого — это дело десятое.
                              • 0
                                Руководителю предприятия не нужно знать сколько у него активов и пассивов и как они они распределены
                                Это — несколько другое, управленческий учёт. И не полуабстрактных «активов» и «пассивов», а более конкретных важных вещей.
                • +2
                  хитрые бухгалтеры
                  Налоговую и изобретателей норм, допускающих тройной толкование, вы благополучно упустили…
                  • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            скоро программистов не будет, всё будет делаться автоматически
            Ещё раньше не будет начальников;-) По той же самой причине.
        • +5
          Сегодня, в XXI веке, когда космические корабли бороздят, в правительстве все еще сидят какие то депутаты, чью работу вполне успешно, более качественно и быстро может сделать компьютер. Почему?
          • +4
            Неправда. Ни один компьютер еще не додумался принять RFC о запрете пропаганды нарушения полярности аппаратных контактов:)
          • НЛО прилетело и опубликовало эту надпись здесь
        • +2
          Угу: «Налоговые декларации отправляйте на электронный ящик, по адресу: ул. Ленина, д.12»
          • НЛО прилетело и опубликовало эту надпись здесь
        • +1
          Это не сарказм. Так и есть. И отнюдь не только бухгалтерия. Ещё и налоговики и нормотворцы и законодатели…
          • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Ну так создайте ПО, полностью заменяющее бухгалтера. Да любой руководитель, у вас такое за большие деньги купит. И будете богаты.
            • 0
              Сначала создайте ПО, полностью заменяющее тех, кто издаёт (и постоянно изменяет) законы и нормы, которым должна подчиняться бухгалтерия…

              «Когда программисты придут к власти, многие ведомства будут заменены на скрипты»…
  • +1
    Скинул почитать родителям. )
  • +2
    Ну, просто пробежал от первой до 875-й, только и всего.

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

    Да, это тот же самый алгоритм поиска.
  • НЛО прилетело и опубликовало эту надпись здесь
    • +2
      Я ему Паскаль посоветовал — сам с него в школе начинал когда-то. Считаю его хорошим языком для обучения программированию, хотя сам сишник.
      • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Питон не дидактичнее, нет?
        • –1
          Питон — отличный язык, очень удобный для профессиональной разработки.
          Однако для обучения, на мой взгляд, лучше выбрать язык со строгой статической типизацией — с неё потом легче «перейти» на динамическую, чем наоборот.
          • 0
            Тогда следующая пусть Java.
            • 0
              Просто Java достаточно профессиональный язык (и платформа), похож на C++, но гораздо проще (иногда мне кажется, что даже проще JS).
  • +5
    Зачем вы вообще рассказываете это совершенно не знакомые с IT людям. Меньше знаешь лучше спишь -)
  • +3
    А по мне, это не те мифы, которые действительно стоило бы разоблачать в массах. Это больше подходит для понимающих и желающих разобраться.

    Гораздо более насущная проблема избавить от таких стереотипов: ithappens.ru/story/9039

    Извините, очень наболело. Я уже машу рукой на то мнение, буд-то я сижу целыми днями, тыкаю кнопки безраздумно, и за такую халяву гребу деньги лопатой.
    • +10
      Не вы один страдаете от непонимания сложности профессии. К сожалению, чтоб понять — надо попробовать. И
      Анекдот в тему
      Мастер, вытирая руки, сдает машину клиенту и попутно с ним болтает:
      — А вот вы кем работаете?
      — Хирург, операции на сердце провожу…
      — И много платят?
      — 20 000$ за операцию…
      — Вот блин… ведь по сути одно и то же делаем, ты движки перебираешь
      и я тоже… а мне всего 300 баксов платят…
      — Хочешь так же как я получать?
      — Конечно!!!
      Хирург достает из кармана пачку баксов, ЗАВОДИТ ДВИЖОК…
      — Перебирай…
      • +1
        Я страдаю скорее от непонимания сферы моих обязанностей.
  • 0
    Я бы вообще не стал так себя утраждать объяснениями. Если кто-то думает стереотипами, значит этому человеку большего не надо, в таком случае, зачем все эти лекции?
  • +9
    >>Миф №1: программист работает с компьютерами

    «Если информатика — это наука о компьютерах, то астрономия — это наука о телескопах» (с) кто-то из классиков
  • +4
    >>Миф №3: язык программирования нужен для составления алгоритмов
    Хорошая шутка про программиста, который не может сразу открыть 875ю страницу, но без проблем открывает 500ую…
    • +3
      Так открывает же не 500ую, а середину книги (в коей 1000 страниц, об этом же сказано)
      • +4
        Что же так буквально… Речь о том, что пример не очень удачный. Прошивка моей бабушки содержит такой алгоритм: 1. Зная объем книги, примерно открывает искомую (делит девять к одному) 2. Листает несколько страниц до нужной. Человеку далекому от программирования стоит показывать такие примеры, которые он сможет с пользой применить в обычной жизни. Иначе можно подумать, что программисты вообще дебилы: для поиска нужной страницы сначала алгоритм выдумывают, а потом методом половинного деления начинают искать; да еще думают, что нормальный человек последовательно перелистывает все страницы с 1 до искомой.
  • +2
    А с каких пор в строительстве отменили панельные дома?
    • +2
      Сложно строить без знания внутренней архитектуры комбинатских панелей. К тому же в панелях часто бывают баги — например, при изменении размера окна трескаются стекла.
      • +2
        Комбинат выпустил новую версию панелей, не совместимую с предыдущей
        • +2
          Да и вообще — строить надо из кирпича, не по-ламерски.
          • +1
            Не, это я вообще про реплику в статье, что все строители вынуждены строить из кирпича, что по факту — давно не так, в пример привел панельные дома — дома сразу строятся из комнат, а некоторые вообще из этажей, а в статье автор утверждает, что это впринципе не возможно.
            • +1
              В комментах выше — цитаты из древнего, но прелестного бояна «Если бы программисты строили дома».
              Насчет принципиальной невозможности — ну да, у программиста есть принципиальная возможность построить город одним действием: (new CityBuilder())->buildCity();. Строитель так не сможет.
              • +1
                Откуда цитата я знаю, но вот про (new CityBuilder())->buildCity() — незадача — программист напишет это на бумаге (ну или в программе) и по факту еще ничего не будет построенно, пока программа не выполнит это действие. Для примера возьмем в качестве строителя — главного архитектора города, который опишет план города (я не знаю как там у архитекторов это называется), а там уже скажет — постройте. Такая аналогия со строительством более правильная. Т.е. программист — это архитектор (в строительстве), а компьютер — это уже рабочий, который кладет кирпичи и который, так же как компьютер не думает что ему делать — просто выполняет план, инструкции и приказы.
                • 0
                  Эта аналогия годится только для программ на ассемблере или, скорее, машинных кодах. Большинство современных архитекторов предпочитают рабочих, каждым действием которых руководить не нужно, да и вообще от рабочих держаться подальше. Им нужны проектные отделы (трансляторы языков высокого уровня) с базами наработок типовых узлов (либами), а то и основ здания целиком (фреймворками), ИТР на линии (среды исполнения), а уж рабочих (процессор) они вообще никогда могут не увидеть, разве что из любопытства, и то могут языка не понять (нужно ассемблер хотя бы учить) :)
                  • +1
                    Эм, я не понял — вы согласны со мной или нет?
                    • –1
                      Отчасти. От того, что программист напишет (new CityBuilder())->buildCity() ничего не появится. Тут согласен. Но вот если Самый Главный Архитектор (Сталин там, или Пётр Первый) напишет и передаст просьбу выполнить архитекторам, то появится :) Про рабочих ему ничего знать не нужно для этого, слишком низкоуровневая абстракция для него :)
                      • +1
                        Петр I в этом случае аналог менеджера проекта. Все сходится. Программисту на языке высокого уровня так же, в общем случае, ничего не нужно знать про конкретных рабочих.
  • 0
    Инженерам, да и вообще людям работающим большей частью с формализованными системами как-то проще объяснять: Я пишу инструкции по обработке «документов», которые должна понять не то, что обезьяна, а тупая машина под названием «компьютер». И как в любой инструкции могу опустить или неправильно написать какие-то вещи, имея в виду их очевидными или сам до конца не разобравшись.
  • –8
    Однако новые алгоритмы приходится составлять самому.

    Вы придумали бинарный поиск?
  • +2
    >>> Это бездумный болван, который лишь выполняет команды программиста.

    Один достаточно известный человек (каюсь, сам забыл фамилию) сказал: «Компьютер мне все больше и больше напоминает полного идиота, наделенного феноменальной способностью к счету»
    • +2
      Он (компьютер) выполняет очень простые инструкции — возьми число, прибавь его к другому числу, сравни результат с третьим, но он выполняет их со скоростью 1 000 000 в секунду. А на скорости 1 000 000 в секунду результат уже кажется волшебством.

      Стив Джобс, интервью в журнале Playboy, 1985г.
  • +1
    Похоже я только сейчас начал понимать разницу между программистом и веб-разрабом. Всегда считал — строчить синтаксис — предел совершенства…
  • +1
    мне понравился ваш пример на псевдокоде
    • +1
      Бедная книга…
      • +1
        Книгу не жалко, у неё уголки страниц и так склеены :)
        • +1
          Это не повод удалять из неё половину страниц (а в конечном итоге — все, кроме одной, если не повезло).
          • +1
            Не знакомые с программированием люди лучше понимают действие «удалить ненужные страницы», нежели «выбрать участок нужных».
            • +1
              А сами при этом удерживают нужный участок двумя пальцами, не заморачиваясь тем, чтобы портить книгу. Впрочем, незнакомые с программированием люди часто не понимают, что и почему они делают — главное, что оно работает. Со знакомыми с программированием, конечно, та же история. Условные рефлексы — великая вещь :)
  • +1
    «В реальном коде все слова будут написаны на английском», да ну?
  • +1
    Энциклопедия Профессора Фортрана, издание второе, дополненное
    Нет, серьезно, именно картинки из этой детской книжки у меня в голове всплывали иллюстрируя по ходу статьи… :)
    Автор, спасибо.
  • +1
    — А если машина захочет исполнить это как-то по-другому?

    Тогда мы спишем эту машину в утиль, а взамен купим новую.
  • +1
    К программистам обыватели более-менее привыкли. Несколько сложнее объяснить, что делает системный аналитик. Обычно говорю, что это вроде программиста, только он больше общается с клиентом и практически не работает с написанием самой программы :) Если же обыватель ещё менее компетентен, то всех объединяет в общий класс: «компьютерщики» и дальше вникать не хочет.
  • +1
    Миф №5: Мы думаем о том, что мы думаем.
  • 0
    Программирование — это разбиение сложной задачи на более простые подзадачи понятные исполнителю.
    Анатолий Вассерман

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.