Вход на сайт
Как проходят собеседования программиста?
NEW 28.12.12 16:26
на сервере устанавливаешь remote debugging components и запускаешь Remote Debugging Monitor (msvsmon.exe)
Он находится в:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger
у себя локально подключаешь Visual Studio к процессу w3wp.exe на сервере, который выполняет ASP.NET приложения.
*On the Debug menu, select Attach to Process* /цы/
В принципе, все готово. Но должен быть настроен firewall.
Он находится в:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger
у себя локально подключаешь Visual Studio к процессу w3wp.exe на сервере, который выполняет ASP.NET приложения.
*On the Debug menu, select Attach to Process* /цы/
В принципе, все готово. Но должен быть настроен firewall.
NEW 01.01.13 16:53
в ответ AlexNek 28.12.12 12:11
у Линды есть курс на тему Debugging PHP
www.lynda.com/PHP-tutorials/Debugging-PHP-Advanced-Techniques/112414-2.ht...
www.lynda.com/PHP-tutorials/Debugging-PHP-Advanced-Techniques/112414-2.ht...
NEW 12.01.13 01:16
trace с помощью xdebug как правило позволяет найти проблему быстрее, чем с помощью дебага. А вообще - разумная декомпозиция + юнит тестинг.
в ответ AlexNek 28.12.12 12:11
В ответ на:
Я вот до сих пор не умею нормально PHP дебагить (пока пользую "промежуточный вывод"), может расскажешь как правильно?
Я вот до сих пор не умею нормально PHP дебагить (пока пользую "промежуточный вывод"), может расскажешь как правильно?
trace с помощью xdebug как правило позволяет найти проблему быстрее, чем с помощью дебага. А вообще - разумная декомпозиция + юнит тестинг.
NEW 12.01.13 05:39
в ответ junixar 21.12.12 16:40
По поводу собеседования.
Всего было 3 собеседования. На первом попросили рассказать в каких проектах участвовал и что делал. Далее брали каждый конкретный проект описаный в резуме и начинали спрашивать общие технические детали:
"Вы использовали веб сервисы в проекте А? Что вы думаете о веб сервисах? назовите +-"
"Вы сказали что использовали мессаджинг. Расскажите как это работает. Что вы знаете о паттерне "Publisher-Subscriber". Что вы можете рассказать об очередях (queues в смысле)"
"У вас написано что вы знаете Objective-C. Расскажите мне что вам не нравится в этом языке по сравнению с Java. А как на счет C#? Сравните мне в общем эти три языка"
"Вы использовали Hibernate. Какие есть способы замапить базу и какой вам больше нравится?"
"Как работают аннотации в Спринге? "
"Вы знаете что такое Runnable? А как на счет Callable? Кстати, а что такое Future?"
и так далее. после технических вопросов спросили пару на "адекватность". Например, "вот вы сказали что в последнем спринге была добавлена фича X, но вы сказали что в проект вы ее решили не добавлять (я просто был тим лидом). Почему вы так решили?" или "Как вы относитесь к рефакторингу?". Вопросы просто на бла бла бла, но я тоже такое люблю спрашивать так как интересно как человек аргументирует свои решения в разрезе проекта.
После этого немного поговорили в общем: "как вам америка?", "а почему вы хотите в германию", "а у вас есть тут друзья", "а вы знаете язык" и тд.
Второе собеседование было очень жестким в плане времени. Собеседовал будущий тим лидер который очень хорошо разбирается в Java (по глазам видно :) ). Были разные вопросы по Java Core, EE, и фреймворкам (Spring, Hibernate). Пара тройка вопросов по ООП, несколько вопросов "расскажите как подход Х работает", вопросы по JUnit и тд.
Конкретно вопросов "вот вам метод, оцените его сложность", небыло но я старался чтобы мои ответы соответствовали заявленому опыту. Например, когда спросили что то по коллекциям, я начал отвечать больше с позиции CS без привязки языка и там проскакивали оценки сложности и выводы где лучше применять. Также когда говорили о рефакторинге, свои ответы я аргументировал математикой пару раз. Также, небыло никаких вопросов "а как работает такой то алгоритм". Честно, я был готов. Но нет так нет :)
Последнее собеседование было больше организационным.
Ну где то вот так. Было ли сложно? Нет так как я выбирал компанию требования которой соответствуют моим знаниям и опыту. Следовательно, вопросы очень предсказуемые (хотя, кажется пару вопросов я таки завалил, но это мелочи :) ). Но если бы попал на эти собеседование парень со знаниями не подкрепленными опытом, ему бы было жарко. Очень много вопросов нельзя было бы ответить если ты с этим не работал в боевых условиях.
Алгоритмы и математика идут с университета. Совершенно очевидно что забывается очень много, но общие детали "не пропить" и если не лезть в дебри, то по теме можно поговорить. Конечно, перед Google интервью я бы забыл про всякие фреймворки и повторил бы подробно алгоритмы, но в моем случае это было ненадо.
По поводу образования спросили где я учился (донецкий национальный университет(украина) и university of texas(usa)) и какой у меня средний бал (4 или B). Общая атмосфера - очень позитивно.
Вроде как и все. Удачи
Всего было 3 собеседования. На первом попросили рассказать в каких проектах участвовал и что делал. Далее брали каждый конкретный проект описаный в резуме и начинали спрашивать общие технические детали:
"Вы использовали веб сервисы в проекте А? Что вы думаете о веб сервисах? назовите +-"
"Вы сказали что использовали мессаджинг. Расскажите как это работает. Что вы знаете о паттерне "Publisher-Subscriber". Что вы можете рассказать об очередях (queues в смысле)"
"У вас написано что вы знаете Objective-C. Расскажите мне что вам не нравится в этом языке по сравнению с Java. А как на счет C#? Сравните мне в общем эти три языка"
"Вы использовали Hibernate. Какие есть способы замапить базу и какой вам больше нравится?"
"Как работают аннотации в Спринге? "
"Вы знаете что такое Runnable? А как на счет Callable? Кстати, а что такое Future?"
и так далее. после технических вопросов спросили пару на "адекватность". Например, "вот вы сказали что в последнем спринге была добавлена фича X, но вы сказали что в проект вы ее решили не добавлять (я просто был тим лидом). Почему вы так решили?" или "Как вы относитесь к рефакторингу?". Вопросы просто на бла бла бла, но я тоже такое люблю спрашивать так как интересно как человек аргументирует свои решения в разрезе проекта.
После этого немного поговорили в общем: "как вам америка?", "а почему вы хотите в германию", "а у вас есть тут друзья", "а вы знаете язык" и тд.
Второе собеседование было очень жестким в плане времени. Собеседовал будущий тим лидер который очень хорошо разбирается в Java (по глазам видно :) ). Были разные вопросы по Java Core, EE, и фреймворкам (Spring, Hibernate). Пара тройка вопросов по ООП, несколько вопросов "расскажите как подход Х работает", вопросы по JUnit и тд.
Конкретно вопросов "вот вам метод, оцените его сложность", небыло но я старался чтобы мои ответы соответствовали заявленому опыту. Например, когда спросили что то по коллекциям, я начал отвечать больше с позиции CS без привязки языка и там проскакивали оценки сложности и выводы где лучше применять. Также когда говорили о рефакторинге, свои ответы я аргументировал математикой пару раз. Также, небыло никаких вопросов "а как работает такой то алгоритм". Честно, я был готов. Но нет так нет :)
Последнее собеседование было больше организационным.
Ну где то вот так. Было ли сложно? Нет так как я выбирал компанию требования которой соответствуют моим знаниям и опыту. Следовательно, вопросы очень предсказуемые (хотя, кажется пару вопросов я таки завалил, но это мелочи :) ). Но если бы попал на эти собеседование парень со знаниями не подкрепленными опытом, ему бы было жарко. Очень много вопросов нельзя было бы ответить если ты с этим не работал в боевых условиях.
Алгоритмы и математика идут с университета. Совершенно очевидно что забывается очень много, но общие детали "не пропить" и если не лезть в дебри, то по теме можно поговорить. Конечно, перед Google интервью я бы забыл про всякие фреймворки и повторил бы подробно алгоритмы, но в моем случае это было ненадо.
По поводу образования спросили где я учился (донецкий национальный университет(украина) и university of texas(usa)) и какой у меня средний бал (4 или B). Общая атмосфера - очень позитивно.
Вроде как и все. Удачи
NEW 13.01.13 20:49
в ответ scorpi_ 12.01.13 01:16
А такой вопрос - я тут поюзал под эклипсом Xdebug - штака классная. Но есть 1 нюанс - а можно в дебаг-окне подбрасывать значения переменных - а то в коде с сервака передается по гету url - и тупо статично отлаживать как то не интересно - там по урл испетчер cake-php (ты вроде с опытом этот фреймвокр тебе наверняка знаком) из БД тащит практически всю загрузку сайта.
Вобщем имеемтся табличка доменов - и если домен вбит в урл то диспетчер по таблице доменов всю логику реализует.
В таблице больше 50 адресов - кажый в отладке руками прописывать не комильфо а отлаживать только через дебаггер Cakephp не интересно - хочу подтащить XDebug - сам настроен все ок но в эклипсе переменные в динамике мной подкинутые не акцептирует.
Сервак - апач под ксампом.
Кстати у ксампа есть 1 баг - если XDebug сразу в динамике подрубаешь не пашет. Надо первый раз в конф файле статично прописать. Тогда грузит. ПОтом апач отрубить конфиг переписать на инамичное подрубагие XDebug - пашет как надо.
И нигде баг не описан - сам шишку набил - везде написано статично библиотеку не грузите
Вобщем имеемтся табличка доменов - и если домен вбит в урл то диспетчер по таблице доменов всю логику реализует.
В таблице больше 50 адресов - кажый в отладке руками прописывать не комильфо а отлаживать только через дебаггер Cakephp не интересно - хочу подтащить XDebug - сам настроен все ок но в эклипсе переменные в динамике мной подкинутые не акцептирует.
Сервак - апач под ксампом.
Кстати у ксампа есть 1 баг - если XDebug сразу в динамике подрубаешь не пашет. Надо первый раз в конф файле статично прописать. Тогда грузит. ПОтом апач отрубить конфиг переписать на инамичное подрубагие XDebug - пашет как надо.
И нигде баг не описан - сам шишку набил - везде написано статично библиотеку не грузите
NEW 16.01.13 23:42
а) ставим extension для PHP под названием xdebug http://xdebug.org/
б) берем IDE где есть поддержка xdebug, например Netbeans http://netbeans.org/
в) настраиваем порт и ключ для дебаг сессии (в IDE и на сервере) и прописываем IP клиента, на котором установлена IDE в настройки xdebug
г) открываем проект, жмем Debug (Нетбинс откроет его в браузере с ключом сессии)
д) ставим брекпоинт в нужном месте
е) когда брякнется, смотрим в IDE локальные переменные или добавляем нужные watches, трейсим и т.д.
при первой настройке я встрял на пункте в), но вдумчиво посидев-поматерившись, разобрался и настроил.
Ключ сессии и IP клиента может быть разный для разных площадок одного сервера (например при помощи директивы php_flag в .htaccess)
ПС не рекомендуется для продакшен серверов (по понятным причинам - перформанс/секьюрити)
б) берем IDE где есть поддержка xdebug, например Netbeans http://netbeans.org/
в) настраиваем порт и ключ для дебаг сессии (в IDE и на сервере) и прописываем IP клиента, на котором установлена IDE в настройки xdebug
г) открываем проект, жмем Debug (Нетбинс откроет его в браузере с ключом сессии)
д) ставим брекпоинт в нужном месте
е) когда брякнется, смотрим в IDE локальные переменные или добавляем нужные watches, трейсим и т.д.
при первой настройке я встрял на пункте в), но вдумчиво посидев-поматерившись, разобрался и настроил.
Ключ сессии и IP клиента может быть разный для разных площадок одного сервера (например при помощи директивы php_flag в .htaccess)
ПС не рекомендуется для продакшен серверов (по понятным причинам - перформанс/секьюрити)
NEW 18.01.13 08:05
в ответ junixar 21.12.12 16:40
Ну я, например, перед тем как пригласить на собеседование всегда выдаю маленькое тестовое задание, оно там на час или на полтора.
Смотрю чего там человек понаписал и если есть какие-то вопросы спрашиваю его. Если ответы начинают звучать странно, то тут уже все ясно.
Смотрю чего там человек понаписал и если есть какие-то вопросы спрашиваю его. Если ответы начинают звучать странно, то тут уже все ясно.
NEW 06.02.13 14:44
в ответ azesh 18.01.13 08:05
Про тестовые задания. Позиция была Softwareentwickler c# (со знаниями MS SQL)
SQL:
- что такое трансакция?
- может ли в одну трансакцию входить несколько запросов?
- даны две таблицы (с одним столбцом). В таблице А - 1,2,3, в таблице B - 2,3,4. Дан запрос: Select * from tabA right out join on tabA=tabB
На общее понимание:
Дано: клиент (имя, дата рождения), самолет (рейс-номер, дата вылета), возможность купить/сдать билет. Сколько таблиц в базе данных необходимо для этого? Сколько времени займет разработка, если речь не идет о графике? Сколько времени из этого уйдет на unitTest?
На С#:
- public, protected, private (Класс А имеет protected x, от класса А наследуется класс В, от класса В - класс С. Имеет ли класс С доступ к переменной в классе А?)
- interface (общий принцип (зачем нужны), содержит интерфейс только методы или может содержать и переменные)
- statik, const, readonly (чем отличаются)
- abstract class (что такое, с чем едят)
- try, catch, и что еще? (finaly). Может ли один try содержать несколько catch?
Практическая часть.
Дано: строка (ну, например, "mail")
Задача: развернуть строку ("liam")
SQL:
- что такое трансакция?
- может ли в одну трансакцию входить несколько запросов?
- даны две таблицы (с одним столбцом). В таблице А - 1,2,3, в таблице B - 2,3,4. Дан запрос: Select * from tabA right out join on tabA=tabB
На общее понимание:
Дано: клиент (имя, дата рождения), самолет (рейс-номер, дата вылета), возможность купить/сдать билет. Сколько таблиц в базе данных необходимо для этого? Сколько времени займет разработка, если речь не идет о графике? Сколько времени из этого уйдет на unitTest?
На С#:
- public, protected, private (Класс А имеет protected x, от класса А наследуется класс В, от класса В - класс С. Имеет ли класс С доступ к переменной в классе А?)
- interface (общий принцип (зачем нужны), содержит интерфейс только методы или может содержать и переменные)
- statik, const, readonly (чем отличаются)
- abstract class (что такое, с чем едят)
- try, catch, и что еще? (finaly). Может ли один try содержать несколько catch?
Практическая часть.
Дано: строка (ну, например, "mail")
Задача: развернуть строку ("liam")
Общественное мнение формируют не самые умные, а самые болтливые
NEW 07.02.13 18:31
А сколько денег предлагает заказчик и планируется ли дальнейшее развитие и сопровождение платформы? (Особенно критично для ответа на последний вопрос) :)))
Вся эта серия вопросов больше к ПМ относится, а в целом нормальный подход чтобы минут за 15-20 составить краткий портрет кадидата. Сам примерно так же спрашиваю. Как-то наблюдал краем глаза, как саппортерский тимлид гонял потенциального кандидата по жутким дебрям. За час оба устали, но проверили на уровне достаточном для вступления в компартию, имхо не нужно это никому.
В ответ на:
Дано: клиент (имя, дата рождения), самолет (рейс-номер, дата вылета), возможность купить/сдать билет. Сколько таблиц в базе данных необходимо для этого? Сколько времени займет разработка, если речь не идет о графике? Сколько времени из этого уйдет на unitTest?
Дано: клиент (имя, дата рождения), самолет (рейс-номер, дата вылета), возможность купить/сдать билет. Сколько таблиц в базе данных необходимо для этого? Сколько времени займет разработка, если речь не идет о графике? Сколько времени из этого уйдет на unitTest?
А сколько денег предлагает заказчик и планируется ли дальнейшее развитие и сопровождение платформы? (Особенно критично для ответа на последний вопрос) :)))
Вся эта серия вопросов больше к ПМ относится, а в целом нормальный подход чтобы минут за 15-20 составить краткий портрет кадидата. Сам примерно так же спрашиваю. Как-то наблюдал краем глаза, как саппортерский тимлид гонял потенциального кандидата по жутким дебрям. За час оба устали, но проверили на уровне достаточном для вступления в компартию, имхо не нужно это никому.
NEW 22.02.13 13:50
в ответ Kostyaa 22.02.13 10:27
Вчера по ТВ была передачка про то, что в Англии 60-летних гонят толпами в университеты - не подметать, но осваивать новые направления...
Что до возрастного ценза - неофициально, но он будет везде... с исключениями для тех, кто сможет доказать, что способен делать текущую работу и обучаться новому. Последнее, собственно, и работает как ограничитель - не освоил в течении года большую часть новинок в технологиях - на помойку...
Что до возрастного ценза - неофициально, но он будет везде... с исключениями для тех, кто сможет доказать, что способен делать текущую работу и обучаться новому. Последнее, собственно, и работает как ограничитель - не освоил в течении года большую часть новинок в технологиях - на помойку...
22.02.13 17:46
в ответ Alex_MUC 22.02.13 16:56
Иногда давали программу на Ява или С++ с ошибками, их надо было найти.
-----
Класс!!! Помнится, когда-то давно, Я переработал один синтаксический анализатор...
было - 30 КБайт кода... осталось... табличка и 10-15 строк кода... точно в соответствии
с теорией...
Когда Я хочу над кем-нибудь поиздеваться Я спрашиваю не - Где там ошибка? -
а - Как оно работает?.. и потом смотрю на судорожные попытки понять что же это
такое... А там - не сложно - LR(1) анализатор... достатчно дать ему не LR(1), a,
скажем LL(1) грамматику - писсец - даже зная что именно неправильно в ручную
искать доказательства надо несколько месяцев... всего 15 строк и табличка...
-----
Класс!!! Помнится, когда-то давно, Я переработал один синтаксический анализатор...
было - 30 КБайт кода... осталось... табличка и 10-15 строк кода... точно в соответствии
с теорией...
Когда Я хочу над кем-нибудь поиздеваться Я спрашиваю не - Где там ошибка? -
а - Как оно работает?.. и потом смотрю на судорожные попытки понять что же это
такое... А там - не сложно - LR(1) анализатор... достатчно дать ему не LR(1), a,
скажем LL(1) грамматику - писсец - даже зная что именно неправильно в ручную
искать доказательства надо несколько месяцев... всего 15 строк и табличка...
NEW 22.02.13 18:50
Официально любые ограничения запрещены. Но неофициально считается, что после 50-ти найти любую работу гораздо труднее.
Но если человек гораздо выше среднего уровня, то возраст не должен быть серьезной помехой.
в ответ Kostyaa 22.02.13 10:27
В ответ на:
есть ли в Германии возрастное ограничение при устройстве на работу
есть ли в Германии возрастное ограничение при устройстве на работу
Официально любые ограничения запрещены. Но неофициально считается, что после 50-ти найти любую работу гораздо труднее.
Но если человек гораздо выше среднего уровня, то возраст не должен быть серьезной помехой.
NEW 27.02.13 12:09
в ответ AlexNek 22.02.13 18:50
НП.
В почте лежат 4 резюме и приписка от шефа - нужна оценка кого и как использовать в плане 8-ми недель практики и далее.
1. позиция в плане оценки - напоминаю - ИТ, программирование - файлы резюме названы "CV1.doc", "MyResume.docx", "ReferenceForTrainingCourse"...
2. позиция - опыт работы (в программировании) - с чем, сколько времени, что сделано. Опыт по всем четырем - практически ноль. Т.е. есть местное ВО и 8-ми-месячные курсы программирования, на которых дали (за 8-мь месяцев) - Java, C#, VB(.NET), SQL, HTML, JS.
3. Другой опыт работы (или возраст) - практически все работали на очень низкоквалифицированной работе по 10-15 лет, частично совмещая с учебой. Т.е. возраст 30-35 лет.
4. Ляпы в резюме. Полно. Начиная от программирования на Java и Latek(!) порядка 2-х пятилеток, заканчивая разработкой Энтерпрайз-приложений работая в первой линии Customer Support.
5. Самооценка кандидатов - умеют все. Т.е. завышена и на много.
Заключение - можно дать 8-ми-недельную практику, но ожидать результата не стоит.
З.Ы. Уровень курсов - не знаю, но врядли там что-то выше - смотри сюда, кликай здесь... нет, не здесь, а вот здесь...
В почте лежат 4 резюме и приписка от шефа - нужна оценка кого и как использовать в плане 8-ми недель практики и далее.
1. позиция в плане оценки - напоминаю - ИТ, программирование - файлы резюме названы "CV1.doc", "MyResume.docx", "ReferenceForTrainingCourse"...
2. позиция - опыт работы (в программировании) - с чем, сколько времени, что сделано. Опыт по всем четырем - практически ноль. Т.е. есть местное ВО и 8-ми-месячные курсы программирования, на которых дали (за 8-мь месяцев) - Java, C#, VB(.NET), SQL, HTML, JS.
3. Другой опыт работы (или возраст) - практически все работали на очень низкоквалифицированной работе по 10-15 лет, частично совмещая с учебой. Т.е. возраст 30-35 лет.
4. Ляпы в резюме. Полно. Начиная от программирования на Java и Latek(!) порядка 2-х пятилеток, заканчивая разработкой Энтерпрайз-приложений работая в первой линии Customer Support.
5. Самооценка кандидатов - умеют все. Т.е. завышена и на много.
Заключение - можно дать 8-ми-недельную практику, но ожидать результата не стоит.
З.Ы. Уровень курсов - не знаю, но врядли там что-то выше - смотри сюда, кликай здесь... нет, не здесь, а вот здесь...