3 cuộc phỏng vấn ác mộng cho nhà phát triển phần mềm
Bài này được đăng tải ban đầu trên .cult bởi Nadya Primak. .cult là một cộng đồng dành cho nhà phát triển có trụ sở tại Berlin. Chúng tôi viết về mọi thứ liên quan đến sự nghiệp, tạo ra các tác phẩm tài liệu gốc và chia sẻ nhiều câu chuyện khác của nhà phát triển chưa từng được kể từ khắp nơi trên thế giới.
Ngành công nghiệp công nghệ không nổi tiếng với quá trình phỏng vấn tuyển dụng tốt. Từ những cuộc phỏng vấn trên bảng trắng đến thách thức về giải thuật đòi hỏi có bằng cấp khoa học máy tính để bạn có thể hiểu được, có mọi loại tiêu chuẩn và phương pháp phỏng vấn nhà phát triển lỗi thời nên đã chết đi từ nhiều năm trước. Thật không may, giống như hầu hết các hệ thống cũ mà chúng ta yêu thích gét, những quy trình phỏng vấn này có khả năng xuất hiện trong sự nghiệp của bạn từ thời gian này sang thời gian khác. Hoặc nếu bạn không may như tôi, chúng có thể xuất hiện thường xuyên hơn một chút.
Để rõ ràng, tôi viết bài này không phải để chỉ trích bất kỳ công ty cụ thể nào hoặc với mục đích chỉ trích. Đối với mỗi công ty mà tôi đã trải qua những vấn đề này, có hàng nghìn nếu không triệu công ty khác. Một trong những cách phổ biến nhất mà các tập đoàn công nghệ thực hành cổ cửa là làm cho quá trình phỏng vấn trở nên khó khăn đến mức để lại mọi người trừ (phổ biến) nam giới trắng có bằng cấp khoa học máy tính cảm giác như họ không đủ tốt hoặc không thuộc về đó.
Trong bài viết này, bạn sẽ đọc về một số cách phổ biến nhất mà các công ty có thể biến quá trình phỏng vấn của bạn thành một cơn ác mộng và hy vọng bạn có thể nhận biết chúng sớm để bạn không phải lãng phí thời gian của mình. Tôi sẽ chia sẻ về những trải nghiệm cá nhân của tôi về cách chúng ảnh hưởng đến tôi và cách tôi vượt qua chúng và bạn cũng có thể.
1. Cuộc phỏng vấn trên bảng trắng
Như tôi đã nói trong phần giới thiệu, cuộc phỏng vấn trên bảng trắng là một trong những cách tiếp cận lỗi thời mà các công ty công nghệ vẫn thích tra tấn chúng ta. Ý tưởng chung là bạn đứng trước một bảng trắng và viết mã giả đồ họa về cách giải một thuật toán.
Trong trường hợp nếu không ngay lập tức rõ tại sao cách tiếp cận này là tệ, hãy để tôi giải thích. Bắt buộc một nhà phát triển viết mã bằng tay là không tự nhiên vì nó đưa chúng ta ra khỏi không gian nơi chúng ta làm việc tốt nhất: trước một máy tính. Nó cũng lấy đi công cụ hữu ích nhất của chúng ta: các công cụ tìm kiếm. Chưa kể nó không liên quan gì đến hiện thực hàng ngày của công việc.
Điều này đặc biệt là vấn đề cho những nhà phát triển tự học vì các lớp học và nguồn lực trực tuyến giá rẻ thường không tập trung vào thuật toán mà tập trung vào kỹ năng thực tế trong công việc, như xây dựng ứng dụng. Ngay cả sinh viên đã đi học ở một trường đại học truyền thống 4 năm và chuyên ngành khoa học máy tính cũng thường cần luyện tập các thuật toán này mỗi khi họ tham gia phỏng vấn vì chúng dễ quên.
Tôi đã không đếm được bao nhiêu cuộc phỏng vấn trên bảng trắng mà tôi đã trải qua nhưng có một vài cái mà tôi nhớ rất rõ. Một trong những cuộc phỏng vấn đó là cho một công ty startup nhỏ nơi tôi được phỏng vấn 1:1 và người phỏng vấn tôi rất lạc quan. Tôi biết thuật toán mà anh ta đang yêu cầu tôi viết là tương đối đơn giản nhưng vì lý do nào đó, não tôi không thể nhớ. Thay vì kết thúc cuộc phỏng vấn sớm hoặc chỉ đơn giản là cho tôi một gợi ý, người phỏng vấn kiên quyết kéo dài phần bảng trắng trong một khoảng thời gian quá lâu. Tôi đã dành hơn một giờ trong văn phòng của anh ấy đấu tranh với nó trước khi cuối cùng tìm ra giải pháp. Tự nhiên, tôi không có được công việc nhưng tôi rất bực bội sau sự kiện vì sự nhục nhã của mình đã phải kéo dài suốt thời gian đó.
Thật may là cuộc phỏng vấn trên bảng trắng đang trở nên lỗi thời hơn và hơn nữa. Có rất nhiều chỉ trích về chúng trong cộng đồng nhà phát triển và tôi có thể đếm trên 1 bàn tay số lượng những nhà phát triển tôi biết thực sự thích loại phỏng vấn này.
2. Bài đánh giá kỹ thuật với thời gian
Nếu bạn đã đi học trung học tại Hoa Kỳ, bạn có lẽ có một nơi đặc biệt đầy căm hận trong trái tim dành cho các bài kiểm tra có thời gian. Lần đầu tiên tôi tham gia kỳ thi ACT, tôi đạt điểm kém đơn giản vì tôi không thể ngừng nhìn vào đồng hồ và lo lắng về thời gian còn lại. Điều đó không giúp gì khi giữa chừng tôi phải đi vệ sinh nhưng tôi quá lo lắng để rời khỏi phòng vì sợ mất quá nhiều thời gian.
Giống như cuộc phỏng vấn trên bảng trắng, bài đánh giá kỹ thuật với thời gian thường có các yếu tố thuật toán. Một vài năm trước, tôi quyết định thử nghiệm một trong những nền tảng đó nơi bạn phải làm một bài kiểm tra lập trình để tạo hồ sơ nhà phát triển cho các công ty muốn gửi công việc kỹ thuật đến một bên thứ ba (Hired là một ví dụ).
Có ba thách thức khác nhau mà tôi phải hoàn thành thành công để được vào nền tảng. Tất cả đều tập trung nhiều vào thuật toán, và tôi đã thực hiện ít bài tập luyện tương đối. Cuối cùng, tôi bị mắc kẹt ở thách thức thứ hai và không có đủ thời gian để hoàn thành thách thức thứ ba. Có thể rất nản chí khi tham gia một bài kiểm tra và cảm thấy như bạn gần như không biết bạn đang làm gì. Có khả năng là nếu bạn tự học, bạn sẽ cảm thấy khá nản chí vì bạn không học về thuật toán ở trường đại học.
Áp lực thời gian thêm vào cũng không phản ánh hiện thực của hầu hết các công việc nhà phát triển. Hiếm khi có tình huống nơi bạn chỉ có 20 phút để hoàn thành một nhiệm vụ, thực tế thì việc viết mã cho các tính năng mới thường mất ngày hoặc thậm chí là tuần.
Tin tốt là có các nền tảng đã xuất hiện để giúp nhà phát triển chuẩn bị cho những bài đánh giá kỹ thuật với thời gian này. Hackerrank có lẽ là một trong những nền tảng phổ biến nhất và là một công cụ tuyệt vời cho những nhà phát triển tự học và những người có bằng cấp khoa học máy tính để nắm vững những kỹ năng này.
Không giống như cuộc phỏng vấn trên bảng trắng, các bài đánh giá kỹ thuật với thời gian không đi đâu cả. Đối với các quản lý tuyển dụng, chúng tiện lợi vì tất cả những gì họ cần làm là gửi một liên kết đến nhà phát triển và nền tảng sẽ tổ chức bài kiểm tra và trả kết quả. Những người quản lý tuyển dụng chọn sử dụng các nền tảng này không nhất thiết là lười biếng, họ có thể chỉ là quản lý một công ty nhỏ hoặc có quá nhiều công việc khác để xử lý. Nhưng vẫn đáng lưu ý về loại phỏng vấn này và biết rõ bạn đang bắt đầu điều gì.
3. Màn hình điện thoại
Không phải tất cả các cuộc phỏng vấn trên điện thoại đều có tính kỹ thuật. Một số trong số chúng là cuộc trò chuyện thông thường với nhà tuyển dụng hoặc người từ phòng nhân sự. Trên thực tế, đây thường là điều chúng ta nghĩ đến khi nói đến cuộc phỏng vấn trên điện thoại. Tuy nhiên, đôi khi các công ty trở nên sáng tạo hoặc muốn rút ngắn quá trình phỏng vấn bằng cách bỏ qua bài đánh giá kỹ thuật và chỉ thực hiện cuộc hỏi đáp qua điện thoại.
Lý thuyết, điều này có thể tuyệt vời. Không có bài đánh giá kỹ thuật hoặc dự án mang về nhà để lo lắng. Chỉ cần một cuộc gọi điện thoại nhanh chóng và bạn đã xong! Điều này là quan điểm chính xác của tôi khi tôi lần đầu tiên gặp loại phỏng vấn này. Nhưng tâm lý của tôi thay đổi nhanh chóng sau khi tôi nhận được công việc. Tôi nhận ra rằng một số đồng nghiệp của tôi không có kỹ năng cần thiết và có thể dễ dàng lừa gạt quản lý tuyển dụng để nghĩ rằng họ là người có năng lực.
Nguy cơ khác của cuộc phỏng vấn trên điện thoại là ngôn ngữ chuyên môn. Đây lại là một vấn đề hơn nữa đối với những nhà phát triển tự học, nhưng có quá nhiều ngôn ngữ chuyên môn trong thế giới lập trình mà không ai là an toàn. Nếu tôi được hỏi qua điện thoại để định nghĩa một thuật ngữ kỹ thuật, có khả năng lớn là tôi biết khái niệm đó, chỉ là không nhớ tên của nó—nhưng đã quên thuật ngữ mà nó liên quan hoặc tôi chưa gặp nó đủ để cố gắng ghi nhớ nó có ý nghĩa gì. Điều này khiến tôi trượt cuộc phỏng vấn trên điện thoại trong quá khứ, hoặc được yêu cầu thực hiện thêm các bài nhiệm vụ mang về nhà.
Khá hiếm khi một công ty chỉ thực hiện cuộc phỏng vấn trên điện thoại mà không tổ chức bất kỳ bài kiểm tra mã hóa trực tuyến hoặc trực tiếp nào nhưng bạn có thể gặp phải nó nếu bạn làm công việc hợp đồng hoặc ứng tuyển vào một công ty không có nhiều vị trí kỹ thuật. Hãy tiếp tục cẩn thận.
Nhận định
Những nhà phát triển tự học cần phải tỉnh táo hơn và thường phải chuẩn bị nhiều hơn cho cuộc phỏng vấn so với đồng nghiệp có bằng cử nhân khoa học máy tính. Thường thì điều này phụ thuộc vào sự khác biệt giữa việc ít quen thuộc với ngôn ngữ chuyên môn và thuật toán, điều này được đặc biệt nhấn mạnh trong quá trình phỏng vấn so với công việc hàng ngày của các nhà phát triển phần mềm.
May mắn thay, một số cách tiếp cận phỏng vấn đặc biệt không dễ chịu như cuộc phỏng vấn bảng trắng đang trở nên khá không phổ biến, nhưng vẫn đáng để bạn chuẩn bị và biết rằng có khả năng bạn sẽ phải đối mặt với một số câu đố sắp xếp hoặc câu hỏi phức tạp.
Bạn cũng nên biết rằng có những công ty thực sự đặt ra các thách thức lập trình thực tế phản ánh một môi trường tốt hơn cho các lập trình viên vì điều này có nghĩa là họ quan tâm đến trải nghiệm của ứng viên của họ (và có thể quan tâm đến nhân viên của họ hơn). Có chỗ để cải thiện nhưng cũng có nhiều cuộc thảo luận về cách cải thiện quá trình phỏng vấn trong ngành, và may mắn thay có một số công ty thực sự lắng nghe và đưa ra những cải tiến lớn.
