Skip to product information
CS Major Knowledge Notes for Interviews
CS Major Knowledge Notes for Interviews
Description
Book Introduction
Design patterns, networks, operating systems, databases, data structures, developer interviews, and portfolios!
This one book is all you need to acquire CS expertise and prepare for interviews!


Computer Science (CS) expertise plays a significant role in developer interviews! From design patterns to data structures, there's so much to learn. How should you prepare? This book covers all the CS knowledge you need for interviews, including design patterns, networks, operating systems, databases, and data structures.
The book explains the theory in detail with over 200 illustrations and codes, and covers practical application methods such as design patterns used in actual libraries, so that you can learn without missing out on theory and practice.
Additionally, the book covers important content in depth, explains less important content in a nutshell, and includes definitions of over 70 terms throughout the book.
Lastly, the author, who passed the interview at top-tier companies such as Google, Naver, and Kakao, will share his experience in creating a portfolio, along with expected questions for each chapter and interview preparation know-how.
If you want to prepare for a developer interview or learn CS-related knowledge to become a better developer, start with this book.

  • You can preview some of the book's contents.
    Preview

index
Chapter 1.
Design Patterns and Programming Paradigms


1.1 Design Patterns

__1.1.1 Singleton Pattern

__1.1.2 Factory Pattern

__1.1.3 Strategy Pattern

__1.1.4 Observer Pattern

__1.1.5 Proxy Patterns and Proxy Servers

__1.1.6 Iterator Pattern

__1.1.7 Exposure Module Pattern

__1.1.8 MVC pattern

__1.1.9 MVP Pattern

__1.1.10 MVVM pattern

1.2 Programming Paradigm

__1.2.1 Declarative and Functional Programming

__1.2.2 Object-oriented programming

__1.2.3 Procedural Programming

__1.2.4 Mixing of paradigms

Expected questions

Chapter 2.
network


2.1 Network Basics

__2.1.1 Throughput and Latency

__2.1.2 Network Topology and Bottlenecks

__2.1.3 Network Classification

__2.1.4 Network performance analysis commands

__2.1.5 Network Protocol Standardization

2.2 TCP/IP 4-layer model

__2.2.1 Hierarchical Structure

__2.2.2 PDU

2.3 Network Devices

__2.3.1 Network Device Processing Scope

__2.3.2 Device handling the application layer

__2.3.3 Devices that handle the Internet layer

__2.3.4 Devices that handle the data link layer

__2.3.5 Devices that handle the physical layer

2.4 IP address

__2.4.1 ARP

__2.4.2 Hop-by-hop communication

__2.4.3 IP address system

__2.4.4 Location information using IP address

2.5 HTTP

__2.5.1 HTTP/1.0

__2.5.2 HTTP/1.1

__2.5.3 HTTP/2

__2.5.4 HTTPS

__2.5.5 HTTP/3

Expected questions

Chapter 3.
operating system


3.1 Operating Systems and Computers

__3.1.1 Role and Structure of the Operating System

__3.1.2 Computer Elements

3.2 Memory

__3.2.1 Memory Hierarchy

__3.2.2 Memory Management

3.3 Processes and Threads

__3.3.1 Process and Compilation Process

__3.3.2 Process status

__3.3.3 Process memory structure

__3.3.4 PCB

__3.3.5 Multiprocessing

__3.3.6 Threads and Multithreading

__3.3.7 Shared Resources and Critical Sections

__3.3.8 Deadlock

3.4 CPU Scheduling Algorithm

__3.4.1 Non-preemptive method

__3.4.2 Preemptive method

Expected questions

Chapter 4.
database


4.1 Database Basics

__4.1.1 Entity

__4.1.2 Relations

__4.1.3 Properties

__4.1.4 domain

__4.1.5 Fields and Records

__4.1.6 Relationships

__4.1.7 key

4.2 ERD and Normalization Process

__4.2.1 The Importance of ERD

__4.2.2 Learning ERD with Examples

__4.2.3 Normalization process

4.3 Transactions and Integrity

__4.3.1 Transactions

__4.3.2 Integrity

__4.4 Types of databases

__4.4.1 Relational Database

__4.4.2 NoSQL database

4.5 Index

__4.5.1 The Need for Indexes

__4.5.2 B-tree

__4.5.3 How to create an index

__4.5.4 Index Optimization Techniques

4.6 Types of joins

__4.6.1 Inner Join

__4.6.2 Left Join

__4.6.3 Right Join

__4.6.4 Union Join

4.7 Join Principle

__4.7.1 Nested Loop Join

__4.7.2 Sort Merge Join

__4.7.3 Hash Join

Expected questions

Chapter 5.
data structure


5.1 Complexity

__5.1.1 Time Complexity

__5.1.2 Space Complexity

__5.1.3 Time Complexity in Data Structures

5.2 Linear data structures

__5.2.1 Linked List

__5.2.2 Array

__5.2.3 Vector

__5.2.4 Stack

__5.2.5 Queue

5.3 Nonlinear data structures

__5.3.1 Graph

__5.3.2 Tree

__5.3.3 Heap

__5.3.4 Priority Queue

__5.3.5 Map

__5.3.6 Set

__5.3.7 Hash Table

Expected questions

Chapter 6.
Portfolio and Interview


6.1 Portfolio

__6.1.1 The first sentence is important

__6.1.2 Say it in numbers

__6.1.3 Divide the skill level into categories

__6.1.4 Write a good rhythm

__6.1.5 Become an Open Source Contributor

__6.1.6 Let's blog

6.2 Interview

__6.2.1 A question that keeps on going

__6.2.2 Don't change your answer

__6.2.3 What you don't know is what you don't know

__6.2.4 Withstand the pressure

__6.2.5 See the official site

__6.2.6 With clear pronunciation

__6.2.7 Advantages, disadvantages, and differences are essential

__6.2.8 Predict the work

__6.2.9 Prepare a checklist

__6.2.10 Personality Interview

Detailed image
Detailed Image 1

Into the book
When preparing for an interview at a major IT company, I heard that "solid CS expertise is required." So I tried to build up my CS expertise by reading numerous books and attending lectures.
At that time, I didn't know what knowledge was necessary and what wasn't, so I tried to memorize it all, but it was so difficult because there was so much.
Also, since there are bound to be some errors in the CS knowledge on the Internet, I had difficulties such as getting confused while studying and having to look it up again.
This book is about solving those problems.
You can learn the overall content of CS major knowledge in just one book, and it further contains the CS major knowledge necessary for actual development.
The advantages of this book are as follows:

- Covers all aspects of CS major knowledge, including CS major knowledge that is likely to appear in interviews.

- The author's actual development experience is incorporated, providing specialized knowledge that combines theory and practice, rather than CS specialized knowledge that is solely focused on theory.

- The book is filled with interview know-how based on the author's numerous interview experiences.

- The author's portfolio, which was accepted to top-tier companies such as Google, Naver, and Kakao, is introduced, and the know-how for creating a portfolio is provided.

Each chapter contains the following:

- Chapter 1 covers design patterns.
It describes not only the theory but also how design patterns are used in practice.
For example, it provides specific information on how the strategy pattern is used in practice, such as 'the strategy pattern is used in the passport library.'
The example code is written in two languages, Java and JavaScript, and we tried to express the design patterns well while minimizing the difficulty of the code as much as possible.

- Chapter 2 covers networks.
It explains the overall content of the network, and explains the important IP and HTTP parts of the network in more detail, going into depth on the important parts and only explaining the key points of the unimportant parts.

- Chapter 3 covers the operating system.
I tried to explain system calls and the kernel, which are core elements of the operating system, a little more easily, focusing on processes and threads.

Chapter 4 covers databases. It focuses on important aspects of a database, such as ERDs, transactions, and indexing.

- Chapter 5 explains data structures.
First, we will learn the basics of data structures by explaining time complexity and space complexity, and then cover all the essential data structures such as queues and stacks.

- Chapter 6 provides tips on writing a portfolio and preparing for a personality interview, focusing on the author's portfolio.

I hope this book will be your first step toward becoming a great developer with solid CS knowledge.
--- From the text

Publisher's Review
“A total of 13 developers helped create this book: Beomseok Choi (Naver Research Engineer), Chanho Kim (Line Backend Developer), Seongjun Lee (Coupang Senior Software Engineer), Seungwon Nam (Carrot Market Backend Developer), Taehoon Lee (Baedal Minjok Backend Developer), Taewoo Lee (Humanscape CTO), Seongbin Song (Samsung Electronics Software Engineer), Seungcheol Lee (NHN Backend Developer), Inbeom Kim (CNCITY Data Engineer / MongoDB Korea Management), Jaeyeop Kim (Startup Data Engineer), Geonwoo Kim (Class 101 Backend Developer), Yubin Jo (Eastsoft iOS Developer), and Gyuyoung Oh (KEPCO KDN Software Engineer).”
GOODS SPECIFICS
- Publication date: April 28, 2022
- Page count, weight, size: 292 pages | 668g | 183*235*15mm
- ISBN13: 9791165219529
- ISBN10: 1165219522

You may also like

카테고리