Làm cách nào tôi có thể đánh giá kiến ​​thức của ứng viên về Html / CSS trong một cuộc phỏng vấn? [đóng cửa]


44

Tôi đang cố gắng xác định một số câu hỏi phỏng vấn hay để đánh giá khả năng mọi người tham gia vào công việc Html / CSS, tuy nhiên chủ đề đó rất rộng và tôi không chắc mình có thể hỏi loại câu hỏi nào để đánh giá đúng HTML / của ai đó Kiến thức CSS.

Tôi có thể hỏi loại câu hỏi nào để đánh giá khả năng Html / CSS của ứng viên khi phỏng vấn?

Lý tưởng nhất là tôi muốn hỏi vài câu và sau đó đưa cho họ một kịch bản thực tế để chiến đấu.


2
Bạn có thể chỉ cho tôi công việc của bạn? Đó sẽ là một trong những tốt.
JeffO

Thật vậy, nhưng bất cứ ai cũng có thể sao chép và dán mã tại nhà cho các ví dụ tốt. Làm cho họ trả lời các câu hỏi tại chỗ cho phép bạn biết những gì họ biết cho mình.
webnoob

1
@Rachel - Rất cám ơn đã chỉnh sửa và mở lại. Tôi nghĩ rằng nó là một tài nguyên tốt cho trang web này.
webnoob

10
Nếu bạn không biết phải hỏi gì, chỉ cần sử dụng một số bài kiểm tra trực tuyến (ví dụ: http://tests4geek.com/test/html-css ) để xác thực các kỹ năng của ứng viên. Sau đó, bạn có thể yêu cầu anh ta viết mã của một số trang html. Ví dụ trang có menu trên cùng với nhiều mục phụ và chân trang ở phía dưới.
Giuse

Hỏi họ nghĩ gì về IE. Bất cứ ai phải làm bất cứ điều gì không tầm thường đều biết đó là Pita. ;) Nghiêm túc, bạn có thể hỏi họ những lỗi trình duyệt nào họ gặp phải.
Ben Thurley

Câu trả lời:


87

HTML và CSS khó phỏng vấn vì một vài lý do:

  1. Chúng quá cơ bản, ví dụ, so với ngôn ngữ lập trình,

  2. Họ phụ thuộc rất nhiều vào bối cảnh của công việc. Ví dụ:

    • Nếu bạn tạo quy mô Google, các trang web cực kỳ nhanh và được tối ưu hóa, những người bạn phỏng vấn cho công việc không thể bỏ qua các họa tiết CSS là gì.

    • Nếu bạn tạo các trang web hợp lệ XHTML W3C, bạn nên đảm bảo rằng các ứng viên biết sự khác biệt giữa XHTML 1.0 và XHTML 1.1 hoặc các thuộc tính bắt buộc để làm gì <img/>, v.v.

    • Nếu bạn tạo các trang web khủng khiếp đầy hack, bạn nên hỏi những người bạn phỏng vấn về cách họ sẽ thực hiện hoặc hack như vậy, cách họ phục vụ CSS khác nhau cho các trình duyệt khác nhau, v.v.

    • Vân vân.

  3. Nếu đó là một công việc HTML và CSS thuần túy, người đó sẽ phải làm việc với các nhà thiết kế một mặt và mặt khác là các nhà phát triển. Họ phải biết HTML và CSS, nhưng điều đáng giá hơn nhiều là khả năng tương tác với những người đó và để hiểu cả nhu cầu của người thiết kế, yêu cầu của nhà phát triển và ràng buộc của HTML và CSS.

    Ví dụ, họ phải biết cách cấu trúc HTML của mình theo cách sao cho nhà phát triển JavaScript có thể dễ dàng thêm tính tương tác sau này.


Bạn có thể muốn bắt đầu bằng một số câu hỏi cơ bản:

Trình duyệt yêu thích của bạn là gì?

Nếu người đó trả lời "Internet Explorer", hãy dừng cuộc phỏng vấn ngay lập tức: bạn không cần ai đó như thế.

Không, tôi đang đùa. Câu trả lời là không liên quan. Thay vào đó, bạn có thể hỏi như sau:

Hãy cho tôi biết về các công cụ gỡ lỗi bạn sử dụng trong trình duyệt yêu thích của bạn.

Chính sử dụng Chrome, tôi làm việc hàng ngày với Công cụ dành cho nhà phát triển. Những công cụ đó cho phép tôi:

  • Xem các yêu cầu được thực hiện từ một trang,

  • Nghiên cứu thời gian cần thiết để tải trang và các tài nguyên liên quan, đặc biệt là thời gian tra cứu, chờ và nhận DNS,

  • Nghiên cứu các tiêu đề của các yếu tố được gửi, cũng như chỉ báo bộ đệm,

  • Xem DOM và nghiên cứu cách áp dụng các bộ chọn CSS,

Tôi cũng sử dụng YSlow phục vụ cho tôi như một danh sách kiểm tra để tối ưu hóa trang web yêu cầu khả năng mở rộng cao. YSlow cũng là một công cụ tốt khi xác định xem máy chủ có được cấu hình đúng không (gửi tiêu đề chính xác, v.v.).

Trong Firefox, tôi sử dụng Fireorms, công cụ rất giống với Công cụ dành cho nhà phát triển từ Chrome. Các công cụ dành cho nhà phát triển cũng có sẵn trong các phiên bản mới của Internet Explorer và cũng cho phép tôi chuyển sang chế độ xem tương thích IE7 sang IE10. Tính năng cuối cùng này rất hữu ích, vì không có nó, tôi sẽ buộc phải cài đặt một số máy ảo chỉ để thử nghiệm kế thừa hoặc sử dụng thường xuyên hơn các dịch vụ trả phí như Litmus .

Xin vui lòng, giải thích cho tôi những gì về <dl/>thẻ là về? Mục đích sử dụng cho thẻ này là gì? Nó được sử dụng như thế nào trong thực tế? Bạn nghĩ gì về việc sử dụng mở rộng này?

Ở đây, bạn muốn người đó có thể giải thích điều đó <dl/>dành cho từ điển, liên kết một khóa <dt/>, với một hoặc một vài giá trị , <dd/>. Mặc dù việc sử dụng chính của thẻ này hoàn toàn liên quan đến ngữ nghĩa, nhưng trong thực tế, nó được sử dụng rộng rãi để thay thế các bảng, một ví dụ điển hình là PHPBB3. Đây là một điều tốt khi các bảng làm chậm việc hiển thị trang, nhưng nó phải được sử dụng một cách thận trọng: không chỉ các bảng vẫn phù hợp trong nhiều trường hợp để mô tả dữ liệu tốt hơn, mà còn có thể có các phương tiện khác, như thông thường danh sách, để mô tả nội dung mà không sử dụng <dl/>.

Sự khác biệt giữa bố trí cố định và chất lỏng là gì? Những ưu và nhược điểm của mỗi là gì?

Bố cục cố định có chiều rộng được xác định trước của các yếu tố. Các yếu tố của một bố cục chất lỏng phụ thuộc vào chiều rộng của trang.

Bố cục cố định giúp thiết kế trang dễ dàng hơn, đặc biệt là khi có nhiều đồ họa toàn chiều rộng. Ngay cả khi không có đồ họa, nó vẫn dễ dàng hơn, bởi vì bạn chỉ quan tâm đến một trường hợp chính xác. Ví dụ: Lập trình viên. Là một trang web bố cục cố định, cột hiển thị các câu hỏi và câu trả lời luôn có cùng kích thước. Nếu bố cục chất lỏng sẽ được sử dụng cho cột này, điều này sẽ tạo ra một vấn đề: trên màn hình nhỏ, văn bản sẽ không thể đọc được, vì các dòng sẽ quá ngắn, trong khi trên màn hình lớn, các dòng sẽ rất lớn, vì vậy văn bản cũng sẽ không thể đọc được.

Vấn đề với bố cục cố định là nó hoạt động tốt đối với một số độ phân giải được sử dụng nhiều nhất, nhưng thất bại ít nhiều cho mọi thứ khác. Nó trở nên đặc biệt quan trọng kể từ khi áp dụng các màn hình rất lớn, rộng và việc sử dụng internet ngày càng tăng trên các thiết bị di động nhỏ.

Bố cục chất lỏng giúp với điều đó, nhưng thiết kế khó thực hiện hơn cho trang web như vậy. Trong một số tình huống về các dự án được quản lý kém, điều này có thể dẫn đến các vụ hack HTML và CSS, các trang lớn, khả năng bảo trì thấp và trong quá trình phát triển, với chi phí cao hơn và thời hạn bị bỏ lỡ.

Trên một trang có bố cục trôi chảy, làm thế nào bạn có thể tránh được tình huống một cột văn bản trở nên quá lớn để có thể đọc được?

Bạn có thể giới hạn chiều rộng của một vùng văn bản bằng cách sử dụng thuộc max-widthtính.

Bạn nghĩ gì về đoạn mã này : <p color="Red" align="Center">Text here</p>?

Đoạn mã có một lỗ hổng để trộn logic trình bày bên trong HTML. Logic trình bày phải được đặt trong CSS vì nhiều lý do:

  • Nó giúp phân tách các mối quan tâm và mã sạch, có nghĩa là bảo trì rẻ hơn sau này,
  • Nó làm cho các kiểu có thể được sử dụng lại từ trang này sang trang khác, điều này (bên ngoài mối quan tâm về khả năng bảo trì) giúp đảm bảo rằng bạn đang sử dụng cùng một kiểu trên toàn bộ trang web,
  • Nó giúp giảm băng thông, vì các tệp CSS sẽ được lưu trữ.

Sau một vài câu hỏi cơ bản như vậy, bạn có thể hỏi một số câu hỏi khó hơn:

Làm thế nào để bạn tránh trùng lặp màu hoặc phông chữ trong CSS, khi những màu hoặc phông chữ đó được áp dụng cho nhiều yếu tố không thể nhắm mục tiêu bởi một bộ chọn? Có những hạn chế?

Bạn làm điều đó bằng cách sử dụng các bộ tiền xử lý CSS, như Sass hoặc LESS. Chúng cho phép xác định màu sắc, phông chữ và các phần khác của kiểu bên trong các biến mà bạn có thể sử dụng sau này trong kiểu của mình.

Hạn chế của bộ tiền xử lý CSS là:

  • Đôi khi, họ yêu cầu thay đổi quy trình phát triển và triển khai để có mã CSS cập nhật trong trình duyệt,

  • Chúng chỉ được biết đến bởi một vài nhà phát triển, điều này khiến cho một người mới tham gia hoặc duy trì dự án sau này khó khăn hơn,

  • Không có cả IDE tốt và nhanh cho Sass hoặc LESS, và sự tích hợp bên trong các IDE phổ biến nhất là khá đáng thất vọng.

Cho tôi một ví dụ về hrefgiá trị của một hình ảnh trên CDN, với điều kiện là hình ảnh này được hiển thị trên một trang web có thể được truy cập cả thông qua HTTP và HTTPS.

Vì HTTPS cũng cần mọi tài nguyên được gọi để có trên HTTPS (nếu không, cảnh báo bảo mật sẽ được hiển thị cho người dùng trong nhiều trường hợp), nên không thể chỉ định liên kết là http://cdn.example.com/image.png. Để liên kết đúng với hình ảnh, //cdn.example.com/image.pngphải được sử dụng; trình duyệt sau đó sẽ trả trước http:hoặc https:tùy thuộc vào ngữ cảnh.

Cho rằng kích thước của các trang và số lượng yêu cầu trên một trang web không thể được tối ưu hóa và nội dung không thể thay đổi cũng như không được thêm AJAX, làm thế nào để bạn tạo ấn tượng cho người dùng rằng trang web nhanh hơn? Nó liên quan gì từ quan điểm HTML?

Nếu HTTP 1.1 được sử dụng, trang có thể bị chunk . Điều này có nghĩa là các phần đầu tiên sẽ xuất hiện nhanh hơn, tạo ấn tượng rằng trang web nhanh hơn thực tế. Mã hóa chuyển khối được thực hiện trong HTTP 1.0, điều đó có nghĩa là không có gì để làm trong trường hợp này.

Để có thể phục vụ nội dung được yêu cầu từ phối cảnh HTML để sắp xếp lại các yếu tố, đặt những yếu tố quan trọng nhất lên đầu tệp (điều đó không có nghĩa là chúng sẽ phải xuất hiện ở đầu trang). Ví dụ: trên trang web thương mại điện tử, khi người dùng muốn xem chi tiết về sản phẩm, đoạn đầu tiên có thể chứa <head/>và chi tiết sản phẩm. Đoạn tiếp theo có thể chứa các yếu tố chính như logo của trang web, menu chính, bản quyền, v.v ... Cuối cùng, đoạn cuối cùng có thể chứa phần "Những người đã mua này cũng đã mua", các nhận xét và xếp hạng của sản phẩm, "Chia sẻ trên Facebook", v.v.


Cuối cùng, bạn có thể yêu cầu ứng viên thực hiện kịch bản trong thế giới thực. Nó có thể là bất cứ điều gì, như cách dễ nhất dưới đây, đối với các kịch bản phức tạp mà người đó phải đối phó với các họa tiết CSS hoặc các kỹ thuật tối ưu hóa nâng cao khác, với sự không nhất quán của trình duyệt, v.v.

Xin vui lòng, bạn có thể tạo một trang XHTML có hai vùng: vùng bên trái, với danh sách và vùng bên phải có văn bản. Hai vùng được phân cách bằng một đường thẳng đứng, kéo dài từ đầu đến cuối trang. Danh sách và văn bản khác nhau về kích thước, bạn không thể dự đoán cái nào sẽ có chiều cao lớn nhất. Bạn không thể sử dụng <table/>s.

Trên thực tế, nó khá đơn giản nhưng cho thấy nếu người đó có phản xạ nghĩ về chiều cao. Một ứng cử viên thiếu kinh nghiệm sẽ tạo ra float:leftkhu vực và border-left:solid 1px #ccc;khu vực, nhưng quên thêm đường viền vào khu vực bên trái và mở rộng nó để hai biên giới sẽ ở cùng một nơi.


5
Thật tuyệt, tôi thực sự đã học được một vài thứ :).
Radu Murzea

23
+1, Nếu người đó trả lời "Internet Explorer", hãy dừng cuộc phỏng vấn ngay lập tức.
Người đàn ông Muffin

10K lượt thích ... Tôi thích nó
Rama Rao M

20

Dưới đây là một số câu hỏi tôi sẽ hỏi về CSS:

  1. Mô hình hộp CSS. Lề, đệm, v.v ... mô hình IE so với mô hình W3C. Làm thế nào một người có thể chuyển đổi giữa hai? Lợi ích và nhược điểm của họ là gì?
  2. Định vị CSS. Điều đó có nghĩa gì đối với một phần tử là "trong dòng chảy" và "ra khỏi dòng chảy"
  3. inline-blockvà các giá trị hiển thị khác. Sự khác biệt giữa display: none;visibility: hidden; (đây là một câu hỏi hay và dễ dàng cho những người mới sử dụng CSS)
  4. inline-blockvs floatcho bố cục.
  5. Bộ chọn.
  6. Đặt lại CSS. Tại sao họ cần và những gì họ hoàn thành?
  7. Truy vấn phương tiện và thiết kế đáp ứng.
  8. Cách tổ chức kiểu dáng và cách giữ số lượng bộ chọn nhỏ. LESS, Sass và các bộ xử lý trước CSS khác. CSS hướng đối tượng.

Và một số câu hỏi về HTML:

  1. Chế độ trình duyệt và trình duyệt.
  2. Tại sao một số thẻ thích hợp hơn các thẻ khác ( ví dụ emso ivới)?
  3. Các nguyên tắc cơ bản người ta nên tuân theo để giữ cho HTML và CSS dễ quản lý và dễ bảo trì là gì?

Nói chung, tôi nhấn mạnh hơn vào CSS vì đây là lĩnh vực mà nhiều người cảm thấy khó nắm bắt và sử dụng hiệu quả. Tôi gặp rất nhiều ứng viên đặt "CSS" vào CV của họ nhưng không thể trả lời bất kỳ câu hỏi nào về nó. Hầu hết mọi người chỉ nói thẳng "Không - không, tôi biết CSS đủ tốt để đối phó với nó nhưng không đủ tốt để nói về nó."

Đôi khi, chỉ nên giao một nhiệm vụ đơn giản cho người được phỏng vấn và hoàn thành. Nói, thiết kế một trang đơn giản với bố cục và kiểu dáng khối hỗ trợ nhiều kích thước màn hình và điều chỉnh cho phù hợp. Sẽ mất khoảng một hoặc hai giờ và ứng viên sẽ giải thích những gì anh ta đang làm và tại sao.

Chúc may mắn với cuộc phỏng vấn!


+1. Câu trả lời tuyệt vời, đầy đủ hơn, ngắn hơn và được tổ chức tốt hơn so với của tôi.
Arseni Mourzenko

8

Nếu bạn tiến hành phỏng vấn trực tiếp, thì cách tốt nhất là yêu cầu nhà phát triển viết một số mã html / css.

Ví dụ (rất phổ biến trong phát triển thực tế). Yêu cầu nhà phát triển viết mã html / css của trang với:

  1. Chiều rộng chất lỏng.
  2. Tiêu đề có chiều cao 100px;
  3. Nút đăng nhập ở góc phải của tiêu đề
  4. Bảng điều khiển bên trái và bên phải với chiều rộng 100px và chiều cao 200px;
  5. Bảng điều khiển trung tâm cho văn bản bài viết.
  6. Footer, mà allways sẽ ở dưới cùng. Ngay cả khi bài viết có 1 hàng.

CẬP NHẬT: Của nguồn, yêu cầu nhà phát triển viết mã chỉ sử dụng div (không có bảng).

Nó sẽ trông giống như:

kiểm tra css / html

Nhưng trước khi phỏng vấn trực tiếp, tôi sẽ đề nghị bạn kiểm tra ứng viên trực tuyến. Bởi vì việc kiểm tra ứng viên trực tuyến dễ dàng hơn và chỉ mời phỏng vấn các nhà phát triển có kỹ năng tốt, hơn là dành thời gian của bạn cho mọi ứng viên.


1
Lưu ý rằng như là, yêu cầu kiểm tra là không đầy đủ. Trong cuộc sống thực, nhà phát triển sẽ biết liệu bố trí bảng có thể được sử dụng hay không, có position:absoluteđược phép hay không , v.v.
Arseni Mourzenko

4

Tôi đã tham gia một vài cuộc phỏng vấn của nhà thiết kế web và những gì chúng tôi đã làm là in ra một bố cục Blog trông rất đơn giản trên giấy, và sau đó yêu cầu ứng viên chỉ ghi một số HTML và / hoặc CSS trên trang hơn 10 phút hoặc lâu hơn để đưa ra cho chúng tôi một ý tưởng cơ bản về cách họ mã hóa nó. Điều này cho chúng tôi biết nếu ai đó THỰC SỰ biết CSS hay không. Chúng tôi chỉ tìm kiếm những thứ cơ bản như phao so với bàn, hoặc bất cứ thứ gì, và chúng tôi đã giải thích rằng nó không phải hoàn hảo bằng mọi cách.

Hàng tấn người đã tuyên bố nhiều năm kinh nghiệm với CSS, nhưng khi được nhấn để viết nó ra, họ đã viết bằng những phỏng đoán hoang dã như " layout: floating; direction: up;" hoặc những thứ khác như vậy. Hơn 1 "CSS Ninja" thậm chí còn không hiểu đúng cú pháp, đó là " div(margin=5)". Điều đó rất mở mắt đối với tôi, để xem có bao nhiêu người chỉ thẳng thắn nói dối trong các cuộc phỏng vấn. Và dường như dễ nói dối về CSS hơn là viết mã thẳng. Bạn không thể biết một điều gì về CSS, nhưng hãy làm một số việc và có thể đưa ra thuật ngữ thích hợp xung quanh khá nhanh. Bạn thực sự không thể làm điều đó một cách hiệu quả với các khái niệm cấp cao hơn như OOP chẳng hạn.


2

Có một bài kiểm tra trực tuyến trong đó bạn phải liệt kê các Thẻ HTML hoặc Thuộc tính CSS trong 5 phút.

Mặc dù đây không phải là một bài kiểm tra đầy đủ, nhưng điều này có thể cho bạn biết nếu ứng viên đủ quen thuộc với HTML / CSS.

Về câu hỏi, bạn có thể thực hiện một bài kiểm tra với mã mẫu và yêu cầu anh ta phát hiện lỗi cú pháp / cấu trúc.

Đối với kịch bản thực tế, tất cả phụ thuộc vào những gì ứng viên sẽ làm việc trong công ty của bạn. Nếu bạn chỉ muốn một dev front end, bạn có thể yêu cầu thiết kế trang web theo một chủ đề ngẫu nhiên.


1
Đó là khá không liên quan, và dễ dàng chơi game. Bất kỳ kẻ ngốc nào cũng có thể học những danh sách đó bằng trái tim trong một vài ngày và át bài kiểm tra.
tdammers

Như tôi đã nói nó không đầy đủ, nhưng nhận xét của bạn có thể áp dụng cho bất kỳ bài kiểm tra nào, miễn là ứng viên biết trước bài kiểm tra đó.
XGouchet

đánh lừa * :-))
Cracker

Những bài kiểm tra đó thật kinh khủng> Bạn có thể đập bàn phím
Jan Doggen

1
Tôi phải nói rằng, đây không phải là một thử nghiệm nhiều thông tin ... Tôi đã lập trình HTML / CSS / JS trong nhiều năm và tôi không thể đặt tên cho mỗi thẻ. Danh sách các thẻ tôi chưa sử dụng trong nhiều năm dài hơn danh sách tôi có!
Rob Gibbons

2

Một loại kiểm tra áp dụng cho ngôn ngữ lập trình và ngôn ngữ đánh dấu là đánh giá mã. Tạo một mẫu nhỏ (20 hoặc 30 dòng) với hỗn hợp lỗi cú pháp, lỗi logic, trường hợp góc, kiểu được cho là xấu ... Sau đó yêu cầu ứng viên xác định bất cứ điều gì khiến họ nghi ngờ.

Điều quan trọng là sử dụng loại bài kiểm tra này một cách chính xác: như với bất kỳ câu hỏi phỏng vấn nào, cách ứng viên tiếp cận nhiệm vụ là quan trọng, và không chỉ là kết quả.

Tôi sẽ không đăng bài kiểm tra của mình, nhưng một số gợi ý về cách áp dụng điều này cho CSS:

  • Lỗi cú pháp: bỏ lỡ một số dấu chấm phẩy. Là một phần thưởng, bạn có thể bỏ lỡ một số tùy chọn (phong cách có thể tranh cãi) và xem liệu các ứng cử viên nhận xét.
  • Lỗi logic: đặt thuộc tính tiền tố sau thuộc tính không có tiền tố. Điều này cũng kiểm tra sự quen thuộc với CSS3 và có thể gây ra một cuộc thảo luận về cách thức phát triển tiêu chuẩn.
  • Các trường hợp góc: ví dụ: lề có 3 giá trị - bạn sẽ ngạc nhiên khi có nhiều người không biết rằng điều đó là có thể. Nếu ứng viên không bình luận, bạn có thể hỏi cách giải thích để kiểm tra xem họ có bỏ qua kiến ​​thức hơn là không biết gì không.
  • Một trường hợp góc khác: thực hiện hai hoặc ba lỗi IE7 yêu thích của bạn. Điều này sẽ phân biệt những người có vết sẹo chiến đấu (những người nên phát hiện ra ít nhất một trong số họ) với người thiếu kinh nghiệm hoặc chỉ có Webkit.
  • Phong cách: đặc thù quá mức, thiếu empx, v.v ... Một người nào đó đã nghiên cứu cú pháp cho cuộc phỏng vấn có lẽ sẽ không nắm bắt được nhiều trong số này.

0

Từ kinh nghiệm cá nhân, làm việc với các nhà phát triển khác, tôi nghĩ rằng các câu hỏi về HTML & CSS sẽ không loại bỏ những người biết họ đang nói gì về những người biết họ đang làm gì.

Tôi muốn giới thiệu một thử nghiệm giả / nguyên mẫu dựa trên trải nghiệm thực tế về nhu cầu của công ty bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.