Вот то, про что спрашивали о C#:
Основы ООП.
Наследование, инкапсуляция, полиморфизм
Модификаторы доступа. Спрашивали когда какие ставятся по дефолту.
Что такое интерфейс.
Что такое абстрактный класс.
Что такое static. Спрашивали тупые вопросы вроде можно ли создать экземпляр static класса.
Наследоваться от нескольких интерфейсов, абстрактных классов.
Спрашивали про некоторые известные интерфейсы, вроде IComparable, IEnumerable...
Спрашивали что-то про virtual.
Спрашивали про некоторые коллекции.
Когда какую структуру данных нужно юзать.
Спрашивали про Generics.
Спрашивали про многопоточность.
Спрашивали про лямбда выражения, делегаты, вот это всё.
Спрашивали про события.
Спрашивали про свойства что-то насчёт get/set и их модификаторы доступа.
Спрашивали про LINQ.
Спрашивали про то, какие базы данных юзал.
Спрашивали про сериализацию(XML, Json).
Спрашивали что-то про сборки, про директивы препроцессора C#. Всякие там #if, #else, #warning, #error. И что-то про дебаг/релиз. Типа что нужно написать, чтобы какая-то часть кода работала только в дебаге.
Спрашивали еще про await, async.
Добавляйте что-то еще, дополню список.
Повторю еще раз, что очень хотел бы знать что хотят услышать от C/C++/Perl Junior'a. И про какие-то знания о Linux'e. Просто я всегда юзал Windows, а сейчас решил перекатиться.
>>368316
СОБЕСЕДУЕШЬСЯ НА ШАРПОДЖУНИОРА
@
НАПИШИТЕ ФУНКЦИЮ, КОТОРАЯ РАЗВОРАЧИВАЕТ МАССИВ
@
ЧТО ТАКОЕ АЙЕНАМЕРАБЛ
@
УДИВЛЯЕШЬСЯ ЛЕГКИМ ВОПРОСАМ
@
Есть 100этажный дом и 2 одинаковых стеклянных шара. Шар разбивается, если его сбросить с какого-то n-го этажа, если с (n-1)-го - не разобьется. Если есть 2 шара, то как их надо бросать, чтобы минимизировать число попыток в худшем случае. Например, если бы был 1 шар, то в худшем случае было бы 100 попыток, потому что пришлось бы просто перепробовать все этажи.
@
Представьте, что вокруг Земли по экватору намотана проволока. Ее длина 40000 км. Длину проволоки увеличили на 1м, и она стала парить над Землей, везде на одинаковом расстоянии от поверхности. Можно ли в образовавшееся отверстие просунуть кулак?
@
ЭЭЭ, НУ НЕ ЗНАЮ, ВРОДЕ МАЛЕНЬКАЯ ДЫРКА
>>368339
Ну вторая задача вроде элементарная.
2pr1 = 40 000 000
r1 = 20 000 000 / p
2pr2 = 40 000 001
r2 = 20 000 001 / p
length = r2 - r1 = 31 см
Ну, наверное, можно.Если это мой кулак.
А первую как решать? Я только такое решение придумал. Кидаем шар с первого этажа и с этажа n/2. И потом также только уже с половиной. Ну, рекурсивно, как-бы. В итоге получается log2n.
>>368339
И, кстати, развернуть массив то как правильно?
Так?
for(int i=0; i<arr.length/2; i++){
var member = arr;
arr = arr[arr.length-i-1];
arr[arr.length-i-1] = member;
}
>>368345
Не отобразился индекс почему-то. arr[ай], конечно же, вместо arr.
~ 16 см, а не 31.
>>368347
Вроде нет. На дефолтном калькуляторе Windows7 посчитано. Почему у тебя в 2 раза меньше? Это же радиус.
>>368348
Потому что 40 000 001 / 2 != 20 000 000, а = 20 000 000,5
>>368343
Затем, что у меня это СПРОСИЛИ НА СОБЕСЕДОВАНИИ. Нет, не на учителся математики, на шарподжуниора.
>>368342
Вторую я тоже решил, просто я в ахуе от того, что такое спрашивают.
>А первую как решать? Я только такое решение придумал. Кидаем шар с первого этажа и с этажа n/2. И потом также только уже с половиной. Ну, рекурсивно, как-бы. В итоге получается log2n.
Я тоже сначала думал про бинарный поиск, но если шар разбивается, его уже не вернуть. Могу сказать, что ответ 14. Как кидать не скажу :3
>>368345
Ну что-то типа того. Я еще сначала сказал .Reverse().ToArray(), но чувак мне сказал свой метод написать.
>>368342
Шара же только два. Я думаю нужно сначала повышать шагами, как только первый шар разобьется то вернуться на шаг назад и повышать по еденичке пока не рабоьется второй. Если вероятность этажа на котором шар разобьется равномерная, то разбив все этажи на N групп, d среднем потребуется N/2 броска что бы разбить первый шар (если начинать снизу естественно) и 100/(2*N) бросков что бы разбить второй шар. Общее количество бросков N/2 + 100/(2*N), производная 1/2 - 100/(2*N^2) равна нулю в точке N = 10, следовательно выгоднее всего разбить этажи на 10 груп. Это если распределение равномерное.
С окружностью таких ебаных расчетов проводить не нужно, же. Если длина окружность увеличивается на l, то ее радиус увеличивается на l/(2*pi), без раницы какой длины окружность.
>>368352
Да, ты прав. Я минуты через 2 тоже сказал, что надо бросать 1й шар с интервалом в 10 этажей, потому что 10 это корень из 100. Так-то это оптимальное решение, но тут надо еще минимизировать максимальное число попыток. Вот если у тебя 1й шар разбился на 10, то тебе придется 2й бросить еще 10 раз в худшем случае, итого 11 попыток. А если 1й разиблся на 100, то там в худшем случае будет 20 попыток.
>>368352
Можешь объяснить математически причём тут производная? Я помню из матана экстрэмумы, точки максимума и всё такое, но почему мы тут применяем это?
>>368356
Откуда 20, 11? Там же максимум 10 раз для первого шара и потом через 1 этаж, то-есть максимум 4 раза, так как 1 этаж из этой группы уже проверен. Разве нет?
другой кун
Двачую вопрос ОПа про Линукс.
Меня уже с двух собеседований за неделю пидорнули за то, что нет опыта работы на нем.
Причем на вопросы про язык, алгоритмы и библиотеки я вполне удачно отвечал как никак ~15 собеседование за последние 3 года, лол, но вот тот факт, что на предыдущих работах кодил лишь под винду их не устроил пробовался на c++ миддла, 2 года опыта.
Можно ли как-нибудь узнать что там нужно вообще понимать и уметь без ебли с установкой Федоры и прочими красноглазными компиляциями ядра штуками?
Алсо вопрос про стеклянные шары спрашивали на собеседовании в Яндекс. Ты не туда пробовался, ОП?
>>368339
Да, т.к. высота проволоки над поверхностью будет 0,15915494309189533576888376335284 метра.
Бросаем до половины, если разбился, то второй начинаем бросать с 1-го этажа вверх, если не разбился, то с 50-го вверх. В общем случае, та же линейная сложность, где вы там логарифмическую находите, хуй знает.
Еще появилась идея посчитать вероятности, по типу, как в доказательстве QuickSort. Так как распределение, очевидно, равномерное, то должно получиться что-то на базе натурального логарифма.
у меня токая хуйня получилась с первой задачей:
http://ideone.com/u1IbNN
>>368362
Если ты не идешь писать софт конкретно под линукс, то скорее всего требуется знание командной строки, баш-скриптинга и общего представления о работе линуха.
>>368339
>100 этажный дом
>проволока
Я ебал. HR совсем пизданулись
Расскажите пожалуйста что должен знать С/С++ Junior? Ну вот были у меня в универе плюсы, но мне кажется, что я нихуя не знаю. Что мне вообще учить? Какие темы? Нюансы?
Хорошо бы, если кто-то написал еще про Perl что-то.
На хедхантере же куча вакансий с такими требованиями. Наверняка, тут есть ребята, которые ходили на подобные собеседования.
>>368445
Ну я ходил.
Читай Страуструпа, потом Мэйерса и Саттера.
Удели внимание полиморфизму, RAII и шаблонам (про метапрограммирование почитай еще).
Обязательно посмотри алгоритмы например в Кормене.
Пойми как строится и зачем нужны бинарные кучи, хэш и деревья поиска.
Ну еще и про STL почитай у того же Мэйерса.
Удачи.
Хуй знает где ты там нашел кучу вакансий жуниорских на плюсы, я в свое время чуть жопу не порвал, пытаясь хоть что-то найти, имея при этом неплохие теоретические знания и отсутствие опыта.
>>368450
А если не конкретно про С++, к примеру? То есть что вообще должен знать ПРОГРАММИСТ?
Вот закончил второй курс вузика, а в голове имею только основы синтаксиса С++ вместо каких-то более-менее полезных знаний, и у меня бескрайне бомбит от людей, которые начинают работать уже со второго курса.
В общем, пытаюсь заниматься самообразованием, но охуеваю от того, сколько всего мне надо знать, чтобы хоть что-то уметь.
Ну и вопрос в том, в каком направлении стоит двигаться для начала? Скажем, почитать Кнутта? Или вообще удариться в основы математики потому что она у меня несколько проёбана, лол? Что вообще реально нужно при разработке реального ПО?
К примеру, я думал угореть по джаве и приложениям под андроид, но ведь язык -- всего лишь средство, и в любом случае мне нужно иметь какие-то основы.
>>368462
О, я как раз на плюсы устроился жуниором после второго курса. Учи STL, бусты неплохо, но вообще на работе разберешься. В общем базовые вопросы синтаксиса, типа RAII, эксепшны, что надо в классе перегрузить чтобы можно было в тот или иной контейнер запихнуть, ну вот такого сорта.
>>368462
> при разработке реального ПО?
При разработке реального ПО нужно уметь разбираться в области, для которой это ПО пишется, и уметь сформулировать ТЗ для кодомакак, которые будут реализовывать. То есть настоящий разработчик - это не тот, кто знает "синтаксис С++", его можно вообще не знать.
>>368462
>что вообще должен знать ПРОГРАММИСТ
Алгоритмы (что подразумевает владение математическим аппаратом). Еше полезно представлять себе, как работает компилятор и во что он, собственно, компилирует.
>>368469
>при разработке реального ПО нужно уметь разбираться в области, для которой это ПО пишется, и уметь сформулировать ТЗ для кодомакак
совок не палится
в реальности всё зависит от задачи
достаточно распространена ситуация, когда важны тонкости реализации, а ТЗ при этом очень простое
А какую среду разработки для C/C++ посоветуйте? У меня стоит вижуал студия, но там же какой-то компилятор странный и вообще там visual c++.
>>368358
Не приняли. Никакого батхёрта, кстати. 2 курс, живу с мамкой, могу и не работать.
>>368662
Чем странный-то? Норм все. Еще есть какой-то плагин Tomato Visual Assist или че-то такое, погугли про него.
>>368481
В реальности, формулировка ТЗ, формализация требований, контроль качества, и так далее - это целые дисциплины, которыми занимаются отдельные профессионалы.
>>368662
VS либо eclipse c плагином для c++. Во всем остальном чего-то не хватает.
>>368316
Знание и опыт работы в линупсе подразумевает разное.
Очень часто, если целевая платформа - *nix (Linux, xBSD, Solaris, HP-UX и т.п.) - разработчики реально используют линукс в качестве воркстейшена.
В случае быдлокодерства на похапе - обычно речь идёт о том чтобы ты не сел в лужу с элементарными правами доступа, путями и case-sensitivity файловой системы на серваке.
Ну и иногда о том что тебе придётся с нуля разворачивать свой говнокод на VDS, пользуясь одним ssh/scp.
>>368714
>какими-то либами.
Какие-то либы называются Qt.
И у них кстати есть своя среда (QT Creator) - качай да разбирайся.
>>368812
Предложи другое понятие для UNIX-совместимого говна.
Только прежде чем ты пёрнешь "позикс" скажу что сертификацию на ISO/IEC 9945 ни линупс, ни свободная бздя никогда не проходили.
Расскажите кто-нибудь про собеседования на Junior Python + Django, если тут есть пережившие подобное.
>>368821
unix: Mac OS X, FreeBSD, HP/UX, AIX, Solaris,..
linux: ...
>>368847
Например подсветки тел циклов как в плагинах к ВС
>>368662
крайне не советую переходить с вижуал студии на что-нибудь еще, если собираешься писать под винду. Во первых, visual c++ и с++ - разные языки, в студии есть компиляторы для обоих. Во-вторых, по оптимальности, скорости, устойчивости, удобству разработки нет ни одно IDE, которая под виндой бы сравнилась со студией. Лучше выучи как следует студию 2010 или 2012 скажем, и будет тебе безмерное счастье под виндой. Если хочешь, могу ответить на большинство вопросов про студию и помочь с ней, пиши на мыло
>>368903
Пока микрософт запилит все фичи C++11 в свой конпелятор пройдёт ещё лет 5.
>>368914
многое там появилось раньше gcc
а что тебе не хватает?
>>368903
Спасибо, буду использовать её тогда. А вообще, я почти 2 года на шарпе в ней пишу.
Расскажите пожалуйста про WPF. Вот я увидел вакансию, написано требуется знание WPF. Я имел дело только с Windows Forms. C# я знаю хорошо. Смогу ли я за пару дней освоить азы ? И что лучше почитать? Кроме msdn.
>>369050
http://www.wpf-tutorial.com/
Не возвращайся, пока не прочитаешь.
>>369175
> javascript - это почти что scheme с другим синтаксисом
Проиграл.
>>369551
Так и есть, лол.
Jacascript - изуродованная сишным синтаксисом схема.
>>369554
В целом я с тобой согласен, но, например, в JavaScript никогда не будет аналога define-syntax. Эти парни лучше объяснят:
pros: http://www.crockford.com/javascript/javascript.html
cons: http://journal.stuffwithstuff.com/2013/07/18/javascript-isnt-scheme/
>>369554
Схема - это диалект Лиспа, а JavaScript императивный язык. Откуда в Лиспе циклы?
>>369573
Чем не цикл?
(define (loop left right)
(if (< left right)
(begin
(display left)
(newline)
(loop (+ left 1) right))))
>>369551
>scheme
>с другим синтаксисом
А говно - это шоколад с другим вкусом.
>>369575
Это рекурсия.
Цикл императивен, это итерация - последовательное выполнение операторов.
Рекурсия - это вызов функции, никакой императивщины.
>>369578
Попробуй написать цикл со счетчиком (FOR), там очень хорошо видна разница между императивным и функциональным стилем.
>>369577
В языке синтаксис не главное, в отличие от шоколада, так что мимо.
Скорее подойдёт «сок — это фрукты в другой форме», что в общем верно.
>>369578
Откуда вы только берётесь. Важно не то, как код выглядит, а то, что он делает. Компиляторы Scheme обязаны реализовывать оптимизацию хвостовой рекурсии, а с ней то, что я привёл — самый настоящий цикл (никакого каскадного возврата из вызовов не будет).
Читай SICP: https://sarabander.github.io/sicp/html/1_002e2.xhtml#Linear-Recursion-and-Iteration
>>369579
> Попробуй написать цикл со счетчиком (FOR)
Чем то, что я привёл — не цикл со счётчиком? Переменная цикла — left
.
Ну или вот более явно:
(define (for-loop body start end step)
(let iter ((i start))
(if (< i end)
(begin
(body i)
(iter (+ i 1))))))
>>369579
Ещё один вариант:
(define (for-loop body start end)
(letrec ((i start)
(loop (lambda ()
(if (< i end)
(begin
(body i)
(set! i (+ i 1))
(loop)))))))
>>369580
>В языке синтаксис не главное, в отличие от шоколада, так что мимо.
В Лиспе главная фича - таки синтаксис, позволяющий писать какие угодно макросы.
>>369580
Здесь различие не в синтаксисе, а гораздо глубже - в парадигме (мышлении).
Что такое классический FOR? Это использование переменных, т.е. наличие некоей среды, которая изменяется во время итерации командами. Мы отдаем приказы среде, командуем, КАК нужно сделать, чтобы получился такой-то результат.
Твой код - математические формулы, нет никакой среды, нет никаких переменных. Мы говорим, ЧТО нам нужно, а как компилятор будет делать (хвостовой рекурсией как в схеме или call'ами в других диалектах), это уже детали реализации.
Т.е. мы мыслим по-разному - в первом случае занимаемся байтоеблей, во втором - сосредотачиваемся на сути задачи.
>>369583
Вот здесь уже больше похоже на императивный стиль, но все потому, что лисп не чистый язык.
>>369612
> Что такое классический FOR?
Ты что-то путаешь. Классический FOR выглядит вот так:
for {переменная} in {коллекция / диапазон}
{делаем что-то, переменную цикла не перезаписываем}
(define (factorial n)
(if (zero? n)
1
(* (factorial (- n 1)) n)))
(define (factorial n)
(let iter ((k n) (p 1))
(if (zero? k)
p
(iter (- k 1) (* p k)))))
>>369607
Сейчас да, потому что остальные идеи уже абсорбировались мейнстримом.
http://www.paulgraham.com/diff.html
Ребята. Что мне можно почитать по C++? Я вроде уяснил основной синтаксис, основные плюшки. Хочу дальше изучать его. Или может быть посоветуйте что-нибудь написать на нём, чтобы гуглить и разбираться с какими-то новыми технологями?
>>368941
Например constexpr
Которая будет в 14 студии.
http://msdn.microsoft.com/en-us/library/hh567368.aspx
Вот тут списочек есть.
>>368863
Няша, что это за плагин такой? Хотеть!
>>368316
Посоны, поясните, реально ли устроиться джява-макакой без образования и опыта?
>>369714
Почему? Я же неплохо умею в джяву и многие фреймворки.
>>369680
Прочел, но всё-равно не понял. То-есть это курс, который проводят время от времени. Нужно записаться сейчас, чтобы тебя потом оповестили. Так?
>>368339
>Есть 100этажный дом и 2 одинаковых стеклянных шара. Шар разбивается, если его сбросить с какого-то n-го этажа, если с (n-1)-го - не разобьется. Если есть 2 шара, то как их надо бросать, чтобы минимизировать число попыток в худшем случае. Например, если бы был 1 шар, то в худшем случае было бы 100 попыток, потому что пришлось бы просто перепробовать все этажи.
@
Представьте, что вокруг Земли по экватору намотана проволока. Ее длина 40000 км. Длину проволоки увеличили на 1м, и она стала парить над Землей, везде на одинаковом расстоянии от поверхности. Можно ли в образовавшееся отверстие просунуть кулак?
Как научиться решать эту парашу? Я кучу таких задач решал и все равно не все решить могу.
>>369792
>Я кучу таких задач решал и все равно не все решить могу.
>долбоеб ходил в школу только чтобы бухать и курить
Общество сказало - ты заткнулся в тряпочку и подчинился. Наслаждайся теперь своей среднеклассовой жизнью.
>>369792
Прочитать Кнута "конкретную математику" и "искусство программирования" и решить хоть часть задач
Например решение первой я представляю тут >>369640 как обобщение варианта >>368352 только с тем отличием что шаг увеличения не 10, а 14-n потому что с шагом число попыток в худшем случае не возрастает - первый шаг 14 второй 13 + 1, третий 12 + 2....
Привет. Я, как и многие здесь, являюсь студентом и пришла пора устраиваться на работу. Поэтому я бы хотел узнать у вас что спрашивают на собеседованиях. Особенно интересует C++/Cможет быть Perl еще и что в себя включает "знание и опыт работы в Linux". Также хотелось бы узнать о каких алгоритмах спрашивают, кроме сортировок.
Я, например, могу составить небольшой список по вопросам о C#. Вообщем пишите и я буду обновлять/испралять список. В конце треда у нас будет небольшой FAQ, который будет полезен новичкам.
Ну и прошу писать по делу. А вообще, кулстори тоже приветствуются.