강의

멘토링

로드맵

NEW
Programming

/

Programming Language

[CS 기술면접 7] Nói trôi chảy về JavaScript

Chọn lọc chỉ những khái niệm cốt lõi JavaScript cần thiết phải biết trong thực tế và phỏng vấn, đây là khóa học tổng hợp từ scope và execution context đến closure, prototype, xử lý bất đồng bộ, module system trong một lần. Vượt qua việc giải thích cú pháp bề ngoài, khóa học được cấu trúc để có thể hiểu từ nguyên lý cơ bản về cách JavaScript thực sự hoạt động. Thông qua các ví dụ và tài liệu trực quan, giải thích dễ hiểu những khái niệm từng cảm thấy khó, mục tiêu là 'sự hiểu biết có thể diễn đạt bằng lời' có thể áp dụng trực tiếp trong phỏng vấn. Nếu bạn muốn tổng hợp có hệ thống nguyên lý hoạt động của JavaScript, hãy bắt đầu ngay bây giờ.

55 học viên đang tham gia khóa học này

  • yiyj10305235
javascript
자바스크립트
3시간 만에 완강할 수 있는 강의 ⏰
비전공자
JavaScript
Tech Interview
kakao-tech
kakao-recruitment

Dịch cái này sang tiếng Việt

  • Hiểu nguyên lý hoạt động của JavaScript dựa trên scope và execution context

  • Tổng hợp các khái niệm cốt lõi như Closure, Prototype, this binding ở mức độ phỏng vấn

  • Làm quen với cơ chế hoạt động của xử lý bất đồng bộ (Promise, async/await) và event loop

  • Hiểu về cấu trúc và chiến lược tải của hệ thống module (ESM, dynamic import)

  • Học cách trả lời rõ ràng các câu hỏi về khái niệm JavaScript nâng cao trong phỏng vấn kỹ thuật

🥲 Việc xin việc làm lập trình viên, bài kiểm tra coding không phải là kết thúc.

Là người không chuyên ngành, khi lần đầu chuẩn bị tìm việc làm developer, tôi chỉ tập trung vào thuật toán và coding test. Tôi cũng tự tin và vượt qua được hầu hết các bài kiểm tra lập trình. Nhưng ở cửa ải tiếp theo là phỏng vấn kỹ thuật, tôi liên tục thất bại.
Vấn đề là gì? Chính là thiếu kiến thức CS (Khoa học Máy tính). Trong phỏng vấn, họ coi trọng nền tảng CS cơ bản hơn nhiều so với thuật toán.

🗣 Phỏng vấn thực tế, 'luyện tập nói' là điều quan trọng.

Ngay cả sau khi bổ sung lại những kiến thức cơ bản về CS, các buổi phỏng vấn vẫn không hề dễ dàng. Trong một buổi phỏng vấn tại một công ty nào đó, tôi đã nhận được câu hỏi về số thực dấu phẩy động. Rõ ràng đây là nội dung mà tôi đã đọc và nghĩ rằng mình đã hiểu nhiều lần trong sách, nhưng tôi không thể thốt ra được dù chỉ một từ nào. Lúc đó tôi mới nhận ra. Việc học tập thụ động chỉ đơn thuần là đọc và hiểu thôi thì không thể trả lời được trong thực tế.

Để thành công trong phỏng vấn, không chỉ cần tích lũy nhiều kiến thức mà còn cần có khả năng giải thích những kiến thức đó. 'Khả năng giải thích' này chỉ có thể được rèn luyện thông qua việc tổng hợp khái niệm trong vài câu và thực hành nói ra bằng miệng. Trong quá trình này, bạn cũng có thể phát hiện ra mình đã không hiểu chính xác điều gì. Nếu thiếu sự luyện tập này, bạn sẽ gặp phải những vấn đề sau đây.


1. Loại nhầm lẫn khái niệm

Người phỏng vấn Đặc điểm của lập trình hướng đối tượng là gì?
💬 Ứng viên Đó là nguyên tắc SOLID. Đầu tiên S là..(bỏ qua)...

Đây là trường hợp nhầm lẫn các khái niệm tương tự.
SOLID là nguyên tắc thiết kế OOP và các đặc trưng của lập trình hướng đối tượng là trừu tượng hóa, đóng gói, kế thừa, đa hình.
Ngay khi trộn lẫn các khái niệm liên quan, người phỏng vấn sẽ đánh giá 'nền tảng không vững chắc'.
Bởi vì điều này không được hiểu là lỗi đơn giản mà là tín hiệu cho thấy khung khái niệm chưa được thiết lập.


2. Thiếu tính cụ thể

Người phỏng vấn Đặc điểm của TCP là gì?
💬 Ứng viên Đó là giao thức đảm bảo độ tin cậy.
Người phỏng vấn Cơ chế đảm bảo độ tin cậy là gì?
💬 Ứng viên Ừm... tức là... làm cho việc truyền tải an toàn... kiểu như...

Chỉ biết What mà thiếu How/Why.
Chỉ biết câu trả lời bề ngoài, chưa sẵn sàng giải thích nguyên lý.
Thỏa thuận giao tiếp qua TCP connection (3-way handshake), đảm bảo độ tin cậy thông qua RDT (sequence number, ACK, retransmission, v.v.) và duy trì chất lượng bằng flow control và congestion control.
Những khái niệm này phải được kết nối thành một luồng trong đầu. Nếu không tổng hợp các khái niệm một cách cụ thể thì không thể đối phó với những câu hỏi theo sau.


3. Bị tắc lời với những câu hỏi cơ bản

Nhà tuyển dụng HTTP là gì vậy?
💬 Ứng viên Ừm… là để trao đổi dữ liệu trên web… kiểu như thế…?

Đây là một khái niệm quá quen thuộc, nhưng khi thực sự phải giải thích bằng một câu thì lại không dễ dàng diễn đạt được.
Những từ như yêu cầu, phản hồi, server, client sẽ nảy ra trong đầu nhưng không thể nối thành một câu tự nhiên.
Bởi vì chưa từng luyện tập nói theo một luồng từ định nghĩa đến nguyên lý.
Đây không phải là thiếu kiến thức, mà là thiếu cấu trúc hóa.


Chỉ biết thôi là chưa đủ. Chỉ khi diễn đạt bằng lời, đó mới thực sự trở thành năng lực.

🎯 Khuyến nghị cho những người như thế này

Những người không chuyên ngành · sinh viên chuẩn bị việc làm · người chuẩn bị chuyển việc, v.v. trước khi phỏng vấn kỹ thuật, những người cần có thể tổng hợp bằng lời các kiến thức cơ bản về CS

Sinh viên chuyên ngành cần phải tổng hợp lại

Tôi đã từng học nhưng
không dám nghĩ đến việc phải tổng hợp lại tất cả những kiến thức CS đó

Đừng mở lại những cuốn sách chuyên ngành dày cộp.
Chúng tôi sẽ tổng hợp chắc chắn chỉ những điểm cốt lõi.

Người không chuyên ngành cảm thấy bối rối về CS

Chuẩn bị phỏng vấn kỹ thuật
lần đầu nên không biết
nên bắt đầu từ đâu

Theo lộ trình này, bạn có thể
tập trung học tập chỉ những
khái niệm CS cốt lõi quan trọng.

Người chuẩn bị chuyển việc không có thời gian

Thôi được rồi, tôi không có thời gian.
Chỉ cần

tổng hợp nhanh CS xuất hiện trong phỏng vấn thôi

Có tài liệu bài gi강 và
chương phỏng vấn giúp bạn
có thể ôn tập nhanh chóng một mình.

⚡ Kick Cốt lõi Bài giảng

1⃣ Thời lượng học ngắn và tập trung cao

  • Thời lượng bài giảng không gây áp lực, có thể hoàn thành ngay cả với lịch trình bận rộn và có thể ôn tập nhanh chóng ngay trước khi phỏng vấn

  • Nén tóm những điều cốt lõi, được thiết kế để có thể hoàn thành toàn bộ khóa học trong thời gian ngắn

  • Tôi đã tập trung vào việc hoàn thành khóa học chính là hiệu quả học tập lớn nhất, thay vì chỉ tích lũy các khóa học như mua sắm.

2⃣ Khóa học chuẩn bị phỏng vấn tóm tắt những điểm cốt lõi

  • Đã tổng hợp và chính lý các khái niệm và nguyên lý cần thiết phải kiểm tra trước khi phỏng vấn

  • Tôi đã cấu trúc để vừa bổ sung kiến thức cơ bản, vừa có thể sử dụng như tài liệu chuẩn bị phỏng vấn một cách tối ưu

  • Không chỉ là tóm tắt đơn giản, mà được cấu trúc với sơ đồ và giải thích dễ hiểu để ngay cả những người không chuyên cũng có thể hiểu đầy đủ

  • Có thể tổng hợp nhanh chóng những nội dung chính, đồng thời học tập một cách thuyết phục về lý do tại sao chúng lại quan trọng

3⃣ Bao gồm chương luyện tập phỏng vấn thực tế

  • Trong phỏng vấn, khả năng giải thích một cách rõ ràng và mạch lạc quan trọng hơn nhiều so với việc chỉ đơn thuần biết kiến thức

  • Nhưng việc tự mình tổng hợp và luyện tập không hề dễ dàng và là một công việc khá phiền phức.

  • Khóa học này có bài tập "trả lời bằng một hai câu" ở cuối mỗi phần để giảm bớt công sức tổng hợp kiến thức cho bạn


💡 Hãy sử dụng như thế này

1⃣ Tải xuống tài liệu và nghe bài giảng để nắm vững các khái niệm cốt lõi.
2⃣ Ghi chép trực tiếp những phần cần thiết để tạo thành sổ tay phỏng vấn CS của riêng bạn.
3⃣ Lưu trữ trong điện thoại và mở ra ôn tập bất cứ lúc nào.
4️⃣ Bạn có thể nâng cao cảm giác phỏng vấn trong thời gian ngắn.

💬 Q. Thời lượng bài giảng ngắn, liệu có thể học được đầy đủ không?

Khóa học này ngắn, nhưng 'không hề nông cạn'.
Nén nội dung đồ sộ lại, chỉ tổng hợp những điểm cốt lõi thực sự được hỏi trong phỏng vấn.
Loại bỏ những lý thuyết không cần thiết và đi sâu đến mức có thể trả lời cả những câu hỏi đuổi.
Nếu bạn muốn sử dụng thời gian hạn chế một cách hiệu quả nhất, thì thời lượng ngắn này sẽ trở thành vũ khí mạnh mẽ nhất.

🖐 Xin chào! Tôi xin được giới thiệu bản thân! 🙇

Tôi đã tạo ra khóa học này khi nhớ lại bản thân trong quá khứ - người đã thức trắng đêm lo lắng về những kiến thức cơ bản và run rẩy trước từng câu hỏi phỏng vấn.

Tôi bắt đầu từ xuất thân không chuyên ngành nên hiểu rõ hơn ai hết sự khao khát về kiến thức nền tảng (kiến thức CS, ngôn ngữ lập trình, v.v.). Sau khi tự học và nghiên cứu vô số tài liệu, tích lũy được những kinh nghiệm riêng của mình, cuối cùng tôi đã tốt nghiệp Đại học Seoul và hiện đang làm việc với tư cách là 🧑🏻‍💻 lập trình viên Kakao.

Từ nhỏ, tôi đã tự tin hơn ai hết trong việc kết hợp và tái cấu trúc các tài liệu đa dạng để tạo ra 'cuốn sổ tay tổng hợp riêng của mình'. Khóa học này chính là cuốn sổ tay bí mật được tạo ra với 'bí quyết tự học siêu đẳng' cùng tất cả niềm đam mê và triết lý của tôi.

🔥 Tại sao khóa học này lại đặc biệt?

  • Tất cả 'bí quyết' của tôi đều có trong đây: Tôi đã hoàn toàn đưa vào đây kinh nghiệm và bí quyết của mình khi tự học CS và ngôn ngữ lập trình với tư cách là người không chuyên ngành và được tuyển dụng vào các công ty lớn. Tôi đã đưa tất cả phương pháp về cách hiểu những khái niệm phức tạp và trừu tượng một cách hiệu quả nhất và biến chúng thành của riêng mình vào khóa học này.

  • Trong bất kỳ lĩnh vực phát triển nào, 'nền tảng cơ bản' là chìa khóa: Dù bạn hướng đến lĩnh vực nào như phát triển game, AI, phát triển web/app, kiến thức cơ bản về khoa học máy tính không phải là lựa chọn mà là điều bắt buộc. Khóa học này sẽ giúp bạn trở thành một chuyên gia thực thụ dựa trên nền tảng vững chắc.

  • Chiến thắng bằng 'chất lượng áp đảo': Tôi đã tham khảo vô số tài liệu từ sách chuyên ngành, bài giảng của các trường đại học nổi tiếng, sách trên thị trường, đến tài liệu phỏng vấn kỹ thuật để trích xuất các từ khóa cốt lõi và tái cấu trúc chúng theo cách riêng của mình. Tôi hứa sẽ giúp bạn hiểu rõ ngay cả những khái niệm phức tạp nhất với những sơ đồ trực quan, hình ảnh minh họa và lời giải thích dễ hiểu được thấm nhuần từ kinh nghiệm thực tế của tôi, khiến bạn thốt lên "À, giờ tôi hiểu rồi!"

🚀 Giới thiệu bài giảng thứ bảy về [JavaScript] trong Lộ trình làm chủ phỏng vấn kỹ thuật.


📕 JavaScript không phải là ngôn ngữ chỉ cần biết cú pháp là đủ.

  • Bạn đã biết về biến nhưng vẫn bối rối về scope/hoisting/TDZ

  • Bạn có bị bế tắc khi giải thích tại sao this lại khác nhau tùy theo cách gọi không

  • Có khó khăn gì trong việc giải thích sự khác biệt giữa prototype và class theo cấu trúc không

  • Event loop·Microtask·Promise·async/awaitBạn có khó tự tin nói về thứ tự thực thi không

Scope, execution context, closure, prototype, event loop - những "nguyên lý hoạt động" này cần được hiểu rõ để thực sự phát huy sức mạnh trong công việc thực tế và phỏng vấn. Khóa học này không tập trung vào việc ghi nhớ mà tập trung vào sơ đồ minh họa · luồng hoạt động · thực hành, giải thích rõ ràng cách thức hoạt động bên trong của JavaScript, mang đến trải nghiệm "nói trôi chảy" trong phòng phỏng vấn.


🎯 Thông qua khóa học này, bạn sẽ có thể trả lời rõ ràng những câu hỏi sau đây.

  • Scope và Execution Context là gì và tại sao chúng ta cần chúng?


    → Hiểu tại sao hoisting·TDZ xuất hiện thông qua quy tắc tìm kiếm/khởi tạo định danh được quyết định bởi lexical environment·execution context.

  • this binding được quyết định như thế nào?
    → Tổng hợp các quy tắc binding mặc định/tường minh/new và sự khác biệt giữa call/apply/bind qua các ví dụ.

  • Closure là gì và khi nào hữu ích?
    → Đóng gói trạng thái bên ngoài, ứng dụng trong event/callback, từ ưu nhược điểm đến những điểm cần chú ý về rò rỉ bộ nhớ được trình bày một cách cân bằng.

  • Prototype và class khác nhau như thế nào?
    → So sánh bằng sơ đồ nguyên lý chia sẻ phương thức và chuỗi prototype với tính tr추상화được áp dụng bởi cú pháp class.

  • Event loop hoạt động như thế nào?
    → Trực quan hóa call stack, task queue, event loop và tìm hiểu nguyên lý của Promise và async/await.

  • DOM là gì và làm thế nào để thao tác với nó?
    → Giải thích kết hợp việc lựa chọn và thao tác node, truyền sự kiện (capturing/bubbling), preventDefault/stopPropagation.

  • Tại sao chiến lược tải script lại quan trọng?
    → Tổng hợp sự khác biệt giữa defer·async·type="module", ES module·dynamic import và code splitting.



📌 Cuối khóa học có chương thực hành phỏng vấn thực tế đang chờ bạn.

"Hãy giải thích execution context trong một câu", "Tại sao closure lại cần thiết?", "Hãy giải thích prototype inheritance bằng sơ đồ", "Hãy nói về sự khác biệt giữa Promise và async/await theo thứ tự thực thi", "Tại sao bubbling lại hữu ích?" - bạn cũng có thể luyện tập tự trả lời những câu hỏi phỏng vấn thường gặp như thế này trong một hai câu.

📖 Chương trình học đầy đủ những kiến thức cốt lõi

Đây là mục lục và từ khóa chính mà bạn sẽ học được trong khóa học này.

Nếu có từ khóa nào lạ thì hãy nắm chắc trong cơ hội này nhé.

  1. Scope và Execution Context

    • Scope, Lexical Environment, Execution Context, Hoisting, TDZ, từ khóa this, Explicit Binding, JS Runtime


  2. Closure

    • Khái niệm và nguyên lý hoạt động của closure, ưu nhược điểm từ góc độ ẩn dữ liệu và quản lý bộ nhớ

  3. Nguyên lý hoạt động của JavaScript

    • Cấu trúc đơn luồng, luồng xử lý đồng bộ vs bất đồng bộ, cách thức hoạt động của event loop (call stack, task queue)

  4. Lập trình bất đồng bộ

    • Hàm callback và callback hell, thay đổi trạng thái và chaining của Promise, cú pháp async/await và xử lý lỗi

  5. Prototype và Kế thừa

    • Cách tạo đối tượng và hàm khởi tạo,

      Khái niệm và cấu trúc kết nối của prototype,

      Các phương thức kế thừa prototype khác nhau

  6. Xử lý mảng và đối tượng

    • map, filter, reduce và các phương thức mảng khác, destructuring đối tượng và spread operator

  7. Hệ thống module JavaScript

    • Cấu trúc hệ thống module ES, sự khác biệt của import/export, dynamic import và code splitting

  8. Trình duyệt và JavaScript

    • Quá trình chuẩn bị thực thi JavaScript, chiến lược tải script, DOM và sự kiện, lan truyền sự kiện

  9. [Phụ lục] Luyện tập phỏng vấn

    • Ôn tập lại các khái niệm chính một lần nữa dưới dạng hỏi đáp

✏ Bạn sẽ học những nội dung như thế này

1⃣ Hiểu cơ chế cốt lõi của JavaScript theo hướng luồng xử lý

  • Scope, execution context, event loop, call stack và các cơ chế phức tạp khác hoạt động kết nối với nhau như thế nào được nắm bắt thông qua sơ đồ luồng và timeline

Quá trình tạo execution context

2⃣ Giải thích từng bước bằng sơ đồ, ghi chú và code

  • Không chỉ là ghi nhớ đơn thuần mà là cấu trúc kết hợp hình ảnh + code + viết tay
    → Ngay cả những khái niệm phức tạp cũng có thể học một cách tự nhiên thông qua việc kết hợp ghi chép và kết quả thực thi
    → Cấu trúc 'bài giảng ôn tập' có thể mở lại và tổng hợp ngay cả trong quá trình học

Định nghĩa và các loại phạm vi (scope)

3⃣ Phát triển cảm giác thực chiến với các ví dụ tập trung vào mẫu

  • Kế thừa prototype, ủy quyền sự kiện, chiến lược tải module, v.v.
    Được cấu trúc để có thể hiểu các pattern gặp phải trong thực tế cùng với lý do

Ví dụ về kế thừa prototype dựa trên class

4⃣ Tổng hợp các câu hỏi cốt lõi để chuẩn bị cho phỏng vấn kỹ thuật

  • Bao gồm chương luyện tập phỏng vấn ở cuối khóa học

  • "Closure là gì?", "Hãy giải thích nguyên lý của Promise" v.v.
    Bao gồm cả việc luyện tập tóm tắt các câu hỏi thường gặp trong một hai câu

  • Từ nắm vững khái niệm → đến chuẩn bị thực chiến một cách liền mạch

Tổng hợp các câu hỏi cốt lõi

👀 Xem trước khóa học

Nếu video bị dừng, vui lòng làm mới trang :)

Cách khắc phục giới hạn của single thread: Event Loop

Nguyên lý hoạt động của Promise và phương pháp xử lý tiếp theo

💡 Bạn muốn tìm hiểu thêm về khóa học chuẩn bị phỏng vấn khác? Hãy tham khảo lộ trình dưới đây :)

🔗 Lộ trình làm chủ phỏng vấn kỹ thuật

Lộ trình làm chủ phỏng vấn kỹ thuật

Những lưu ý trước khi học

  • Định dạng tài liệu học tập được cung cấp: PDF

  • Đây là khóa học không cần kiến thức nền tảng trước.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người đã biết cú pháp cơ bản của JavaScript nhưng muốn tổng hợp có hệ thống về nguyên lý hoạt động

  • Những ai muốn hiểu sâu về các chủ đề thường gặp trong phỏng vấn như execution context, closure, prototype, bất đồng bộ

  • Sinh viên chuẩn bị việc làm muốn tự tin trả lời các câu hỏi liên quan đến JavaScript trong phỏng vấn kỹ thuật

  • Những người muốn hiểu nguyên lý luồng thực thi code và tối ưu hóa hiệu suất để áp dụng ngay vào phát triển thực tế

Cần biết trước khi bắt đầu?

  • Cú pháp cơ bản của Javascript

Xin chào
Đây là

1,518

Học viên

91

Đánh giá

9

Trả lời

4.9

Xếp hạng

7

Các khóa học

학력 및 경력

  • 서울대학교 졸업

  • 現 카카오 개발자

     

배경

  • 컴퓨터 비전공자 출신

  • 독학으로 개발을 시작해 CS 기초부터 기술 면접까지 직접 체계적으로 정리하며 준비

  • 시행착오를 겪으며 쌓은 학습법과 개념 정리 노하우를 꾸준히 콘텐츠로 제작해옴

주요 이력

강의 철학

  • 실무와 면접에서 꼭 마주치는 핵심만 선별해,
    쉬운 설명과 도해로 누구나 이해하고 확장할 수 있도록 설계

  • “그때의 저에게 필요했던 강의를 만들고 있습니다”

블로그

Contact

  • yiyj1030@gmail.com

Chương trình giảng dạy

Tất cả

38 bài giảng ∙ (3giờ 25phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

Ưu đãi có thời hạn

7.260 ₫

70%

507.190 ₫

Khóa học khác của yiyj10305235

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!