JavaRush /Blog Java /Random-PL /Przerwa kawowa #49. Przykłady kodu, które powinien zobacz...

Przerwa kawowa #49. Przykłady kodu, które powinien zobaczyć każdy programista. Jak przygotować się do rozmowy kwalifikacyjnej

Opublikowano w grupie Random-PL

Przykłady kodu, które powinien zobaczyć każdy programista

Źródło: Medium Czasem w wolnym czasie włóczę się po repozytoriach GitHuba. Kiedy zaczynam uczyć się nowych programów, narzędzi czy narzędzi, staram się zobaczyć je w działaniu. Aby to zrobić, zaglądam do ich kodu: pomaga to zrozumieć, jak wszystko działa, jakie są moduły i zależności zewnętrzne. Zanurzenie się w technologii daje niesamowite wrażenia i pozwala zdobyć nową wiedzę. Przerwa kawowa #49.  Przykłady kodu, które powinien zobaczyć każdy programista.  Jak przygotować się do rozmowy kwalifikacyjnej – 1W moim artykule chciałbym podzielić się najbardziej imponującymi przykładami kodu, na jakie natknąłem się wędrując po repozytoriach.

Program sterujący Apollo 11

Apollo 11 to statek kosmiczny, który zabrał ludzi na Księżyc. Pokładowy komputer sterujący (AGC) kontrolował lot za pomocą zaledwie 4 kilobajtów pamięci fizycznej. Oprogramowanie AGC, napisane w języku asemblera, zostało zapisane w specjalnej pamięci tylko do odczytu (pamięć linowa). Kilka lat temu w Internecie opublikowano zeskanowane, papierowe kopie tego kodu źródłowego . Następnie ktoś zapisał kilka modułów w plikach tekstowych i wgrał je do repozytorium GitHub . Przerwa kawowa #49.  Przykłady kodu, które powinien zobaczyć każdy programista.  Jak przygotować się do rozmowy kwalifikacyjnej – 2Zespół inżynierów Apollo 11 ciężko pracował, aby osiągnąć ten niesamowity wynik. Napisali wiele linii kodu w języku asemblera, mimo że programowanie było w latach sześćdziesiątych znacznie trudniejsze niż obecnie. W tamtym czasie języki programowania miały niższy poziom abstrakcji. Ponadto, ze względu na sprzęt o niskim poborze mocy, programiści musieli napisać wysoce zoptymalizowany kod.

Arena Quake'a III

Quake III Arena to strzelanka pierwszoosobowa stworzona przez id Software. Gra pojawiła się w latach 90-tych, kiedy branża gier 3D dopiero raczkowała. Do jej opracowania wykorzystano silnik gry id Tech 3. Podobnie jak w przypadku programu księżycowego Apollo 11, ze względu na ograniczenia zasobów sprzętowych, kod renderujący grafikę został mocno zoptymalizowany. Wiele obliczeń związanych z programowaniem gier wymaga koncepcji normalizacji wektorów, co wiąże się z koniecznością obliczenia odwrotnego pierwiastka kwadratowego. Ponieważ programiści musieli wybrać najbardziej wydajne algorytmy grafiki komputerowej, Quake III Arena zastosował sprytne podejście, aby szybko obliczyć odwrotność pierwiastka kwadratowego za pomocą obliczeń na poziomie bitów. Przerwa kawowa #49.  Przykłady kodu, które powinien zobaczyć każdy programista.  Jak przygotować się do rozmowy kwalifikacyjnej – 3Poziom optymalizacji części kodu, który widzisz, a właściwie całego kodu używanego do tworzenia gier w latach 90., jest po prostu niesamowity. Obecnie twórcy gier wideo zazwyczaj nie wykonują obliczeń na tym poziomie, ponieważ wiele funkcji jest wykonywanych na poziomie silnika gry.

Kolekcja kompilatorów GNU

Język programowania C można nazwać ojcem współczesnego programowania, ponieważ jest bardzo zbliżony do sprzętu, ale jednocześnie oferuje dobry poziom abstrakcji, który jest zrozumiały dla człowieka. Kompilator GNU C jest kompilatorem ładowanym metodą ładowania początkowego. Oznacza to, że jest napisany w C przy użyciu koncepcji rozwijania kompilatora. W kodzie GNU Compiler Collection na GitHubie znalazłem najdłuższy plik źródłowy C, jaki kiedykolwiek widziałem (mogą istnieć dłuższe pliki, ale to jest ten, który znalazłem).Przerwa kawowa #49.  Przykłady kodu, które powinien zobaczyć każdy programista.  Jak przygotować się do rozmowy kwalifikacyjnej – 4

Chrom

Popularne przeglądarki, takie jak Google Chrome, Microsoft Edge i Opera, oparte są na projekcie Chromium o otwartym kodzie źródłowym. Projekt ten ma dwie główne zależności: silnik Blink (fork biblioteki WebCore od zespołu Webkit) i silnik JavaScript V8 opracowany przez zespół projektowy Chromium. Oczywiście kod Chromium jest dość rozbudowany i zawiera wiele modułów innych firm, takich jak gRPC i Skia . Ale twórcom Chromium udało się doskonale ustrukturyzować wszystkie te komponenty. Baza kodu sprytnie oddziela logikę funkcji wewnętrznych od logiki interfejsu użytkownika. Zapewnia to dobre wsparcie dla całego projektu. Przerwa kawowa #49.  Przykłady kodu, które powinien zobaczyć każdy programista.  Jak przygotować się do rozmowy kwalifikacyjnej – 5Dodatkowo kod projektu zawiera kod źródłowy aplikacji Chromium na Androida i iOS. Tworzenie wysoce skalowalnych aplikacji wieloplatformowych może być wyzwaniem. Jednak Chromium ma naprawdę imponującą separację kodu w systemach Linux, Windows i Mac.

Gitk

Obecnie każdy zespół używa Gita do zarządzania wersjami kodu. Ten system kontroli wersji został opracowany przez Linusa Torvaldsa (twórcę jądra systemu operacyjnego GNU/Linux). Baza kodu Git zawiera kod źródłowy Git. Gitk to aplikacja GUI, która zapewnia wizualną nawigację po zatwierdzeniach. Aby zobaczyć, czym różnią się dwa zatwierdzenia, możesz użyć następującego polecenia:
$ git diff <commit hash> <commit hash>
Ale ponieważ Gitk jest narzędziem wizualnym, możemy dzięki niemu zobaczyć różnicę znacznie szybciej. Przerwa kawowa #49.  Przykłady kodu, które powinien zobaczyć każdy programista.  Jak przygotować się do rozmowy kwalifikacyjnej – 6Cały kod źródłowy Gitk mieści się w jednym . Kod napisano w języku skryptowym Tcl przy użyciu zestawu narzędzi Tk UI, będącego rozszerzeniem Tcl. Skondensowanie całej aplikacji GUI w jednym pliku jest trudnym zadaniem.

Jak programista może przygotować się do rozmowy kwalifikacyjnej?

Źródło: Hackernoon Pamiętam swój pierwszy wywiad. Właśnie skończyłem studia i starałem się o staż w firmie finansowej w Madrycie. Bardzo się denerwowałem, bo nie wiedziałem, jak przebiegnie rozmowa kwalifikacyjna i nie wiedziałem, jakie są aktualne trendy w rozwoju oprogramowania. To było po Wielkanocy, miałem dopiero 21 lat i przyjemniej byłoby mi spędzać czas z przyjaciółmi na plaży. Ale zamiast się dobrze bawić, musiałem przygotować się do rozmowy kwalifikacyjnej. Przerwa kawowa #49.  Przykłady kodu, które powinien zobaczyć każdy programista.  Jak przygotować się do rozmowy kwalifikacyjnej – 7Pierwszym krokiem przed każdą rozmową kwalifikacyjną jest wzajemne poznanie się. Pytają Cię o imię i nazwisko, adres, specjalizację i tak dalej. Następnie przejdziesz osobistą rozmowę kwalifikacyjną, która może odbyć się twarzą w twarz lub za pośrednictwem łącza wideo. W każdym razie ta rozmowa kwalifikacyjna sprawdzi Twoje doświadczenie, wiedzę i umiejętności na stanowisku, o które aplikujesz. Następnie prawdopodobnie zostaniesz poproszony o napisanie kodu, w którym zademonstrujesz swoją zdolność do rozwiązywania problemów. Dodatkowo możesz spodziewać się rozmowy kwalifikacyjnej z kierownikiem projektu lub dyrektorem firmy. To zależy od stanowiska, na które aplikujesz. Proces rozmowy kwalifikacyjnej może zająć dużo czasu. Dlatego musisz uzbroić się w cierpliwość i zachować spokój. Przygotowałem dla Ciebie kilka wskazówek i trików w tej kwestii.

Sprawdź stanowisko, aby upewnić się, że jest dla Ciebie odpowiednie.

Czasami, gdy szukamy pracy, po prostu przychodzimy na rozmowę, nie zapoznając się ze wszystkimi informacjami na temat stanowiska. Lepiej wcześniej ustalić listę swoich obowiązków i harmonogram pracy. Sprawdź także, czy firma i stanowisko odpowiadają Twoim wymaganiom

Staraj się być na bieżąco z trendami w swojej karierze.

Dużym błędem jest niepodążanie za trendami i nowymi technologiami w swojej pracy. Prawdopodobnie jesteś programistą lub menadżerem projektu, masz swój własny sposób pracy w swojej obecnej roli i tę samą technologię dla wszystkich swoich projektów. Spróbuj jednak każdego dnia poświęcić trochę czasu na naukę nowych technologii. To jest bardzo ważne w naszej karierze. Musisz być na bieżąco z nowymi frameworkami, nowymi metodologiami i nie tylko. Będzie to miało duże znaczenie podczas rozmowy kwalifikacyjnej.

Podczas osobistej rozmowy kwalifikacyjnej lub rozmowy wideo: staraj się dobrze wyglądać i zrelaksuj się

Twój wygląd jest tak samo ważny jak projekt aplikacji. Możesz mieć doskonały backend, ale jeśli Twoja aplikacja ma słaby frontend, sprzedaż produktu będzie trudna. To samo tyczy się Twojego wyglądu: na rozmowie kwalifikacyjnej powinieneś wyglądać, jeśli nie formalnie, to przynajmniej przyzwoicie. To pokaże Twoją gotowość do przestrzegania zasad korporacyjnych. Wiem, że niektórzy tutaj pomyślą: „Hej, jestem geniuszem, dlaczego miałbym przejmować się swoim wyglądem?” Cóż, jeśli jesteś geniuszem i dobrze wyglądasz , to na pewno zrobisz wrażenie!

Nie spiesz się

Przed rozmową kwalifikacyjną musisz się przygotować, przestudiować tematy, przećwiczyć algorytmy i rozwiązywanie problemów oraz przygotować przemówienie. Niektóre z tych procesów są długotrwałe i wymagają czasu. Upewnij się więc, że masz tutaj przewagę.

Ćwiczyć

To zależy od Twojego doświadczenia, ale moja rada jest taka, że ​​jeśli musisz napisać kod podczas rozmowy kwalifikacyjnej, napisz go poprawnie. Aby to zrobić, musisz nauczyć się czyścić i przeglądać kod. Pomoże Ci to zreorganizować lub ulepszyć niektóre jego funkcje.

Zademonstruj swoje doświadczenie podczas bezpośredniej rozmowy kwalifikacyjnej lub w kodzie

Spróbuj pokazać doświadczenie. Rozmowa kwalifikacyjna to idealne miejsce, aby wyjaśnić osobie przeprowadzającej rozmowę kwalifikacyjną, dlaczego firma powinna Cię zatrudnić. Przed rozmową kwalifikacyjną zapoznaj się z podstawowymi koncepcjami programowania, metodologiami i najlepszymi praktykami.

Wyśpij się wystarczająco dzień przed rozmową kwalifikacyjną.

Staraj się wysypiać. Pomoże Ci to zachować koncentrację następnego dnia. Jeśli nie znasz odpowiedzi na żadne pytania na rozmowie kwalifikacyjnej, nie kłam – bądź szczery, pomoże to uniknąć wielu komplikacji w przyszłości. Pomoże Ci to dostrzec swoje słabe strony, które musisz poprawić.

Zaufaj swoim odpowiedziom

Nie wątp w siebie. Nigdy.

Podczas rozmowy kwalifikacyjnej musisz zapewnić wszystkim bezpieczeństwo i pewność siebie.

Jeśli nie masz tej umiejętności, prawdopodobnie musisz nad nią popracować. Pewność siebie pojawia się, gdy odpowiadasz: „Nie znam odpowiedzi, ale mogę ją sprawdzić i odpowiedzieć później”. Ta opcja odpowiedzi pokazuje bezpieczeństwo i pewność.

Przeanalizuj wywiad

Każdy wywiad jest inny, ale wszystkie mają podobne cechy. Dlatego po rozmowie kwalifikacyjnej powinieneś zastanowić się, co poszło Ci dobrze, a co źle. Rozmowa kwalifikacyjna to dobry moment, aby spojrzeć na siebie z zewnątrz, na swoje mocne i słabe strony.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION