Hướng dẫn c++ or python for coding interviews - c ++ hoặc python cho các cuộc phỏng vấn viết mã

Ngôn ngữ lập trình bạn sử dụng để phỏng vấn mã hóa có quan trọng không? Câu trả lời là có.

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 tôi biết là Google, nơi họ chỉ cho phép các ứng cử 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, sự lựa chọn bạn đưa ra có thể tác độ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à phải chọn ngôn ngữ lập trình phù hợp sớm trong việc chuẩn bị phỏng vấn mã hóa 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ệ

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 tiêu chuẩn và cấu trúc dữ liệu cho phép bạn dịch giải pháp để mã hóa dễ dàng hơn.

Từ kinh nghiệm của tôi với tư cách là một người phỏng vấn, hầu hết các ứng cử 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 tránh được 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 hàm thư viện tiêu chuẩn và cấu trúc dữ liệu và một số có thể yêu cầu quản lý bộ nhớ thủ công.

Cá nhân, 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ó một thư viện lớn các chức năng và cấu trúc dữ liệu có sẵn. Python cũng sử dụng 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). Nhận phần tử cuối cùng trong một chuỗi 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 tốt nhưng phải liên tục khai báo các loại trong mã của bạn có nghĩa là các khoản phím bổ sung dẫn đến việc gõ nhiều hơn, điều này không dẫn đến bất kỳ lợi ích nào (trong một cài đặt 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ỗ. Những lý do để chọn/không chọn C ++ tương tự như Java. Cuối cùng, Python, Java và C ++ là những lựa chọn tốt của ngôn ngữ.

  • Được đề xuất: Python, C ++, Java, JavaScript
  • Có thể chấp nhận (nhưng thích khuyến nghị nếu bạn quen thuộc): Go, Ruby, PHP, C#, Swift, Kotlin
  • Tránh: Haskell, Erlang, Perl, C, Matlab
  • Bạn phải nổi điên: Brainfuck, lắp ráp

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 thay vì 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ị ràng buộc theo thời gian, việc chọn một ngôn ngữ mới chỉ để phỏng vấn hầu như không phải là một ý tưởng tốt. Các ngôn ngữ cần có thời gian để làm chủ và nếu bạn đã dành phần lớn thời gian và nỗ lự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ự phòng để làm chủ một ngôn ngữ mới. Nếu bạn quen thuộc với việc sử dụng một trong các ngôn ngữ chính thống, không có lý do mạnh mẽ 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 một thời gian và không có thời gian để làm quen với một ngôn ngữ khác, tôi sẽ khuyên bạn nên gắn bó với Java thay vì chọn Python từ đầu chỉ vì các cuộc phỏng vấn. Làm như vậy, bạn có thể tránh phải chuyển đổi ngữ cảnh giữa các ngôn ngữ trong quá trình làm việc so với các cuộc phỏng vấn. Hầu hết thời gian, nút cổ chai là trong suy nghĩ và không phải là văn bản. Phải mất một số làm quen trước khi người ta trở nên thông thạo ngôn ngữ và có thể dễ dàng sử dụng nó.Most of the time, the bottleneck is in the thinking and not the writing. It takes some getting used to before one becomes fluent in a language and be able to wield it with ease.

Lý do hợp lệ để 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ữ đó (vai trò dành riêng cho miền như di động/đầu tiên/khoa học dữ liệu)
  • Bạn không vội vàng để bắt đầu phỏng vấn

Những lý do kém để học một ngôn ngữ mới:

  • Công ty bạn đang phỏng vấn với việc 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/cho thấy rằng bạn phù hợp
  • Bạn muốn cho thấy rằng bạn là hợp thời trang

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ư các vai trò của kỹ sư mặt trước/iOS/Android, trong đó bạn sẽ cần phải làm quen với việc mã hóa Trong JavaScript, Objective-C/Swift và Java tương ứng. 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ó lẽ hãy thử hỏi người phỏng vấn xem bạn có thể cho rằng bạn có cấu trúc dữ liệu thực hiện các phương pháp nhất định với độ phức tạp thời gian được chỉ định không. Nếu việc thực hiện 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. Trong thực tế, nhận thức được các cấu trúc dữ liệu hiện có và lựa chọn các cấu trúc thích hợp để giải quyết vấn đề trong tay là quan trọng hơn là biết các chi tiết thực hiện phức tạp.

Python có tốt hơn cho các cuộc phỏng vấn mã hóa không?

Ngoài các cấu trúc dữ liệu lý thuyết, Python còn có chức năng mạnh mẽ và thuận tiện được tích hợp vào các triển khai cấu trúc dữ liệu tiêu chuẩn của nó. Các cấu trúc dữ liệu này cực kỳ hữu ích trong các cuộc phỏng vấn mã hóa bởi vì chúng cung cấp cho bạn rất nhiều chức năng theo mặc định và cho phép bạn tập trung thời gian vào các phần khác của vấn đề.These data structures are incredibly useful in coding interviews because they give you lots of functionality by default and let you focus your time on other parts of the problem.

Tốt hơn là phỏng vấn với Python hay C ++?

Nếu bạn đang viết một hệ điều hành, tôi khuyên bạn nên sử dụng C. Nếu bạn đang viết một ứng dụng rất phức tạp trong đó tốc độ thực thi là vô cùng quan trọng, tôi khuyên bạn nên sử dụng C ++.Nếu thời gian tiếp thị là chìa khóa, nhưng tốc độ thực hiện không quan trọng, tôi khuyên bạn nên sử dụng Python.. If you are writing a very complex application where execution speed is extremely important, I suggest you use C++. If time to market is key, but execution speed is not important, I suggest you use python.

Ngôn ngữ nào là tốt nhất cho các cuộc phỏng vấn mã hóa?

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 tôi biết là Google, nơi họ chỉ cho phép các ứng cử 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ọ.

Lập trình nào tốt hơn C hay Python?

Dễ phát triển - Python có ít từ khóa hơn và cú pháp tiếng Anh miễn phí hơn trong khi C khó viết hơn.Do đó, nếu bạn muốn một quá trình phát triển dễ dàng, hãy cho Python.Hiệu suất - Python chậm hơn C vì phải mất thời gian CPU đáng kể để giải thích.Vì vậy, tốc độ C là một lựa chọn tốt hơn.speed-wise C is a better option.