Page 3 of 5 FirstFirst 12345 LastLast
Results 41 to 60 of 97
Like Tree4Likes

Thread: Программирование

Hybrid View

  1. #1
    Почтенный гражданин pushvv's Avatar
    Join Date
    Nov 2012
    Posts
    400
    Rep Power
    11
    И над чем размышляет программист? XD Программист, обычно реализует алгоритм, используя при этом один из языков (sic!) программирования. Иногда, конечно, приходится придумывать алгоритмы, но это можно сравнить, например, с написанием стихов =) По большому счету что корейский, что паскаль, что галиматья в 1с - тоже набор слов, конструкций, правил. Всякие хитрые приемы, которые позволяют изъясняться эффективнее. Ну и так далее. В принципе можно и анатомию свести к конечным автоматам, внутренние управляющие сигналы, внешние датчики, триггеры, память, механизмы доступа и так далее...

    >>Может быть, лучше сказать, что это какой-то сочетание между языками и математикой

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

    При этом язык, в общем, тоже нужен для описания окружающего мира.

  2. #2
    Banned
    Join Date
    Aug 2006
    Location
    С.-Петербург
    Posts
    1,829
    Rep Power
    0
    Quote Originally Posted by pushvv View Post
    И над чем размышляет программист?
    Хороший программист должен размышлять надо всем. Над выбором переменных и констант, над их именами и комментариями к ним, над названиями функций и подпрограмм, над набором параметров этих функций, над размером подпрограммы (в идеале это страница), над структурой программы, над количеством комментариев в программе, над составом библиотеки вспомогательных программ, над интерфейсом программы, над понятностью кода другому программисту и т.д.
    Об этом написаны книги. Например, Ван Тассел: "Стиль, разработка, эффективность, отладка и испытание программ". В моё время это был бестселлер.

    Это было про стиль. А ещё есть содержание. Там вообще голову можно сломать. Я занимался имитационным моделированием морских процессов. Приходилось моделировать распространение звуковой волны в воде и т.д. И надо было в одной модели с заданной точностью моделировать процессы, которые идут на очень разных скоростях. Пришлось придумать метод пересчёта шага по времени (метод дельта T). Там кандидатские и докторские светили. Вообще, я не знаю более интересной работы, чем инженер-программист. Это захватывало так, что думал об этом и в транспорте, и несколько дней в отпуске, пока не отпускало.
    Но есть одно но. Интересно делать только свои программы. Чужие причёсывать не интересно.
    Вообще, сделать программу объёмом 100 листов и чтобы она была без ошибок - это уже не тривиальная задача. Это может только человек со стилем.

  3. #3
    Завсегдатай it-ogo's Avatar
    Join Date
    Jan 2009
    Location
    Ukraine
    Posts
    3,048
    Rep Power
    29
    Quote Originally Posted by Юрка View Post
    Хороший программист должен размышлять надо всем. Над выбором переменных и констант, над их именами и комментариями к ним, над названиями функций и подпрограмм, над набором параметров этих функций, над размером подпрограммы (в идеале это страница), над структурой программы, над количеством комментариев в программе, над составом библиотеки вспомогательных программ, над интерфейсом программы, над понятностью кода другому программисту и т.д.
    Хороший программист в процессе работы над этим размышлять ни в коем случае не должен. Он должен все это обеспечивать очень быстро - на интуиции и шаблонах. Хороший программист - быстрый программист. Это если говорить о собственно программистах, а не об исследователях и проектировщиках языков и компиляторов/трансляторов.

    Я занимался имитационным моделированием морских процессов. Приходилось моделировать распространение звуковой волны в воде и т.д. И надо было в одной модели с заданной точностью моделировать процессы, которые идут на очень разных скоростях. Пришлось придумать метод пересчёта шага по времени (метод дельта T). Там кандидатские и докторские светили.
    Это опять-таки нетипичная задача для программиста. Задача для профессионального программиста в даном случае - быстро отыскать наиболее адекватную для данной задачи библиотеку и корректно ее использовать, а не изобретать велосипед. Собственно, динамическая коррекция шага, завязанная на оценку погрешности - стандартная черта большинства профессиональных реализаций, например, численного интегрирования, МКЭ, сеток и т.п.. И там столько тонкостей, в которых можно напахать неочевидным образом, что лучше оставить это математикам-специалистам по конкретному типу численных методов, а не писать с нуля для своей предметной области.

    Эта истина выстрадана мной на собственном горьком опыте.
    "Россия для русских" - это неправильно. Остальные-то чем лучше?

  4. #4
    Старший оракул CoffeeCup's Avatar
    Join Date
    Feb 2009
    Location
    Snowbearia
    Posts
    902
    Rep Power
    14
    Quote Originally Posted by it-ogo View Post
    Хороший программист ... размышлять ни в коем случае не должен. Хороший программист - быстрый программист.
    if( bool.toString().length() == 4 )
    So Long, and Thanks for All the Fish

  5. #5
    Завсегдатай it-ogo's Avatar
    Join Date
    Jan 2009
    Location
    Ukraine
    Posts
    3,048
    Rep Power
    29
    Quote Originally Posted by CoffeeCup View Post
    if( bool.toString().length() == 4 )
    Вот именно. Таков обычно результат излишних размышлений. Надо знать, как это делается обычно, а не выдумывать.

    Quote Originally Posted by Юрка View Post
    Так может рассуждать или начальник, у которого в подчинении программисты (мыслитель здесь я, а вы исполнители), или программист стиля тяп-ляп.
    Таковы современные принципы профессиональной разработки программного обеспечения. (Я же препод - быть в курсе таких вещей - моя обязанность.) Впрочем, что я говорю "современные"? RAD стал мейнстримом в начале девяностых. С тех пор все хужее и хужее. Скорость обновления рынка ПО только растет.

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

    Я работал тогда, когда мы слыхом не слыхивали о всяких матлабах. В то время мы работали на машинах серии ЕС 1060 (если не забыл) с коллективным доступом. Потом увидели первые персональные. Потом получили первые IBM. У нас в лаборатории были профессор, доцент, научные сотрудники, но никто не знал, что такое переменный шаг моделирования. Мы это с нуля осмысливали и разрабатывали.
    Эх, романтика... Я сам немного такой, но мы с вами как программеры устарели с распространением интернета.

    Любой русский программист, после пары минут чтения кода, обязательно вскочит и произнесет, обращаясь к себе: «Переписать это все нафиг!» Потом в нем шевельнется сомнение в том, сколько времени это займет, и остаток дня русский программист потратит на то, что будет доказывать самому себе, что это только кажется, что переписать — это много работы. А если взяться и посидеть немного, то все получится. Зато код будет красивый и правильный. Hа следующее утро русский программист свеж, доволен собой и без единой запинки докладывает начальству, что переписать этот кусок займет один день, не больше. Да, не больше. Hу, в крайнем случае, два, если учесть все риски. В итоге начальство даст ему неделю и через полгода процесс будет успешно завершен. До той поры, пока этот код не увидит другой русский программист.
    "Россия для русских" - это неправильно. Остальные-то чем лучше?

  6. #6
    Banned
    Join Date
    Aug 2006
    Location
    С.-Петербург
    Posts
    1,829
    Rep Power
    0
    Quote Originally Posted by it-ogo View Post
    Хороший программист - быстрый программист.
    Так может рассуждать или начальник, у которого в подчинении программисты (мыслитель здесь я, а вы исполнители), или программист стиля тяп-ляп. Но я не встречал работ, в которых приветствуется суета и отсутствие мысли. Слесарь-торопыжка запорет размеры, лесоруб-торопыжка завалет на себя ёлку. Программист-торопыжка сделает нечто, что нужно отлаживать 5 лет, а потом выбросить.
    Quote Originally Posted by it-ogo View Post
    Задача для профессионального программиста в даном случае - быстро отыскать наиболее адекватную для данной задачи библиотеку и корректно ее использовать, а не изобретать велосипед. Собственно, динамическая коррекция шага, завязанная на оценку погрешности - стандартная черта большинства профессиональных реализаций, например, численного интегрирования, МКЭ, сеток и т.п.
    Я работал тогда, когда мы слыхом не слыхивали о всяких матлабах. В то время мы работали на машинах серии ЕС 1060 (если не забыл) с коллективным доступом. Потом увидели первые персональные. Потом получили первые IBM. У нас в лаборатории были профессор, доцент, научные сотрудники, но никто не знал, что такое переменный шаг моделирования. Мы это с нуля осмысливали и разрабатывали.

  7. #7
    Banned
    Join Date
    Aug 2011
    Location
    Chicago, IL
    Posts
    904
    Rep Power
    0
    Quote Originally Posted by Юрка View Post
    Хороший программист должен размышлять надо всем. Над выбором переменных и констант, над их именами и комментариями к ним, над названиями функций и подпрограмм, над набором параметров этих функций, над размером подпрограммы (в идеале это страница), над структурой программы, над количеством комментариев в программе, над составом библиотеки вспомогательных программ, над интерфейсом программы, над понятностью кода другому программисту и т.д.
    хороший программист категорически не должен делать ничего вышенаписанного, за исключением последнего (понятность кода)
    имена переменных, констант и методов должны быть стандартизированы. Чтобы любой программист незнакомый с кодом, взглянув на ваш код мог сразу понять что о чем
    стандартов не так много, но следует придерживаться одного из них на протяжении всего кода
    над интерфейсом программы и функционалом методов программист также не должен думать, для этого есть архитектор

    и вообще хороший программист, это программист который может работать над одним кодом в команде из нескольких человек, поэтому Д'Артаняны в программировании не нужны. Учитывая что у большинства людей технического склада присутствует OCD в той или иной степени тяжести, то работа в команде это наверное пункт номер 3 по значимости в карьере программиста (после знания среды разработки и умения обучаться)

  8. #8
    Завсегдатай it-ogo's Avatar
    Join Date
    Jan 2009
    Location
    Ukraine
    Posts
    3,048
    Rep Power
    29
    Quote Originally Posted by Юрка View Post
    Вообще, сделать программу объёмом 100 листов и чтобы она была без ошибок - это уже не тривиальная задача. Это может только человек со стилем.
    Цитата в тему.
    "Россия для русских" - это неправильно. Остальные-то чем лучше?

  9. #9
    Почтенный гражданин pushvv's Avatar
    Join Date
    Nov 2012
    Posts
    400
    Rep Power
    11
    Ну так сартра переводить тоже не всем дано.

  10. #10
    Завсегдатай maxmixiv's Avatar
    Join Date
    Dec 2011
    Location
    Omsk, Russia
    Posts
    1,545
    Rep Power
    28
    что лучше оставить это математикам-специалистам
    Неужели они ещё существуют? Нет, не видел
    "Невозможно передать смысл иностранной фразы, не разрушив при этом её первоначальную структуру."

  11. #11
    Завсегдатай it-ogo's Avatar
    Join Date
    Jan 2009
    Location
    Ukraine
    Posts
    3,048
    Rep Power
    29
    Quote Originally Posted by maxmixiv View Post
    Неужели они ещё существуют? Нет, не видел
    Их мало и больше практически не надо. Работают они в фирмах, разрабатывающих специализированное математическое ПО и библиотеки. И в университетах. Западных, по большей части.
    "Россия для русских" - это неправильно. Остальные-то чем лучше?

  12. #12
    Почтенный гражданин pushvv's Avatar
    Join Date
    Nov 2012
    Posts
    400
    Rep Power
    11
    Юрий, руководы тупые, методики групповой разработки нет, mvc нет - начинается куча проблем типа одному эффективнее, все выдумывать с нуля и т.д. Применяя современный подход к разработке ПО 75% проблем удалось бы избежать. Кроме того, сейчас вряд ли кто-то будет заботится об оптимизации кода, экономии памяти и так далее (если не брать в расчет реверс, всякие контролеры и так далее), . Стало быть остается не думать, а изучать объектную область (кстати этим тоже иногда занимаются специально обученные люди, задачей которых является составление подробного алгоритма, который потом надо тупо реализовать, фактически декомпозиция, описание интерфейсов и все). Есть люди, которые GUI рисуют. Есть люди, которые математику делают. Конечно думать надо, но иногда вообще не критично. А спор начинался с того, что программистам надо думать существенно больше, чем, например, переводчикам.

  13. #13
    Завсегдатай Crocodile's Avatar
    Join Date
    Apr 2008
    Location
    село Торонтовка Онтарийской губернии
    Posts
    3,057
    Rep Power
    20
    Quote Originally Posted by pushvv View Post
    Применяя современный подход к разработке ПО 75% проблем удалось бы избежать.
    Так ведь и требования к ПО сейчас другие, однако. Те, кто программировали в 70-х смотрели на программистов 80-х как на законченных дебилов. И таки причины были..

    Quote Originally Posted by pushvv View Post
    А спор начинался с того, что программистам надо думать существенно больше, чем, например, переводчикам.
    Это было неизбежно. И потом, что мы знаем о переводчиках? Может, они искренне верят в то, что для перевода художественной литературы им нужно думать намного больше, чем программистам?
    Помнишь известное высказывание Гильберта:

    Quote Originally Posted by http://www.math.rsu.ru/mexmat/kvm/MME/dsarch/hilb.html
    Об одном бывшем питомце Гильберт отозвался так: "Да, он стал поэтом — и правильно сделал. Для математики ему не хватало фантазии!"

  14. #14
    Banned
    Join Date
    Aug 2006
    Location
    С.-Петербург
    Posts
    1,829
    Rep Power
    0
    Quote Originally Posted by Crocodile View Post
    Те, кто программировали в 70-х смотрели на программистов 80-х как на законченных дебилов.
    А мы (вернее я) на начальника лаборатории смотрели как на дебила. Я видел его программу. Тысячи строк одним куском. Куча операторов GOTO. Нихрена не работает. А он суёт этот свой шедевр всем своим студентам-дипломникам, чтобы они что-то на ней посчитали и использовали при защите. Это мы, его подчинённые, стали нормально структурировать программы и отказались от операторов безусловного перехода. Но тем не менее именно он руководил нами, так как он старше, он кандидат наук, у него папа Герой Социалистического Труда и директор завода. Без его связей в отрасли нашей лаборатории не дали бы заказов.
    Quote Originally Posted by it-ogo View Post
    Я вот совершенно самостоятельно додумался до необходимости ООП, например, еще до того, как первый раз увидел Turbo Vision. Ну разве я не Дартаньян?
    Ты реально крут, мен! Я вот не могу таким похвастаться. Хотя идею объектов нам двигал в конце 70-ых на уроках философии директор средней школы. Объяснял нам, чем общее понятие "кошка" отличается от конкретной кошки Мурки. Я тогда нифига не понял.
    Quote Originally Posted by Crocodile View Post
    Для особо криворуких уже есть нехилый рынок CRM и иже с ними, где криворукие вполне достойно могут себя применить, невзирая на свою криворукость...
    CRM - какое-то знакомое слово... В одной компании, где работал, есть дурацкая система, которую называют CRM. Там ведут учёт рабочего времени и ещё какую-то хрень (потенциальные продажи, открытие возможности, закрепление менеджера и т.д.). В общем торжество бюрократии над здравым смыслом.
    Quote Originally Posted by Doomer View Post
    хороший программист категорически не должен делать ничего вышенаписанного
    Теперь понятно, почему мы мучаемся с программами. Вот примеры из собственного опыта.
    1) "Магазин партнёра", разработанный индийскими программистами, неправильно показывает складские остатки.
    2) Система документооборота содержит пункты меню, непонятные пользователям. Лексикон пользователей и разработчиков не совпал на 100%, хотя и те и другие работают в одной компании. Причём, разработчики и не стремились к совпадению. Главное, что им самим всё понятно.
    maxmixiv likes this.

  15. #15
    Завсегдатай Crocodile's Avatar
    Join Date
    Apr 2008
    Location
    село Торонтовка Онтарийской губернии
    Posts
    3,057
    Rep Power
    20
    Quote Originally Posted by Юрка View Post
    А мы (вернее я) на начальника лаборатории смотрели как на дебила. [...] Но тем не менее именно он руководил нами, так как он старше, он кандидат наук, у него папа Герой Социалистического Труда и директор завода. Без его связей в отрасли нашей лаборатории не дали бы заказов.
    Если бы ему джумлу (шара-поинт, пипл-хаво-софт, мс-динамо-срам и т.п.) в руки - цены бы ему не было. Но такого рынка и таких инструментов тогда ещё не было. Ну, а для всяких расчётчиков, чтобы сильно не выпендривались своей исключительностью, уже давно есть среды/пакеты типа матлаба.. Сейчас совсем другой мир программирования. Лично у меня отношение к программированию уже давно стало чисто профессиональным - за что платят, то и ваяем. Штука лишь в том, что это нужно сделать правильно, т.е. с применением правильных инструментов и правильного способа мышления. Иногда ты сам себе архитектор, а иногда допиливаешь прогу, написанную индусами какой-то командой программистов.

  16. #16
    Почтенный гражданин pushvv's Avatar
    Join Date
    Nov 2012
    Posts
    400
    Rep Power
    11
    джумла - неплохой инструмент, позволяет развернуть симпатичный сайтик с форумом и фишечками примерно за полчаса.

  17. #17
    Завсегдатай maxmixiv's Avatar
    Join Date
    Dec 2011
    Location
    Omsk, Russia
    Posts
    1,545
    Rep Power
    28
    над интерфейсом программы и функционалом методов программист также не должен думать, для этого есть архитектор
    Для этого нет архитектора. На этот раз не только не видел оных, а даже не слышал ни про одного персонажа этого класса. Так что думать приходится... А главное, всё без толку, ибо, если неизвестно, что надо программировать, то как узнать, насколько хорошим получился результат?
    "Невозможно передать смысл иностранной фразы, не разрушив при этом её первоначальную структуру."

  18. #18
    Banned
    Join Date
    Aug 2011
    Location
    Chicago, IL
    Posts
    904
    Rep Power
    0
    Quote Originally Posted by maxmixiv View Post
    Для этого нет архитектора. На этот раз не только не видел оных, а даже не слышал ни про одного персонажа этого класса. Так что думать приходится... А главное, всё без толку, ибо, если неизвестно, что надо программировать, то как узнать, насколько хорошим получился результат?
    да-да, это же просто замечательный пример
    т.е. по вашей логике получается: Я архитектора не видел, значит он не нужен
    пойдем немного дальше, вот еще несколько примеров с похожей логикой:
    Я никогда не был в Астралии, наверное ее нет
    Американцы тупые, потому что так говорит Задорнов
    Если я закрою глаза, то ничего не вижу, значит когда я закрываю глаза, то мир перестает существовать
    Quote Originally Posted by Юрка View Post
    Теперь понятно, почему мы мучаемся с программами. Вот примеры из собственного опыта.
    1) "Магазин партнёра", разработанный индийскими программистами, неправильно показывает складские остатки.
    2) Система документооборота содержит пункты меню, непонятные пользователям. Лексикон пользователей и разработчиков не совпал на 100%, хотя и те и другие работают в одной компании. Причём, разработчики и не стремились к совпадению. Главное, что им самим всё понятно.
    ваш пример как раз показывает что у ваших индусов отсутсвовали как минимум два важных человека в команде: архитектор и менеджер проектов. Поэтому банда программистов "подумала" и сделала как "надумалось" ни кого не спросив.
    Есть сотни примеров программ с похожими проблемами, многие из которых написаны русскими программистами-самоучками

  19. #19
    Завсегдатай maxmixiv's Avatar
    Join Date
    Dec 2011
    Location
    Omsk, Russia
    Posts
    1,545
    Rep Power
    28
    Да нормальная у нас логика. Поймите: Архитекторы и менеджеры проектов не присутствовали при создании ПО не со зла, а потому что их нет. То есть я не утверждаю, что их нет совсем (иначе откуда взялся термин), но может быть они в Австралии?
    Я таких людей не встречал. Чтобы было совсем понятно -- поясняю как создавались программы, к которым я имел/имею отношение:
    1) Понятия клиент(заказчик) - нет.
    2) Есть начальник IT и начальник отдела X.
    3) Есть программист Петя и сотрудница отдела X Юля.
    4) В один далеко не прекрасный день начальник X обращается к начальнику IT:
    Нач.X - Слушай, нам надо кое-чё автоматизировать!
    Нач.IT - Да легко, для этого мы здесь. Обращайтесь просто к Пете.
    Нач.X - Ну решено, моя Юля покажет завтра Пете, какая программа нужна.
    5) Дальше идёт многомесячная битва Юли с Петей на тему, как можно воплотить в жизнь поток сознания. По ходу борьбы подключаются начальники, отношения между ними портятся.
    6) После многочисленных переписываний рождается кривая программа, которую трудно или почти невозможно сопровождать.
    7) Вывод - Петя дурак.

    Ну или как вариант, где-то ближе к концу шага 5 объявляется, что необходимость в данном ПО отпала, и всё равно, последний пункт актуален:
    7) Вывод - Петя дурак.

    Я рад за Вас, если у Вас, как в Австралии, ПО создаётся иначе.
    Ну а мы пока так.
    "Невозможно передать смысл иностранной фразы, не разрушив при этом её первоначальную структуру."

  20. #20
    Banned
    Join Date
    Aug 2006
    Location
    С.-Петербург
    Posts
    1,829
    Rep Power
    0
    Quote Originally Posted by maxmixiv View Post
    Дальше идёт многомесячная битва Юли с Петей на тему, как можно воплотить в жизнь поток сознания.
    Я был свидетелем подобного на одном заводе. Заводские программеры наваяли на делфи какую-то хрень, потом начались разборки с будущими потребителями этого счастья. Потребители обвинили творцов в том, что они сами не разбираются в предмете и их не спросили, как делать. В итоге свою программу выбросили и купили готовую белорусскую. От этой готовой потом все стонали и кое-кто при увольнении по собственному желанию указывал в качестве причины эту самую программу.
    Quote Originally Posted by Crocodile View Post
    Лично у меня отношение к программированию уже давно стало чисто профессиональным - за что платят, то и ваяем.
    Я слышал такую фразу: "знание иностранных языков - это не профессия". Чистые переводчики - это безработица и зависимость от нанимателя. По крайней мере у меня есть пример перед глазами. Одноклассница. Отличница, мастер спорта, член союза писателей, переводчица книжек для чтива. Сменила много мест, сейчас работает с детьми в центре коррекции. Языки - это хорошо, когда есть ещё что-то основное (ещё какое-то дело, где нужны языки, как средство).

    Ваша фраза навела меня на мысль, что программирование - это тоже не совсем профессия. Ведь сам программист ничего не наваяет. Он ждёт постановку задачи. Другое дело когда это инженер с навыками программирования. Сам себе поставил задачу, сам наваял. С душой и качественно.

Page 3 of 5 FirstFirst 12345 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Russian Lessons                           

Russian Tests and Quizzes            

Russian Vocabulary