Skip to content

Instantly share code, notes, and snippets.

@paulnguyen-mn
Last active March 7, 2023 12:16
Show Gist options
  • Star 65 You must be signed in to star a gist
  • Fork 26 You must be signed in to fork a gist
  • Save paulnguyen-mn/81ae17402bf95b1c90b75b4737460cff to your computer and use it in GitHub Desktop.
Save paulnguyen-mn/81ae17402bf95b1c90b75b4737460cff to your computer and use it in GitHub Desktop.
Bí kíp cho buổi phỏng vấn ReactJS thành công 🎉

Bí kíp cho buổi phỏng vấn ReactJS thành công 🎉

From unplash.com

AGENGA:

  1. Một vài lưu ý chung
  2. Ôn tập kiến thức JS/ReactJS
  3. Cày thuật toán, giải thuật
  4. Tìm hiểu về công ty mà mình xin ứng tuyển

Lưu ý:

  • Tuỳ mỗi công ty có một style phỏng vấn khác nhau, nên các bạn chỉ tham khảo, đừng mặc định là công ty nào cũng làm giống như bài này chia sẻ nhé 😉
  • Đây là chia sẻ chung cho tất cả level: từ junior tới senior. Tuỳ level mà các câu hỏi có thể có hay không, hoặc độ khó sẽ khác nhau.

Một vài lưu ý chung

Một buổi phỏng vấn thường gồm các phần:

  • Làm quen, chào hỏi.
  • Tìm hiểu về kinh nghiệm làm việc ở các project trước đây, tập trung vào project gần nhất.
  • Giải quyết các tình huống đưa ra:
    • Xử lý tình huống trong công việc.
    • Xử lý bài toán coding về giải thuật.
  • Tìm hiểu về mong muốn, nguyện vọng của bạn
  • Đặt câu hỏi về công ty, dự án sắp tới sẽ làm nếu bạn được nhận.

Lưu ý trước và trong buổi phỏng vấn:

  • Ăn mặc: gọn gàng là được, không cần phải thiệt là đẹp nè. Làm IT ko có nhu cầu đẹp hihi. Đơn giản quần jean, áo thun cũng được òi. Không nhất thiết phải là áo sơ mi mới được nhé. 😉
  • Thời gian: Nên đến trước giờ hẹn 10-15p, đừng đến đúng giờ nhé. Vì tới nơi, các bạn có chút thời gian ngồi nghỉ xíu trước khi vào phỏng vấn nè. 😜 Nhưng cũng đừng tới sớm quá đáng, như sớm 30p chẳng hạn thì hơi lố 😅
  • Liên lạc: Nên xin số điện thoại để khi tới nơi không biết gì thì hỏi. Ví dụ như: chỗ để xe, đi tháng máy chỗ nào, lầu mấy, vân vân mây mây.
  • Thái độ: giữ cho mình cái mong muốn sẵn sàng học hỏi, tìm tòi cái mới, chứ đừng bảo thủ, em biết cái này, em chỉ làm cái này thôi, em không muốn tìm hiểu công nghệ mới thì dễ tạch nè.
  • Thoải mái, tự nhiên: cái này tuỳ tâm lý từng bạn, không dễ để có được trạng thái này. Cố gắng hít một hơi thât sâu rồi thở ra cho nhẹ người rồi giữ bình tĩnh. Tự nhiên nhất có thể nhé. Nếu cần nước cứ lịch sử xin một ly nước (nếu ko có) chứ đừng để khát khô cổ họng rồi không nói nổi nha hehee.
  • Thẳng thắn chia sẻ: một điều chắc chắn là bạn sẽ không thể nào biết hết tất cả mọi thứ, sẽ có những câu bạn không biết trả lời, cứ thẳng thắn nói là em chưa biết phần này, em sẽ tìm hiểu thêm ạ. Hoặc là em thấy rất hay và thú vị, nếu có cơ hội được làm việc thì em chắc chắn sẽ nghiên cứu thêm để học hỏi ạ. 😉
  • Hiểu được mong muốn của bản thân:
    • Bạn mong muốn được làm gì ở công ty này?
    • Bạn mong muốn được học hỏi công nghệ nào?
    • Bạn dự định tương lai sẽ phát triển theo hướng nào: technical hay management.
    • Bạn có kế hoạch gì cho riêng mình để hoàn thành mục tiêu đó hay không? Đại loại nếu bạn không biết bạn muốn gì thì làm sao bạn biết bạn có phù hợp với công ty này hay không?

1. Ôn tập kiến thức JS/ReactJS

Phần này mục đích là để trả lời phần câu hỏi về kiến thức liên quan tới project gần nhất của bạn. Tuỳ bạn nói bạn biết gì mà sẽ bị hỏi liên quan tới những cái bạn biết hehee

TIP: Đừng chém gió phần bạn không biết, kẻo bị hỏi thêm là tạch 😉

HTML/CSS

  • Layout bằng flexbox, grid.
  • Hỏi về UI library bạn sử dụng: Bootstrap, Material Design, Ant Design.
  • Hỏi về cách bố trí layout.
  • Cho một phần giao diện nào đó, hỏi bạn làm thế nào để ra được như vậy (chỉ trình bày, ko code)
  • Hỏi về cách tổ chức styles trong project.
  • BEM là gì? Apply như thế nào?
  • SCSS: có gì vui với ông này, có những tính năng nào mà bạn đã sử dụng.
  • Specificity: độ cụ thể trong css
  • Làm sao customize được styles của một thư viện UI nào đó.
  • Reset CSS vs Normalize CSS
  • ...

JAVASCRIPT

  • "use strict"
  • var, const, let khác nhau ra sao?
  • Block scope với Function scope
  • Hoisting là gì? Cái này có thể bị hỏi dạng cho đoạn code rồi hỏi kết quả và giải thích.
  • Closure
  • Value type vs reference type
  • Bất đồng bộ trong javascript
  • setTimeout(), setInterval()
  • Callback
  • Promise
  • Module trong javascript: import, export, ...
  • ES6: arrow function, for...of, async for...of, async/await, ...
  • Cho các tình huống xử lý javascript, bạn vận dụng kiến thức để cung cấp giải pháp giải quyết nó.
  • ...

REACTJS

  • Component vs PureComponent
  • Life cycle: cái nào nên sử dụng cho mục đích nào (cái này mình có share trên kênh Youtube của mình)
  • Phân biệt component state, Context APIRedux: khi nào sử dụng cái nào và lý do.
  • Refs trong reactjs: bạn có dùng nó chưa và dùng cho việc gì? Hoặc ngược lại cho tình huống xài refs để giải quyết xem bạn có biết hay không ?
  • Routing thì có phần nested routing, nó là gì và khi nào cần nó.
  • Setup routing cho mấy trang cần phải log in như thế nào?
  • Form bạn dùng thư viện nào để quản lý: Formik, Redux-Form, React-Hook-Form. Mỗi cái sẽ có những vấn đề riêng có thể hỏi.
  • Auth: bạn handle phần authentication trong app như thế nào? Token, refresh token, expired token? ( nâng cao )
  • React hooks: bạn sử dụng hooks nào và cho mục đích gì?
  • Custom hook: bạn có tự viết một custom hook nào chưa, nếu có thì nó dùng để làm gì ?
  • Redux thì giờ có Redux Toolkit : nó là gì vậy ta ?
  • Quản lý state bên Facebook đang có thư viện mới là Recoil: bạn có nghe về nó không? bạn thấy thế nào? 🤣
  • Những thư viện bạn hay dùng trong reactjs project.
  • ...

2. Cày thuật toán, giải thuật

Cái này thì đa dạng lắm nên mình không biết sẽ bị hỏi về vấn đề gì nhen. Nên ôn luyện hết cho chắc 😉 Thường người ra đề sẽ cho một bài toán gì đó, mình tự phân tích và sử dụng thuật toán thích hợp để giải nó.

  • Tìm kiếm, sắp xếp đơn giản.
  • Tìm chuỗi con dài nhất, ngắn nhất và các biến thể của dạng này.
  • Đệ quy.
  • Tìm số bí ẩn trong mảng thoả điều kiện gì đó.
  • Đồ thị (cái này cũng ít bị hỏi)
  • Design pattern (Singleton, Observer, ...)
  • Cho đoạn code, hỏi kết quả và giải thích.
  • Quy hoạch động (cái này hơi nâng cao òi, chắc ít bị hỏi trừ khi công ty làm về thuật toán)
  • ... nói chung cái này tuỳ khả năng logic của các bạn đó 😉

3. Tìm hiểu về công ty mà mình xin ứng tuyển

Tìm hiểu công ty:

  • Công ty làm lĩnh vực gì?
  • Size bao nhiêu người?
  • Thành lập khi nào?
  • Những dự án công ty đã thực hiện.
  • Reviews về công ty.
  • ...

Hỏi về dự án bạn "sẽ" được nhận vào làm

  • Dự án làm về cái gì?
  • Sử dụng công nghệ gì, techstack có những gì trong đó.
  • Có bao nhiêu người rồi, và bạn sẽ làm việc với ai?
  • Tính của team có vui vẻ, hoà đồng không?
  • ... nói chung bạn quan tâm gì về team của bạn sắp làm thì cứ hỏi hen hehee

Hi vọng bài chia sẻ này hữu ích với mọi người!
Chúc các bạn có một buổi phỏng vấn thành công tốt đẹp nhé! 🎉

From Easy Frontend with ❤️

@tyluudinh
Copy link

Thanks for sharing bro!

@quangndbh
Copy link

Quá bổ ích cho ae đi phỏng vấn, cho t góp vài câu hỏi tổng hợp lại qua vài vòng pv nhé :D

Con người:
_điểm mạnh, điểm yếu
_hướng dẫn người đi sau
_giải quyết issue discuss của cả team
_đứng ra nhận trách nhiệm khi mắc sai lầm
_có issue vs sếp thì giải quyết thế nào
_suggest để team làm việc hiệu quả hơn
_quyết định khó khăn nhất từng gặp phải
_code ngon mà tràn deadline hay code lởm mà kịp deadline

Tech:
Js:
_async await, promise, callback
_dùng promise gọi 5 thằng 1 thằng dính lỗi thì ngừng luôn
_tạo 1 hàm đếm số: closure
_null vs undefined
_check array như nào

Reactjs:
_virtual dom
_dùng đc component mà ko extends ko
_window.reloaded vs dom.reloaded khác j nhau, window là gọi khi cả html,js đc load xong còn dom là khi mới chỉ có html chưa có j

Hooks:
_useMemo là j
_useCallback khác j useMemo
_useEffect, chỉ gọi 1 lần, gọi nhiều lần, depedencies
_ứng dụng bài toán vào hàm useEffect

Redux:
_immutable
_functional component tránh side effect, hỗ trợ midddleware
_cơ chế run của redux

Saga:
_effect takeLastest vs takeEvery
_debounce vs cách code thực têa

Css:
_inline vs block
_inline có change đc width, height ko
_inline block
_preset vs nomalize
_box-sizing
_border-box-sizing
_button go to top vs position fixed
_absolute vs fixed

Scss:
_styled component có lợi j hơn scss
_prop của styled component lúc load lúc ko do j, đã gặp case này bao h chưa
_function dùng trong scss

@PikarryPham
Copy link

Em xin cảm ơn ạ

@adamward459
Copy link

Thanks

@paulnguyen-mn
Copy link
Author

Wohoo cảm ơn Quang đã đóng góp thêm ý cho mọi người tham khảo nha. Rất chi tiết và hữu ích nha Quang ơi 😍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment