Capgemini - rozmowa kwalifikacyjna w biurze Junior Java Developer

0

Cześć,
W przyszłym tygodniu zostałem zaproszony na rozmowę kwalifikacyjną w biurze we wrocławskim Capgemini na stanowisko Młodszy programista (Java). Dostałem informację, że będą zadania techniczne ale kompletnie nie mam pojęcia o co mogą pytać i czy będzie coś do napisania "na kartce". Jeżeli ktoś ma jakieś doświadczenia związane z ostatnim etapem rekrutacji to bardzo był bym wdzięczny :)

1

Prawdopodobnie spotka Cie typowo korporacyjna rozmowa kwalifikacyjna. Java, SQL (zapytania oraz słowa kluczowe), jakieś diagramy klas. Wątki, Trochę Springa, wzorce. Prawdopodobnie będą zadania tylko na kartce.

Może nawet taka zagadka: "Dane jest 6 odważników w tym jeden cięższy od pozostałych oraz waga szalkowa. Ile minimalnie razy trzeba skorzystać z wagi szalkowej aby znaleźć odważnik o innej wadze" :).

1

Pewnie będą jakieś algorytmy. Powtórz sobie dokładnie notację duże 0, theta itd, obliczanie złożoności twojego algorytmu, kolekcje, podstawowe algorytmy. Porób zadania na Codility. Bardzo prawdopodobne że będzie też sporo pytań odnoście OOP i wielowątkowości. Jeżeli chodzi o resztę pytań to chyba będą jakieś "normalne" w stylu dlaczego kompozycja zamiast dziedziczenia, interfejs vs klasa abstrakcyjna, wystarczy że sobie wpiszesz w google 'top 100 java interview questions in 2019' i jeżeli będziesz na każde potrafił odpowiedzieć to sobie poradzisz na rozmowie.

Poza samą Javą bardzo prawdopodobne, że będą wypytywać o totalne podstawy sieci komputerowych (statusy, kody, metody HTTP, CORS, XSS, CSRF, Sql injection, model ISO/OSI, tcp vs udp), bazy danych sql - teoria + zapytania, indexy, joiny, funkcje, triggery itd. Bardzo możliwe też, że pojawią się też pytania z frameworka spring(raczej z cora - co to DI, IoC, podstawowe adnotacje, scopy beanów, sposoby obsługi wyjątków, transakcje, bezpieczeństwo wielowątkowe, AOP. Wątpie by dali coś trudnego juniorowi) oraz hibernate (takie typowe pytania to. np problem N+1 zapytań, open session in view, pessimistic vs optimistic lock, cachowanie danych).

Może też paść kilka prostych pytań/zadań z Gita, być może coś o mavenie lub gradle będziesz musiał powiedzieć.

3

Nie byłem, ale słyszałem... ogólnie pytania często zadawane świeżakom (o dziwo wielu się wykłada):

  • Co nowego jest w Java 8/ 9 itd?
  • Czym różnią się implementacje klasy List: LinkedList i ArrayList?
  • Czym różni się interfejs od klasy abstrakcyjnej?
  • Jakie znasz sposoby synchronizacji wątków?
  • Co się stanie jak rozszerzę klasę String?
  • Jaka jest różnica między String, StringBuffer i StringBuilder?
    pytania o hashCode i equals w różnej formie
  • Co robi metoda hashCode?
  • Czy muszę implementować hashCode i equals?
    Zadanie na kartce może polegać na opisaniu co zrobi kawałek kodu podany w zadaniu, np.
class Base {
	public Base() {
		System.out.println("Base.Base()");
	}

	public void hello() {
		System.out.println("Base.hello()");
	}
}

class Derived extends Base {
	public Derived() {
		System.out.println("Derived.Derived()");
	}

	public void hello() {
		System.out.println("Derived.hello()");
	}

	public static void main(String... args) {
		Base base = new Derived();
		base.hello();

		Derived derived = new Derived();
		derived.hello();
	}
}

Mogą spytać o wzorce projektowe, żeby wymienić chociaż dwa. Dekorator ma fajny przykład: do konstruktora JScrollPane można podać instancję obiektu JTextArea, czyli udekorować jeden obiekt drugim. Kolejny bardzo fajny przykład to RandomAccessFile z instancją klasy File jako argumentem. Singleton wypada znać nawet jak się śpi.

Ogólnie warto przejrzeć dokumentację API biblioteki i zobaczyć co tam jest. https://docs.oracle.com/en/java/javase/11/docs/api/index.html

0

@sirswistak: kolega był niedawno ale w Krakowie na rozmowie i miał zadanie przy komputerze typu codility. Zostawili go przy kompie na 45-1h nie pamiętam dokładnie. Miał też pytania z baz danych, był na kompie schemat i miał napisać selecta z joinami i chyba inserta albo update.

1

Ostatnio byłem na kilku rozmowach na Junior Java Engineer/Developer i poza ogólną, praktyczną wiedzą jak coś działa, SQLkami itd, warto dokładnie zapoznać się ze składnią i różnymi (niekoniecznie powszechnie stosowanymi) tajnikami języka. Trzeba uważnie czytać listingi kodu w zadaniach, a także wiedzieć coś o współbieżności.

1

Na przykład co wypisze na konsoli taki kod (kod nie musi być w Java, może być w pseudokodzie)

Wydaje się proste ale masz mało czasy na teście

Może być 60 pytań z godziną na odpowiedzi
Spodziewaj się prostych tematów sprawdzanych raczej wnikliwie.
Na pewno złożoność obliczeniowa, podstawy sieci
Mój test na staż miał też podstawy architektury komputerów
Może być pytanie wymień znane ci języki obiektowe, wymieniasz JS to pytanie czy jest typowe dziedziczenie w JS, drążenie dalej czy słyszałeś dziedziczenie prototypowe? - to już na rozmowie
Nieśmiertelne wzorce projektowe, już napisali - wymień dwa. Wymieniasz te dwa z których czujesz się wystarczająco mocno żeby pociągnąć jedno, dwa pytania głębiej.

Lepiej przyznać się - nie znam JS, idę na Javę - zamiast rżnąć głupa

Zero frameworków. Takie pytania dopiero po stażu z propozycja pracy w zaproponowanym zespole z ich technologiami.

var condition = true

var i = 2

while (condition) {
    if (i == 3) {
        condition = false
    }
    console.log(i)
    i = i + 1
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1