Где нужно писать код на бумажке?
От: Synapse  
Дата: 30.07.12 08:47
Оценка:
Решил прокачать этот скилл в реальных условиях, дома все-таки не то, нет стресса. Есть не слишком крутые московские конторы, где это требуют на собеседовании?
Re: Где нужно писать код на бумажке?
От: ResidentR6  
Дата: 30.07.12 15:54
Оценка: 1 (1) +1
Нигде! Нормальный программер пишет код не от начала до конца. А из
середины, в той точке где у него появилась идея. Притом сначала код, а
потом ещё обвесит специфическими try — catch — finally и логерами. Плюс
в процессе вагон коментов и тонна отладочной информации.

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

Потому учитесь врать. На собеседовании, если попался дурак — обязательно
пригодится. Если умный человек — они сам знает технологию ПРОИЗВОДСТВА
программного продукта, а не академические задачки.

Больше всего радуют малые конторы. Чем шарашкеней контора, тем больше
пытаются косить под крутых и задают задачки "на логику" (на самом деле
на знание заранее подвоха задачи), академические вопросы (которые в
реальной работе не нужны, зато есть в учебнике), стресс-интервью (даже
не понимая что рискуют получить если не по морде, то отрицательную славу
на всём тырнете). Отдельная песня когда тестирует "крутой программист"
(и плохой начальник) — спрашивает всё то, что знает сам, по собственному
опыту — ему до лампочки что другой человек из других организаций имеет
другой опыт. Мало того, повторение специфического опыта бессмысленно
(хороший начальник сам же и обучит), а наличие другого опыта — крайне
полезно.

В общем, готовиться к этому не надо. Учитесь врать, против дурака только
это. И если заметите что во всей организации глупость в почёте (а не
конкретно с этим повезло), то вежливо распрощайтесь. В такой конторе
заработают только дураки, и то недолго. Умные же утратят квалификацию
либо уволятся.
Posted via RSDN NNTP Server 2.1 beta
Re: Где нужно писать код на бумажке?
От: Alexey Neorov Россия  
Дата: 30.07.12 16:06
Оценка:
Здравствуйте, Synapse, Вы писали:

S>Решил прокачать этот скилл в реальных условиях, дома все-таки не то, нет стресса. Есть не слишком крутые московские конторы, где это требуют на собеседовании?


Я бы не стал ничего делать на бумажке, для этого есть компьютер. А на настойчивые требования решить что-то на бумажке — можно посылать лесом.
Re[2]: Где нужно писать код на бумажке?
От: Vzhyk  
Дата: 30.07.12 16:16
Оценка: +3 :))
30.07.2012 19:06, Alexey Neorov пишет:

>

> S>Решил прокачать этот скилл в реальных условиях, дома все-таки не то,
> нет стресса. Есть не слишком крутые московские конторы, где это требуют
> на собеседовании?
>
> Я бы не стал ничего делать на бумажке, для этого есть компьютер. А на
> настойчивые требования решить что-то на бумажке — можно посылать лесом.
Какие здесь все буйные, на собеседовании обычно все не так и код на
бумажке пишут и гномиков с люками считают.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Где нужно писать код на бумажке?
От: ResidentR6  
Дата: 30.07.12 16:32
Оценка:
30.07.2012 19:16, Vzhyk пишет:
> Какие здесь все буйные, на собеседовании обычно все не так и код на
> бумажке пишут и гномиков с люками считают.

Вот их и подальше.
Материал в тему: Как отпугнуть высококлассных специалистов
http://it.rabota.ua/post/2012/06/08/kak_otpugnut_vysokoklassnyh_spetsialistov.aspx

И с бородой: http://habrahabr.ru/post/145960/
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Где нужно писать код на бумажке?
От: Vzhyk  
Дата: 30.07.12 16:37
Оценка: +3
30.07.2012 19:32, ResidentR6 пишет:

>> Какие здесь все буйные, на собеседовании обычно все не так и код на

>> бумажке пишут и гномиков с люками считают.
>
> Вот их и подальше.
> Материал в тему: Как отпугнуть высококлассных специалистов
Это всего-лишь самомнение. С чего ты взял, что вот тот Вася
высококлассный специалист?
Да и даже, если высококлассный, то, тем более, ему задачки про гномиков
в люках или код на бумажке — раз плюнуть. А если выпендривается на
собеседовании, то он и работать так будет — эта задача нравиться, эта
нет и т.д.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Где нужно писать код на бумажке?
От: Vzhyk  
Дата: 30.07.12 16:41
Оценка: -1
30.07.2012 19:32, ResidentR6 пишет:
> И с бородой: http://habrahabr.ru/post/145960/
"Когда я говорил, что нельзя платить тысячи долларов тем, кто не знает,
чем абстрактный класс отличается от интерфейса, вы продолжали им платить.
Теперь у нас все зарабатывают тысячи долларов, но х*р его знает,
чем абстрактный класс отличается от интерфейса."
Когда я говорил, что нельзя платить тысячи долларов тем, кто знает,
чем абстрактный класс отличается от интерфейса, вы продолжали им платить.
Теперь у нас все зарабатывают тысячи долларов и знают,
чем абстрактный класс отличается от интерфейса, но программы нифига не
работают."

Кстати, а чем они отличаются?
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Где нужно писать код на бумажке?
От: ResidentR6  
Дата: 30.07.12 17:03
Оценка: -1
Потому что программное производство мало чем отличается от обычного! Ну
нет здесь логически сложных задач на изобретальность. Нет! И для
большинства прогеров — не предвидится. Мало того, их ещё и накажу за
изобретательность если вздумают её проявить [это риск, может и боком выйти]

Представьте себе, если строитель высотного здания проявит
изобретательность где-нибудь в фундаменте. И найдёт как сэкономить. Вы
рискнёте купить это здание? Вы рискнёте купить что-либо этой фирмы когда
одно здание рухнет?

К чёрту гномиков и люки! Люки не всегда и не везде круглые — сие факт!
Мало того, посмотрите историю — долгое время вещи были иными, и не
потому что их делали идиоты. А лишь потому что накопленный опыт
позволяет современные делать лучше.

Опыт — знание. Готовое знание, а не изобретательность. Чтобы решить
задачку с гномика, люками и так далее нужна не изобретательность и не
логика!!!!! Нужно просто знать ответ заранее. И вот та сволочь которая
этого не знает — бездарь. Некомпетентная бездарь, не на своём месте.
Только не говорите что психология — от лукавого, либо что контора не
может воспользоваться услугами психолога.

Знания нечем заменить! (с)Деминг
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Где нужно писать код на бумажке?
От: ResidentR6  
Дата: 30.07.12 17:09
Оценка: 1 (1) +1
Это лишь пример одного из тысяч вопросов, которые ДЕЙСТВИТЕЛЬНО нужно
знать. Притом на уровне понимания сути, а не зазубривания определений.

PS. Как прогер с огромным опытом могу сказать — для компьютера мало чем.
Это понятия из области удобочитабельности кода, моделирования. Чтобы
человеки могли разобраться, что делает код. И чтобы человеки могли
объяснить компьютеру чего от него надобно. Притом сами понимали чего от
железки требуют и не надеялись получить что-то чудесное.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Где нужно писать код на бумажке?
От: Abyx Россия  
Дата: 30.07.12 17:10
Оценка: :)
Здравствуйте, Vzhyk, Вы писали:

V>30.07.2012 19:32, ResidentR6 пишет:

>> И с бородой: http://habrahabr.ru/post/145960/
V>"Когда я говорил, что нельзя платить тысячи долларов тем, кто не знает,
V>чем абстрактный класс отличается от интерфейса, вы продолжали им платить.
V>Теперь у нас все зарабатывают тысячи долларов, но х*р его знает,
V>чем абстрактный класс отличается от интерфейса."
V>Когда я говорил, что нельзя платить тысячи долларов тем, кто знает,
V>чем абстрактный класс отличается от интерфейса, вы продолжали им платить.
V>Теперь у нас все зарабатывают тысячи долларов и знают,
V>чем абстрактный класс отличается от интерфейса, но программы нифига не
V>работают."

V>Кстати, а чем они отличаются?


абстрактный класс — это интерфейс который унаследован от интерфейса IDestructible.
In Zen We Trust
Re[6]: Где нужно писать код на бумажке?
От: sts  
Дата: 30.07.12 18:56
Оценка: :)
Здравствуйте, ResidentR6, Вы писали:

RR>Это лишь пример одного из тысяч вопросов, которые ДЕЙСТВИТЕЛЬНО нужно

RR>знать. Притом на уровне понимания сути, а не зазубривания определений.

RR>PS. Как прогер с огромным опытом могу сказать — для компьютера мало чем.

RR>Это понятия из области удобочитабельности кода, моделирования. Чтобы
RR>человеки могли разобраться, что делает код. И чтобы человеки могли
RR>объяснить компьютеру чего от него надобно. Притом сами понимали чего от
RR>железки требуют и не надеялись получить что-то чудесное.

Ну, чтобы знать элементарные вещи, много опыта не надо.
Из класса интерфейс — это на поверхности:
TForm1* form1;

Понятно, что тут form1 — это класс.
Легким движением получаем из класса интерфейс:
form1->Show();
form1->OnShow(form1);
OnForm1Show(form1);

Для удобочитабельности кода конечно лучше тут провести рефакторинг и вынести код в отдельную функцию чтобы потом моделировать в других местах:
void __fastcall TForm1::CreateInterface(Form1 *form1)
{
  form1->Show();
  form1->OnShow(form1);
  OnForm1Show(form1);
}

Ну а там уж кто что на форму положил, то у него в интерфейсе и будет.

Раз у Вас такой большой опыт, слабо из интерфейса получить обратно класс ?
На этом вопросе у нас на собесах плюсовики с опытом только так сыплются.
Re[7]: Где нужно писать код на бумажке?
От: elmal  
Дата: 30.07.12 19:53
Оценка:
Здравствуйте, sts, Вы писали:

sts>Раз у Вас такой большой опыт, слабо из интерфейса получить обратно класс ?

sts>На этом вопросе у нас на собесах плюсовики с опытом только так сыплются.
Что то мне вышеприведенное натолкнуло на мысль, что кто то из нас под интерфейсом понимает какую то ахинею. Неужели я, учитывая, что ни разу, когда мне задавали подобный вопрос, оффера не последовало, прям даже интересно, насколько уж я не прав ?
Засыпать кого с опытом — много ума не надо. Собеседующий одну книжку прочитал, собеседуемый другую — и все, приплыли. Естественно собеседуемый не пройдет собеседование. Скажу уж я глупости по поводу этих абстрактных классов и интерфейсов. Учитывая, что чаще всего вопрос идет в контексте C# или Java — ответ простой. Интерфейс не имеет реализации и класс может имплементировать много интерфейсов, абстрактный же класс имеет реализацию некоторых методов, и уже в вышеупомянутых языках много абстрактных классов ты не унаследуешь. Дополнительно — интерфейс подразумевает контракт, интерфейс бывает не только у классов, но и у обычный функций. А то и вообще интерфейс относится к железу, и описывает способ соединения двух устройств. С точки зрения железа. Если же брать плюсы — хоть там нет ключевого слова interface, и множественное наследование там есть — отличие простое — у интерфейса нет никакой реализации, он описывает только контракт и это самое нижнее звено в интересующей иерархии наследования. Этот абстрактный класс без имплементации можно обработать IDL (кажется, уже забыл как утилита называется), в результате сгенерится COM обертка, и это будет уже полноправный интерфейс с точки зрения других языков программирования. Абстрактный же класс может иметь реализацию. И от реализации COM обертку не генерят. Еще code convention есть, интерфейсы начинаются с I. IUnknown, IDispathch и т.д.
Re[8]: Где нужно писать код на бумажке?
От: sts  
Дата: 30.07.12 20:02
Оценка: :)
Здравствуйте, elmal, Вы писали:

E>Здравствуйте, sts, Вы писали:


sts>>Раз у Вас такой большой опыт, слабо из интерфейса получить обратно класс ?

sts>>На этом вопросе у нас на собесах плюсовики с опытом только так сыплются.
E>Что то мне вышеприведенное натолкнуло на мысль, что кто то из нас под интерфейсом понимает какую то ахинею. Неужели я, учитывая, что ни разу, когда мне задавали подобный вопрос, оффера не последовало, прям даже интересно, насколько уж я не прав ?
E>Засыпать кого с опытом — много ума не надо. Собеседующий одну книжку прочитал, собеседуемый другую — и все, приплыли. Естественно собеседуемый не пройдет собеседование. Скажу уж я глупости по поводу этих абстрактных классов и интерфейсов. Учитывая, что чаще всего вопрос идет в контексте C# или Java — ответ простой. Интерфейс не имеет реализации и класс может имплементировать много интерфейсов, абстрактный же класс имеет реализацию некоторых методов, и уже в вышеупомянутых языках много абстрактных классов ты не унаследуешь. Дополнительно — интерфейс подразумевает контракт, интерфейс бывает не только у классов, но и у обычный функций. А то и вообще интерфейс относится к железу, и описывает способ соединения двух устройств. С точки зрения железа. Если же брать плюсы — хоть там нет ключевого слова interface, и множественное наследование там есть — отличие простое — у интерфейса нет никакой реализации, он описывает только контракт и это самое нижнее звено в интересующей иерархии наследования. Этот абстрактный класс без имплементации можно обработать IDL (кажется, уже забыл как утилита называется), в результате сгенерится COM обертка, и это будет уже полноправный интерфейс с точки зрения других языков программирования. Абстрактный же класс может иметь реализацию. И от реализации COM обертку не генерят. Еще code convention есть, интерфейсы начинаются с I. IUnknown, IDispathch и т.д.

"Кто-то из нас" — это точно не я.
Раз уж нашелся человек с опытом релевантным опыту ResidentR6, из интерфейса-то класс сделайте.
Код в студию. А прям как не программеры. Все на словах.
Re[6]: Где нужно писать код на бумажке?
От: nightcode  
Дата: 30.07.12 20:12
Оценка: -1
Здравствуйте, Abyx, Вы писали:

A>абстрактный класс — это интерфейс который унаследован от интерфейса IDestructible.

Класс это реализация, интерфейс — это описание методов класса (без самой реализации). Я на плюсах не писал уже много лет, но емнип, интерфейсов там просто нет их функцию выполняет астрактный класс, т.е. класс у которого все методы = 0
Re[7]: Где нужно писать код на бумажке?
От: Abyx Россия  
Дата: 30.07.12 20:35
Оценка: -1 :)
Здравствуйте, nightcode, Вы писали:

A>>абстрактный класс — это интерфейс который унаследован от интерфейса IDestructible.

N>Класс это реализация, интерфейс — это описание методов класса (без самой реализации). Я на плюсах не писал уже много лет, но емнип, интерфейсов там просто нет их функцию выполняет астрактный класс, т.е. класс у которого все методы = 0

еще один ниасиливший ООП %)
классы и интерфейсы, они что в С#, что в C++, что в C, что в асме — в любом языке классы и интерфейсы.
наличие или отсутствие каких-то элементов синтаксиса ни их существования никак не влияет.
In Zen We Trust
Re[2]: Где нужно писать код на бумажке?
От: Synapse  
Дата: 30.07.12 20:36
Оценка:
Здравствуйте, ResidentR6, Вы писали:

RR>Нигде! Нормальный программер пишет код не от начала до конца.

Пока это не объяснили Микрософту и Гуглу, приходится с этим как-то жить.

RR>Потому учитесь врать.

Ну и что соврать, когда просят написать strcpy?
Re[7]: Где нужно писать код на бумажке?
От: Abyx Россия  
Дата: 30.07.12 20:39
Оценка:
Здравствуйте, sts, Вы писали:

sts>Ну, чтобы знать элементарные вещи, много опыта не надо.

sts>Из класса интерфейс — это на поверхности:
sts>
TForm1* form1;

sts>Понятно, что тут form1 — это класс.
sts>Легким движением получаем из класса интерфейс:
sts>
sts>form1->Show();
sts>form1->OnShow(form1);
sts>OnForm1Show(form1);
sts>

sts>Для удобочитабельности кода конечно лучше тут провести рефакторинг и вынести код в отдельную функцию чтобы потом моделировать в других местах:
sts>
sts>void __fastcall TForm1::CreateInterface(Form1 *form1)
sts>{
sts>  form1->Show();
sts>  form1->OnShow(form1);
sts>  OnForm1Show(form1);
sts>}
sts>

sts>Ну а там уж кто что на форму положил, то у него в интерфейсе и будет.

уйди, тролль
или давай, напиши-ка, как из сетевого интерфейса получить консольный, раз такой умный
In Zen We Trust
Re: Где нужно писать код на бумажке?
От: Pzz Россия https://github.com/alexpevzner
Дата: 30.07.12 20:48
Оценка:
Здравствуйте, Synapse, Вы писали:

S>Решил прокачать этот скилл в реальных условиях, дома все-таки не то, нет стресса. Есть не слишком крутые московские конторы, где это требуют на собеседовании?


Странный вопрос. Неужели для кого-то может быть проблемой написать 10-20-30 строк кода на бумажке?

Я понимаю, что без подсветки синтаксиса и т.п. можно пропустить точку с запятой или break в switch'е — т.е., вещи, которые делаются не с помощью головы, а "на рефлексах". Но это и тот человек, который с вами разговаривает, понимает, и я уверен, что придираться не будет. В худшем случае, задаст уточняющий вопрос и, получив осмысленный ответ, успокоится.
Re[2]: Где нужно писать код на бумажке?
От: Synapse  
Дата: 30.07.12 21:06
Оценка:
Здравствуйте, Pzz, Вы писали:
Pzz>Странный вопрос. Неужели для кого-то может быть проблемой написать 10-20-30 строк кода на бумажке?
А вы попробуйте.
Мне не то, что код, текст на бумажке написать проблема. Главная проблема — стресс, после окончания интервью написал за пять минут, а в отведенное время такую фигню порол.
Re[2]: Где нужно писать код на бумажке?
От: StanislavK Великобритания  
Дата: 30.07.12 21:16
Оценка:
Здравствуйте, Pzz, Вы писали:

S>>Решил прокачать этот скилл в реальных условиях, дома все-таки не то, нет стресса. Есть не слишком крутые московские конторы, где это требуют на собеседовании?

Pzz>Странный вопрос. Неужели для кого-то может быть проблемой написать 10-20-30 строк кода на бумажке?
Смотря, что за код. Если это задачка, то не просто, т.к. лично у меня привычка писать, потом удалять, потом писать сновать, и т.д. Ну вот, пишу я так.
Никогда не понимал, в чем проблема человеку лаптоп дать. Сам так над людьми не издеваюсь и никогда не буду.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.