Có lẽ sẽ khó có thể tưởng tượng ra một câu chuyện như vậy xảy ra trong thực tế. Trừ khi bạn là siêu sao trong làng công nghệ và các công ty chỉ chực chờ đợi bạn muốn đổi việc là ngay lập tức mời về ngay. Ngược lại, tìm được vị trí công việc mong muốn đã khó, vượt qua quy trình tuyển dụng đầy gian nan và được nhận vào làm việc còn khó hơn. Tuy nhiên, câu chuyện dưới đây có thể mang lại cảm hứng cho nhiều người. Tác giả, một iOS programer,  là người đã thành công khi đi phỏng vấn với 6 công ty, và nhận được cả 6 job offers từ những ông lớn ở Silicon Valley. Dù câu chuyện không phải ở Việt Nam nhưng những bài học này cũng có thể giúp ích cho những ai đang tìm việc ít nhiều. Dưới đây là câu chuyện đó.

Tôi đã đi phỏng vấn việc làm tại LinkedIn, Yelp, Apple, Amazon, Facebook và Google và đều nhận được lời mời làm việc tại 6 công ty này.

Hy vọng tôi có thể truyền cảm hứng cho những người cùng tình cảnh như tôi: không hài lòng với công việc hiện tại, mơ có cuộc sống tốt nơi mình yêu thích nhưng lại thiếu sự chuẩn bị để thay đổi. Hãy mạnh dạng làm đi và xem tương lai mang lại cho bạn những gì.

Giới thiệu & thống kê

Tôi muốn có một công việc ở Thung lũng Silicon, nơi tôi có thể thực sự phát triển trong một công ty lớn. Tôi đã làm việc tại các startup trước đây và tôi thực sự yêu thích các công việc đó. Tuy nhiên tôi muốn mình trở nên quan trọng hơn, tạo ra nhiều giá trị hơn.

Tổng cộng tôi nộp đơn tại 20 công ty. Bốn công ty đã từ chối thẳng thừng: Reddit, Nest, Stripe, Uber. Trong số 16 công ty còn lại, 10 công ty không có bất kỳ phản hồi nào: Lyft, Airbnb, Dropbox, Instagram, YouTube, Square, Robinhood, Twitter, Snap, Slack.  Với 6 công ty còn lại, LinkedIn, Yelp, Apple, Amazon, Facebook và Google, tôi được cả 6 phỏng vấn qua phone, và cả 6 đều mời đến phỏng vấn trực tiếp và sau đó là 6 lời mời làm việc

Trong Google Calendar của mình tôi vẫn còn lưu các lịch hẹn:

  • 7 cuộc phỏng vấn trong 10 ngày
  • 7 phỏng vấn kỹ thuật trong 11 ngày
  • 29 cuộc phỏng trực tiếp trong 8 ngày
  • 3 cuộc phỏng vấn qua điện thoại tiếp sau đó

Cộng hết tất cả, tôi đã có 46 cuộc phỏng vấn trong 73 ngày (bao gồm cả khoảng trống giữa các buổi phỏng vấn này). Điều này thật sự mệt mỏi và hầu hết các giờ nghỉ trưa của tôi là dành cho các cuộc phỏng vấn, kéo dài nhiều tuần. Tôi đã phải bắt đầu công việc rất sớm vì vậy tôi có thể rời đi sớm hơn để có thể gọi điện ở nhà. Để đảm bảo các công việc tại nơi làm việc hiện tại cũng là một thách thức và tôi luôn ưu tiên công việc hơn là các cuộc phỏng vấn, sẵn sàng lập lại kế hoạch khi cần thiết. Tôi không tham gia các cuộc phỏng vấn qua điện thoại trong giờ làm việc. Nó làm cho bạn trở nên rất tệ, phi đạo đức, và nếu bạn không nhận được một công việc mới thì hiệu suất công việc của bạn cũng đã kém đi.

Các công ty tham gia phỏng vấn

LinkedIn (Sunnyvale, CA)

Các ứng dụng di động của LinkedIn thực sự khá mượt và họ có một số đóng góp nhật định cho cộng đồng mã nguồn mở (bạn có thể xem Repositories của Linkedin ở đây) . Tôi đã rất ấn tượng trong suốt toàn bộ quá trình phỏng vấn với LinkedIn từ quan điểm văn hóa và góc độ kỹ thuật. Họ thật sự gây ấn tượng cho tôi về iOS Prestige™ từ khi bắt đầu quá trình cho đến khi kết thúc.

Yelp (San Francisco, CA)

Yelp có một ứng dụng chạy trên iOS rất ổn thể hiện sự hiểu biết của họ về của nền tảng này. Tôi thích không khí làm việc tại đây. Văn phòng đẹp và tôi rất vui khi được làm việc với những người đã phỏng vấn tôi. Công ty này nhỏ hơn nhiều so với các công ty nào khác tôi đã nộp đơn. Có vẻ như mọi thứ ở đây rất chặt chẽ và công việc có nhịp độ nhanh.

Apple (Cupertino, CA)

Apple là một phần quan trọng của iOS trong một thời gian (tôi đang đùa đấy) Tôi là một fan của Apple từ lúc 12 tuổi. Tôi bắt đầu lập trình là trên máy Mac. iPhone SDK là công cụ để tôi xây dựng ứng dụng đầu tiên. Thật khó tưởng tượng là họ lại mời tôi đến phỏng vấn trực tiếp và lại còn mời làm việc . Tôi không thể nói gì hơn.

Amazon (Palo Alto, CA)

Tôi không cho rằng Amazon là một công ty theo mô hình “mobile-first”. Mặc dù vị trí họ tuyển và team làm việc đáp ứng các tiêu chí tôi đặt ra. Tôi không thích tòa nhà Palo Alto cho lắm, tuy nhiên đó là một văn phòng tạm thời cho đến khi họ di chuyển vào một tòa nhà gần giống với Amazon hơn. Có lẽ vì vậy mà buổi phỏng vấn không ổn lắm. Những người tôi đã nói chuyện dường như hơi quá tập trung vào sản phẩm của họ. Mặc dù các công ty thường nói với tôi rằng “thực sự điều này giống như một startup”, nhưng có lẽ điều này phản ánh sự chân thực nhất tại Amazon.

Facebook (Menlo Park, CA)

Tôi đã có cuộc phỏng vấn tại tòa nhà mới nhất của Facebook và nơi đó thật sự cool. Mặc dù vậy tôi có cảm giác lờ mờ về các chi tiết trong cuộc phỏng vấn vì tôi đã trải qua ngày phỏng vấn thứ năm liên tục với giấc ngủ không đủ. Tôi thật sự thích thú khi trò chuyện với những người ở đây và có một cuộc phỏng vấn vào giờ nghỉ trưa rất ổn.

Google (Mountain View, CA)

Với sự hiểu biết của tôi, Google đầu tiên thực hiện các cuộc phỏng vấn kiểu “generic” cho các vị trí họ tuyển. Tôi đã nói chuyện với rất nhiều thành viên đến từ một trong những team xây dựng sản phẩm lớn nhất của Google trên iOS. Tuy nhiên tôi không thấy họ phỏng vấn về vị trí cụ thể trong team đó. Sau khi bộ phận tuyển dụng đã chấp nhận các kết quả phỏng vấn trước đó, tôi được chuyển sang giai đoạn đánh giá xem mình có phù hợp với nhóm sẽ làm việc cùng không và tôi đã thực sự phù hợp. Đó là một quá trình rất dài so với các công ty khác. Tôi cũng đã phải cho Google biết tôi đã làm việc ở đâu cùng với tất cả những người có liên quan.

Kế hoạch chuẩn bị

Nói cho rõ một chút, trước khi bắt đầu chuẩn bị cho quá trình tìm việc mới thì tôi đã có thể giải quyết các vấn đề trên Leetcode . Với hầu hết các yêu cầu ở mức Easy tôi cần khoảng 30 phút, với Leetcode Medium thì có thể giải quyết khoảng 25% với điều kiện không giới hạn thời gian. Giải quyết các vấn đề Leetcode Hard đối với tôi cũng tương tự như cố gắng giải quyết bài toán P so với NP (P = NP) vậy.  Nói một cách ngắn gọn, kiến thức có nhiều lỗ hổng cần phải cải thiện.

Để nghiên cứu các thuật toán, tôi bắt đầu với cuốn Cracking the Coding Interview. Vào các buổi sáng chủ nhật, tôi vào một quán cà phê nào đó và nghiền ngẫm các câu hỏi về Objective-C. Khi tôi nghĩ là đã đủ (khoảng 35 câu) tôi vào Leetcode và giải quyết các vấn đề liên quan đến các chương trong sách mà tôi đã xem. Sau một vài tuần theo cách này, tôi cảm thấy tôi mình sẵn sàng chuyển sang giai đoạn tiếp theo.

Với những kiến thức cơ bản đó, tôi chuyển sang cuốn Elements of Programming Interviews. Cuốn sách này khó hơn nhiều so với cuốn trên. Trong sách có đưa ra study plan và tôi thực sự nghiêm túc thực hiện theo. Với một kế hoạch đặt ra trong bốn tuần, tôi đã gần như thực hiện đúng. Theo tôi, điều then chốt là bạn cần tập làm qua whiteboard interview, hoặc tập phỏng vấn thử qua phone (mock a phone interview) với ai đó. Then chốt ở đây có nghĩa là bạn nên xem đấy là một yêu cầu phải thực hiện được trong quá trình tập luyện. Chắc chắn bạn có thể có thể tìm được việc mà không cần làm như vậy nhưng với tôi đó là cách tốt nhất tôi đã làm.

Nếu bất cứ ai muốn thực tập phỏng vấn qua điện thoại về iOS thì tôi có thể giúp. Bạn có thể tìm tôi thông trên CS Career Hackers và chúng ta sẽ cùng thực hiện nếu thời gian cho phép. Ngoài tôi ra thì cũng có rất nhiều người trên hệ thống này sẵn sàng giúp đỡ bạn. Có thể sẽ bất tiện. Nhưng đó chính là vấn đề. Nếu không cần thiết thì bạn đâu có cần làm gì đúng không? Nếu bạn bắt đầu thực hiện phỏng vấn thử qua điện thoại hoặc trên whiteboard mà còn lúng túng hay vụng về, đó là một dấu hiệu bạn đang làm chính xác những gì bạn nên làm: thực hành. Điều này thật sự bất tiện đối với tôi cho đến khi tôi đã làm tốt hơn, và việc thực hành này là hoàn toàn xứng đáng.

Sau khoảng một tháng liên tục thực hành hành mỗi ngày (có lẽ là 2-3 giờ/ngày, nhiều hơn vào cuối tuần) tôi chuyển sang thực tập chủ yếu trên Leetcode’s “Top Interview Questions”. Tôi đã không làm tất cả, nhưng tôi đã thực hiện đủ. Chìa khóa để chuẩn bị tốt cho các cuộc phỏng vấn về thuật toán là đạt đến một trình độ mà bạn có thể tìm ra giải pháp cho một vấn đề trong thời gian phỏng vấn, không nhất thiết phải biết cách giải quyết hết mọi vấn đề. Điều đó là không thể . Hầu như tất cả các câu hỏi gặp trong các buổi phỏng vấn trực tiếp là mới đối với tôi nhưng chúng lại tương tự như các câu hỏi tôi đã biết.

Bài học rút ra

Dưới đây là những bài học tôi rút ra được qua kinh nghiệm thực tế và chúng không theo một thứ tự cụ thể. Tất cả mọi thứ được liệt kê dưới đây là những điều mà tôi ước rằng mình được biết trước, cả về sự chuẩn bị về mặt kỹ thuật,  việc lập kế hoạch và cả các thủ thuật phi kỹ thuật khác. Những bài học này không đi cụ thể về phỏng vấn về lập trình iOS mà có thể được áp dụng cho tất cả các cuộc phỏng vấn trong ngành IT:

  • Hãy kiên trì:  Trước kia khi tìm kiếm một công việc ngoài việc học, tôi đã bỏ ngang sau một hay hai tuần học hỏi. Tôi đã nghiệm ra rằng tôi chỉ đơn giản là không lượt giản bớt những thứ để học hỏi cải thiện. Đã có được sự tiến bộ từ khi tôi bắt đầu trong vài tuần. Vậy thì đâu là điểm mấu chốt của việc lãng phí thời gian? Lần này tôi nhận thấy rằng tôi đã không có lựa chọn nào khác. Và rồi mọi thứ bắt đầu trở nên rõ ràng. Có rất nhiều việc phải làm, nhưng sự sẵn sàng học hỏi làm bạn khác biệt với các ứng viên còn lại.
  • Thực hành thực hành và thực hành. Chắc chắn là bạn cần có khả năng bẩm sinh, nhưng thực hành  có thể bổ sung những thiếu hụt trong khả năng của bạn. Các công ty không thuê nhân viên dựa trên kiến thức sẵn có. Họ thuê những người có thể thực hiện nhiệm vụ của họ và và thể hiện thật tốt, bất kể nơi nào hay khi nào họ gặt hái được kiến thức.
  • Hãy luyện tập với bạn bè. Cho dù trên whiteboard hoặc trên công cụ nào đó như Codeshare, mô phỏng một môi trường phỏng vấn với một ai đó trong một khoảng thời gian sẽ giúp bạn loại bỏ các lo lắng. Bạn sẽ thấy sự phiền phức vì sự diễn đạt ngu ngốc cho một ai đó bởi vì não bạn hoàn toàn trống rỗng. Tốt nhất là nếu bạn có thể chắc chắn rằng ai đó hiểu được một vấn đề mà bạn chưa từng gặp trước đây, vì họ có thể cung cấp cho bạn gợi ý để hỗ trợ bạn hướng tới một giải pháp. Nói một cách nghiêm túc, cách luyện tập đó là vô giá.
  • Đó là một trò chơi số đầy may mắn. Bạn hãy cứ luyện tập một cách hiệu quả cho dù có thể không tìm được việc bởi vì resumé của bạn không đến được đúng người hoặc bạn không tìm ra được giải pháp đúng thời điểm cần thiết. Điều tốt nhất bạn có thể hy vọng là làm tối đa hóa tỷ lệ thành công. Hãy áp dụng ở mọi nơi bạn muốn làm việc. Tôi áp dụng cho Top 20 công ty tôi đã nộp đơn.
  • Tập trung vào việc giải quyết vấn đề, chứ không phải là giải pháp. Chỉ có trí nhớ thôi thì không đủ. Trong hai mươi vấn đề về thuật toán tôi tìm thấy trong một tuần thì có lẽ một trong số đó tôi đã biết rồi (và tôi cho người phỏng vấn của tôi biết, mặc dù nhiều người sẽ không đồng ý với sự lựa chọn đó). Có nhiều cách và tôi đã có thể đưa ra giải pháp ngay lập tức.
  • Đừng nản chí. Đã có rất nhiều cuộc phỏng vấn mà tôi không biết câu trả lời và người phỏng vấn đã phải gợi ý giải pháp. Dù vậy tôi vẫn nhận được lời mời làm việc từ họ. Ngoài ra, tôi cảm thấy mình đã hoàn toàn phá hỏng một trong những cuộc phỏng vấn và 4/5 cuộc phỏng vấn tôi khá chắc chắn rằng quyết định của họ sẽ là không tuyển nhưng thực tế họ đã gửi job offer. Rõ ràng là bất cứ điều gì cũng có thể xảy ra.
  • Đừng vội bỏ qua các vấn đề. Có nhiều lần tôi đã được thực hành với một người bạn và bạn tôi đã tìm ra những vấn đề đặc biệt khó khăn mà tưởng chừng như không có cách nào để biết được. Hãy đủ tò mò. Tôi nhớ có bốn loại vấn đề tôi anh ấy đã nói rằng sẽ không bao giờ xảy ra, trên thực tế thì hai điều đã thực sự xảy ra. Không có khuôn mẫu chính xác trong cách  mà chúng tôi đã thực hành, nhưng rất giống nhau. Nếu thực hành của bạn cho thấy một khái niệm nhất định thường xuyên xảy ra, hãy tìm hiểu nó.
  • Đừng đánh giá quá thấp tầm quan trọng của các câu hỏi hành vi. Tôi nghĩ rằng tôi đã gặt hái nhiều thành công vì thành thực mà nói câu trả lời của tôi chính là những gì các công ty muốn. Đó là lý thuyết của tôi mà nhiều lập trình viên dù có kỹ năng kỹ thuật lành nghề và vẫn phải loay hoay để tìm công việc hoàn hảo vì họ cư xử thô lỗ, không trung thực, hoặc không thoải mái khi nói với những người khác về khía cạnh bên ngoài chuyện kỹ thuật. Theo tôi, đó là những lý do chính đáng để từ chối một ứng cử viên. Hãy luyện tập các câu hỏi về hành vi cũng giống như các câu hỏi kỹ thuật.
  • Nếu bạn biết nhiều thứ, hãy cho họ biết. Có nhiều ví dụ chẳng hạn trong quá trình phỏng vấn trực tiếp, khi trả lời một câu hỏi tôi đã đề cập đến một số kiến thức khác nhưng giải thích rằng tôi không có thời gian để thực hiện đầy đủ các giải pháp đó. Trả lời một câu hỏi về chuỗi?  Hãy nói thêm về kiến thức về Unicode mà bạn có hoặc giải thích làm thế nào để hỗ trợ Unicode. Thực hiện một private method? Có thể thảo luận thêm về Objective-C convention cho method. Cập nhật một table view? Nói về những hình ảnh động khác nhau mà bạn có thể hỗ trợ. Đừng đề cập một vấn đề nếu bạn không thể nói chi tiết, nhưng nếu có thể, nó cho bạn thể hiện kiến thức bên ngoài khuôn khổ hẹp của các câu hỏi. Nó cũng mở ra cơ hội cho bạn để có lợi thế hơn so với những đối thủ cạnh tranh của bạn.
  • Đừng cố làm hơn những gì được yêu cầu, hãy cố thực hiện đúng. Hiệu quả phỏng vấn rõ ràng sẽ quyết định nếu bạn nhận được một lời mời làm việc, và nó cũng giúp quyết định offer đó như thế nào. Nếu bạn phát hiện được bí quyết mà đủ để có được một job offer thì thật là tuyệt vời. Nhưng hãy nhớ có một sự khác biệt lớn giữa “vừa đủ tốt” và “rất tốt”. Hãy phấn đấu cho điều thứ hai! Các offers đến với tôi khá ổn mặc dù kinh nghiệm tôi chưa có nhiều và tôi tin rằng hiệu quả cuộc phỏng vấn đóng một vai trò lớn.

Và cuối cùng

Hy vọng rằng những kinh nghiệm trên giúp ích được cho bạn ít  nhiều trên con đường tìm việc. Nếu bạn muốn xem thêm về bài viết gốc của tác giả Bay Area Belletrist có thể xem tại đây

 

Bạn có biết?


tham gia cộng đồng ITguru trên Linkedin, Facebook và các kênh mạng xã hội khác có thể giúp bạn nhanh chóng tìm được những chủ đề phát triển nghề nghiệp và cập nhật thông tin về việc làm IT mới nhất

Linkedin Page: https://bit.ly/LinkedinITguru
Facebook Group: https://bit.ly/ITguruvn
cơ hội việc làm IT : ITguru.vn