Một số câu hỏi phỏng vấn quái chiêu dành cho lập trình viên (phần 1)

8 467 0
Một số câu hỏi phỏng vấn quái chiêu dành cho lập trình viên (phần 1)

Đang tải... (xem toàn văn)

Thông tin tài liệu

Hôm nay khoa Mạng máy tính Truyền thông chào đón tân sinh viên. Nhìn những khuôn mặt háo hức của tân sinh viên khi ngồi nghe giới thiệu về khoa, về trường, về cách học Đại học của các thầy cô, mình cũng nhìn ra đâu đó hình ảnh của mình 2223 năm về trước. Chỉ có khác là thời đó, sinh viên không được chăm sóc chu đáo như bây giờ. Có thể câu hỏi mà các bạn băn khoăn nhất đó là sau này mình tốt nghiệp ra làm được gì? Có bị thất nghiệp hay không? Đây có thể nói là một câu

Một số câu hỏi vấn "quái chiêu" dành cho lập trình viên (phần 1) Hôm khoa Mạng máy tính & Truyền thông chào đón tân sinh viên Nhìn khuôn mặt háo hức tân sinh viên ngồi nghe giới thiệu khoa, trường, cách học Đại học thầy cô, nhìn hình ảnh 22-23 năm trước Chỉ có khác thời đó, sinh viên không chăm sóc chu đáo Có thể câu hỏi mà bạn băn khoăn sau tốt nghiệp làm gì? Có bị thất nghiệp hay không? Đây nói câu hỏi hóc búa câu trả lời thực lại nằm bạn Nếu bạn thật nắm vững kiến thức, có ích cho công việc công ty vấn bạn đảm bảo bạn không thất nghiệp Còn bạn có sưu tầm đủ loại cấp mà kiến thức hay kỹ giải vấn đề vòng 30-45 phút (hoặc lâu hơn) vấn bạn không chọn Bài nói chuyện muốn chia sẻ với bạn kiến thức mà dân IT cần nắm để bạn bước vào ngưỡng cửa xin việc Các công ty phần mềm lớn có câu hỏi quái chiêu để thử thách trí thông minh bạn Những câu hỏi quái chiêu nghe qua tưởng chừng phi lý, giải chẳng có sở để giải lại giải logic đơn giản dễ hiểu thuyết phục Chú thích: viết dựa sách hay mà đọc dùng tư liệu giảng dạy Tuy nhiên, không nêu phần để bạn có thời gian để nghiền nghẫm tìm đáp án Nếu đưa tên sách bạn thay dùng lượng giải bài, lại tìm đáp án sách lãng phí :-) Thời học phổ thông, việc trăn trở với toán khó tuần, tháng suy nghĩ tìm đáp án Lúc giải toán khó cảm thấy sảng khoái vô Ngày nay, có nhiều sách tham khảo, sinh viên tập trung vào việc "giải đề" nhiều tốt, lượng dành cho việc tư biến thành lượng để dò tìm, search Google xem đâu có lời giải để xem Câu hỏi kỹ thuật, kiểm tra kiến thức, giải thuật VD1: Hãy thiết kế giải thuật để xếp danh sách Wow, câu dễ ăn gỏi :-) Ai biết xếp danh sách tập kinh điển học nhập môn lập trình, cấu trúc liệu thuật toán Có thể có bạn cười thầm bụng, tưởng câu khó, câu dễ ẹt, hỏi hỏi Liền chọn giải thuật dễ nhớ nhất, bắt tay vào viết giải thuật Câu hỏi chứa bẫy chết người ! Đối với câu hỏi này, bạn phải thực bước quan trọng sau, đừng bỏ sót bước nào: Đặt câu hỏi cho người vấn để làm sáng tỏ điều chưa rõ Thiết kế giải thuật Viết mã giả (có thể mã thật luôn) Viết code cho mã giả với tốc độ vừa phải Test mã sửa lỗi cẩn thận Lưu ý quan trọng: số công ty Google, Facebook chí cho bạn viết code giấy, sau họ đưa tờ giấy cho thư ký gõ lại y chang bạn viết bấm F5 để xem có chạy không :-) Quay trở lại Ví dụ 1: thiết kế giải thuật xếp Bước 1: Đặt câu hỏi cho interviewer • • • • • • • • • • Hỏi: Danh sách loại ? Array hay linked list? Đáp: Array Hỏi: Danh sách chứa ? Số hay chữ? Đáp: Số Hỏi: Số tự nhiên hay số thực? Đáp: Số tự nhiên Hỏi: Ý nghĩa số này? Số CMND, khác? Đáp: tuổi khách hàng Hỏi: Có khách hàng đó? Đáp: Cỡ triệu khách hàng Đối với lập trình viên kinh nghiệm, bạn thấy dễ thở nhiều qua vấn "ngược" với interviewer Và lúc bạn an tâm thiết kế giải thuật Người ta không test kỹ năng, mà test mức độ "trưởng thành" bạn việc lập trình Nếu đọc đề cắm cuối vào làm bạn rơi vào bẫy Bước 2: Thiết kế giải thuật Do ví dụ kinh điển đơn giản, nên bạn làm nhanh Tuy nhiên, thực tế, việc thiết kế giải thuật khó Nhưng bạn làm việc này, không ngừng tự trả lời câu hỏi sau: • • • • • Độ phức tạp giải thuật sao? Điều xảy phải xử lý nhiều liệu ? Cách thiết kế bạn có gây hiệu ứng phụ không? Nếu có hạn chế hay vấn đề khác, có đáng phải làm điều không? Nếu bạn biết liệu input liệu đặc trưng, bạn "tận dụng" hay không? Ví dụ: liệu tuổi người dùng đoạn vấn trên, việc bạn chọn lưu tuổi người dùng kiểu byte thay integer lựa chọn tốt Vì đơn giản kiểu byte có giá trị max 255 mà thôi, mà tuổi người đâu có 150 tuổi đâu :-) Bước 3: Mã giả Đây đoạn mã gần với ngôn ngữ người Bạn cần viết theo logic hiểu mà không cần phải dùng ngôn ngữ lập trình Bước 4: Coding Đến giai đoạn phải viết code thật để test Thông thường nhà vấn họ cho bạn viết giấy hay bảng Hãy viết thật từ tốn, không hấp tấp, vội vã Dùng cấu trúc liệu cách hào phóng viết tiết kiệm không gian Nên góc trái bảng để viết, bạn phải sử dụng hết bảng Bước 5: Testing Thực có hẳn chuyên ngành "software testing" bạn Điều quan trọng lập trình viên phải test kỹ code viết trước phát lỗi Các công ty lớn thường sợ phải tuyển phải lập trình viên cẩu thả, lo xong kết quả, không test kỹ trước bàn giao Trong văn học, người ta thường nói "văn người" lập trình, tính nết, cẩn thận hay cẩu thả thể code bạn Và điều "tính điểm" hết Thế bạn à, với câu hỏi tưởng chừng "dễ ăn gỏi" lại chứa đựng nhiều thông tin mà nhà tuyển dụng muốn tìm thấy ứng viên Nên bạn gặp câu hỏi dễ, ta phải cẩn thận Câu hỏi đố mẹo hay "quái chiêu" Có thể nói công ty Microsoft, Google, hay Facebook thường khoái câu hỏi quái chiêu hóc búa để thử thách ứng viên họ qua vòng gửi xe :-) Các câu hỏi thông thường lại lấy từ đồ vật quen thuộc gia đình mô hình hóa thành toán hay Ví dụ 2: Hãy cho biết góc tạo kim dài kim ngắn đồng hồ cho biết Ví dụ: 3:00 ==> Góc 90 độ Vậy 3:33 phút tạo góc bao nhiêu? Hãy tạm dừng phút bạn muốn thử thách mình! Đừng đọc tiếp Sau 15p bạn chưa tìm đáp án đọc tiếp Ta ký hiệu h m phút Hãy lấy tờ giấy vẽ vòng tròn 3:33 phút Chúng ta thử nghiệm vài trường hợp "dễ dàng" nhận thấy quy luật sau: - Góc kim phút vị trí 12h00 360 * m / 60 - Góc kim vị trí 12h00 360 * (h % 12) / 12 + 360 * (m/60)*(1/12) ( đoạn 360 * (h % 12) /12 dễ hiểu, đố bạn lại phải cộng thêm 360 * (m/60)*(1/12) ??? - Góc kim kim phút lúc là: (góc kim - góc kim phút) % 360 Sau vài lần tối giản biểu thức, bạn có công thức (30h - 5.5m) % 360 Một biến thể khác toán cho biết ngày, có lần kim kim phút tạo với góc 90 độ (hay 30, hay 45, hay X độ) ? Kết luận Có thể nói, kỹ lập trình không riêng ngành CNTT đâu bạn Ngành CNTT có lợi bạn đào tạo từ đầu quen với nhiều công cụ lập trình Những ham thích lập trình học dù xuất phát điểm bạn có khác Tôi mong muốn chia sẻ kinh nghiệm lượm lặt gần xa cộng với kinh nghiệm thân để giúp bạn yêu thích việc lập trình Đồng thời, kinh nghiệm bổ ích cho bạn để bạn vấn xin việc, luyện thi Câu đố vui kỳ Giả sử bạn có sợi dây thừng, sợi phải tốn để cháy hết Làm để bạn dùng để đo xác khoảng thời gian 15 phút ? Lưu ý rằng, sợi dây thừng có mật độ không đồng đốt cháy 1/2 sợi dây không chắn 30 phút đâu Ba phần quà giá trị tỷ đồng gửi đến bạn có đáp án sớm gửi đến cho qua email:dovuilaptrinh@gmail.com, tính từ bạn đọc Hạn chót gửi kết 00:00:00 ngày 4/9/2016 (mail gửi sau không tính) Thời gian công bố kết tuần 5/9/2016 (lễ khai giảng trường ĐH CNTT) Vì phần thưởng có giá trị, nên bạn tra Google để tìm lời giải không tính, bạn biết trước lời giải không tính Bạn gửi mail không format không tính Chúc bạn có năm học thật thú vị Format sau: Subject: [Giải đố lập trình phần 1] Họ Tên, năm sinh Nội dung: 1) Dòng đầu tiên: Họ tên, Ngày sinh, Giới tính, Địa chỉ, điện thoại di động 2) Dòng thứ 2: Giới thiệu chút mình, tối đa 150 từ 3) Dòng thứ 3: Trình bày đáp án Ví dụ: Subject: [Giải đố lập trình phần 1] Nguyễn Văn A, 1999 Nội dung: Nguyễn Văn A, 1/1/1999, Nam, 123 Đường số 3, P3, Q3, TpHCM, 0987 654 321 Sinh viên năm 1, khoa MMT&TT Em ham mê lập trình Đáp án: ... Đặt câu hỏi cho interviewer • • • • • • • • • • Hỏi: Danh sách loại ? Array hay linked list? Đáp: Array Hỏi: Danh sách chứa ? Số hay chữ? Đáp: Số Hỏi: Số tự nhiên hay số thực? Đáp: Số tự nhiên Hỏi: ... ứng viên Nên bạn gặp câu hỏi dễ, ta phải cẩn thận Câu hỏi đố mẹo hay "quái chiêu" Có thể nói công ty Microsoft, Google, hay Facebook thường khoái câu hỏi quái chiêu hóc búa để thử thách ứng viên. .. nhất, bắt tay vào viết giải thuật Câu hỏi chứa bẫy chết người ! Đối với câu hỏi này, bạn phải thực bước quan trọng sau, đừng bỏ sót bước nào: Đặt câu hỏi cho người vấn để làm sáng tỏ điều chưa rõ

Ngày đăng: 13/12/2016, 14:08

Từ khóa liên quan

Mục lục

  • Một số câu hỏi phỏng vấn "quái chiêu" dành cho lập trình viên (phần 1)

Tài liệu cùng người dùng

Tài liệu liên quan