Что значит: "уметь прогать"

stm6692945

прочел сей пост из job:
как человек ведущий практикум у студентов 4-го курса на ВМК подписываюсь под каждым словом
по моей статистике из 15 человек 1-2 умеют прогать, а остальные так думают

stm6692945

небось соскучились по мне )

slonishka

че думаеш по поводу асинк ио под линукс?

stm6692945

:crazy:

Papazyan

Можешь gdb с нуля написать? Нет? Свободен!

stm6692945

Могу

zorin29

Простое правило.
1. Дональд Кнут - программист.
2. Программистом является всякий, кого программист считает программистом, и более никто.

elenangel

1. Дональд Кнут - программист.

Корневой программист

Dasar

неустойчивая система - малейшее искажение на входе дает огромный fail на выходе

elenangel

ты не доверяешь Кнуту?!1

Dasar

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

dangerr

После смерти Кнута не будет ни одного программиста с таким определением.

okis

Аналогичным образом епископов рукополагают.

nik93

После смерти Кнута не будет ни одного программиста с таким определением.
если только вся пирамида умрет сразу

Vlad77

Сам-то Кнут считает себя программистом или математиком?
Вроде одним из первых (и известных кто стал называть себя именно программистом, был Дейкстра.

dangerr

если только вся пирамида умрет сразу
Почему вся? После смерти Кнута, он перестанет иметь мнение по какому-либо вопросу. Значит никого программистом считать не будет.
Либо тогда как у епископов должен быть какой-то явный способ причисления к числу программистов другими программистами. Так, что передумать потом нельзя.

Papazyan

Можно зарядить на форуме. Выбрать первым например меня, потом я выберу кого-нибудь, а дальше можно голосовать квалифицированным большинством!

tokuchu

все пирамиды построенные на доверии - очень быстро разваливаются
Linux ещё не развалился пока. :)

stm6692945

а почему первый должен быть ты а не я

Papazyan

Потому что я пью пиво, а ты ягу.

dangerr

А какая разница между разными способами употребления этанола?

Dasar

Linux ещё не развалился пока. :)
Linux построен на техническом аудите, а не на доверии.
зы
это, наоборот, закрытое ПО построено в той или иной мере на доверии
еще больше на доверии построены сервисные услуги: yandex, google, visa, mastercard, paypal и т.д.
но в закрытом ПО и в сервисных услугах нет пирамиды

stm6692945

зато я более няшен и ликвиден для малолеток
а чем можеш похвастаться ты

serega1604

>но в закрытом ПО и в сервисных услугах нет пирамиды
т.е. если завтра одной корпорации добра взбредет в голову, что в их следующей OS-8 не будет ни x32api ни .что-то-там, все закрытое ПО, построенное на этих технологиях продолжит свое существование?

Dasar

т.е. если завтра одной корпорации добра взбредет в голову, что в их следующей OS-8 не будет ни x32api ни .что-то-там, все закрытое ПО, построенное на этих технологиях продолжит свое существование?
ради захвата рынка в 1 млрд. копий - найдется не одна сотня компаний, которые за год выпустят ОС с поддержкой x32api и прозрачным переходом с ОС-7

Dasar

и такое уже было, когда, например, intel "пошутил" и выпустил процы x64 без обратной совместимости c x32

Papazyan

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

serega1604

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

Dasar

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

snega25

че думаеш по поводу асинк ио под линукс?
Тут недавно постили программистский минимум.

elenangel

ради захвата рынка в 1 млрд. копий - найдется не одна сотня компаний, которые за год выпустят ОС с поддержкой x32api и прозрачным переходом с ОС-7

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

soroka000

чет вас понесло ...

pilot

А как у тебя получилось определить что ты умеешь прогать?

erotic

все пирамиды построенные на доверии - очень быстро разваливаются.
Т.е. система проверки сертификатов с помощью доверенных центров сертификации скоро развалится?

Dasar

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

bleyman

Linux построен на техническом аудите, а не на доверии.

Ха ха ха. Linux построен на доверии к тому, что кто-то этот технический аудит может быть делает. (Ну, если вообще можно говорить о том, на чём "построен Линукс").
Скажи-ка, сколько времени прошло между введением the infamous ssh certificate bug (ну, когда дебианы и прочие генерили один из 32768 сертификатов и его обнаружением? И как его обнаружили, аудитом кода или чем-то другим?

ppplva

Т.е. система проверки сертификатов с помощью доверенных центров сертификации скоро развалится?

Ты про эту систему? :grin:
http://bugzilla.mozilla.org/show_bug.cgi?id=647959

milanadiana

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

milanadiana

Она уже разваливается. Один из не очень давних крупных вирусов (забыл что-то, какой именно) имел "доверенный" сертификат Realtek и устанавливался в винду без всякой ругани. Сертификат, конечно, отозвали, но осадочек-то остался

soroka000

А как у тебя получилось определить что ты умеешь прогать?
Забавно, ты кажется не понял всей иронии:
Задача об умении прогать относится к классу частично разрешимых.
Т.е. если человек не умеет прогать — то существует алгоритм, который определит это за конечное время. А вот если человек умеет прогать, то этот алгоритм зациклится. И понятное дело определить зациклились мы или все еще ищем конечное решение в любой момент времени до остановки нельзя.
Если быть более серьезным, то я думаю, что в любом деле есть своя философия, которую можно постигать бесконечно. Однако, к базовым знаниям можно отнести то, что может понять обычный ученик за 2-3 года.
Допустим в моем случае определение красивый код или нет стало почти интуитивно и эквивалентно совокупности: правильно отформатирован, правильно работает, лаконичен, решает задачу элегантно.
Даже по LaTeX верстке видно — чего стоит человек. А по исходникам языков программирования и подавно.

milanadiana

или нет почти эквивалентно совокупности: правильно отформатирован, правильно работает, лаконичен, решает задачу элегантно.
мне кажется, ты кое-что забыл. А именно:
* что-то типа exception-safety (работает хоть как-то даже при самых непредсказуемых входных данных, непредсказуемых ошибках вызываемых процедур, написанных, тобой или не тобой и проч.)
* удобность кода для расширения, перестройки, переноса

soroka000

* что-то типа exception-safety (работает хоть как-то даже при самых непредсказуемых входных данных, непредсказуемых ошибках вызываемых процедур, написанных, тобой или не тобой и проч.)
* удобность кода для расширения, перестройки, переноса
Ты не понял, что я умел в виду.
хороший код и красивый — разные понятия
просто человек, который умеет писать красивый код гораздо проще освоит написание хорошего кода, чем человек, который писать красивый код не умеет
Ну и опять же не всегда нужна расширяемость. И не везде есть входные данные о_О (например в статической верстке)

soroka000

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

pilot

Допустим в моем случае определение красивый код или нет стало почти интуитивно и эквивалентно совокупности: правильно отформатирован, правильно работает, лаконичен, решает задачу элегантно.
Даже по LaTeX верстке видно — чего стоит человек. А по исходникам языков программирования и подавно.
Куча красивых слов.
Ну вот по моей статистике из 5-7 человек с ВМК, которых я видел на собеседованиях или в работе, прогать умеет 0.
При этом эти человеки часто генерируют какой-то код. Красивый код, много кода, со всякими рюшечками и бантиками.
Но код задачу не решает.
Т.е. у них "уметь думать" в "уметь прогать" не входит. Тут где-то был мой теперь любимый пример про "крестики-нолики", за который меня загнобили, однако он как раз о чем я говорю.

Dasar

Тут где-то был мой теперь любимый пример про "крестики-нолики", за который меня загнобили, однако он как раз иллюстрирует о чем я говорю.
это скорее финты, а не умение думать.
на практике такое редко стоит применять, и при постановки задачи стоит явно оговаривать, что в решении можно финтить.
по ссылке, ты хочешь подменить честное(устойчивое) решение на нечестное(неустойчивое) - когда второе решение уже требует жесткой гарантии, что в партии обязательно кто-то выиграл, что зафиксировано кто первым ходил и т.д.
зы
в моем понимании - это все равно, что на вопрос - напишите функцию, которая внутри единичного круга с центром в нуле возвращает 1, отвечать f(x,y) = 1

pilot

это скорее финты, а не умение думать.
Ты же, надеюсь, заметил, что там в большинстве решений тоже были "финты" в виде огрничения размера доски?
по ссылке, ты хочешь подменить честное(устойчивое) решение на нечестное(неустойчивое) - когда второе решение уже требует жесткой гарантии, что в партии обязательно кто-то выиграл, что зафиксировано кто первым ходил и т.д.

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

Marinavo_0507

Там есть слова что на доске играли и кто-то выиграл.
И ты типа веришь заказчику?

Dasar

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

Andr66

Т.е. у них "уметь думать" в "уметь прогать" не входит
...ну вот не знаю почему так получается, но по моей статистике употребление сочетания "умеет думать" постоянно используется людьми, которым не хватает профессиональных навыков. причем употребляется оно как со стороны выпускников, у которых не хватает квалификации, зато они якобы "умеют думать", так и со стороны людей, проводящих собеседования (т.е. с твоей, что как бы намекает - может у тебя на этом "пунктик"?). в любом случае - это нездоровый момент, т.к. "уметь думать" - понятие растяжимое. на собеседовании ничего про это понять нельзя, тем более при помощи дурацких задачек. да и за год работы можно этого не понять, если у человека не было задач, в которых его ум проявил бы свои сильные стороны.
так что мы отвлекаемся от темы :) вернемся все-таки к "уметь прогать"

pilot

И ты типа веришь заказчику?
Дело не в этом. Формализовать "умение думать" сложно. Вон ничего кроме финтов не видит. Крестики-нолики это как пример, где можно по-другому взглянув на задачу сократить время работы (не программы даже, а над программой) на порядок.
При этом, естественно, пример насколько-то плохой, я его особо обсуждать не хочу.
Так вот виденные мной ВМКшники бросаются на задачу с шашкой наголо и начинают кодить так что пар из ушей валит. Подумать сначала и рассмотреть задачку с разных сторон забывают.
Конкретно про крестики нолики: _никто_ даже не спросил фиксировано ли кто ходит первый.

Marinavo_0507

Подумать сначала и рассмотреть задачку с разных сторон забывают.
Конкретно про крестики нолики: _никто_ даже не спросил фиксировано ли кто ходит первый.
Окупится ли тут сначала подумать, а потом ещё и спросить?

pilot

может у тебя на этом "пунктик"?
Конечно пунктик. Я же этим деньги зарабатываю.

pilot

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

Marinavo_0507

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

pilot

А ты хочешь, чтобы над каждой строчкой думали ещё?
Над каждой задачкой.
Думать над строчками это как раз "трясти".

doublemother

Окупится ли тут сначала подумать, а потом ещё и спросить?
Для больших систем в среднем — да.
Постой, но ведь если над задачей, особенно большой, сначала думать, то никто не будет писать не питоне :confused:

pilot

Постой, но ведь если над задачей, особенно большой, сначала думать, то никто не будет писать не питоне :confused:
Наоборот, вроде :o

stm5872449

Допустим в моем случае определение красивый код или нет стало почти интуитивно и эквивалентно совокупности: правильно отформатирован, правильно работает, лаконичен, решает задачу элегантно..
хороший код и красивый — разные понятия
просто человек, который умеет писать красивый код гораздо проще освоит написание хорошего кода, чем человек, который писать красивый код не умеет
Мне казалось, что сначала надо учить писать код "хороший" (корректно работающий на всем множестве входных данных и обладающий вменяемой архитектурой а уж потом заморачиваться на элегантности (крайне субъективный параметр) и уж тем более лаконичности (которая, как известно, часто вступает в конфликт с расширяемостью).
Да, в защиту ВМК стоит сказать, что на второй поток, о котором идет речь в начальном посте, большой процент студентов идет именно из-за неумения/нежелания программировать.

doublemother

Наоборот, вроде :o
Разве? :confused:
Точно-точно?

Second, the idea that TRE is merely an optimization, which each Python implementation can choose to implement or not, is wrong. Once tail recursion elimination exists, developers will start writing code that depends on it, and their code won't run on implementations that don't provide it: a typical Python implementation allows 1000 recursions, which is plenty for non-recursively written code and for code that recurses to traverse, for example, a typical parse tree, but not enough for a recursively written loop over a large list.

lubanj

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