Лични инструменти

Интервю за програмисти

от jobs.dev.bg

Интервю за програмисти

Всяко интервю е специфично за себе си. Всяко интервю е различно и всяка фирма интервюира за нещата, които се използват във фирмата. Така, че няма как да се напише универсален справочник за това какво трябва да знае един програмист на интервю. Статията по - долу е по - скоро абстрактна и дава основни насоки.

Съдържание

Увод в програмирането

Ако кандидатствате за начинаещ програмист, най - много изпитващия ще е заинтересуван от това, дали познавате основите на програмирането. Примерни въпроси могат да включват въпроси за масиви, свързани списъци, променливи, памет и подобни основни понятия. В зависимост от езика, на който ще програмирате, може да ви бъдат зададени и други подобни въпроси.

Познавайте езика, на който програмирате

В повечето случаи, от вас се очаква да познавате поне малко езика, на който ще програмирате и съответно това е едно от нещата, за които ще бъдете разпитвани. Всеки език си има свои особености и тънкости и именно за тези тънкости ще ви пита интервюиращия, за да разбере до каква степен познавате езика за програмиране. Ако обаче не отговорите правилно на някои въпроси, не се притеснявайте. Срещал съм програмисти, които са писали на даден език 3 или 4 години и никога не са се сблъсквали с някой малък детайл. Това не е критерий, че не познавате добре езика за програмиране. Ако обаче не отговорите на повече от половината от въпросите на интервюиращия - е тогава можете да се притеснявате :)

Обектно ориентирано програмиране

Някой беше казал, че ако човек разбира рекурсия и обектно ориентирано програмиране, значи може да се научи на всичко останало. Аз не се придържам напълно към това мнение, но много често на интервю ще бъдете подробно разпитани за класове, абстрактни класове, интерфейси, обекти, изключения, наследявания. Много често задаван въпрос е : "Каква е разликата между клас, интерфейс и абстрактен клас"


Качествен програмен код

Ако имате поне малък стаж, то всяка уважаваща себе си фирма би искала да знае малко повече за качеството на кода, който разработвате. Това може да включва много аспекти - дали спазвате конвенции и какви, как организирате класовете и методите в тях, как решавате проблемите. Един път на интервю в Stellar ме попитаха "Какво всъщност е качествен програмен код за вас?". Въпросът, разбира се, няма еднозначен отговор.

По въпроса за качествения код има написана цяла книга и е доста обширна тема. В Софийския университет се водеше курс на тази тема: http://www.devbg.org/codecourse/ На всеки, който иска да бъде добър програмист, препоръчвам да прочете книгата поне веднъж.

Напишете тази задача

Много фирми наемат без да ви накарат да напишете и грам код. Но по мое мнение това е грешен подход. За да може да се прецени колко е добър един кандидат, то трябва да му се даде малка задачка на интервюто, за да се види какъв код ще напише и как ще се справи. Друг вариант е да се изиска от кандидата да напише задача в къщи или да донесе писан от него код. Във всеки случай внимавайте какъв код ще покажете! Гледайте имената на променливите да не са еднобуквени, да няма безпорядък, класове от по 5000 реда или функции от 500 реда. Именовайте променливите и функциите правилно. Прихващайте изключенията и ги обработвайте по правилен начин.