Bir adayın görüşme sırasında Html / CSS hakkındaki bilgilerini nasıl değerlendirebilirim? [kapalı]


44

Bir Html / CSS işine giren kişilerin yeteneklerini değerlendirmek için bazı iyi görüşme soruları belirlemeye çalışıyorum, ancak bu konu oldukça geniş ve birinin HTML'sini doğru bir şekilde değerlendirmek için ne tür sorular sorabileceğimden emin değilim. CSS bilgisi

Görüşme sırasında bir adayın Html / CSS yeteneklerini değerlendirmek için ne tür sorular sorabilirim?

İdeal olarak birkaç soru sormak ve sonra onlara mücadele edebilmeleri için gerçek bir yaşam senaryosu vermek istiyorum.


2
Bana çalışmalarını gösterebilir misin? Bu iyi olurdu.
JeffO

Gerçekten de herkes iyi örnekler için kodu evde kopyalayıp yapıştırabilir. Soruları yerinde yanıtlamalarını sağlamak, kendileri için ne bildiklerini bilmenizi sağlar.
webnoob

1
@Rachel - Düzenleme ve yeniden açma için çok teşekkürler. Bu site için iyi bir kaynak olduğunu düşünüyorum.
webnoob

10
Ne soracağınızı bilmiyorsanız , adayın becerilerini doğrulamak için bazı çevrimiçi sınavları kullanın (örn. Http://tests4geeks.com/test/html-css ). Bundan sonra ondan bazı html sayfasının kodunu yazmasını isteyebilirsiniz. Örneğin altta birçok alt öğenin ve alt bilginin bulunduğu üst menüye sahip sayfa.
Joseph,

Onlara IE hakkında ne düşündüklerini sor. Önemsiz olmayan bir şey yapmak zorunda olan herkes onun bir PITA olduğunu bilir. ;) Cidden onlara hangi tarayıcı hatalarıyla karşılaştıklarını sorabilirsiniz.
Ben Thurley

Yanıtlar:


87

HTML ve CSS'nin birkaç nedenden dolayı görüşmesi zor:

  1. Örneğin bir programlama diliyle karşılaştırıldığında çok temeldirler,

  2. İşin içeriğine çok bağlılar. Örnekler:

    • Google ölçeğini, oldukça hızlı ve optimize edilmiş web sitelerini oluşturursanız, iş için röportaj yaptığınız kişiler, CSS spritelarının ne olduğunu görmezden gelemezler.

    • XHTML W3C geçerli web siteleri oluşturursanız, adayların XHTML 1.0 ve XHTML 1.1 arasındaki farkı bilmesini veya zorunlu niteliklerin neler olduğunu <img/>vb.

    • Hack'lerle dolu korkunç web siteleri oluşturursanız, röportaj yaptığınız kişilere bu tür hack'leri nasıl yapacakları, farklı tarayıcılar için farklı CSS'leri nasıl sundukları vs.

    • vb.

  3. Saf bir HTML ve CSS işi ise, kişi bir yandan tasarımcılarla, diğer yandan da geliştiricilerle çalışmak zorunda kalacaktır. HTML ve CSS'yi bilmeleri gerekir, ancak çok daha değerli olan, bu insanlarla etkileşimde bulunabilmeleri ve tasarımcıların ihtiyaçlarını, geliştiricilerin gereksinimlerini ve HTML ile CSS'nin sınırlarını anlamalarını sağlamaktır.

    Örneğin, HTML’lerini JavaScript geliştiricinin daha sonra etkileşim eklemesi kolay olacak şekilde nasıl yapılandırılacağını bilmeleri gerekir.


Bazı temel sorularla başlamak isteyebilirsiniz:

Favori tarayıcın hangisi?

Kişi "Internet Explorer" ı yanıtlarsa hemen röportajı durdurun: böyle birine ihtiyacınız yok.

Hayır şaka yapıyorum. Cevap önemli değil. Bunun yerine, aşağıdakileri sorabilirsiniz:

Bana en sevdiğiniz tarayıcıda kullandığınız hata ayıklama araçlarından bahsedin.

Chrome'u kullanarak birincil olarak, Geliştirici Araçları ile günlük olarak çalışıyorum. Bu araçlar bana:

  • Sayfadan gelen istekleri görüntüleyin,

  • Bir sayfanın ve ilgili kaynakların, özellikle de DNS arama, bekleme ve alma sürelerinin yüklenmesi için gereken süreyi inceleyin,

  • Önbellek göstergesinin yanı sıra gönderilen öğelerin başlıklarını inceleyin,

  • DOM’i görüntüleyin ve CSS seçicilerin nasıl uygulandığını inceleyin,

Ayrıca yüksek ölçeklenebilirlik gerektiren bir web sitesinin optimizasyonu için kontrol listesi olarak hizmet veren YSlow'u kullanıyorum. YSlow ayrıca sunucunun doğru yapılandırılıp yapılandırılmadığını belirleme konusunda iyi bir araçtır (doğru başlıkların gönderilmesi vb.).

Firefox'ta, Chrome'daki Geliştirici Araçları'na çok benzeyen araç olan Firebug kullanıyorum. Geliştirici araçları ayrıca Internet Explorer’ın yeni sürümlerinde de bulunmaktadır ve ayrıca IE7’den IE10’la uyumluluk görünümlerine geçmemi sağlıyor. Bu son özellik çok faydalıdır, çünkü onsuz birkaç sanal makineyi sadece eski testler için kurmam ya da Litmus gibi ücretli hizmetleri kullanmam için zorlanacağım .

Lütfen, <dl/>etiketin ne hakkında olduğunu açıklayın. Bu etiket için kullanım amacı neydi? Uygulamada nasıl kullanılır? Bu genişletilmiş kullanım hakkında ne düşünüyorsunuz?

Burada, kişinin <dl/>sözlükler için, bir anahtarı, <dt/>bir veya birkaç değerle ilişkilendirmesini açıklayabilmesini istersiniz <dd/>. Bu etiketin birincil kullanımı tamamen anlambilim ile ilgili olsa da, pratikte tabloları değiştirmek için yaygın olarak kullanılıyordu, buna iyi bir örnek PHPBB3 idi. Bu, tablolar sayfanın oluşturulmasını yavaşlatırken iyi bir şeydir, ancak dikkatli kullanılmalıdır: Verileri daha iyi tanımlamak için birçok durumda yalnızca tablolar hala uygun değildir, aynı zamanda normal gibi başka araçlar da olabilir. içeriği kullanmadan tanımlamak için listeler <dl/>.

Sabit ve akışkan yerleşimleri arasındaki fark nedir? Her birinin avantajları ve dezavantajları nelerdir?

Sabit düzen elemanların önceden tanımlanmış genişliklerine sahiptir. Sıvı düzeninin elemanları, sayfanın genişliğine bağlıdır.

Sabit düzen, özellikle çok sayıda tam genişlikli grafik olduğunda, sayfanın tasarlanmasını kolaylaştırır. Grafik olmasa bile, bu daha kolay, çünkü sadece hassas bir durumu önemsiyorsunuz. Örneğin, Programcılar.S sabit bir düzen web sitesi olduğundan, soruları ve cevapları gösteren sütun her zaman aynı boydadır. Bu sütun için bir akışkan düzeni kullanılacaksa, bu bir sorun yaratacaktır: küçük ekranlarda, metin okunamayacaktı, çünkü satırlar çok kısa olacak, büyük ekranlarda ise satırlar çok büyük olacaktı; de okunamaz olurdu.

Sabit düzen ile ilgili sorun birkaç, en çok kullanılan çözünürlüklerde iyi sonuç vermesi, fakat diğer her şey için az çok başarısız olması. Çok geniş, geniş ekran monitörlerin benimsenmesi ve internetin küçük, mobil cihazlarda kullanımının artması nedeniyle özellikle önem kazanıyor.

Akışkan yerleşimi bu konuda yardımcı olur, ancak böyle bir web sitesi için tasarım yapmak daha zordur. Kötü yönetilen projelerle ilgili bazı senaryolarda, bu HTML ve CSS saldırılarına, büyük sayfalara, düşük bakım yapılabilirliğe ve geliştirme sırasında daha yüksek maliyetlere ve kaçırılmış son teslim tarihlerine neden olabilir.

Sıvı düzenine sahip bir sayfada, bir metin sütununun okunaklı kalmak için çok büyük olduğu durumdan nasıl korunabilirsiniz?

max-widthÖzellik kullanarak bir metin bölgesinin genişliğini sınırlayabilirsiniz .

Eğer bu kod parçası hakkında ne düşünüyorsunuz: <p color="Red" align="Center">Text here</p>?

Kod parçası, HTML içindeki sunum mantığını karışma kusuruna sahiptir. Sunum mantığı birkaç nedenden dolayı CSS'ye yerleştirilmelidir:

  • Kaygıların ve temiz kodların ayrılmasına yardımcı olur, daha sonra daha ucuz bakım anlamına gelir,
  • Stilleri sayfadan sayfaya yeniden kullanılabilir kılar (bakımların dışında tutulması dışında) tüm web sitesinde aynı stilleri kullanmanıza yardımcı olur,
  • CSS dosyaları önbelleğe alınacağından bant genişliğinin azaltılmasına yardımcı olur.

Bunun gibi birkaç temel sorudan sonra, biraz daha zor sorular sorabilirsiniz:

Bu renkler veya fontlar, tek bir seçicinin hedefleyemediği birden fazla öğeye uygulandığında, CSS’deki renkleri veya fontları çoğaltmaktan nasıl kaçınıyorsunuz? Dezavantajları var mı?

Bunu, Sass veya LESS gibi CSS ön işlemcileri kullanarak yaparsınız. Renkleri, yazı tiplerini ve stilin diğer kısımlarını, stillerinizde daha sonra kullanabileceğiniz değişkenlerin içinde tanımlamaya izin verir.

CSS önişlemcilerinin sakıncaları şudur:

  • Tarayıcıda güncel CSS kodunun bulunması için bazen geliştirme ve dağıtım iş akışını değiştirmeleri gerekir.

  • Sadece birkaç geliştirici tarafından bilinir ve bu da yeni bir kişinin projeye daha sonra katılmasını veya sürdürmesini zorlaştırır.

  • Sass veya LESS için hem iyi hem de hızlı IDE yoktur ve en popüler IDE'lerin içindeki entegrasyon oldukça hayal kırıklığı yaratmaktadır.

hrefCDN'de bulunan ve bu görüntünün hem HTTP hem de HTTPS üzerinden erişilebilen bir web sitesinde gösterilmesi koşuluyla, bana bir görüntünün değerine bir örnek verin .

HTTPS, çağrılan her kaynağın HTTPS'de de bulunmasını gerektirdiğinden (aksi takdirde, birçok durumda kullanıcıya bir güvenlik uyarısı görüntülenir), bağlantıyı şu şekilde belirtmek mümkün değildir http://cdn.example.com/image.png. Resme düzgün bir şekilde bağlanmak için //cdn.example.com/image.pngkullanılmalıdır; Tarayıcı daha sonra içeriği http:ya https:da içeriğe bağlı olarak hazırlar .

Bir web sitesindeki sayfaların boyutu ve istek sayısının optimize edilemediği ve içerik değiştirilemediği veya AJAX eklenemediği göz önüne alındığında, kullanıcıya web sitesinin daha hızlı olduğu izlenimini nasıl veriyorsunuz? HTML perspektifinden neler içeriyor?

HTTP 1.1 kullanılıyorsa, sayfa tıkanmış olabilir . Bu, ilk bölümlerin daha hızlı görüneceği anlamına gelir ve web sitesinin gerçekte olduğundan daha hızlı olduğu izlenimini verir. Parçalanmış aktarım kodlaması HTTP 1.0'da imkansızdır, bu durumda yapacak bir şeyin olmadığı anlamına gelir.

Öğütülmüş içeriğe hizmet verebilmek için, öğeleri yeniden düzenlemek için HTML perspektifinden, en kritik olanları dosyanın üstüne koymak gerekir (bu, sayfanın başında görünmeleri gerektiği anlamına gelmez). Örneğin, bir e-ticaret web sitesinde, kullanıcı ürünün ayrıntılarını görmek istediğinde, ilk parça <head/>ve ürün ayrıntılarını içerebilir . Bir sonraki öbek, web sitesinin logosu, ana menü, telif hakkı vb. Gibi temel unsurları içerebilir. Son olarak, son öbek, "Bunu ayrıca satın alan kişiler" bölümünü, yorum ve puanlarını içerebilir. "Facebook'ta Paylaş" vb.


Son olarak, adaydan gerçek dünyadaki bir senaryo üzerinde çalışmasını isteyebilirsiniz. Aşağıdakilerden en kolay olanı gibi, kişinin CSS sprite veya diğer gelişmiş optimizasyon teknikleriyle, tarayıcı tutarsızlıklarıyla uğraşması gereken karmaşık senaryolar için herhangi bir şey olabilir.

Lütfen iki bölgeli bir XHTML sayfası oluşturabilir misiniz: Soldaki, bir listeli ve sağdaki, metin içeren. İki bölge, sayfanın en üstünden en altına uzanan dikey bir çizgiyle ayrılır. Liste ve metin boyutuna göre değişir, hangisinin en büyük yüksekliğe sahip olacağını tahmin edemezsiniz. <table/>S kullanamazsınız

Aslında, oldukça basit ama kişinin yükseklikler hakkında düşünmek için refleks var olup olmadığını gösterir. Deneyimsiz bir aday float:leftbölgeyi ve bölgeyi yaratacaktır border-left:solid 1px #ccc;, ancak sınırın sol bölgeye eklenmesini ve genişletilmesinin iki sınırın aynı yerde olmasını sağlayacak şekilde genişletilmesini unutacaktır.


5
Harika, gerçekten birkaç şey öğrendim :).
Radu Murzea

23
+1, Kişi "Internet Explorer" ı yanıtlarsa, görüşmeyi hemen durdurun.
Muffin Man

10K seviyor ... Bayıldım
Rama Rao M

20

İşte CSS hakkında soracağım bazı sorular:

  1. CSS kutu modeli. Kenar boşlukları, dolgu vb. IE modeli vs. W3C modeli. Biri ikisi arasında nasıl geçiş yapabilir? Avantajları ve sakıncaları nelerdir?
  2. CSS konumlandırma. Bir öğenin "akışta" ve "akış dışı" olması ne anlama gelir?
  3. inline-blockve diğer gösterge değerleri. Fark arasında display: none;ve visibility: hidden; (bu CSS yeni insanlar için iyi ve kolay bir sorudur)
  4. inline-blockfloatdüzenler için vs.
  5. Seçiciler.
  6. CSS sıfırlandı. Neden ihtiyaç duyulur ve ne başarırlar?
  7. Medya sorguları ve duyarlı tasarım.
  8. Stiller nasıl düzenlenir ve seçmen sayısının küçük tutulması. LESS, Sass ve diğer CSS ön işlemcileri. Nesneye Dayalı CSS.

Ve HTML ile ilgili bazı sorular:

  1. Doktip ve tarayıcı modları.
  2. Neden bazı etiketler diğerlerinden daha çok tercih edilir ( örneğin, emvs i)?
  3. HTML ve CSS'yi yönetilebilir ve bakımı kolay tutmak için izlenmesi gereken temel ilkeler nelerdir?

Genel olarak, birçok insanın kavramasını ve etkili bir şekilde kullanılmasını zor bulduğu alan olduğundan CSS'ye daha fazla vurgu yapıyorum. Özgeçmişlerine "CSS" koyan ancak bu konuda hiçbir soruya cevap veremeyen birçok adayla tanıştım. Çoğu insan dürüstçe "Hayır-hayır, CSS'yi başa çıkacak kadar iyi biliyorum ama bu konuda konuşacak kadar iyi değil."

Bazen sadece basit bir görev vermek ve görüşmecinin bitirmesi iyi bir fikirdir. Diyelim ki, çoklu ekran boyutlarını destekleyen ve buna göre ayar yapan düzen ve blok stiliyle basit bir sayfa tasarlayın. Bir iki saat kadar sürmeli ve aday ne yaptığını ve nedenini açıklamalı.

Röportajda iyi şanslar!


+1. Mükemmel cevap, benimkinden çok daha eksiksiz, daha kısa ve daha iyi organize edilmiş.
Arseni Mourzenko

8

Canlı röportaj yaparsanız, en iyi yol geliştiriciden bazı html / css kodları yazmasını istemektir.

Örnek (gerçek gelişimde çok yaygın). Geliştiriciden sayfanın html / css kodunu yazmasını isteyin:

  1. Sıvı genişliği
  2. 100px yüksekliğinde başlık;
  3. Başlığın sağ köşesindeki giriş butonu
  4. 100px genişliğinde ve 200px yüksekliğinde Sol ve Sağ paneller;
  5. Makale metni için orta panel.
  6. Her zaman alt kısımda olacak olan Altbilgi. Makalede 1 satır olsa bile.

UPD: Tabii ki, geliştiriciden kodu yalnızca divs kullanarak (tablo olmadan) yazmasını isteyin.

Şuna benzemelidir:

css / html testi

Ancak canlı röportajdan önce, adayları çevrimiçi olarak test etmenizi öneririm. Çünkü adayları çevrimiçi olarak test etmek ve mülakata davet etmek sadece iyi yetenekli geliştiricilerdir, zamanınızı her aday için harcamaktan daha kolaydır.


1
Test şartlarının eksik olduğunu unutmayın. Gerçek hayatta, geliştirici tablo düzeninin kullanılıp kullanılamayacağını position:absolute, izin verilip verilmeyeceğini vb.
Bilecektir

4

Birkaç web tasarımcısı röportajına oturdum ve yaptığımız şey çok basit görünümlü bir Blog düzenini kağıda yazdırmak ve adaydan sadece sayfadaki bazı HTML ve / veya CSS'leri 10 dakika boyunca not etmelerini istemek, Bize nasıl kodladıklarına dair temel bir fikir. Bu bize, birisinin CSS'yi gerçekten bilmesi veya bilmemesi halinde bize bildirir. Sadece floats vs tablo gibi temel şeyler arıyorduk, ya da her neyse, ve bunun hiçbir şekilde mükemmel olması gerekmediğini açıkladık.

Tonlarca millet, CSS ile yılların deneyimine sahip olduğunu iddia etti, ancak yazmaya layout: floating; direction: up;zorlandıklarında " " veya benzeri bir jibber gibi vahşi tahminlerle yazıyorlardı. 1'den fazla "CSS Ninja" sözdizimini doğru anlamadı, la " div(margin=5)". Bu benim için çok açıktı, görüşmelerde kaç kişinin yattığını görmek. Ve CSS hakkında yalan söylemek, kodlamadan çok daha kolay. CSS hakkında hiçbir şey bilemezsiniz, ancak biraz googling yapın ve uygun terminolojiyi oldukça hızlı bir şekilde etrafa atabilirsiniz. Örneğin, OOP gibi daha üst düzey konseptlerle gerçekten etkili bir şekilde yapamazsınız.


2

HTML Etiketlerini veya CSS Özelliklerini 5 dakika içinde listelemeniz gereken çevrimiçi bir test var .

Her ne kadar bu tam bir sınav olmasa da, adayın HTML / CSS ile yeterince aşina olup olmadığını bilmenizi sağlayabilir.

Soru hakkında, örnek kod ile bir test yapabilir ve ondan sözdizimi / yapı hatalarını tespit etmesini isteyebilirsiniz.

Gerçek hayat senaryosunda ise, adayın şirketinizde ne üzerinde çalışacağına bağlı. Sadece bir ön uç dev istiyorsanız, rastgele bir konuyla ilgili bir web sitesi tasarımı isteyebilirsiniz.


1
Bunlar oldukça alakasız ve kolay oynanabilir. Herhangi bir salak birkaç gün içinde bu listeleri ezbere öğrenebilir ve sınava asılabilir.
tdammers

Tamamen dolu olmadığını söylediğim gibi, ancak adayın testi önceden bildiği sürece yorumunuz herhangi bir sınav için geçerli olabilir.
XGouchet

kusursuz * :-))
Cracker

Bu testler korkunç> Sadece klavyeden uzaklaşabilirsiniz
Jan Doggen

1
Söylemeliyim ki, bu çok bilgilendirici bir test değil ... Yıllardır HTML / CSS / JS'yi programlıyorum ve her etiketi adlandıramıyorum. Yıllardır kullanmadığım etiketlerin listesi içinde bulunduğumdan daha uzun!
Rob Gibbons,

2

Programlama dilleri ve işaretleme dilleri için geçerli olan bir test tipi bir kod incelemesidir. Sözdizimi hatalarının, mantık hatalarının, köşe durumlarının, tartışmasız kötü stilin karışımından oluşan küçük bir örnek (20 veya 30 satır) oluşturun. Ardından adaydan, onları şüpheli yapan bir şey tanımlamasını isteyin.

Bu tür bir testi doğru kullanmak önemlidir: Herhangi bir görüşme sorusunda olduğu gibi, adayın göreve yaklaşma şekli de önemlidir, sadece sonuçlar değil.

Testimi göndermeyeceğim, ancak bunun CSS'ye nasıl uygulanacağıyla ilgili bazı ipuçları:

  • Sözdizimi hataları: bazı noktalı virgülleri özl Bonus olarak, bazı isteğe bağlı olanları kaçırabilir (tartışılabilir stil) ve adayın yorum yapıp yapmadığını görebilirsiniz.
  • Mantık hataları: öneksiz özellikten sonra öneklenmiş bir özellik koyun. Bu aynı zamanda CSS3'e aşinalık için testler yapar ve standardın nasıl geliştirildiği hakkında tartışmalara yol açabilir.
  • Köşe davaları: örneğin 3 değere sahip bir marj - kaç kişinin mümkün olduğunun farkında olmadığına şaşıracaksınız. Aday yorum yapmazsa, cehaletten ziyade bilgiden mahrum bırakıldığını kontrol etmenin nasıl yorumlandığını sorabilirsiniz.
  • Başka bir köşe davası: En sevdiğiniz iki veya üç IE7 hata egzersizi yapın. Bu, savaş izleri olanları (en az birini görmesi gerekenleri) deneyimsiz veya yalnızca Webkit'ten ayırt edecektir.
  • Stil: Aşırı özgüllük, eksik emve pxvb görüşme için sözdizimi çalışılan Biri muhtemelen bunların çoğunun yakalamak olmaz.

0

Kişisel deneyimlerimden, diğer geliştiricilerle çalışmaktan sonra, HTML ve CSS hakkındaki soruların ne hakkında konuştuğunu bilenleri, aslında ne yaptıklarını bilenleri çözemeyeceğini düşünüyorum.

Şirketinizin ihtiyaçlarının gerçekçi deneyimine dayanarak sahte bir test / prototip öneririm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.