translation

This is an AI translated post.

투잡뛰는 개발 노동자

[Non-Computer Science, Surviving as a Developer] 14. Summary of Frequently Asked Technical Interview Questions for New Developers

Select Language

  • English
  • 汉语
  • Español
  • Bahasa Indonesia
  • Português
  • Русский
  • 日本語
  • 한국어
  • Deutsch
  • Français
  • Italiano
  • Türkçe
  • Tiếng Việt
  • ไทย
  • Polski
  • Nederlands
  • हिन्दी
  • Magyar

Summarized by durumis AI

  • This article summarizes technical questions frequently asked in new developer interviews, providing explanations on various topics such as memory areas, data structures, databases, programming, page replacement algorithms, processes and threads, OSI 7 layers, TCP and UDP.
  • It helps to understand the concept with brief explanations for each topic and representative examples.
  • It contains useful information that can help developers acquire basic technical knowledge necessary for interview preparation.

Non-Majors, Surviving as Developers


#14. Frequently Asked Technical Interview Questions for New Developers


[Main Memory Areas]

  • Code Area: The area where the program's source code is stored. The CPU fetches the instructions (source, functions, control statements) stored in the code area and processes them. For example, when a program written in C is executed, the code area stores the source code of the program.
  • Data Area: The area where global variables and static variables are stored. It is allocated at the start of the program and remains until the program ends. For example, when a program written in C is executed, the data area stores the global variables or static variables declared in the program.
  • Stack Area: A temporary memory area used by the program, where local variables and parameters related to function calls are stored. It is allocated with the function call and is destroyed when the function ends. For example, when a function written in C is called, the local variables or parameters used in that function are allocated to the stack area.
  • Heap Area: An area where users can dynamically allocate and deallocate memory space. For example, when memory is dynamically allocated using the malloc() function in C, the allocated memory area is stored in the heap area.

[Data Structures]

  • Stack: A data structure that follows the Last-In, First-Out (LIFO) method. For example, the 'Back' button on a computer is similar to a stack. The previously visited pages are stored in the stack, and when the 'Back' button is pressed, the most recently stored page is retrieved and displayed.
  • Queue: A data structure that follows the First-In, First-Out (FIFO) method. For example, getting a waiting number at a bank and entering the waiting line is similar to a queue. The first person to arrive is processed first, and the last person to arrive is processed last.
  • Tree: A data structure that represents data in a hierarchical structure. For example, the HTML DOM tree is similar to a tree. The structure of an HTML page is represented as a tree, starting from the root node, the html tag, and the child nodes are sequentially expressed.
  • Heap: A type of binary tree structure, divided into max heaps and min heaps. For example, in a priority queue, the data with the highest priority is located at the root node of the heap, and the data with the next highest priority is located at the child node. This is an example of a max heap.

[RDBMS and NoSQL]

  • RDBMS: A database that defines and manages data structurally with a strict schema. It can store data distributedly and is easy to modify. For example, MySQL, Oracle, MS-SQL are representative examples of RDBMS.
  • NoSQL: A database that stores and manages data with a flexible schema. It is suitable for processing and storing large amounts of data and has high scalability. For example, MongoDB, Cassandra, HBase are representative examples of NoSQL.

[Procedural and Object-Oriented]

  • Procedural Programming: A programming technique that emphasizes sequential processing. Languages such as C and Pascal are procedural languages.
  • Object-Oriented Programming: A method of treating data and procedures logically together based on the concept of Objects. Languages such as Java, C++, and Python are object-oriented languages. For example, in a car simulation program, the car is represented as an object, and the attributes of the car (color, acceleration, etc.) are expressed as data, and the functions that the car performs (running, stopping, etc.) are expressed as methods.

[Overriding and Overloading]

  • Overriding: Redefining and using a method that a parent class has in a child class. When a method of the parent class is called in the child class, the method redefined in the child class is executed instead of the method of the parent class. For example, the toString() method in Java is an example of Overriding.
  • Overloading: Defining multiple methods with the same name, but with different types and numbers of parameters, to respond to different types of calls. Multiple methods with different parameters but the same name work. For example, the print() method in Java is an example of Overloading.

[Page Replacement Algorithm]

  • FIFO: Replaces the oldest page loaded into physical memory. The 'Close' function in the taskbar on a computer is similar to the FIFO algorithm. The program that was launched first is displayed last and closed, similar to this.
  • LRU: Replaces the page that has not been used for the longest time. The 'App Termination App' that terminates old apps among infrequently used apps is similar to the LRU algorithm.
  • LFU: Replaces the page with the least number of references. For example, the 'Close Tab' function that closes the least used tab among newly opened tabs in the browser is similar to the LFU algorithm.
  • MFU: Replaces the page with the most number of references. The MFU algorithm is not commonly used.

[Process and Thread]

  • Process: A unit of execution work allocated from the operating system, meaning a program. When multiple processes run simultaneously, each process is allocated independent memory and CPU.
  • Thread: A unit of execution that runs within a process, sharing resources allocated to the process and running. For example, in a web browser, each tab is not a process, but a thread.

[OSI 7Layer]

  • Application layer: A layer that connects users to the network, including protocols such as HTTP, FTP, and SMTP.
  • Presentation layer: A layer that defines the way data is represented, including protocols such as JPEG, MPEG, and SSL.
  • Session layer: A layer that manages sessions between two communicating systems.
  • Transport layer: A layer responsible for data transmission, including protocols such as TCP and UDP.
  • Network layer: A layer that sets the path for transmitting data, including protocols such as IP and ICMP.
  • DataLink layer: A layer that transmits data based on physical addresses (MAC addresses), including protocols such as Ethernet and Token Ring.
  • Physical layer: A layer responsible for physical connection and communication with transmission media.

[TCP and UDP]

  • TCP: A connection-oriented service that transmits data reliably. It establishes or breaks connections using 3-way handshaking and 4-way handshaking methods. For example, when logging in to a website or transferring files, the TCP method is used.
  • UDP: A connectionless service that does not go through any signaling procedures for data transmission and has low data reliability, but is fast in processing speed. For example, in cases such as video streaming or online games, where fast transmission is important, the UDP method is used.
TheCareer
투잡뛰는 개발 노동자
코딩, 취업, 이직, 경제에 관심 많은 IT 노동자
TheCareer
[Non-Major, Surviving as a Developer] 13. Technical Interview for Junior Developers This article introduces 7 frequently asked questions in technical interviews for junior developers, along with interview preparation tips. Explore questions and answer strategies for various areas like OOP, databases, networks, and algorithms. Prepare fo

April 1, 2024

[Non-major, Survive as a Developer] 16. New Developer Portfolio Writing Tips New developers (especially non-majors) need to clearly explain not only the technology but also the developed services or functions when writing a portfolio. For example, if the project is a "job seeker community", you need to include specific job descrip

April 3, 2024

[python] Python Basics 1: Understanding Python Modules Python modules are files that contain variables, functions, and classes, and are useful when using modules created by others or when grouping commonly used variables, functions, etc. You can use the `import` keyword to import and use modules, and you can

March 27, 2024

What is Slot-Filling? Slot filling is a process in which a chatbot repeatedly asks the user for necessary information until it has all the information it needs. For example, when ordering coffee, the chatbot asks for the type, temperature, and number of cups, and does not comp
꿈많은청년들
꿈많은청년들
Image with Slot Filling written in large letters
꿈많은청년들
꿈많은청년들

May 13, 2024

[Effective Java] Item 1: Consider Static Factory Methods Instead of Constructors Static factory methods provide a flexible and efficient way to create instances instead of constructors. They can have names, return instances that meet specific conditions, and improve performance through caching. Unlike the singleton pattern, they can c
제이온
제이온
제이온
제이온

April 27, 2024

[DB] Criteria for setting up a cache This is a practical guide on how to cache data that is frequently read but rarely written. By using an APM like DataDog, you can analyze RDB query call history and find out how to select tables with a high number of read queries and a low number of update
제이온
제이온
제이온
제이온
제이온

April 25, 2024

[Objects] Chapter 1. Objects, Design In software development, practice is more important than theory, and good design makes code easier to understand and more adaptable to changes. Object oriented design provides a way to properly manage dependencies between collaborating objects, which can
제이온
제이온
제이온
제이온

April 28, 2024

Kanban Board Project 1 Conceptual Data Modeling The Kanban Board project was a Wanted Backend internship assignment. I implemented the project again for practice with relational data modeling and conducted conceptual data modeling. Through the process of separating entities, defining identifiers, and i
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그
제이의 블로그

April 9, 2024

[Javascript] Object Structure (V8) JavaScript's Object in the V8 engine is optimized to work like a structure in Fast Mode and as a hash map in Dictionary Mode, depending on the state. Fast Mode is fast when keys and values are almost fixed, but if a new key is added or an element is delet
곽경직
곽경직
곽경직
곽경직
곽경직

March 18, 2024