Как пройти собеседование?

dmicher
Уже с Приветом
Posts: 376
Joined: 14 May 2011 00:48

Re: Как пройти собеседование?

Post by dmicher »

Интеррапт wrote:
dmicher wrote:
Boriskin wrote:
OtherSide wrote: Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.
А что я могу даже примерно "набросать"?

Code: Select all

int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}
Нормальный win32 console app. 8)
Этол не Win32 console app. Насколько я понимаю Win32 программа это та программа, которая использует хотя бы одну специфическую для Win функцию, а у вас ее нет.
Не думаю, что вы правы и что существует такое определение. Для обычной Win32 console application (с CRT) - функция _tmain будет вызванна из mainCRTStartup (конечно это поведение можно поменять при помощи linker options или при помощи #pragma comment (linker ...) ). А в mainCRTStartup и так вызывается несколько Win32 функций (GetVersion, GetStartupInfo и т.п.), прежде чем будет вызвана ваша _tmain. Так что в вашем бинарнике будут вызовы Windows функций, даже если вы не добавили свой собственный код.
Подобный код вполне себе можно запустить и на линухе.
dmicher
Уже с Приветом
Posts: 376
Joined: 14 May 2011 00:48

Re: Как пройти собеседование?

Post by dmicher »

dmicher wrote:
Интеррапт wrote:
dmicher wrote:
Boriskin wrote:
OtherSide wrote: Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.
А что я могу даже примерно "набросать"?

Code: Select all

int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}
Нормальный win32 console app. 8)
Этол не Win32 console app. Насколько я понимаю Win32 программа это та программа, которая использует хотя бы одну специфическую для Win функцию, а у вас ее нет.
Не думаю, что вы правы и что существует такое определение. Для обычной Win32 console application (с CRT) - функция _tmain будет вызванна из mainCRTStartup (конечно это поведение можно поменять при помощи linker options или при помощи #pragma comment (linker ...) ). А в mainCRTStartup и так вызывается несколько Win32 функций (GetVersion, GetStartupInfo и т.п.), прежде чем будет вызвана ваша _tmain. Так что в вашем бинарнике будут вызовы Windows функций, даже если вы не добавили свой собственный код.
Подобный код вполне себе можно запустить и на линухе.
Выше указанное определение это мое ИМХО - то есть как бы я ожидал ответ от оппонента.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

OtherSide wrote:
Alexandr wrote:все же интересно:
а что вы им ответили и что им не понравилось?
кста, они в вакансии указывали что WinAPI знать надо?
Написали что требуется. Все что мог ответить, это словами логику - регистрация класса - создание окна - гет-транслейт-диспатч, выход по wm_close. Как добавить кнопку на форуму вспомнить не смог.
Тем не менее считаю, что winAPI знаю неплохо, т.к. вполне мог бы написать сейчас несложное приложение, имея под рукой хелп.
а вам сразу сказали, что плохо знаете или просто не взяли?
во втором варианте скорее всего просто попался кто-то где цена/качество лучше, либо банально дешевле

т.е. то, что вас не взяли, далеко не всегда говорит о том, что у вас знаний недостаточно
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

IvanF wrote:
OtherSide wrote:выход по wm_close. Как добавить кнопку на форуму вспомнить не смог.
Ну на самом деле выход можно сделать когда угодно, просто завершив WinMain, да и терминация цикла обработки сообщений обычно происходит по WM_QUIT. А WM_CLOSE это просто сообщение окна, которое может быть не связанно с выходом из приложения. Более того, даже если закрыть окно по WM_CLOSE но не прервать цикл обработки сообщений, то приложение будет дальше работать.
А вот про форму не совсем понятно. Вас собеседовали как Delphi программиста?
когда WM_CLOSE приходит, достаточно PostQuitMessage запулить и цикл завершится (так как WM_QUIT придет)
скорее всего автора спрашивали, как кнопку создать на главном окне, просто создать окно с именем класса BUTTON и в родителе нотификацию BN_CLICK (так кажется) обрабатывать
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

OtherSide wrote:
IvanF wrote:
OtherSide wrote:выход по wm_close. Как добавить кнопку на форуму вспомнить не смог.
Ну на самом деле выход можно сделать когда угодно, просто завершив WinMain, да и терминация цикла обработки сообщений обычно происходит по WM_QUIT. А WM_CLOSE это просто сообщение окна, которое может быть не связанно с выходом из приложения. Более того, даже если закрыть окно по WM_CLOSE но не прервать цикл обработки сообщений, то приложение будет дальше работать.
А вот про форму не совсем понятно. Вас собеседовали как Delphi программиста?
Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.
А что я могу даже примерно "набросать"? В голове только общая схема осталась, Какими функциями класс окна регестрируется, в голове не держу. Рассказал на словах, но было видно, что ответ мой не понравился.
значит им действительно нужен человек, который хорошо знает WinAPI и придется много писать на нем, т.е. если вы не помните как кнопки добавлять ну и другие простые вещи, то скорее всего "продвинутые" вещи тоже не помните/не знаете (у них нет способа узнать), поэтому и отсеяли

все же мне кажется ваша основная проблема в том, что вы много чем занимались, но нигде нет глубины знаний

хотя, если бы я был на вашем месте, я бы слез с С++ и пересел на какой-нть мейнфрейм C#/Java - работ больше, есть много мест, где не нужна супер-аховая квалификация, по деньгам - в среднем выше чем С++ (если вы в Мск)
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

IvanF wrote:
nightmare2 wrote:Ну это же практически синонимы.
Или это тоже не совместимо с высоким званием C++ кодера. :D
Потому что winapi С++ программист который не работал с VB, Delphi не назовет окно формой. А значит есть большие подозрения что собеседование шло на Delphi программиста со знанием winapi. Но это только предположение, поэтому я и спросил.
вот тут я с вами согласен :D
потому что даже похожая на форму субстанция называется "диалог" :)
dB13
Уже с Приветом
Posts: 1494
Joined: 08 May 2001 09:01
Location: Silicon Valley

Re: Как пройти собеседование?

Post by dB13 »

dmicher wrote:
Boriskin wrote:
OtherSide wrote: Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.
А что я могу даже примерно "набросать"?

Code: Select all

int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}
Нормальный win32 console app. 8)
Этол не Win32 console app. Насколько я понимаю Win32 программа это та программа, которая использует хотя бы одну специфическую для Win функцию, а у вас ее нет.
:rtfm: Win32 программа - это Portable Executable (PE) файл с флагом подсистемы CONSOLE или WINDOWS,
а какие функции она вызывает -- дело десятое.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

IvanF wrote:
nightmare2 wrote:Он с С# работал, вот оттуда нахватался. :D
Может быть, но маловероятно. Использовать оконное winapi на C# незачем. Переход C#->C++ winapi тоже выглядит странно. А вот C++ winapi < -> delphi+winapi вполне может быть
да нужно иногда
как-то понадобилось обрабатывать WM_ERASEBKGND обрабатывать и смена цвета фона на форме не помогала (была хитрая раскраска контролов), так что пришлось заюзать NativeWindow, а там функция окна есть :D

+хрен в шарпе есть поддерка desktop managerа который в 7ке появился
+есть глюк WebControlа, который становится полупрозрачным хитро-покривившимся, если WPF форма включает прозразные части, тоже там пришлось с бубном поплясать
Last edited by Alexandr on 20 Mar 2012 07:30, edited 2 times in total.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

dB13 wrote:
dmicher wrote:
Boriskin wrote:
OtherSide wrote: Дали ручку с бумагой (до этого были другие вопросы). Говорят ну напишите.. можно примерно.. код простейшего вин-апи приложения.
А что я могу даже примерно "набросать"?

Code: Select all

int _tmain(int argc, _TCHAR* argv[])
{
	return 0;
}
Нормальный win32 console app. 8)
Этол не Win32 console app. Насколько я понимаю Win32 программа это та программа, которая использует хотя бы одну специфическую для Win функцию, а у вас ее нет.
:rtfm: Win32 программа - это Portable Executable (PE) файл с флагом подсистемы CONSOLE или WINDOWS,
а какие функции она вызывает -- дело десятое.
+1
в любом консольном можно создавать окна, в любом где подсистема WINDOWS можно сказать AttachConsole :)
Last edited by Alexandr on 20 Mar 2012 07:29, edited 1 time in total.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

дубль
OtherSide
Уже с Приветом
Posts: 15872
Joined: 01 Mar 2008 15:14
Been thanked: 1 time

Re: Как пройти собеседование?

Post by OtherSide »

Alexandr wrote: все же мне кажется ваша основная проблема в том, что вы много чем занимались, но нигде нет глубины знаний

хотя, если бы я был на вашем месте, я бы слез с С++ и пересел на какой-нть мейнфрейм C#/Java - работ больше, есть много мест, где не нужна супер-аховая квалификация, по деньгам - в среднем выше чем С++ (если вы в Мск)
Странная мысль, как раз именно в C#/Java нужна глубина знаний, большого числа библиотек,
а понимание принципов не так важно, как в С++. Вообще же все люди разные, для вас важна
механическая зубрежка, внимание к мелочам, а стратегия не так важна.
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: Как пройти собеседование?

Post by dotcom »

По-моему мы вам уже 20 страниц пытаемся объяснить, что нужна и стратегия, и глубина знаний, и понимание принципов. И все это независимо от языков, носов, рук, ног и всего остального. Ума не разложу, как вы посчитал кол-во библиотек в .NET/Java и C++ и учли их важность там и сям.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

OtherSide wrote:
Alexandr wrote: все же мне кажется ваша основная проблема в том, что вы много чем занимались, но нигде нет глубины знаний

хотя, если бы я был на вашем месте, я бы слез с С++ и пересел на какой-нть мейнфрейм C#/Java - работ больше, есть много мест, где не нужна супер-аховая квалификация, по деньгам - в среднем выше чем С++ (если вы в Мск)
Странная мысль, как раз именно в C#/Java нужна глубина знаний, большого числа библиотек,
а понимание принципов не так важно, как в С++. Вообще же все люди разные, для вас важна
механическая зубрежка, внимание к мелочам, а стратегия не так важна.
очень странная мысль о том, что незнание мелочей ведет к глубокому пониманию сути,
наоборот еще странее: что знание мелочей говорит о непонимании бОльшей картины
OtherSide
Уже с Приветом
Posts: 15872
Joined: 01 Mar 2008 15:14
Been thanked: 1 time

Re: Как пройти собеседование?

Post by OtherSide »

Alexandr wrote: очень странная мысль о том, что незнание мелочей ведет к глубокому пониманию сути,
наоборот еще странее: что знание мелочей говорит о непонимании бОльшей картины
Почему же странная? Я задал вам несколько простых вопросов, раскрывающие логику языка С++.
Например, зачем ввели в язык ссылки? Вы оказались неспособны ответить. Зато на уровне реализации понимаете.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

OtherSide wrote:
Alexandr wrote: очень странная мысль о том, что незнание мелочей ведет к глубокому пониманию сути,
наоборот еще странее: что знание мелочей говорит о непонимании бОльшей картины
Почему же странная? Я задал вам несколько простых вопросов, раскрывающие логику языка С++.
Например, зачем ввели в язык ссылки? Вы оказались неспособны ответить. Зато на уровне реализации понимаете.
я просто не хотел ввязываться в еще одну ветвь дискуссии о идиологии :) ну раз вы настаиваете:)
ссылки ввели просто для упрощения возможности изменения значений параметров внутри функции, а также упрощение синтаксиса, когда нужно избежать копирования
в любой книжке есть что-то типа: используйте ссылки вместо указателей, за исключением случаев когда нужно NULL позволять передавать (хотя выше я показывал, что NULL можно и по ссылке передать)
+ ввиду упрощения синтаксиса ссылок, гораздо труднее нарваться на проблемы с pointer aliasing, чем когда используются указатели

Return to “Работа и Карьера в IT”