Programista szuka pracy. Kulisy rekrutacji w branży IT. Wydanie III - ebook
Programista szuka pracy. Kulisy rekrutacji w branży IT. Wydanie III - ebook
Przewodnik dla poszukujących pracy!
Rozmowa rekrutacyjna to ten rodzaj spotkania, który wywołuje stres nawet u najbardziej odpornych. Podchwytliwe pytania, zadania do rozwiązania, skomplikowane testy dotyczące spraw technicznych oraz nierzadko kilkugodzinny dialog wymagają dużej odporności i wiedzy. Zastanawiasz się, jak przygotować się do tej rozmowy? Na to pytanie nie ma jednej odpowiedzi, ale wszystkie znajdziesz w tej książce!
Ta lektura doskonale przygotuje Cię do kolejnej rozmowy rekrutacyjnej. Na samym początku dowiesz się, jak szukać ofert pracy oraz jak rozpocząć proces ubiegania się o wybrane stanowisko. W kolejnych rozdziałach zaznajomisz się z różnymi problemami programistycznymi oraz podejściami do ich rozwiązywania. Zobacz, czym mogą próbować Cię zaskoczyć rekruterzy w obszarach związanych z listami, drzewami, grafami i rekurencją. Poznaj najczęściej pojawiające się pytania dotyczące wzorców projektowych, programowania obiektowego oraz baz danych. Książka ta jest obowiązkową lekturą dla wszystkich osób chcących pomyślnie przejść proces rekrutacji na wymarzone stanowisko!
Dzięki tej książce:
- Nauczysz się technik rozwiązywania zadań zadawanych na rozmowach kwalifikacyjnych.
- Nauczysz się sposobów zastosowania tych technik do rozwiązywania zadań oraz poznasz szczegółowe rozwiązania z objaśnieniami krok po kroku.
- Przestudiujesz rozwiązania w językach C, C++, C# oraz Java z naciskiem na techniki obiektowe.
- Znajdziesz nowe rozdziały dotyczące sortowania i wzorców projektowych oraz nowe pytania dotyczące architektury 64-bitowej i zabezpieczeń.
Lektura obowiązkowa przed rozmową rekrutacyjną!
Spis treści
O autorach (13)
O korektorach merytorycznych (15)
Podziękowania (17)
Przedmowa (19)
Wprowadzenie (23)
Rozdział 1. Zanim zaczniesz szukać (27)
- Poznaj samego siebie (27)
- Poznaj rynek (29)
- Podstawowe informacje o rynku (29)
- Outsourcing (30)
- Rozwijanie atrakcyjnych umiejętności (31)
- Doprowadzaj projekty do końca (32)
- Zadbaj o swój profil internetowy (32)
- Podsumowanie (34)
Rozdział 2. Proces ubiegania się o pracę (35)
- Znajdowanie firm i kontaktowanie się z nimi (35)
- Szukanie firm (35)
- Polecanie (36)
- Współpraca z łowcami głów (36)
- Bezpośredni kontakt z firmą (37)
- Targi pracy (38)
- Przebieg kwalifikacji (38)
- Rozmowy przesiewowe (38)
- Rozmowy kwalifikacyjne w siedzibie firmy (39)
- Strój (39)
- Rola rekrutera (40)
- Oferty i negocjowanie (41)
- Jak sobie radzić z presją wywieraną przez rekrutera? (41)
- Negocjowanie wynagrodzenia (41)
- Przyjmowanie i odrzucanie oferty (42)
- Podsumowanie (43)
Rozdział 3. Różne podejścia do problemów programistycznych (45)
- Proces (45)
- Scenariusz (46)
- Problemy (46)
- Jakich języków programowania używać? (47)
- Kluczem jest interaktywność (47)
- Rozwiązywanie problemów (48)
- Podstawowe kroki (48)
- Co robić, gdy się utknie? (50)
- Analizowanie rozwiązania (50)
- Zastosowanie notacji dużego O (51)
- Działanie notacji dużego O (52)
- Najlepszy, średni i najgorszy przypadek (53)
- Optymalizacja a notacja dużego O (53)
- Jak analizować algorytmy przy użyciu notacji dużego O? (54)
- Który algorytm jest lepszy? (54)
- Analizowanie zużycia pamięci (55)
- Podsumowanie (55)
Rozdział 4. Listy powiązane (57)
- Dlaczego listy powiązane? (57)
- Rodzaje list powiązanych (58)
- Listy powiązane jednostronnie (58)
- Listy powiązane dwustronnie (59)
- Listy cykliczne (60)
- Podstawowe operacje na listach powiązanych (60)
- Zapamiętywanie elementu początkowego (60)
- Przeglądanie listy (62)
- Wstawianie i usuwanie elementów (62)
- Zadania związane z listami powiązanymi (64)
- Implementacja stosu (64)
- Obsługiwanie wskaźnika do ogona listy powiązanej (69)
- Błędy w funkcji removeHead (73)
- Zwracanie elementu listy o określonym numerze od końca (75)
- Spłaszczanie listy (77)
- Przywracanie spłaszczonej listy do pierwotnego stanu (80)
- NULL lub cykl (82)
- Podsumowanie (84)
Rozdział 5. Drzewa i grafy (87)
- Drzewa (87)
- Drzewa binarne (89)
- Binarne drzewa poszukiwań (90)
- Sterty (92)
- Typowe sposoby przeszukiwania (92)
- Metody przeglądania drzew (93)
- Grafy (94)
- Zadania dotyczące drzew i grafów (95)
- Wysokość drzewa (95)
- Przeglądanie wzdłużne (96)
- Przeglądanie wzdłużne bez rekurencji (97)
- Najniższy wspólny przodek (99)
- Przekształcanie drzewa binarnego w stertę (100)
- Niezrównoważone binarne drzewo poszukiwań (103)
- Sześć stopni od Kevina Bacona (105)
- Podsumowanie (109)
Rozdział 6. Tablice i łańcuchy (111)
- Tablice (111)
- Języki C i C++ (112)
- Java (113)
- C# (113)
- JavaScript (114)
- Łańcuchy (114)
- C (115)
- C++ (115)
- Java (116)
- C# (117)
- JavaScript (117)
- Problemy dotyczące tablic i łańcuchów (117)
- Znajdowanie pierwszego niepowtarzającego się znaku (117)
- Usuwanie określonych znaków (120)
- Odwracanie kolejności słów w łańcuchu (123)
- Konwersje między liczbami całkowitymi i łańcuchami (127)
- Podsumowanie (131)
Rozdział 7. Rekurencja (133)
- Istota rekurencji (133)
- Problemy rekurencyjne (136)
- Wyszukiwanie binarne (137)
- Permutacje łańcucha (139)
- Kombinacje łańcucha (141)
- Słowa telefoniczne (144)
- Podsumowanie (148)
Rozdział 8. Sortowanie (149)
- Algorytmy sortujące (149)
- Sortowanie przez wybieranie (150)
- Sortowanie przez wstawianie (151)
- Szybkie sortowanie (152)
- Sortowanie przez scalanie (154)
- Problemy dotyczące sortowania (155)
- Najlepszy algorytm sortowania (155)
- Stabilne sortowanie przez wybieranie (158)
- Sortowanie przy użyciu wielu kluczy (160)
- Spraw, by sortowanie było stabilne (161)
- Optymalizacja szybkiego wyszukiwania (163)
- Sortowanie naleśników (166)
- Podsumowanie (168)
Rozdział 9. Współbieżność (169)
- Podstawowe pojęcia wielowątkowości (169)
- Wątki (169)
- Wątki systemowe i wątki użytkownika (170)
- Monitory i semafory (170)
- Zakleszczenia (171)
- Przykład użycia wątków (172)
- Problemy dotyczące współbieżności (174)
- Aktywne oczekiwanie (174)
- Producent i konsument (176)
- Ucztujący filozofowie (178)
- Podsumowanie (182)
Rozdział 10. Programowanie obiektowe (183)
- Podstawy (183)
- Klasy i obiekty (183)
- Dziedziczenie i polimorfizm (184)
- Konstrukcja i destrukcja obiektów (185)
- Problemy dotyczące programowania obiektowego (186)
- Interfejsy i klasy abstrakcyjne (186)
- Metody wirtualne (188)
- Wielodziedziczenie (189)
- Podsumowanie (190)
Rozdział 11. Wzorce projektowe (191)
- Czym są wzorce projektowe? (191)
- Po co są wzorce projektowe? (191)
- Wzorce projektowe na rozmowach kwalifikacyjnych (192)
- Najczęściej używane wzorce projektowe (192)
- Wzorce kreacyjne (193)
- Wzorce czynnościowe (195)
- Wzorce strukturalne (196)
- Problemy związane z wzorcami projektowymi (196)
- Implementacja Singletonu (196)
- Dekorator kontra dziedziczenie (199)
- Wydajne aktualizacje Obserwatora (200)
- Podsumowanie (200)
Rozdział 12. Bazy danych (201)
- Podstawowe wiadomości o bazach danych (201)
- Relacyjne bazy danych (201)
- SQL (202)
- Transakcje w bazach danych (206)
- Problemy dotyczące baz danych (207)
- Proste zadanie z użyciem języka SQL (207)
- Baza danych firmowych i pracowniczych (207)
- Znajdowanie największej wartości bez użycia funkcji agregacyjnych (209)
- Logika trójwartościowa (211)
- Podsumowanie (212)
Rozdział 13. Operacje graficzne i na bitach (213)
- Grafika (213)
- Szperanie przy bitach (214)
- Binarne uzupełnienie dwójkowe (214)
- Operatory bitowe (215)
- Optymalizacja wydajności przy użyciu operatorów przesunięcia (216)
- Problemy graficzne (216)
- Jedna ósma okręgu (217)
- Nakładanie się prostokątów (219)
- Problemy dotyczące szperania przy bitach (222)
- Big-endian czy little-endian (222)
- Liczba jedynek (224)
- Podsumowanie (227)
Rozdział 14. Łamigłówki dotyczące mierzenia, liczenia i porządkowania (229)
- Rozwiązywanie zagadek (229)
- Docieraj do sedna problemu (230)
- Nie daj się przytłoczyć (231)
- Strzeż się prostych problemów (232)
- Problemy szacunkowe (232)
- Łamigłówki (233)
- Liczenie otwartych schowków (233)
- Trzy przełączniki (235)
- Przechodzenie przez most (236)
- Ciężka kulka (238)
- Liczba stacji benzynowych w USA (243)
- Podsumowanie (244)
Rozdział 15. Łamigłówki graficzne i przestrzenne (245)
- Najpierw to narysuj (245)
- Zadania graficzne i przestrzenne (246)
- Łódź i dok (246)
- Liczenie kostek (248)
- Lis i kaczka (251)
- Palące się lonty (252)
- Uciekanie przed pociągiem (254)
- Podsumowanie (256)
Rozdział 16. Pytania merytoryczne (257)
- Przygotowanie (257)
- Problemy (258)
- C++ a Java (259)
- Klasy zaprzyjaźnione (259)
- Przekazywanie argumentów (260)
- Makra i funkcje inline (261)
- Dziedziczenie (263)
- Automatyczne usuwanie nieużywanych obiektów (263)
- Aplikacje 32-bitowe a aplikacje 64-bitowe (265)
- Wydajność sieci (265)
- Bezpieczeństwo aplikacji sieciowych (266)
- Kryptografia (268)
- Tablice mieszające a binarne drzewa poszukiwań (269)
- Podsumowanie (269)
Rozdział 17. Pytania na tematy nietechniczne (271)
- Po co zadawane są nietechniczne pytania? (271)
- Pytania (272)
- Co chciałby Pan robić? (272)
- Jaki jest Pana ulubiony język programowania? (273)
- Jaki styl pracy Pan preferuje? (274)
- Co może Pan powiedzieć o swoim doświadczeniu zawodowym? (274)
- Jakie są Pana cele zawodowe? (274)
- Czemu chce Pan zmienić pracę? (274)
- Jakich zarobków Pan oczekuje? (275)
- Ile wcześniej Pan zarabiał? (277)
- Dlaczego uważa Pan, że powinniśmy Pana zatrudnić? (277)
- Dlaczego chce Pan pracować w tej firmie? (278)
- Czy ma Pan jakieś pytania? (278)
- Podsumowanie (278)
Dodatek A. CV (279)
- CV inżyniera (279)
- Przykład słabego CV (279)
- Sprzedaj siebie (283)
- Pisz zwięźle (283)
- Zamieść tylko ważne informacje (284)
- Pisz przejrzyście i bądź konkretny (285)
- Uwzględnij tylko najważniejsze informacje (286)
- Zastosuj odwrotną chronologię (286)
- Wykonaj korektę (287)
- Poprawiony przykład (287)
- Menedżerzy i starsi programiści (289)
- Dostosuj CV do stanowiska, o które się ubiegasz (295)
- Przykładowe CV (295)
Podsumowanie (299)
Skorowidz (301)
Kategoria: | Branża IT |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-9862-2 |
Rozmiar pliku: | 9,4 MB |