LINUX.ORG.RU
ФорумTalks

Что сложнее всего программировать?

 , , ,


0

2

Приветствую. Задался таким вопросом: а что сложнее всего в программировании? То есть что сложнее разрабатывать? Как мне кажется - это компиляторы или логические схемы на каком-нибудь Verilog. Так ли это?

Ответ на: комментарий от peregrine

То-то нет ни одного алгоритма шифрования с доказанной стойкостью, кроме самого простого шифра вермана

Пипец, криптографию приплел... Осознай разницу между невозможностью доказательства в рамках предметной области и формальной верификацией исходного кода.

Clayman ★★
()
Ответ на: комментарий от Sunderland93

То есть если в школе по математике у меня была тройка, и на лучшее я не надеялся - проггером мне не быть?

Если это обычная общеобразовательная школа, то ни о чем не говорит. В любом случае самообразование никто не отменял.

Clayman ★★
()
Ответ на: комментарий от peregrine

Математик математику рознь, как и программист программисту.

Трудно придумать более бессмысленное высказывание.

Clayman ★★
()
Ответ на: комментарий от Clayman

Что с верификацией всё хреново (да, даже тесты со 100% покрытием не гарантия адекватной работы), что с предметной областью.

peregrine ★★★★★
()
Ответ на: комментарий от Clayman

Ну прикладники от математиков, которые занимаются фундаментальщиной очень сильно отличаются. Более того, в разных областях математики можно иметь очень разный скилл. Если что где-то до 1700 годов геометрия и алгебра жили порознь. А программисты системщики значительно отличаются и по способу мышления и по стилю от прикладников, которые в свою очередь отличаются от веб-макак и отличаются от разных людей, занимающимися оптимизациями процессов на предприятии или ЧПУ, т.к. там и подходы разные и основные цели, а код все они пишут, так что всех можно назвать программистами, только очень сильно разный.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

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

Clayman ★★
()
Ответ на: комментарий от Clayman

Если это обычная общеобразовательная школа, то ни о чем не говорит.

Очень даже говорит. Ты (не ты, а тот кто учится на одни трояки по математике в обычной школе) или дурак или раздолбай, каких маломного. И то и другое плохо.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от Clayman

Правильно - на глазок и по наитию.

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

peregrine ★★★★★
()

Качественно, лаконично, правильно, хорошо документированно и читаемо, при этом используя все ресурсы языка.

Ramil ★★★★
()

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

Iron_Bug ★★★★★
()
Ответ на: комментарий от Iron_Bug

Старую шутку вспомнил по этому поводу:

Давным-давно, когда компьютеры были большими, а программы маленькими...

Это я про то, что не всё так просто и с программами нынче. А что сейчас сложнее...

Serg_HIS
()
Ответ на: комментарий от Iron_Bug

Недавно как-то решил разобраться почему у меня перестал работать фонарик задний на велике.

Там кроме кнопки ломаться нечему. Светодиодный с микрухой как на новогодних гирляндах.

Лежал не светил года 2 уже.

Потом просто думаю... ну надо же разобраться в чём дело!

Разобрался! http://biclod.com:9091/access/e07c04cb-0730-4240-9551-af79ac4b1909:slideshow;...

Найдёшь прикол?

Serg_HIS
()
Ответ на: комментарий от Serg_HIS

кроме того, ты должен быть осьминогом, чтобы держать как минимум два-три щупа осцилла в нужных точках на плате, воткнутой в комп, и ещё что-то печатать на клаве, запускать приложения, загружать код, и повернув голову, как сова, на 180 градусов, смотреть на монитор и осцилл. или вообще сидеть в комнате со стендом и бегать туда сюда от одного конца стенда к другому, измеряя параметры, проверяя датчики и нажимая разные кнопки. мне пару раз даже пришлось отлаживать железку в комнате для тестов критической температуры. в комнате было 60 градусов.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Serg_HIS

слушай, китайскую гирлянду проще не ремонтировать, а новую купить. раньше она стоила 100 рублей. любой ремонт получится дороже :)

по картинке хрен поймёшь. или там дорожка лопнула, или сопля где-то в этой говнопайке.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Serg_HIS

Найдёшь прикол?

Где-то сопля или остатки флюса внезапно стали токопроводящими?

Meyer ★★★★★
()
Ответ на: комментарий от Iron_Bug

Вон разлом на контакте.. он раньше как-то держался на сопле а потом отломалась. Спаял его и теперь площадка для кнопки работает. Это площадка для кнопки диаметром 6 мм.

Serg_HIS
()
Ответ на: комментарий от Serg_HIS

я и говорю разрыв дорожки. там хрен поймёшь на фото. то ли сопля флюса на дорожке налипла, или мусор какой, то ли разрыв.

Iron_Bug ★★★★★
()
Ответ на: комментарий от Serg_HIS

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

Iron_Bug ★★★★★
()

Сложнее - законченные решения. Труднее - зависит от навыков.

Quasar ★★★★★
()

а что сложнее всего в программировании?

логические схемы на каком-нибудь Verilog

Программировать? Прикольно, я оказывется программер.

Oberstserj ★★
()
Ответ на: комментарий от Serg_HIS

Найдёшь прикол?

А чё-й-то за хрень такая? тапка под графитовую кнопку?

Там кроме кнопки ломаться нечему.

Ну если ломаться физически, то да, нечему больше)

Oberstserj ★★
()
Ответ на: комментарий от Iron_Bug

всегда прошу открыть и показать мне качество плат,

Фигассе! И что, берут отвертку и открывают? Смелые менеджеры.

Oberstserj ★★
()
Ответ на: комментарий от Iron_Bug

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

Ну сейчас с этим конкретно попроще, на линии пайки проверка идет вплоть до объема паяльной пасты наносимой на пад. Но быват случаи, что тонкие дорожки, которые до пайки прошли проверку после пайки сыпятся и фиг найдешь. Но обычно в таком случае вся плата уходит тупо в утиль/на переработку - искать непропаи\поломки\отслоения просто дороже.

Oberstserj ★★
()

Сложнее всего программировать людей.

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от Oberstserj

логические схемы на каком-нибудь Verilog

Программировать? Прикольно, я оказывется программер.

А это не считается программированием?

Sunderland93 ★★★★★
() автор топика
Ответ на: комментарий от peregrine

Очень даже говорит. Ты (не ты, а тот кто учится на одни трояки по математике в обычной школе) или дурак или раздолбай, каких маломного. И то и другое плохо.

Согласен, если бы я тогда знал, что однажды заинтересуюсь программингом - учился бы лучше.

Sunderland93 ★★★★★
() автор топика
Ответ на: комментарий от Iron_Bug

Чисто программистские задачи решаемы в принципе. А при программировании харда можно убить кучу времени, чтобы только понять, что задача не решаема.

vaddd ★☆
()
Ответ на: комментарий от Serg_HIS

Попробуй отладить тот же 1С в случае, если сложный запрос возвращает тебе пустую виртуальную таблицу. Отладчик там очень убог, сообщений от ошибки в БД нет, а результат запроса - пустота.

peregrine ★★★★★
()
Ответ на: комментарий от vaddd

Чисто программистские задачи решаемы в принципе

Только таких задач практически нет в природе. Это хорошо если ты джун, который делает то, что говорит начальник, а если ты вынужден общаться с клиентом и разбираться в предметной области, даже при условии того, что на твою задачу уже придумана вся математика/физика/что там ещё надо в ней, очень часто сами заказчики хотят невозможных условий, вроде велосипеда, который отвезёт их на Луну или не понимают, насколько сложной вещи они хотят за смешные деньги. Если не веришь, можешь посмотреть какие-нибудь заказы на фриланс, там полно подобного. Меня тоже несколько раз тормошили с таким ИРЛ, очень трудно объяснить человеку, что он на самом деле может получить.

peregrine ★★★★★
()
Ответ на: комментарий от Sunderland93

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

peregrine ★★★★★
()
Ответ на: комментарий от Iron_Bug

мне пару раз даже пришлось отлаживать железку в комнате для тестов критической температуры. в комнате было 60 градусов.

Раздевалась?

Bobby_
()

наиболее сложно программировать бизнеслогику.

rsync ★★
()
Ответ на: комментарий от Harald

В сауне до 90 градусов бывает, и ничего тетки спокойно сидят. Голые только. Шапочки наденут, сиськи развесят и только в путь.

Bobby_
()
Ответ на: комментарий от peregrine

Только таких задач практически нет в природе.

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

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

vaddd ★☆
()
Ответ на: комментарий от Sunderland93

Я не для спора. Я реально для себя открытие сделал :)

Oberstserj ★★
()
Ответ на: комментарий от vaddd

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

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

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

Если вы это про меня, то я этим занимаюсь с середины 80-х, а с конца их же еще и как руководитель )

железячники, которых я встречал, менее квалифицированные и их работа проще

Ну, когда задача обсосана, разложена в ненапряженные алгоритмы и остался тупой, но тщательный кодинг, то конечно )

vaddd ★☆
()
Ответ на: комментарий от peregrine

На моей практике, железячники, которых я встречал, менее квалифицированные

менее квалифицированные

Так, давай терминологией определяться. Квалификация какбэ определяется в рамках конкретной профессии, не так ли? И сравнивать железячника, который «пишет прошивку» для контроллера с разработчиком софта для, например, видеомонтажа вот так вот в лоб некорректно, не так ли?

и их работа проще

Нууу...слово немного не то, но в целом да, программирование контроллеров жестко ограничено собственно железом и разгулу фантазии там таки просто взяться негде и не для чего. Хотя когда приходилось впихивать невпихуемое в контроллер с полкилобайтом памяти, то изврат был тот еще.

хотя и требует внимательности, но думать почти не надо

В принципе да. Не поспоришь. Хотя железо становится сложнее и порой реализовывать тот или иной протокол - надо сильно постараться.

Oberstserj ★★
()
Ответ на: комментарий от vaddd

Ну, когда задача обсосана, разложена в ненапряженные алгоритмы и остался тупой, но тщательный кодинг, то конечно )

Вот поэтому я и писал, что проблемы возникают когда задача не обсосана. А если она обсосана, то без особой разницы, писать её на Python-е или на каком-нибудь ассемблере или вообще на ST для ПЛК. Просто на Python-е это будет быстрее.

peregrine ★★★★★
()
Ответ на: комментарий от vaddd

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

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 1)
Ответ на: комментарий от Bobby_

ну, в шортах и футболке там сидела. правда, сидеть там дольше 15-20 минут невозможно. вылетаешь как пробка оттуда, вытираешься полотенцем от пота, остываешь - и новый заход :)

Iron_Bug ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.