Здравствуйте, egaron, Вы писали:
E>сколько я ни учил интерфейс IDisposable хоть и понять-то там все понял (чего там не понимать), но так, с ходу ,вдруг — не воспроизведу.
Здравствуйте, WPooh, Вы писали:
WP>Здравствуйте, egaron, Вы писали:
WP>Я не знаю, шутите Вы или всерьез, но все очень сильно зависит от рынка, на котором работаете.
рынок как рынок, те самые "веб-системы на 1000+ пользователей". везде, где я ни работал, использовалась примерно такая же методлогия разработки. даже когда поначалу пытались применять архитекруту-паттерны и все по правилам, реалии брали свое и скатывалось до превалирования концентрации на бизнес-логики.
то, что вы сказали, — экспешны, производительность, оттачивается на этапе внутреннего тестирования и тестирования заказчиком. конечно, бывают и перформанс ишшуи, как же без них. но в целом роль их не столь велика, чтобы загонятсья на архитектурной правильности системы.
и.... по моим наблюдениям. В начальство, руководство и просто под хорошую карьеру попадают как раз те люди, которые шарят в бизнес-логике проекта. А вот слишком больших умников, загоняющихся правильностью архитектуры и свысока относящихся к коллегам, не принимающим их точку зрения, на моей памяти не раз увольняли.
ценность и незаменимость специалиста заключается гораздо больше в том, какими он связями оброс в процессе работы, как понимает суть проекта, — и таких людей держат и молятся на них и платят большие бабки , хотя на моей памяти именно они зачастую были виновниками нулл-референсов. ну а что, референсы и кодер подчистит, и нанять человека, который умеет кодить на определенной технологии — это задача тривиальная,в отличии от задачи удержать от увольнения эксперта в части бизнес-логики проекта с наработанными связями с заказчиками.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, egaron, Вы писали:
E>>сколько я ни учил интерфейс IDisposable хоть и понять-то там все понял (чего там не понимать), но так, с ходу ,вдруг — не воспроизведу.
L>Силен. Там аж целый 1 метод помнить надо.
метод фигня, надо помнить обвязку и структуру класса... а т к каждый день не используешь, то и запомнить — задача нетривиальная.
ayc>Когда я набирал на работу программистов, я искал в сети интересные/полезные программы (по нашей отрасли), выяснял имя автора и делал ему интересное предложение, от которого он не мог отказаться.
Прямо по Спольски. Ты на конференции еще не ездил часом?
Мне, вот, интересно какую зарплату ты предлагал что люди прямо не могли отказаться?
ayc>Человек может знать все детали о С++, но совершенно не суметь на нем программировать. Это не программист.
Это точно. А бывает еще так, что знают С++ но пытаются впихнуть в код все фичи какие только знают. Тоже не программисты.
ayc>Если человек не может показать ни одной своей старой готовой программы — это не программист (у молодых программистов обычно уже к 14-16ти годам (от роду, а не от начала проф.деятельности) внушительный список собственных программ).
14-16 лет — это сильно!
ayc>Программист — тот, кто пишет программы. Если он способен выполнить поставленную задачу на 100%, и если у него уже есть примеры таких выполненных задач, то он вам и нужен. Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу.
Как все легко. Только пойнт не в этом. В плюсах много мелочей которые надо знать и которые таки встречаются в реальном коде. Все их на интервью не спросить, но если человек не знает основ (виртуальный деструктор), то скорее всего он и других мелочей не знает.
ayc>Вы сами интервьюиром поставились или вас поставили? Нормальные вопросы у топик-стартера!
А я вот тут фигею от того сколько народу кричит что не нужно знать виртуальные деструкторы т.к. они не используются в проектах и т.д. Это основы и знать их С++ программист просто обязан. И дело даже не в этих виртуальных деструкторах. В плюсах много мелочей которые нужно знать и остерегаться. Всех их не спросить на интервью, а виртуальный деструктор — один из множества этих мелочей. Если интервьюируемый не может ответить на этот вопрос, то он, скорее всего, не сможет сказать и о других (мелочах). Соответсвенно будут проблемы в коде.
Вот один баг (одна из таких мелочей которые плюсовики должны знать) который я пофиксил совсем недавно:
_variant_t f();
void g(VARIANT &v)
{
v = f();
}
Ну-ка, кто из кричащих что виртуальные деструкторы знать не нужно или что их можно выучить в процесе скажет что тут происходит и где тут проблема? Hint: возвращаемый _variant_t содержит BSTR, к примеру.
Вообще с С++ программистов спрос должен быть выше чем с Джавистов или Шарповиков. А вопросы у топик-стартера нормальные, хотя вопрос про виртуальный деструктор на столько уже избит, что на него стыдно не ответить.
Re[7]: Вы искали программиста для программирования деструкто
Здравствуйте, ayc, Вы писали:
ayc>Когда я набирал на работу программистов, я искал в сети интересные/полезные программы (по нашей отрасли), выяснял имя автора и делал ему интересное предложение, от которого он не мог отказаться.
ayc>Человек может знать все детали о С++, но совершенно не суметь на нем программировать. Это не программист. ayc>Если человек не может показать ни одной своей старой готовой программы — это не программист (у молодых программистов обычно уже к 14-16ти годам (от роду, а не от начала проф.деятельности) внушительный список собственных программ).
Учитывая что к 14-16 (даже если поднять планку до 20) годам в общем случае невозможно научиться писать правильный, годный код, и понимание о том что "всё уже украдено до нас" у столь юных кодеров отсутствует напрочь, а знания языка при этом минималистичные, рискну предположить что эти ваши "аффтары интиресных программ" тоже программистами как бэ не являются в тот момент когда вы им делаете предложение. Это они потом уже завалив пару проектов чему то учатся, и это тоже метод, растить профессионалов у себя в компании, это хорошо, но не надо так категорично утверждать что мол если в 14 — 16 ни одной софтины нет — вон из профессии, потому как это значит лишь то что человек по каким то причинам решил не выкладывать свой быдлокод на общее обозрение, а вот по каким причинам, программист ли он, и т.д вот для этого есть собеседование на котором с человеком общаться надо, а не методики тупые придумывать и применять, ибо на работу вы берёте человека а не как в старом бояне про машину переводящую кофе в код.
ayc>Программист — тот, кто пишет программы. Если он способен выполнить поставленную задачу на 100%, и если у него уже есть примеры таких выполненных задач, то он вам и нужен. Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу.
Да,да всё красиво так, только вот одну и ту же задачу можно решить тысячью и одним способом, при чём некоторые из решений настолько неочевидны обычным людям(которые в 14 — 16 лет однокласниц щупают а не быдлокодят в интернеты) что век не видеть бы таких решений.
Так вот, невозможно вот это ваше — "Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу." — потому что тут у нас заранее ясно какого качества решения человек может предоставить, и я думаю такие решения мало кому нужны. Тут у нас всё с точностью до наоборот — зная досканально <technology_name> мы можем изучить предметную область поставленной задачи и решить её в рамках нашей <technology_name>. То есть изначально надо отлично знать язык и потом уже будет понятно как эффективнее всего в рамках этого языка и сопутствующих ему технологий можно решить задачу в данной предметной области. Это если важно качество кода конечно.
Re[7]: Вы искали программиста для программирования деструкто
ayc>Программист — тот, кто пишет программы. Если он способен выполнить поставленную задачу на 100%, и если у него уже есть примеры таких выполненных задач, то он вам и нужен. Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу.
В дополнение — хотите ли вы лечится у доктора который занимаясь вашим лечением попутно будет учиться необходимым деталям своей профессии???
Ну... Дмитрий Гуртяк в 18 лет написал KeyRus, который был установлен практически на всех ПК (б)СССР. Боюсь, что большая часть профессиональных программистов на данном форуме не смогут похвастаться такими результатами.
Здравствуйте, De-Bill, Вы писали:
ОК>>14-16 лет — это сильно!
DB>Ну... Дмитрий Гуртяк в 18 лет написал KeyRus, который был установлен практически на всех ПК (б)СССР. Боюсь, что большая часть профессиональных программистов на данном форуме не смогут похвастаться такими результатами.
Сравнение не корректно. Промышленная разработка и coding4fun это две большие разницы. Тем более что в 1989 году не было такой гонки и награмождения технологий а следовательно можно было спокойненько неторопясь коротать вечера за ассемблером, и при этом иметь высоко оплачиваемую по тем временам работу, и никаких тебе аджайл, екстрим программинг, тестов, хитрых прожектманагеров и прочей билеберды которая сейчас занимают большую часть времени типичного программера. И если сейчас посмотреть на код этого вашего KeyRus'а через призму технологий сегодняшнего дня то окажется что это жуткое неподдерживаемое багоподделие достойное разве что места в музее для поностальгировать о юности.
S>Сравнение не корректно. Промышленная разработка и coding4fun это две большие разницы. Тем более что в 1989 году не было такой гонки и награмождения технологий а следовательно можно было спокойненько неторопясь коротать вечера за ассемблером, и при этом иметь высоко оплачиваемую по тем временам работу, и никаких тебе аджайл, екстрим программинг, тестов, хитрых прожектманагеров и прочей билеберды которая сейчас занимают большую часть времени типичного программера. И если сейчас посмотреть на код этого вашего KeyRus'а через призму технологий сегодняшнего дня то окажется что это жуткое неподдерживаемое багоподделие достойное разве что места в музее для поностальгировать о юности.
Что касается KeyRus'a, то он был не первым, по крайней мере не единственным. Он был лучшим. Представляешь, парень в 18 лет написал что-то, что стало лучшим в своём роде. Исходники KeyRus я не смотрел, но смотрел исходники некоторых других его программ. Мои коллеги "промышленные программисты" пишут убогий говнокод по сравнению с ним. Также видел ряд его софтин с пользовательским интерфейсом. Поражает воображение то, что он написал это в одиночку.
По поводу всего остального. аус чётко написал
Когда я набирал на работу программистов, я искал в сети интересные/полезные программы (по нашей отрасли), выяснял имя автора и делал ему интересное предложение, от которого он не мог отказаться.
Ему не нужны "промышленные программисты". Это также как Крис Касперски, aka мыщх, как промышленный программист никому нафиг не нужен, зато нужен много где нужен охрененный энтузиазм, пытливый ум и желание сделать что-нибудь крутое. А это от возраста не зависит, более того, с возрастом часто теряется.
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Ничего удивительного. Ну не все используют виртуальные деструкторы в повседневной практике. Без практики знания быстро забываются.
Народ, я фигею без баяна. Как можно не знать для чего нужен виртуальный деструктор, если каждый день сталкиваешься с иерархиями классов, виртуальными вызовами и т.д? Это же просто элементарная логика выходит:
1. Для чего нам виртуальный метод?
Для того чтобы при вызове метода через указатель на предка позвался соответствующий метод потомка
2. Для чего нам деструктор?
Компилятор гарантирует вызов деструктора при разрушении объекта
Объединяем:
Для чего нужны виртуальные деструкторы?
Для гарантированного вызова деструктора нужного класса при разрушении объекта через указатель на класс предка.
Элементарно же. Или сложность данной логики в том, что можно забыть что такое виртуальный метод или деструктор? А такой человек точно программирует на С++?
Здравствуйте, Cadet, Вы писали:
C>Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>>Ничего удивительного. Ну не все используют виртуальные деструкторы в повседневной практике. Без практики знания быстро забываются.
C>Народ, я фигею без баяна. Как можно не знать для чего нужен виртуальный деструктор, если каждый день сталкиваешься с иерархиями классов, виртуальными вызовами и т.д?
"Отучаемся говорить за всех" (с)фидо
В твоем проекте разлапистая иерархия классов и виртуальные д-ры жизненно необходимы, в моем проекте этого нет. Хотя по программе и гуляют абстрактные интерфейсы, но все объекты создаются на стеке, поэтому время их жизни четко определено. При таком подходе виртуальные деструкторы не нужны.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, LaptevVV, Вы писали:
LVV>Ага! Попробовали бы вы устроится на работу инженером — строителем без знаний... LVV>Да вас на порог не пустят! А в программировании — недоучки-самоучки не только собеседуются, но и работают...
Кстати, можно быть по профессии инженером-стоителем и при этом быть программистом.
И чтобы стать инженером-стоителем нужно пять лет учиться, а чтобы стать программистом — нужа книга и 21 день Во, как.
Эволюция однако, программирование становится доступным каждому.
З.Ы.: Если работа не приносит ничего нового, то это не работа — это каторга
Учение свет, а неучение — чуть свет и на работу.
Re[7]: Вы искали программиста для программирования деструкто
Здравствуйте, ayc, Вы писали:
ayc>Когда я набирал на работу программистов, я искал в сети интересные/полезные программы (по нашей отрасли), выяснял имя автора и делал ему интересное предложение, от которого он не мог отказаться.
Интересный подход... Но, боюсь, в масштабах даже обычной конторы, слабо реализуемый. Интересных-полезных программ — с гулькин нос, кроме того есть сто тыщ мульйонов факторов, которые заставят этого вашего кандидата отказаться от вашего интересного предложения (к примеру, он работает на себя — что скорее всего, если он выкадывает полезные программы в интернет, мож он этим на жизнь зарабатывает как раз... хз )
ayc>Человек может знать все детали о С++, но совершенно не суметь на нем программировать. Это не программист. ayc>Если человек не может показать ни одной своей старой готовой программы — это не программист (у молодых программистов обычно уже к 14-16ти годам (от роду, а не от начала проф.деятельности) внушительный список собственных программ).
Если человек в 14-16 лет интересуется программингом настолько, что у него есть чем удивить матерого работодателя, то с одной стороны человек — гений, но как показывает практика, гениям хорошо в одиночку, в реальной жизни нужны хорошие середняки, которые будут без закидонов педалить, сдавать работу вовремя и не бубнить что вот мол, этот идиотский клиент ничего не понимает в том гениальном решении, которое я ему предлагаю. Кроме того, мне кажется, что в 14-16 лет все таки хорошо бы больше интересоваться девочками, чем компами — а то потом эта юношесткая неудовлетворенность будет выплескиваться на работе в бог знает каких формах.
ayc>Программист — тот, кто пишет программы. Если он способен выполнить поставленную задачу на 100%, и если у него уже есть примеры таких выполненных задач, то он вам и нужен. Если в процессе выполнения задачи он выяснит, что не знает необходимых виртуальных деструкторов, он изучит их попутно и решит задачу.
думается мне, говоря о виртуальных деструкторах, автор топика тем самым описывал более широкую проблему — люди педалят на языке, не зная юазовых основ. говоря же об опыте, если девелопер на плюсах такой весь матерый, то он хоть рз в жизни должен был решать задачу, где вирт.деструкторы нужны, и он должен былразгрести зачем же они нужны. если жи он этого не знает, знач он скорее всего задачтаких (прям скажем, довольно тривиальных) не решал, ergo — опыта у него с гулькин нос.
ayc>Вы сами интервьюиром поставились или вас поставили?
26.03.2010 12:02, _nikita_ пишет: > > Эволюция однако, программирование становится доступным каждому.
Ага. И все вы видим последствия этого. Что не купишь и где есть хоть
какая программа работает плохо.
Здравствуйте, n-839, Вы писали:
N8>Здравствуйте, olegkr, Вы писали:
O>>Здравствуйте, ArtemGorikov, Вы писали:
AG>>>Кстати это скучный вопрос, — интереснее спросить, для чего нужен виртуальный конструктор и как сделать деструктор чисто виртуальным, какую парадигму использует auto_ptr — это если касаться плюсов. O>>Не интересно задавать подобные вопросы. С 5-го раза надоедает слушать мычание с закатыванием глаз.
N8>А можно вопрос к слову, раз уж заговорили об auto_ptr? N8>Саттер вместе с Александреску выступают активно против auto_ptr, приравнивая к злу похуже голых указателей.
Хм... давненько не читал уже че они там пишут, но насколько я помню, ничего такого там нет — саттер и все остальные просто говорят, что у авто-поинтера своя семантика, которую многие не понимают.
N8>Тем не менее во многих книгах уважаемых людей встречаю повсеместное использование этого умного указателя (в частности, сейчас читаю Lomow & Co "C++ FAQs" — тут любое remote ownership в классе упаковано в auto_pointer, а не в shared_pointer). N8>Так ли плох auto_pointer? Или верить никому нельзя, и нужно самому совершить все ошибки?
Здравствуйте, Glоbus, Вы писали:
G>Да все нормально с авто поинтером
Я погорячился, прошу прощения.
Во-первых, не Саттер с Александреску, а Мейерс — из-за местами пересекающихся материалов в их книгах я часто путаю, кто и что именно рекомендовал.
Во-вторых, не auto_ptr сам по себе зло, а контейнеры, содержащие auto_ptr.
Мейерс, "Эффективное использование STL", Совет 8: "Никогда не создавайте контейнеры, содержащие auto_ptr".
Здравствуйте, Олег К., Вы писали:
ОК>А я вот тут фигею от того сколько народу кричит что не нужно знать виртуальные деструкторы т.к. они не используются в проектах и т.д. Это основы и знать их С++ программист просто обязан. И дело даже не в этих виртуальных деструкторах. В плюсах много мелочей которые нужно знать и остерегаться. Всех их не спросить на интервью, а виртуальный деструктор — один из множества этих мелочей. Если интервьюируемый не может ответить на этот вопрос, то он, скорее всего, не сможет сказать и о других (мелочах). Соответсвенно будут проблемы в коде.
ОК>Вот один баг (одна из таких мелочей которые плюсовики должны знать) который я пофиксил совсем недавно: ОК>
ОК>Ну-ка, кто из кричащих что виртуальные деструкторы знать не нужно или что их можно выучить в процесе скажет что тут происходит и где тут проблема? Hint: возвращаемый _variant_t содержит BSTR, к примеру.
ОК>Вообще с С++ программистов спрос должен быть выше чем с Джавистов или Шарповиков. А вопросы у топик-стартера нормальные, хотя вопрос про виртуальный деструктор на столько уже избит, что на него стыдно не ответить.
Ага тут КОМ, надо определится кто выделяет ресурсы — кто их убивает. Это далеке не С++.
__>Эволюция однако, программирование становится доступным каждому.
просто спрос на программистов большой, поэтому любой может попробовать.
Попрактиковаться адвокатом или хирургом так просто не возьмут, а кодером пожалуйста.