![translation](https://cdn.durumis.com/common/trans.png)
To jest post przetłumaczony przez AI.
[Bez stopnia, przetrwać jako programista] 14. Podsumowanie często zadawanych pytań na rozmowach kwalifikacyjnych dla początkujących programistów
- Język pisania: Koreański
- •
-
Kraj referencyjny: Wszystkie kraje
- •
- TO
Wybierz język
Tekst podsumowany przez sztuczną inteligencję durumis
- Podsumowanie często zadawanych pytań na rozmowach kwalifikacyjnych dla programistów, w tym takich tematów jak: obszary pamięci, struktury danych, bazy danych, programowanie, algorytmy wymiany stron, procesy i wątki, siedem warstw OSI, TCP i UDP.
- W celu lepszego zrozumienia, dołączono krótkie wyjaśnienia dotyczące poszczególnych tematów oraz przykładowe scenariusze.
- Zawiera cenne informacje, które mogą pomóc programistom w zdobyciu niezbędnej wiedzy technicznej do przygotowania się do rozmów kwalifikacyjnych.
Jak przeżyć jako programista bez wykształcenia informatycznego
#14. Często zadawane pytania dotyczące technicznych rozmów kwalifikacyjnych dla początkujących programistów
[Obszary pamięci głównej]
- Obszar kodu: Obszar, w którym przechowywany jest kod źródłowy programu. CPU pobiera instrukcje (kod źródłowy, funkcje, instrukcje sterujące) z obszaru kodu i je przetwarza. Na przykład, gdy program napisany w języku C jest wykonywany, obszar kodu zawiera kod źródłowy tego programu.
- Obszar danych: Obszar, w którym przechowywane są zmienne globalne i statyczne. Jest on przydzielany przy uruchamianiu programu i nie jest niszczony do momentu zakończenia programu. Na przykład, gdy program napisany w języku C jest wykonywany, obszar danych zawiera zmienne globalne lub statyczne zadeklarowane w tym programie.
- Obszar stosu: Tymczasowy obszar pamięci wykorzystywany przez program. W obszarze stosu przechowywane są zmienne lokalne i parametry funkcji. Jest on przydzielany przy wywoływaniu funkcji i niszczony po zakończeniu funkcji. Na przykład, gdy wywołujemy funkcję w języku C, zmienne lokalne lub parametry używane w tej funkcji są przydzielane w obszarze stosu.
- Obszar sterty: Obszar, w którym użytkownik może dynamicznie przydzielać i zwalniać pamięć. Na przykład, gdy w języku C używamy funkcji malloc() do dynamicznego przydzielania pamięci, przydzielony obszar pamięci jest przechowywany w obszarze sterty.
[Struktury danych]
- Stos: Struktura danych oparta na zasadzie LIFO (Last In, First Out). Przykładowo, przycisk "Wstecz" w przeglądarce internetowej działa podobnie do stosu. Poprzednio odwiedzone strony są przechowywane w stosie, a po kliknięciu przycisku "Wstecz" wyświetlana jest ostatnio zapisana strona.
- Kolejka: Struktura danych oparta na zasadzie FIFO (First In, First Out). Przykładowo, pobieranie numeru kolejki w banku jest podobne do kolejki. Pierwsza osoba, która przychodzi, jest obsługiwana pierwsza, a ostatnia osoba, która przychodzi, jest obsługiwana ostatnia.
- Drzewo: Struktura danych, która reprezentuje dane w postaci hierarchicznej. Przykładowo, drzewo DOM w języku HTML jest podobne do drzewa. Struktura strony HTML jest reprezentowana jako drzewo, które rozpoczyna się od węzła głównego (tagu html) i zawiera kolejne węzły podrzędne.
- Kopiec: Jeden z rodzajów drzew binarnych, który dzieli się na kopiec maksymalny i kopiec minimalny. Przykładowo, w kolejce priorytetowej dane o najwyższym priorytecie znajdują się w węźle głównym kopca, a dane o niższym priorytecie znajdują się w węzłach podrzędnych. Jest to przykład kopca maksymalnego.
[RDBMS i NoSQL]
- RDBMS: Baza danych, która definiuje i zarządza danymi w sposób strukturalny, przy użyciu sztywnego schematu. Możliwe jest rozproszone przechowywanie danych i łatwa modyfikacja. Przykładami RDBMS są MySQL, Oracle i MS-SQL.
- NoSQL: Baza danych, która przechowuje i zarządza danymi przy użyciu elastycznego schematu. Jest odpowiednia do przetwarzania i przechowywania dużych ilości danych i charakteryzuje się dużą skalowalnością. Przykładami NoSQL są MongoDB, Cassandra i HBase.
[Programowanie proceduralne i obiektowe]
- Programowanie proceduralne: Technika programowania, w której nacisk kładziony jest na sekwencyjne przetwarzanie. Języki takie jak C i Pascal są przykładami języków proceduralnych.
- Programowanie obiektowe: Metoda programowania oparta na koncepcji obiektów (Object). Dane i procedury są logicznie grupowe i przetwarzane. Języki takie jak Java, C++ i Python są przykładami języków obiektowych. Na przykład, w programie symulacji samochodu, samochód można przedstawić jako obiekt. Atrybuty samochodu (kolor, przyspieszenie itp.) są reprezentowane jako dane, a funkcje, które samochód może wykonywać (jazda, zatrzymanie itp.), są reprezentowane jako metody.
[Przesłanianie i przeciążanie]
- Przesłanianie: Ponowne definiowanie metody klasy nadrzędnej w klasie podrzędnej i używanie jej. Gdy w klasie podrzędnej wywołana zostanie metoda klasy nadrzędnej, zostanie uruchomiona metoda ponownie zdefiniowana w klasie podrzędnej, a nie w klasie nadrzędnej. Przykładowo, metoda toString() w Javie jest przykładem przesłaniania.
- Przeciążanie: Definiowanie wielu metod o tej samej nazwie, ale z różnymi typami i liczbą parametrów, aby odpowiadać na różne typy wywołań. Różne metody o tej samej nazwie i różnych parametrach będą działać. Przykładowo, metoda print() w Javie jest przykładem przeciążania.
[Algorytmy wymiany stron]
- FIFO: Wymiana strony, która była załadowana do pamięci fizycznej najdłużej. Podobne do "zamknięcia" programu w "paśmie zadań" komputera. Program, który został uruchomiony jako pierwszy, jest wyświetlany jako ostatni i zamykany, podobnie jak w przypadku FIFO.
- LRU: Wymiana strony, która nie była używana najdłużej. Podobne do "aplikacji do zamykania aplikacji", która zamyka najstarsze aplikacje, które nie są używane często.
- LFU: Wymiana strony, która ma najmniej odwołań. Przykładowo, funkcja "zamknięcia karty" w przeglądarce zamyka karty, które są używane najmniej często.
- MFU: Wymiana strony, która ma najwięcej odwołań. Algorytm MFU rzadko jest używany.
[Procesy i wątki]
- Proces: Jednostka wykonywania zadań przydzielona przez system operacyjny. Oznacza to program. Gdy wiele procesów jest wykonywanych jednocześnie, każdemu procesowi jest przydzielany niezależny obszar pamięci i CPU.
- Wątek: Jednostka wykonywania działająca w obrębie procesu. Wątki współdzielą zasoby przydzielone procesowi i są wykonywane. Na przykład, każda karta w przeglądarce internetowej działa jako wątek, a nie proces.
[OSI 7Layer]
- Warstwa aplikacji: Warstwa łącząca użytkownika z siecią. Obejmuje protokoły takie jak HTTP, FTP i SMTP.
- Warstwa prezentacji: Warstwa definiująca sposób reprezentacji danych. Obejmuje protokoły takie jak JPEG, MPEG i SSL.
- Warstwa sesji: Warstwa zarządzająca sesjami między dwoma systemami komunikującymi się.
- Warstwa transportowa: Warstwa odpowiedzialna za przesyłanie danych. Obejmuje protokoły takie jak TCP i UDP.
- Warstwa sieciowa: Warstwa ustalająca ścieżkę przesyłania danych. Obejmuje protokoły takie jak IP i ICMP.
- Warstwa łącza danych: Warstwa odpowiedzialna za przesyłanie danych przy użyciu fizycznego adresu (adres MAC). Obejmuje protokoły takie jak Ethernet i Token Ring.
- Warstwa fizyczna: Warstwa odpowiedzialna za komunikację dotyczącą fizycznego połączenia i nośnika transmisji.
[TCP i UDP]
- TCP: Usługa zorientowana na połączenie. Dane są przesyłane w sposób niezawodny. Ustanawia połączenie lub je zrywa przy użyciu 3-way handshaking i 4-way handshaking. Na przykład, podczas logowania się do strony internetowej lub przesyłania plików używana jest metoda TCP.
- UDP: Usługa niezorientowana na połączenie. Nie ma procedury sygnalizacyjnej przed przesyłaniem danych. Dane nie są niezawodne, ale charakteryzują się wysoką szybkością przetwarzania. Na przykład, w przypadku transmisji strumieniowej wideo lub gier online, gdzie szybkie przesyłanie jest kluczowe, używana jest metoda UDP.