Резюме для программиста
Язык берется за несколько месяцев.
Именно - разговорный. Особенно, если хоть какой-то бекграунд в наличии...
Все что требуется - исключить возможность получения информации на другом языке и иметь обязанность понять что требуется и выполнив это объяснить что сделано.
Как-то даже у нэйтив спикеров не берётся и за два года, не то, что за два месяца, хотя они никакого другого языка с рождения не знают.
Смотря на каком уровне и в какой области. ))
"Моя твоя плохо понимать" - да, можно за 2 месяца, если ограничиться областью сдачи тасков в баг-трекере.
надо на это потратить примерно от 10 лет жизни
------
Хи-хи...
от 20-ти и... в команде из 15-20 рыл, примерно равной квалификации...
Никому ваши игры в песочнице не нужны.
-----
Так оно и потом никому не нужно... ну за исключением того, кто платит деньги в надежде заработать... или хотя бы съекономить...
не было
-----
А должно было быть?
Если тебе вместо полного описания алгоритма скажут - пузырьковая сортировка - это обойдется без "Вау-у-у!!!"?
И что, даже в ожиданиях этого не будет?
Ну а с какого тогда понталыку оно должнопоявится на другом помеченном куске организации кода?
"Моя твоя плохо понимать"
-----
Это около 2-х недель.
Именно столько заняло у меня, чтобы с нуля сказать немцам, что далее перевод "дэйли/виикли" для меня болеe не нужен...
Причем понимание поставленных задач было достаточным для их выполнения без дополнительных пояснений.
Если тебе вместо полного описания алгоритма скажут - пузырьковая сортировка - это обойдется без "Вау-у-у!!!"?
Мне сейчас это понятие "пузырьковая сортировка" ни о чём не говорит. Много раз слышал, никогда не изучал. Использую дефолтные сортировки из библиотек. Ну будет надо - посмотрю в какой-нибудь Википедии. Я не думаю, что там материала на неделю изучения минимум.
Вот сейчас назначили технический собес. Готовиться ли по всяким сортировкам? - Да нафиг надо. Там могут что угодно спросить, а за время до собеса всё не изучишь-повторишь. Повторю всякие сложные формы наследования, наверное - ну, из разряда каверзных вопросов "на продакшене мы так не делаем, но задачки такие на собесах решать надо", и всё. Да и то лишь потому, что когда-то не прошёл техсобес по этой теме. Всегда не нравилось что-то зубрить. Ты либо используешь это и знаешь, либо только будешь использовать и для этого изучаешь. А изучать, чтобы проходить собесы и "чтобы было" - верный способ загнать себя в депрессию и потерять мотивацию программировать.
"Моя твоя плохо понимать"
-----
Это около 2-х недель.
Именно столько заняло у меня, чтобы с нуля сказать немцам, что далее перевод "дэйли/виикли" для меня болеe не нужен...
Причем понимание поставленных задач было достаточным для их выполнения без дополнительных пояснений.
Ну это смотря как задачи ставили. Письменно в сжатом виде, без воды, или устно, гнусавым, трудноразличимым голосом, с кучей лишних "вспомогательных" слов, произнесённых скороговоркой и со съеданием окончаний. Так-то мне иногда и на родном языке нужно повторить, чего от меня хотели.
я не хотел сказать, что разработанные студентами СУБД где-то могли найти применение.
Это просто был пример сложности задач местных университетов.
Я не знаю, насколько сложно разработать собственную СУБД. А главное - каково уровня? Может, в максимально простом случае там на 100-200 строк шаблонного кода?
В области трёхмерной графики студентов учат разрабатывать свои движки рендеринга. Правда, все формулы и подходы уже давно в букварях есть, и тупо берёшь, копируешь и, может быть, добавляешь что-то от себя, чтобы совсем плагиатом не выглядело. Вот 43 строчки кода для трёхмерного крутящегося пончика, из которых примерно треть - скобочки и декларации переменных: Donut-shaped C code that generates a 3D spinning donut - YouTube
Нет, но можно что-то вроде "Heute früh morgen, wenn die Sohne noch nicht scheint, an einer Baustelle vorbei, die schon seit zwei Jahren läuft, mit einer größen Freude bin ich gejoggt".ну удачи))
А что не нравится? Это я ещё "слегка выпендрился". Как письма ото всяких амтов читать, или вообще договора там с разными страховыми - и муттершпрахлер сдастся.
Кстати, вот тут из списка Каверзные вопросы по C# / Habr задачка 2 непонятна. Как я понимаю, базовый метод скрывается в унаследованном классе, поэтому передаваемый int приводится к double в функции наследующего класса и вызывается собственно эта функция, а не из базового класса? Т.е. тут главное, что метод скрывается, а потом уже работает приведение типов, причём неявное.
А вот если поменять тип, и передать дабл в метод, который в классе В бы принимал инт, то компилятор выдал бы предупреждение о нужности явной конверсии при передаче параметра, как я понимаю? Тут надо знать заранее, а не проверять на деле, т.к. на собесе перед вами только листочек с вопросами.
А вообще, как видно из комментов к той статье, ни один не ответил на все вопросы - т.е. завалить можно любого. Хоть заповторяйся-заучись. Где-то читал интервью Эрика Липперта, чтоли, где он признавался, что не разбирается нормально в написании многопоточного кода (как-то так). Это не мешало ему работать в команде по созданию компилятора C# много лет. Или вот, например, какой-то индус своим "корявым" английским (там в комментах говорят, что тоже не поняли, что он сказал про "возможности") рушит очень важную презентацию одного из главных продуктов на то время Satya Nadella Cortana Demo Epic Failure (Funny Video) - YouTube . И ничего, работает на не самой низкой должности в не самой бедной компании. Ну т.е. добился хоть чего-то человек, даже с такими проблемами. )) А кто-то берёт уроки у специальных преподавателей, чтобы убрать акцент, хотя занимает далеко не высокую должность или вообще безработный. Послушал многих иностранцев на позициях весьма крутых в МС, Гугле и т.п. - вобщем, если не учились в американском ВУЗе или вообще не родились и не выросли там, то будет дичайший акцент. Но не парятся ребята, а просто зарабатывают по 100-200 тысяч баксов в год, пока Вася из Макдональдса убирает свой акцент и развивает языковые таланты.
Насчёт каверзных вопросов по наследованию - по-моему, сокрытие методов, это плохая практика. Я щас не помню, но вроде компилятор в последних версиях Студии об этом придупреждает и предлагает добавить слово new перед одноимённым методом в потомке?
Но там сама суть важна - как в группе методов из иерархии наследования выбирается нужный метод, учитывая все ключевые слова определиня и наследования этих методов, и правил приведения типов параметров.
А влияют ли вообще правила приведения типов на выбор метода в группе? По-моему, если такой вопрос задаётся, то уже что-то хреново в вашей системы наследования - слишком много "магии". Надо постоянно держать в голове все комбинации всех ключевых слов и дополнительных правил, чтобы выбрать правильный вариант из, зачастую, десятков возможных. Плохой дизайн.
Кстати, вот тут из списка Каверзные вопросы по C# / Habr задачка 2 непонятна. Как я понимаю, базовый метод скрывается в унаследованном классе, поэтому передаваемый int приводится к double в функции наследующего класса и вызывается собственно эта функция, а не из базового класса? Т.е. тут главное, что метод скрывается, а потом уже работает приведение типов, причём неявное.
А вот если поменять тип, и передать дабл в метод, который в классе В бы принимал инт, то компилятор выдал бы предупреждение о нужности явной конверсии при передаче параметра, как я понимаю? Тут надо знать заранее, а не проверять на деле, т.к. на собесе перед вами только листочек с вопросами.
Нифига. Сейчас проверил. Если поменять инт и дабл местами в типах параметров методов, и передать в вызванный метод дабл, то будет вызвать метод базового класса. Значит, приведение типов влияет на выбор метода в группе - если возможно неявное приведение, то оно будет выполнено и методы базовых классов рассматриваться не будут. А если невозможно, то будут. А если сделать явное приведение, то опять будет работать правило с неявным приведением:
class Program { static void Main(string[] args) { Child c = new Child(); c.Foo((int)10.10); } } class Parent { public void Foo(int x) { Console.WriteLine("Parent.Foo(int x)"); } } class Child : Parent { public void Foo(double y) { Console.WriteLine("Child.Foo(double y)"); } }
Здесь выводится "Child.Foo(double y)". Как я понимаю, компилятор после моей явной конверсии из дабла в инт делает потом неявную из инта обратно в дабл и применяет метод из класса потомка.
Короче, показанная здесь и в таком виде иерархия классов - зло. Слишком много магии происходит по всяким "соглашениям", знание которой и проверяют такие задачки.
Но что самое интересное, правильный ответ может зависеть от версии компилятора. Вот здесь Overloading (csharpindepth.com) Джон Скит пишет
The C# 3 compiler will pick the overloadFoo(object x)
. The C# 4 compiler, when targeting .NET 3.5, will pick the same overload - becauseIEnumerable<T>
isn't covariant in .NET 3.5. The C# 4 compiler, when targeting .NET 4, will pick the Foo(IEnumerable) overload, because the conversion to that is better than the conversion toobject
. This change occurs with no warnings of any kind.
Даже не вдаваясь в подробности, относительно какого примера это написано, уже понятно, что самый-самый правильный ответ на такие "каверзные задачки" - это сначало уточнение версии компилятора. А экзаменующий должен быть поражен вашими энциклопедическими знаниями - мол, надо же, чувак постоянно держит в голове не только всю "магию" наследования с кучей правил и оговорок, но ещё и для всех версий компилятора. Надо его брать - у нас тонны говнокода на разных версиях фреймворка, включая доисторические, которые никто не будет переводить на новые. А такой умник как раз для такой работы подойдёт.
Вывод: если знать слишком много, можно получить почётную работу по разгребанию застарелого дерьма со знанием различий версий компиляторов. Пока джуниоры будут говнокодить на новом, модном, современном. )))
Вот пример из моей страховой:
"Im Fall Ihres Todes auf einer Reise mit dem versicherten Pkw im Ausland sorgen wir nach...".
Конечно, не так часто встречаются такие фразы, тем более в жизни, но в принципе должны немцы такие фразы понимать. В юридических документах ещё сложнее - примерно как и в русском, и вообще в любом, наверное - "Согласно закону РФ от... принятому в... с поправками от... принятыми в..., а также закону... принятому... поправками... суд вынес решение...". Вот эта "вводная часть" до первого глагола может занимать десяток строк - видел такое пару раз. Читать практически невозможно.
Вообще, в немецком создаётся ощущение, что смысловой глагол не так уж и важен, раз они его в конец часто вставляют. По сути, смысловой глагол в
обычных утвердительных предложениях на втором месте стоит лишь в 2 случаях - настоящее и прошедшее (не перфект). Все остальные времена и формы - в конце с остальной глагольной группой. Поэтому в немецком нормально выражение "Ich kann Englisch sprechen", а в русском "я могу в английский" - это жаргон.
Да нафиг надо.
-----
Тебе - точно - нафиг не надо.
А меня иногда спрашивают - чем вот это сортировать будешь?
Да и по работе случается заменять стандартные на сурогаты... и экономить по 20-30 минут на проход...
Всегда не нравилось что-то зубрить.
-----
Причем тут зубрежка?
Хотя... да, можно зубрить... правда Я всегда обучал тому, что в сортировке наличествуют три компонента... и только один из них отличается и определяет название метода...
Ты либо используешь это и знаешь, либо только будешь использовать и для этого изучаешь.
-----
Есть еще вариант с пониманием того что делается.
Это когда ты изучил до понимания того что делается и способен лепить то что требуется под задачу...
Ну это смотря как задачи
ставили.
-----
А почему - ставили?
Немцы между собой обсуждали текущие задачи, что-то выпадало мне...
Единственное - иногда увлекались и переходили на сленг/говор/местное/быстрое - тогда становилось непонятно, переспрашивал...
Так-то мне иногда и на родном языке нужно повторить
-----
Бывает... заметно...
Ну это смотря как задачи ставили.
-----
А почему - ставили?
Немцы между собой обсуждали текущие задачи, что-то выпадало мне...
Единственное - иногда увлекались и переходили на сленг/говор/местное/быстрое - тогда становилось непонятно, переспрашивал...
Это особенность сеньёрских позиций, или вообще на любой требуется активное участие в обсуждениях принимать. Типа "эй, джуниор (миддл), какие идеи у тебя по этому поводу?".
Всегда не нравилось что-то зубрить.
-----
Причем тут зубрежка?
Хотя... да, можно зубрить... правда Я всегда обучал тому, что в сортировке наличествуют три компонента... и только один из них отличается и определяет название метода...
Вот сейчас настал как раз случай, когда мне нужно повто... пояснить, что имелось ввиду. Причём тут сортировка, название метода и каких-то три компонента?
или вообще на любой требуется
-----
Это от организации работ.
Может быть вообще тупо:
файл "12345677", строка 54, заменить "абс" на "асб".
файл "12345677", строка 94, заменить "бса" на "сба".
И так - 8 часов каждый день... да, и у сениора тоже...
В работе всегда бывают затыки. Как то они сами собой образуются.
Сторонний взгляд на проблему может позволить оценить проблему по-другому.
Может. А может и не позволить - или сам не можешь, или идеи совсем никакие...