Hướng dẫn how to prepare for python coding interview - làm thế nào để chuẩn bị cho cuộc phỏng vấn viết mã python

Bạn đã thực hiện nó qua cuộc gọi điện thoại với nhà tuyển dụng, và bây giờ là thời gian để cho thấy rằng bạn biết cách giải quyết vấn đề với mã thực tế. Cho dù đó là một bài tập hackerrank, một bài tập về nhà hoặc một cuộc phỏng vấn bảng trắng tại chỗ, đây là thời điểm của bạn để chứng minh các kỹ năng phỏng vấn mã hóa của bạn.coding interview skills.

Nhưng các cuộc phỏng vấn không chỉ về việc giải quyết các vấn đề: Họ cũng cho thấy rằng bạn có thể viết mã sản xuất sạch. Điều này có nghĩa là bạn có kiến ​​thức sâu sắc về chức năng và thư viện tích hợp Python. Kiến thức này cho thấy các công ty rằng bạn có thể di chuyển nhanh chóng và giành được chức năng trùng lặp của người đi kèm với ngôn ngữ chỉ vì bạn không biết nó tồn tại.clean production code. This means that you have a deep knowledge of Python’s built-in functionality and libraries. This knowledge shows companies that you can move quickly and won’t duplicate functionality that comes with the language just because you don’t know it exists.

Tại Real Python, chúng tôi đã đặt đầu của mình lại với nhau và thảo luận về những công cụ mà chúng tôi luôn luôn ấn tượng khi thấy trong các cuộc phỏng vấn mã hóa. Khóa học này sẽ hướng dẫn bạn qua các chức năng tốt nhất, bắt đầu với các bản dựng của Python, sau đó hỗ trợ bản địa Python, cho các cấu trúc dữ liệu và cuối cùng là thư viện tiêu chuẩn mạnh mẽ (và thường được đánh giá thấp).data structures, and finally Python’s powerful (and often underappreciated) standard library.

Trong khóa học này, bạn sẽ học cách:

  • Sử dụng
    Output:
    4.2
    4.08
    0 để lặp lại cả hai chỉ số và giá trị
    Output:
    4.2
    4.08
    0
    to iterate over both indices and values
  • Gỡ lỗi mã có vấn đề với
    Output:
    4.2
    4.08
    1
    Output:
    4.2
    4.08
    1
  • Chuỗi định dạng hiệu quả với dây Ff-strings
  • Sắp xếp danh sách với các đối số tùy chỉnhcustom arguments
  • Sử dụng máy phát điện thay vì danh sách toàn diện để bảo tồn bộ nhớgenerators instead of list comprehensions to conserve memory
  • Xác định các giá trị mặc định khi tìm kiếm các khóa từ điểndefault values when looking up dictionary keys
  • Đếm các đối tượng có thể băm với lớp
    Output:
    4.2
    4.08
    2
    Output:
    4.2
    4.08
    2
    class
  • Sử dụng thư viện tiêu chuẩn để có được danh sách các hoán vị và kết hợppermutations and combinations

Lập trình | Phỏng vấn | Giờ hành chính

Trong bài viết này, tôi trình bày và chia sẻ giải pháp cho một số thuật toán cơ bản xuất hiện thường xuyên trong các cuộc phỏng vấn MAANG

Ảnh của Headway trên unplash

Đề xuất các khóa học theo yêu cầu

Nhiều người trong số các bạn đã liên hệ với tôi yêu cầu các nguồn lực có giá trị để làm móng các cuộc phỏng vấn mã hóa Python. Dưới đây tôi chia sẻ 4 khóa học/nền tảng mà tôi khuyên bạn nên tiếp tục tập thể dục sau khi thực hành các thuật toán trong bài đăng này: to nail Python coding interviews. Below I share 4 courses/platforms that I strongly recommend to keep exercising after practicing the algorithms in this post:

  • LeetCode trong Python: 50 Thuật toán Câu hỏi phỏng vấn mã hóa → Tốt nhất cho các vòng mã hóa liên quan đến thuật toán!→ Best For Coding Rounds Involving Algorithms!
  • Các vấn đề mã hóa nâng cao Python (Stratascratch) → nền tảng tốt nhất Tôi tìm thấy để chuẩn bị các cuộc phỏng vấn mã hóa Python & SQL cho đến nay! Tốt hơn và rẻ hơn LeetCode.Best platform I found to prepare Python & SQL coding interviews so far! Better and cheaper than LeetCode.
  • Thực hành các câu hỏi phỏng vấn mã hóa trong Python (60+vấn đề) → Danh sách, mảng, bộ, dicts, map (), filter (), giảm (), các đối tượng có thể lặp lại.Lists, arrays, sets, dicts, map(), filter(), reduce(), iterable objects.
  • Python Data Engineering Nanodegree → Khóa học chất lượng cao nếu bạn cam kết theo đuổi nghề nghiệp trong kỹ thuật dữ liệu.High quality course if you are committed to pursue a career in data engineering.

Hy vọng bạn cũng sẽ tìm thấy chúng hữu ích! Bây giờ hãy tận hưởng bài báo: D

Tại sao thực hành thuật toán là chìa khóa?

Nếu bạn còn khá mới đối với Python và dự định bắt đầu phỏng vấn cho các công ty hàng đầu (trong đó MAANG) lắng nghe điều này: bạn cần bắt đầu thực hành các thuật toán ngay bây giờ.

Don Tiết ngây thơ như tôi khi tôi mới bắt đầu giải quyết chúng. Mặc dù tôi nghĩ rằng việc bẻ khóa một vài thuật toán mọi lúc và sau đó rất vui, tôi không bao giờ dành quá nhiều thời gian để thực hành và thậm chí ít thời gian hơn để thực hiện một giải pháp nhanh hơn hoặc hiệu quả hơn. Giữa bản thân tôi, tôi đã nghĩ rằng vào cuối ngày, các thuật toán giải quyết cả ngày dài là một chút quá, nó thực sự không sử dụng thực tế trong môi trường làm việc hàng ngày thực sự và nó sẽ không mang lại nhiều cho túi của tôi vào dài hạn dài hơn.

Biết cách giải quyết các thuật toán sẽ mang lại cho bạn lợi thế cạnh tranh trong quá trình tìm kiếm việc làm

Vâng, tôi đã sai (ít nhất là một phần): Tôi vẫn nghĩ rằng việc dành quá nhiều thời gian cho các thuật toán mà không tập trung vào các kỹ năng khác là không đủ để khiến bạn đạt được công việc mơ ước, nhưng tôi hiểu rằng vì các vấn đề phức tạp xuất hiện trong mỗi ngày làm việc Là một lập trình viên, các công ty lớn đã phải tìm một quy trình tiêu chuẩn hóa để thu thập những hiểu biết về giải quyết vấn đề của ứng viên và chú ý đến các kỹ năng chi tiết. Điều này có nghĩa là biết cách giải quyết các thuật toán sẽ mang lại cho bạn lợi thế cạnh tranh trong quá trình tìm kiếm việc làm vì thậm chí các công ty ít nổi tiếng hơn có xu hướng áp dụng các phương pháp đánh giá tương tự.

Có cả một thế giới ngoài kia

Ngay sau khi tôi bắt đầu giải quyết các thuật toán nhất quán hơn, tôi phát hiện ra rằng có rất nhiều tài nguyên để thực hành, tìm hiểu các chiến lược hiệu quả nhất để giải quyết chúng và sẵn sàng tinh thần cho các cuộc phỏng vấn (Hackerrank, LeetCode, CodingBat và Geekfee .HackerRank,LeetCode, CodingBat and GeeksForGeeksare just few examples).

Cùng với việc thực hành các câu hỏi phỏng vấn hàng đầu, các trang web này thường nhóm các thuật toán theo công ty, nhúng các blog tích cực nơi mọi người chia sẻ các bản tóm tắt chi tiết về trải nghiệm phỏng vấn của họ và đôi khi thậm chí đưa ra các câu hỏi phỏng vấn giả như một phần của các kế hoạch cao cấp.

Ví dụ: LeetCode cho phép bạn lọc các câu hỏi phỏng vấn hàng đầu của các công ty cụ thể và theo tần suất. Bạn cũng có thể chọn mức độ khó (dễ dàng, trung bình và khó) mà bạn cảm thấy thoải mái với:LeetCode let you filter top interview questions by specific companies and by frequency. You can also choose the level of difficulty (Easy, Medium and Hard) you feel comfortable with:

Nguồn: https://leetcode.com/problemset/all/

Có hàng trăm vấn đề thuật toán khác nhau ngoài kia, có nghĩa là việc có thể nhận ra các mẫu phổ biến và mã là một giải pháp hiệu quả trong ít hơn 10 phút sẽ đòi hỏi nhiều thời gian và sự cống hiến.

Lúc đầu, Don Don thất vọng nếu bạn thực sự đấu tranh để giải quyết chúng lúc đầu, điều này hoàn toàn bình thường

Don Tiết thất vọng nếu bạn thực sự đấu tranh để giải quyết chúng lúc đầu, điều này là hoàn toàn bình thường. Thậm chí các lập trình viên Python có kinh nghiệm hơn sẽ tìm thấy nhiều thuật toán thách thức để giải quyết trong một thời gian ngắn mà không cần đào tạo đầy đủ.

Ngoài ra, hãy thất vọng nếu cuộc phỏng vấn của bạn không diễn ra như bạn mong đợi và bạn mới bắt đầu giải quyết các thuật toán. Có những người chuẩn bị trong nhiều tháng để giải quyết một vài vấn đề mỗi ngày và thường xuyên luyện tập chúng trước khi họ có thể kết nối một cuộc phỏng vấn.

Để giúp bạn trong quá trình đào tạo của bạn, bên dưới tôi đã chọn 10 thuật toán (chủ yếu xung quanh thao tác và mảng chuỗi) mà tôi đã thấy xuất hiện nhiều lần trong các cuộc phỏng vấn mã hóa điện thoại. Mức độ của những vấn đề này chủ yếu là dễ dàng vì vậy hãy coi chúng là điểm khởi đầu tốt.String Manipulation and Arrays) that I have seen appearing again and again in phone coding interviews. The level of these problems is mainly easy so consider them as good starting point.

Xin lưu ý rằng giải pháp tôi đã chia sẻ cho mỗi vấn đề chỉ là một trong nhiều giải pháp tiềm năng có thể được thực hiện và thường là một BF (Brute Brute Force). Do đó, hãy thoải mái mã hóa phiên bản thuật toán của riêng bạn, cố gắng tìm sự cân bằng phù hợp giữa thời gian chạy và bộ nhớ được sử dụng.

Chuỗi thao túng

1. Số nguyên ngược

Output:
-132
543

Một thuật toán khởi động, điều đó sẽ giúp bạn thực hành các kỹ năng cắt lát của bạn. Trong thực tế, một chút khó khăn duy nhất là đảm bảo bạn đang tính đến trường hợp khi số nguyên là âm. Tôi đã thấy vấn đề này được trình bày theo nhiều cách khác nhau nhưng nó thường là điểm khởi đầu cho các yêu cầu phức tạp hơn.

2. Chiều dài từ trung bình

Output:
4.2
4.08

Các thuật toán yêu cầu bạn áp dụng một số tính toán đơn giản bằng cách sử dụng các chuỗi là rất phổ biến, do đó, điều quan trọng là phải làm quen với các phương pháp như

Output:
4.2
4.08
3and
Output:
4.2
4.08
4 trong trường hợp này đã giúp tôi loại bỏ các ký tự không mong muốn và tạo một danh sách các từ, độ dài có thể dễ dàng đo được và tổng hợp.and
Output:
4.2
4.08
4that in this case helped me removing the unwanted characters and create a list of words, the length of which can be easily measured and summed.

3. Thêm chuỗi

Output:
2200
2200

Tôi thấy cả hai cách tiếp cận đều sắc nét như nhau: phương pháp đầu tiên cho sự ngắn gọn của nó và trực giác sử dụng

Output:
4.2
4.08
5Method để đánh giá động các đầu vào dựa trên chuỗi và lần thứ hai cho việc sử dụng thông minh của
Output:
4.2
4.08
6 để xây dựng lại hai chuỗi khi các số thực tế phát ra Mã mã Unicode của các ký tự của họ. Nếu tôi thực sự phải chọn ở giữa hai người, có lẽ tôi sẽ đi theo cách tiếp cận thứ hai vì nó trông phức tạp hơn lúc đầu nhưng nó thường có ích trong việc giải quyết các thuật toán trung bình và các thuật toán cứng, yêu cầu thao tác và tính toán chuỗi nâng cao hơn.

4. Nhân vật độc đáo đầu tiên

Output:
1
2
1
###
1
2
1

Cũng trong trường hợp này, hai giải pháp tiềm năng được cung cấp và tôi đoán rằng, nếu bạn khá mới đối với các thuật toán, cách tiếp cận đầu tiên có vẻ quen thuộc hơn một chút khi nó xây dựng như một bộ đếm đơn giản bắt đầu từ một từ điển trống.

Tuy nhiên, việc hiểu cách tiếp cận thứ hai sẽ giúp bạn nhiều hơn trong dài hạn và điều này là bởi vì trong thuật toán này, tôi chỉ đơn giản là sử dụng

Output:
4.2
4.08
7Instead của việc tự mình xây dựng một bộ đếm chars và thay thế
Output:
4.2
4.08
8 bằng
Output:
4.2
4.08
9, một hàm có thể giúp bạn xác định chỉ số thanh lịch hơn.

5. Palindrom hợp lệ

Output:
True

Vấn đề palindrom hợp lệ của người Viking là một tác phẩm kinh điển thực sự và có lẽ bạn sẽ tìm thấy nó nhiều lần dưới nhiều hương vị khác nhau. Trong trường hợp này, nhiệm vụ là kiểm tra thời tiết bằng cách loại bỏ tối đa một ký tự, chuỗi khớp với đối tác đảo ngược của nó. Khi s = ‘radkar, chức năng trả về

Output:
2200
2200
0AS bằng cách loại trừ‘ k, chúng ta có được từ ‘radar, đó là một palindrom.s = ‘radkar’ the function returns
Output:
2200
2200
0as by excluding the ‘k’ we obtain the word ‘radar’ that is a palindrome.

Mảng

6. Mảng đơn điệu

Output:
True
False
True

Đây là một vấn đề rất thường gặp và giải pháp được cung cấp ở trên là khá thanh lịch vì nó có thể được viết như một lớp lót. Một mảng là đơn điệu khi và chỉ khi nó tăng đơn điệu, hoặc đơn điệu giảm và để đánh giá nó, thuật toán ở trên sẽ tận dụng hàm

Output:
2200
2200
1 trả về
Output:
2200
2200
2 nếu tất cả các mục trong một điều đó là đúng, nếu không nó sẽ trả về
Output:
2200
2200
3. Nếu đối tượng có thể trống, hàm
Output:
2200
2200
1 cũng trả về
Output:
2200
2200
2.

7. Di chuyển số 0

Output:
[1, 3, 12, 0, 0]
[1, 7, 8, 10, 12, 4, 0, 0, 0, 0]

Khi bạn làm việc với các mảng, các phương pháp

Output:
2200
2200
6 và
Output:
2200
2200
7 là các đồng minh quý giá. Trong vấn đề này, tôi đã sử dụng chúng để loại bỏ từng số 0 thuộc về mảng ban đầu và sau đó nối nó ở cuối vào cùng một mảng.

8. Đổ đầy chỗ trống

Output:
[1, 1, 2, 3, 3, 3, 5, 5]

Tôi đã được yêu cầu giải quyết vấn đề này một vài lần trong các cuộc phỏng vấn thực sự, cả hai lần giải pháp phải bao gồm các trường hợp cạnh (mà tôi đã bỏ qua ở đây để đơn giản). Trên giấy tờ, đây là một thuật toán dễ dàng để xây dựng nhưng bạn cần phải nhớ rõ những gì bạn muốn đạt được với vòng lặp và nếu câu lệnh và thoải mái làm việc với các giá trị

Output:
2200
2200
8.

9. Các từ phù hợp và không khớp

Output:
(['The','We','a','are','by','heavy','hit','in','meet','our',
'pleased','storm','to','was','you'],
['city', 'really'])

Vấn đề khá trực quan nhưng thuật toán tận dụng một số hoạt động rất phổ biến như

Output:
2200
2200
9,
Output:
1
2
1
###
1
2
1
0and
Output:
1
2
1
###
1
2
1
1 đó là cực kỳ hữu ích để làm cho giải pháp của bạn thanh lịch hơn. Nếu đó là lần đầu tiên bạn gặp chúng, hãy đảm bảo kiểm tra bài viết này:

10. Mảng số nguyên tố

Output:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

Tôi muốn đóng phần này với một vấn đề cổ điển khác. Một giải pháp có thể được tìm thấy khá dễ dàng lặp lại máng

Output:
1
2
1
###
1
2
1
2 nếu bạn quen thuộc với cả định nghĩa số nguyên tố và hoạt động mô đun.modulus operation.

Sự kết luận

Trong bài viết này, tôi đã chia sẻ giải pháp của 10 thuật toán Python là vấn đề thường được hỏi trong các vòng phỏng vấn mã hóa. Nếu bạn đang chuẩn bị một cuộc phỏng vấn với một công ty công nghệ nổi tiếng, bài viết này là điểm khởi đầu tốt để làm quen với các mẫu thuật toán phổ biến và sau đó chuyển sang các câu hỏi phức tạp hơn. Cũng lưu ý rằng các bài tập được trình bày trong bài đăng này (cùng với các giải pháp của chúng) là giải thích lại một chút các vấn đề có sẵn trên LeetCode và Geekforgeek. Tôi không phải là một chuyên gia trong lĩnh vực này do đó các giải pháp tôi trình bày chỉ là những giải pháp chỉ ra.

Bạn cũng có thể thích:

Một ghi chú cho độc giả của tôi

Bài đăng này bao gồm các liên kết liên kết mà tôi có thể thực hiện một khoản hoa hồng nhỏ mà không phải trả thêm chi phí cho bạn, nếu bạn mua hàng.

Tôi có thể viết mã trong Python trong cuộc phỏng vấn mã hóa không?

Trước bất cứ điều gì khác, bạn cần chọn một ngôn ngữ lập trình cho cuộc phỏng vấn mã hóa thuật toán của bạn. Hầu hết các công ty sẽ cho phép bạn viết mã bằng ngôn ngữ bạn chọn. Ngoại lệ duy nhất tôi biết là Google. Họ cho phép các ứng cử viên của họ chỉ chọn từ Java, C ++, Python, Go hoặc JavaScript.They allow their candidates to pick from only Java, C++, Python, Go or JavaScript.

Tôi có thể bẻ khóa cuộc phỏng vấn mã hóa với Python không?

Có. Với chiến lược đúng đắn, bạn có thể đánh giá các câu hỏi phỏng vấn mã hóa Python với 3 tháng chuẩn bị.Thực hành của bạn nên được tập trung vào các vấn đề về cấu trúc dữ liệu cốt lõi và thuật toán. With the right strategy, you can ace Python coding interview questions with 3 months of preparation. Your practice should be centered on problems on core data structures and algorithms.

Các câu hỏi mã hóa được hỏi trong cuộc phỏng vấn cho Python là gì?

Câu hỏi phỏng vấn mã hóa Python..
1) Cách tốt nhất để gỡ lỗi chương trình Python là gì?....
2) Từ khóa Python ngụ ý gì?....
3) Làm cách nào để tạo ra một danh sách?....
4) Chính xác thì một mảng numpy là gì?....
5) Trong Python, theo cách nào bạn có thể tạo ra một mảng numpy trống rỗng?....
6) Trong Python, chỉ số tiêu cực là gì ?.

Làm thế nào một người mới bắt đầu chuẩn bị cho cuộc phỏng vấn mã hóa?

Đây chính xác là cách bạn nên chuẩn bị cho cuộc phỏng vấn mã hóa của bạn:..
Sở hữu quá trình ..
Tìm hiểu một phương pháp nhất quán ..
Làm mới trên cấu trúc dữ liệu và thuật toán ..
Thực hành giải quyết các câu hỏi ví dụ ..
Tăng kỹ năng phỏng vấn mã hóa của bạn ..
Sử dụng sách và khóa học ..
Thực hành với các cuộc phỏng vấn giả ..