[Nắm bắt] Câu hỏi phỏng vấn IOS cùng “ bí quyết” trả lời nhanh
Lập trình về IOS được xem là công việc mơ ước của rất nhiều bạn trẻ tuy nhiên việc để bản thân “lọt mắt xanh” của các nhà tuyển dụng lại không hề dễ dàng. Đặc biệt đối với buổi phỏng vấn với các câu hỏi hóc búa được đề ra dựa vào kỹ thuật, kinh nghiệm công nghệ của ứng viên. Vậy nên, việc mà bạn cần nắm chắc được trước về bộ câu hỏi phỏng vấn IOS sẽ luôn là có lợi thế dành cho bạn đúng không?
1. “Bỏ túi” TOP câu hỏi phỏng vấn IOS thường gặp nhất.
Đối với cuộc phỏng vấn về lập trình viên IOS thì các câu hỏi thường thấy đầu tiên vẫn sẽ là việc mà bạn giới thiệu bản thân mình, lý do bạn nghỉ việc ở công ty cũ là gì, mức lương mong muốn khi làm việc của bạn là bao nhiêu,...Tuy nhiên, hiện nay các câu hỏi đó đôi khi được bỏ qua vì thông tin nhận được về bạn được trình bày rõ ràng tại bản CV cùng đơn xin việc. Các câu hỏi phỏng vấn được đặt ra sẽ có sự trọng tâm hướng tới kiểm tra về lý thuyết, xác nhận năng lực nhiều hơn.
1.1. Bạn biết ARC là gì hay không?
Từ chính câu hỏi được đặt ra này nhà tuyển dụng mong muốn tìm hiểu về ứng viên có thật sự am hiểu về các phương pháp cho việc lập trình hay không. Vì đối với một ứng viên chuyên nghiệp thì cách làm việc của họ cũng có sự khác biệt.
>> Trả lời: Đối với câu hỏi này bạn có thể trả lời ngay về khái niệm một cách đơn giản thay vì việc giới thiệu dài dòng kéo dài về thời gian. Vì nhà tuyển dụng còn cần kiểm tra về nhiều nền tảng kiến thức khác.
Ví dụ: “ARC viết tắt cho Automatic Reference Counting đó là một phương pháp quản lý bộ nhớ trước khi tiến hành thực thi chương trình. ARC cùng không hoạt động như các Garbage Collection mà chỉ là phần front - end của compiler. Trong vai trò tự động chèn thêm về các đoạn code vào trong đối tượng và quyết định về việc khi nào đối tượng đó không còn sử dụng được nữa tránh được viết nhiều về các đoạn code”.
1.2. ARC khi nào được dùng và khi nào không được dùng?
Tiếp nối cho kiểm tra về phương pháp thì câu hỏi còn là sự minh chứng cho việc bạn ứng dụng đối với thực tế ra sao. Vì IOS không chỉ có một hệ điều hành mà nhà tuyển dụng luôn mong muốn về việc bạn nắm bắt được các công nghệ.
>> Trả lời: Đối với ARC thì sẽ được sử dụng hỗ trợ về IOS 5 trở lên còn về IOS 4 trở xuống thì lập trình viên sẽ cần tới việc tự viết và lập code để quản lý về bộ nhớ. Chỉ trong các dự án có sử dụng tới ARC nhưng vẫn có về các đoạn code sử dụng manual memory management như chính retain hay release,...thì lập trình trình viên vẫn có thể sử dụng file code đó. Thông qua chính cơ chế non - arc dựa trên config tại build phases để có thể tiến hành quản lý.
1.3. Từ khóa “@synthesize” có ý nghĩa như thế nào?
Chỉ là một từ khóa nhưng đó sẽ đem lại việc thể hiện bạn có nắm chắc được các kiến thức về sử dụng và áp dụng tự động tốt hay không. Do đó hãy cân nhắc tìm hiểu để trả lời nhé.
>> Trả lời: Bạn có thể đưa ra câu trả lời theo cách hiểu riêng và diễn đạt của chính mình nhưng cũng có thể tham khảo về cách gợi ý sau. Ví dụ “Từ khóa synthesize là cách mà để 1 biến có thể trình biên dịch tự động từ đó tạo ra hai hàm về getter và setter khi chưa viết. Còn nếu khi đã thực hiện viết về hai hàm trước đó thì sử dụng trình biên dịch sẽ không tạo thêm về hai hàm đó nữa” tránh việc lặp quá nhiều không cần thiết.
1.4. Ứng dụng IOS sẽ có thể có các trạng thái nào?
Câu hỏi với tính liệt kê nhưng lại yêu cầu ứng viên biết cách về trình bày ngắn gọn, thực sự am hiểu về ứng dụng IOS thì mới có thể đề ra. Tất nhiên nhà tuyển dụng sẽ luôn ứng viên của mình có sự linh hoạt trong mọi trường hợp mà đúng không?
>> Trả lời: Đối với một ứng dụng IOS sẽ có rất nhiều tranh thái được thể hiện nhưng để tiêu biểu và được cho là điều mà nhà tuyển dụng cần tới bạn hãy tham khảo về gợi ý dưới đây.
Ứng dụng IOS sẽ có thể có các trạng thái như sau:
+ Trạng thái về Not Running
+ Trạng thái Inactive: Một ứng dụng đang chạy nhưng lại không nhận bất kỳ sự kiện nào và xảy ra khi người sử dụng lock màn hình hay chính ứng dụng đang chạy mà có tin nhắn hoặc cuộc gọi đến xuất hiện.
+ Trạng thái về Active: Hay chính là Foreground ứng dụng đang được chạy thực hiện xử lý về các sự kiện từ chính người dùng cùng hệ thống.
+ Trạng thái Background: Khi mà ứng dụng đang thực hiện chạy ở chế độ nền mà vẫn có thể tiếp tục cho việc xử lý các tác vụ khác.
+ Trạng thái Suspended: Trường hợp về ứng dụng đang hoạt động dưới dạng chạy nền nhưng lại không xử lý bất kỳ một tác vụ nào khác đặc biệt khi bộ nhớ không đủ. Việc quản lý sẽ là tự động bởi IOS cũng như không có thông điệp phản hồi chuyển sang trạng thái để nhận biết.
1.5. Vậy bạn có biết biến strong và weak khác nhau như thế nào hay không?
Tất nhiên đối với các lập trình viên thì các biến để ứng dụng là rất quan trọng đặc biệt là việc phân biệt rõ ràng về các biến càng trở nên cần thiết hơn. Do đó việc bắt gặp về các câu hỏi so sánh là điều dễ nhận thấy.
>> Trả lời: Bạn có thể đưa ra điểm khác biệt lớn nhất của strong đó là việc trỏ đến một đối tượng cùng việc sở hữu đối tượng đó và quyết định cho sự tồn tại. Còn về weak cũng là việc trỏ tới một đối tượng nhưng chỉ là sự tham chiếu giá trị và không quyết định cho sự tồn tại của đối tượng. Bên cạnh đó việc strong trỏ đến sẽ làm gia tăng về retaincount của đối tượng thêm 1 và khi về 0 sẽ bị hủy còn weak thì không làm gia tăng và giá trị tiến tới 0 sẽ được sét trở lại bằng giá trị null.
1.6. Đối với weak thì khi nào nên dùng đến?
Ngay sau khi bạn có sự phân biệt được về hàm weak đôi nhà tuyển dụng sẽ yêu cầu về việc khi nào nên dùng thuộc tính hàm đó. Qua đó để xác nhận về việc bạn có thật sự hiểu biết hay chỉ là tìm hiểu sơ qua.
>> Trả lời: Bạn có thể đưa ra câu trả lời về việc weak được dùng trong hai trường hợp chính đó là về việc biến đổi các đối tượng reference đến nhau và trường hợp khác khi mà 2 class có quan hệ như cha con. Lúc này trong 1 class thì ta có thể dùng về biến weak tránh cho việc không bị leak memory.
1.7. Trong Objective - C có khai báo được Public Static hay không?
Đối với câu hỏi này bạn cũng có thể trả lời một cách dễ dàng vì khi nắm chắc được kiến nền tảng thì đó không còn là sự thách thức nữa. Luôn tư tin vì nhà tuyển dụng đôi khi lựa chọn về điều đó.
>> Trả lời: Bạn có thể trả lời rằng “Có, vì để khai báo static thì có từ khóa mới có thể khai báo về đối tượng còn đối với public thì là việc sử dụng dấu + cho các function thay cho dấu “-”. Khi kết hợp 2 điều đó thì đó chính là khai báo đối tượng về Public Static.
1.8. Bạn có thể phân biệt về các hàm: ViewDidLoad, ViewDidUnload cùng với ViewWillAppear, ViewDidAppear, ViewWillDisappear và ViewDidDisappear hay không?
Câu hỏi phân biệt rất dễ nhận thấy đối với cuộc phỏng vấn IOS dành cho các ứng viên. Một sự đòi hỏi về tìm hiểu thật kỹ càng về chuyên môn, có sự am hiểu rộng hơn thì mới có thể so sánh về các hàm được. Tuy nhiên, câu trả lời khi đối đáp thì vẫn luôn có sự ưu tiên về ngắn gọn hơn.
>> Trả lời: Bạn có thể đưa ra lần lượt về các hàm cùng mục đích hướng tới của các hàm đó như sau:
+ ViewDidLoad: Được gọi đầu tiên khi view khởi tạo.
+ ViewDidUnload: Được gọi đầu tiên khi view hiển thị.
+ ViewWillAppear: Được gọi sau khi view đã hiển thị hoàn tất.
+ ViewDidAppear: Được gọi đầu tiên khi view bắt đầu chuyển sang view khác.
+ ViewWillDisappear: Được gọi đầu tiên khi view đã chuyển sang view khác.
+ ViewDidDisappear : Được gọi sau khi khi view đã chuyển hoàn tất.
...
2. Các câu hỏi khác mà bạn có thể bắt gặp với phỏng vấn IOS
Câu 1: Bạn sử dụng về ngôn ngữ Swift hay Objective - C? Lý do bạn sử dụng nó?
Câu 2: Hãy thử trình bày về các dự án bạn đã từng tham gia? Vai trò đảm nhận của tương xứng của bạn là gì?
Câu 3: Theo bạn hiểu quá trình để build một ứng dụng IOS sẽ như thế nào?
Câu 4: Liệt kê về 5 trạng thái cơ bản của 1 ứng dụng IOS?
Câu 5: Cách để xác định được bundle trong IOS là gì?
Câu 6: Đối với xử lý việc đa luồng trong IOS bạn sẽ làm như thế nào?
Câu 7: Bạn hãy phân biệt về Frame và Bounds?
Câu 8: Bạn nghĩ rằng thử thách lớn nhất khi làm việc tại vị trí liên quan IOS là gì?
Câu 9: Mục tiêu nghề nghiệp của 5 năm tới mà bạn hướng đến đó là gì?
Câu 10: Hãy thử trình bày điều bạn biết về App Thinning?
Câu 11: NSNotificationCenter - Bạn biết gì về nó là cách thức hoạt động ra sao?
câu 12: MVC là gì trong IOS và được thực hiện triển khai ra sao?
Câu 13: Nguồn thông tin liên quan về IOS bạn thường cập nhật bằng cách nào?
Câu 14: Cách để truyền các dữ liệu giữa các view controllers hiện nay?
Câu 15: Thử thách lớn nhất mà bạn từng gặp phải là gì? Kể về nó?
…
Một công việc chuyên về lập trình thì điều dễ nhận thấy các câu hỏi được đề ra sẽ luôn liên quan tới vấn đề kỹ thuật công nghệ và cách thức áp dụng chuyển đổi. Do đó bạn cần chuẩn bị cho bản thân nền tảng kiến thức sâu rộng hơn từ những điều cơ bản nhất cũng có thể gặp phải khi nhà tuyển dụng là người đặt ra.
3. Lật ngược ván cờ với câu hỏi dành cho nhà tuyển dụng
Câu 16: Anh chị có thể cho tôi biết về văn hóa của công ty và cách duy trì?
Hiểu được về văn hóa của công ty luôn là một điều tốt dành cho bạn và mọi nhà tuyển dụng sẽ đưa ra điểm tốt về công ty tuy nhiên hãy để ý tới minh chứng thực tế. Để qua đó có thể lựa chọn về việc có nên tham gia làm việc và bản thân có phù hợp với văn hóa công ty hay không?
Câu 17: Tham gia làm việc anh/ chị thấy thích nhất điều gì tại công ty?
Tất nhiên việc mà đề ra câu hỏi này chỉ là việc thăm dò về công ty cũng như chính người đi trước khi tham gia làm việc. Nếu bạn nhận được câu trả lời và cảm thấy đó là điều mong muốn thì cơ hội của bạn đã tới. Khi ngược lại thì đó sẽ là việc bạn cần có sự cân nhắc về tương lai của mình.
Câu 18: Điều công ty muốn nhân viên mới hoàn thành đầu tiên là gì?
Một câu hỏi thể hiện về việc bạn có sự hướng tới kết quả đạt được cho công ty chứ không chỉ là quan tâm tới việc công ty đem lại gì cho bạn. Hơn nữa về câu hỏi này đôi khi sẽ đem lại cho bạn một hướng đi tốt cho công việc sau này từ gợi ý mà nhà tuyển dụng đề ra.
Việc phỏng vấn ngược đó đôi khi là tạo nên sự bối rối cho chính bạn cũng như cho chính phía nhà tuyển dụng nhưng đó lại là cơ hội ghi điểm dành cho bạn. Chỉ thông qua một số câu hỏi nhưng đó là điều mà bạn thể hiện về tư duy sắc bén của chính mình và chắc chắn về việc bản thân mong muốn có được công việc.
4. Để phỏng vấn IOS thành công bạn cần gì?
4.1. Sự tự tin và tổng duyệt trước khi phỏng vấn
Hãy luôn nhớ dành thời gian cho bản thân để có thể tập luyện trước về các câu hỏi phỏng vấn điều đó sẽ giúp bạn có một sự tự tin hơn khi bước vào ngồi chiếc ghế nóng đó. Hơn nữa nếu có thời gian hãy thử tưởng tượng về chính khung cảnh của buổi phỏng vấn nhờ tới chính bạn bè và người thân đẻ chuẩn bị diễn thuyết và đối đáp. Có thể đó cũng là một ý tưởng hay dành cho bạn khi chuẩn bị nên tham khảo. Dù là phỏng vấn trực tiếp hay qua điện thoại thì chuẩn bị trước đó và một tâm lý tốt trước giờ thực hành sẽ luôn đem lại hiệu quả cao dành cho bạn.
4.2. Thái độ của bạn quyết định tất cả
Ngoài việc chuẩn bị về ngoại hình, kiến thức cùng với kỹ năng là chưa hoàn toàn đủ về dành phần thắng cho bản thân. Bạn cũng nên quan tâm tới chính thái độ của bản thân trong buổi phỏng vấn vì đó là tiêu chí nhà tuyển dụng dùng để đánh giá về con người bạn.
Giữ cho bản thân một thái độ nhiệt tình, cởi mở dù trong suốt quá trình phỏng vấn thì các giao tiếp cơ thể vẫn luôn là sự tự tin. Từ đó tạo nên sự chuyên nghiệp và cuộc phỏng vấn trở nên dễ dàng hơn cũng như đó là cách bạn thể hiện việc khi họ làm việc với bạn sau này.
4.3. Lựa chọn được nhà tuyển dụng phù hợp
Đây cũng được cho là một phần quan trọng cho quá trình tìm kiếm việc làm của mỗi ứng viên vì khi bạn nắm bắt được cơ hội việc làm thì mới có thể tiến tới việc ứng tuyển và tham dự về buổi phỏng vấn. Do đó để lựa chọn được nhà tuyển dụng phù hợp thì bạn có thể tìm hiểu ngay với work247.vn để được cấp nhật những thông tin bổ ích. Điểm đến không chỉ dành cho ứng viên mà còn đem lại lợi ích cho chính nhà tuyển dụng.
Thông qua những chia sẻ này về câu hỏi phỏng vấn ios của work247.vn hy vọng sẽ tạo cho bạn một sự định hướng, một cách nhìn tốt nhất để hoàn thành buổi phỏng vấn xin việc.
3011 0