Tôi có thể trả lời phỏng vấn DSA bằng JavaScript không?

Hầu hết các công ty cho phép bạn viết mã bằng bất kỳ ngôn ngữ nào bạn muốn - ngoại lệ duy nhất mà tôi biết là Google, nơi họ chỉ cho phép các ứng viên chọn từ Java, C++, JavaScript hoặc Python cho các cuộc phỏng vấn mã hóa thuật toán của họ

Tuy nhiên, lựa chọn bạn đưa ra có thể ảnh hưởng đến hiệu suất của bạn nhiều hơn bạn muốn tin - và đây là lý do tại sao điều quan trọng là chọn một ngôn ngữ lập trình phù hợp ngay từ đầu trong quá trình chuẩn bị phỏng vấn viết mã của bạn - và sử dụng thường xuyên trong thực tế

Có 3 cân nhắc khi quyết định sử dụng ngôn ngữ lập trình nào

  1. Sự phù hợp cho các cuộc phỏng vấn
  2. Sự quen thuộc của bạn với ngôn ngữ
  3. ngoại lệ

1. Sự phù hợp cho các cuộc phỏng vấn

Một số ngôn ngữ chỉ phù hợp hơn cho các cuộc phỏng vấn - các ngôn ngữ cấp cao hơn như Python hoặc Java cung cấp các chức năng thư viện và cấu trúc dữ liệu tiêu chuẩn cho phép bạn dịch giải pháp sang mã dễ dàng hơn

Theo kinh nghiệm phỏng vấn của tôi, hầu hết các ứng viên chọn Python hoặc Java. Các ngôn ngữ thường thấy khác bao gồm JavaScript, Ruby và C++. Tôi hoàn toàn sẽ tránh các ngôn ngữ cấp thấp hơn như C hoặc Go, đơn giản vì chúng thiếu nhiều chức năng thư viện và cấu trúc dữ liệu tiêu chuẩn và một số có thể yêu cầu quản lý bộ nhớ thủ công

Cá nhân tôi, Python là lựa chọn thực tế của tôi cho các cuộc phỏng vấn mã hóa thuật toán vì nó ngắn gọn và có sẵn một thư viện hàm và cấu trúc dữ liệu khổng lồ. Python cũng sử dụng các API nhất quán hoạt động trên các cấu trúc dữ liệu khác nhau, chẳng hạn như len(), for .. in ... và ký hiệu cắt trên các chuỗi (chuỗi/danh sách/bộ dữ liệu). Lấy phần tử cuối cùng trong một dãy là arr[-1] và đảo ngược nó chỉ đơn giản là arr[::-1]. Bạn có thể đạt được rất nhiều với cú pháp tối thiểu trong Python

Java cũng là một lựa chọn hợp lý nhưng việc phải liên tục khai báo các loại trong mã của bạn đồng nghĩa với việc phải nhấn thêm phím dẫn đến việc gõ nhiều hơn mà không mang lại bất kỳ lợi ích nào (trong môi trường phỏng vấn). Vấn đề này sẽ rõ ràng hơn khi bạn phải viết trên bảng trắng trong các cuộc phỏng vấn tại chỗ. Lý do chọn/không chọn C++ tương tự Java. Cuối cùng, Python, Java và C ++ là những lựa chọn ngôn ngữ phù hợp

  • Khuyến khích. Python, C ++, Java, JavaScript
  • Chấp nhận được (nhưng nên dùng nếu bạn đã quen). Đi, Ruby, PHP, C#, Swift, Kotlin
  • Tránh xa. Haskell, Erlang, Perl, C, Matlab
  • Bạn phải điên. Brainfuck, hội

2. Sự quen thuộc của bạn với ngôn ngữ

Hầu hết thời gian, bạn nên sử dụng một ngôn ngữ mà bạn cực kỳ quen thuộc hơn là chọn một ngôn ngữ mới chỉ để sử dụng trong các cuộc phỏng vấn

Nếu bạn bị hạn chế về thời gian, việc chọn một ngôn ngữ mới chỉ để phỏng vấn không phải là một ý kiến ​​hay. Các ngôn ngữ cần có thời gian để thành thạo và nếu bạn đã dành phần lớn thời gian và công sức của mình để sửa đổi/làm chủ các thuật toán, thì hầu như không còn năng lượng dư thừa để thành thạo một ngôn ngữ mới. Nếu bạn đã quen với việc sử dụng một trong những ngôn ngữ chính, thì không có lý do chính đáng nào để học một ngôn ngữ mới chỉ để phỏng vấn

Nếu bạn đã sử dụng Java tại nơi làm việc được một thời gian và không có thời gian để làm quen với ngôn ngữ khác một cách thoải mái, tôi khuyên bạn chỉ nên gắn bó với Java thay vì chọn Python từ đầu chỉ để phỏng vấn. Làm như vậy, bạn có thể tránh phải chuyển ngữ cảnh giữa các ngôn ngữ trong quá trình làm việc và phỏng vấn. Hầu hết thời gian, nút cổ chai là ở suy nghĩ chứ không phải ở văn bản. Phải mất một số thời gian làm quen trước khi một người trở nên thông thạo một ngôn ngữ và có thể sử dụng ngôn ngữ đó một cách dễ dàng

Lý do chính đáng để học một ngôn ngữ mới

  • Cuộc phỏng vấn yêu cầu sử dụng ngôn ngữ đó (các vai trò dành riêng cho miền như thiết bị di động/giao diện người dùng/khoa học dữ liệu)
  • Bạn không vội bắt đầu phỏng vấn

Những lý do tồi tệ để học một ngôn ngữ mới

  • Công ty bạn đang phỏng vấn sử dụng ngôn ngữ đó rất nhiều và bạn muốn gây ấn tượng với người phỏng vấn/chứng tỏ rằng bạn phù hợp với công ty đó
  • Bạn muốn thể hiện mình là người sành điệu

3. ngoại lệ

Một ngoại lệ đối với quy ước cho phép bạn "chọn bất kỳ ngôn ngữ lập trình nào bạn muốn" là khi bạn đang phỏng vấn cho một vị trí dành riêng cho miền, chẳng hạn như vai trò Kỹ sư giao diện người dùng/iOS/Android, trong đó bạn sẽ cần phải làm quen với viết mã . Nếu bạn cần sử dụng cấu trúc dữ liệu mà ngôn ngữ đó không hỗ trợ, chẳng hạn như Hàng đợi hoặc Đống trong JavaScript, có thể thử hỏi người phỏng vấn xem bạn có thể cho rằng mình có cấu trúc dữ liệu triển khai các phương thức nhất định với độ phức tạp về thời gian được chỉ định không. Nếu việc triển khai cấu trúc dữ liệu đó không quan trọng để giải quyết vấn đề, người phỏng vấn thường sẽ cho phép điều này. Trên thực tế, nhận thức được các cấu trúc dữ liệu hiện có và chọn những cấu trúc phù hợp để giải quyết vấn đề hiện tại quan trọng hơn là biết các chi tiết triển khai phức tạp

Tôi có thể sử dụng JavaScript cho DSA không?

Khái niệm DSA (Cấu trúc dữ liệu và thuật toán) rất cần thiết, đặc biệt là trong JavaScript. Nó có thể được sử dụng để làm cho mã của bạn dễ đọc hơn bằng cách tránh lặp lại cùng một thông tin không cần thiết . Trong bài đăng này, tôi sẽ điểm qua 10 khái niệm DSA quan trọng trong JavaScript và cách chúng có thể giúp cải thiện khả năng đọc mã.

JavaScript có được phép trong cuộc phỏng vấn mã hóa không?

Họ chỉ cho phép ứng viên chọn từ Java, C++, Python, Go hoặc JavaScript . Phần lớn, tôi khuyên bạn nên sử dụng ngôn ngữ mà bạn cực kỳ quen thuộc, thay vì ngôn ngữ mới đối với bạn nhưng công ty sử dụng rộng rãi. Có một số ngôn ngữ phù hợp hơn những ngôn ngữ khác cho các cuộc phỏng vấn mã hóa.

Làm cách nào để học DSA với JavaScript?

6 Khóa học tốt nhất để học Cấu trúc dữ liệu và thuật toán trong JavaScript năm 2022 .
Lớp học về cấu trúc dữ liệu và thuật toán JavaScript của Colt Steele. .
Cấu trúc dữ liệu cho các cuộc phỏng vấn mã hóa trong JavaScript [Giáo dục].
Làm chủ cuộc phỏng vấn mã hóa. Cấu trúc dữ liệu + Thuật toán của Andrei Negaoie

Tôi có thể sử dụng JavaScript trong cuộc phỏng vấn của Amazon không?

Và mã của bạn phải biên dịch cho hai câu hỏi để tiếp tục trong quá trình phỏng vấn. Bạn sẽ có thể biên dịch mã của mình bao nhiêu lần tùy thích trước khi gửi giải pháp và bạn có thể sử dụng bất kỳ một trong tám ngôn ngữ sau. C#, C++, Java, C, Python, Ruby, Swift và JavaScript .