Bir problemi çözmek için genellikle aklımıza ilk gelen şey şudur: Kuralları yaz, mantığı kur, adım adım ilerle ve sonucu hesapla. Bu yaklaşım, bir köprü inşa ederken ya da vergi hesaplayan bir yazılım yazarken harikadır. Fakat bazı problemler vardır ki mantıkla üzerine yürüdüğünüzde size nazikçe gülümser, sonra da sonsuz olasılıklar ormanına kaçar. İşte evrimsel kodlama tam bu ormanda avlanır. Pusulası kesinlik değil, denemedir; kılıcı kanıt değil, seçilimdir.
Evrimsel algoritmaların fikri çarpıcı derecede basittir: Bir çözüm yazmak yerine, çözüm adaylarından oluşan bir nüfus yarat. Her adayı bir tür genetik tarif gibi düşün. Sonra bu adayları probleme göre test et. İyi sonuç verenleri yaşat, kötüleri ele. Yaşayanların bazı özelliklerini karıştır, araya rastgele mutasyonlar serpiştir ve yeni nesli üret. Bunu tekrar et. Tekrar. Tekrar. Binlerce, milyonlarca kez. Sonunda ortaya çıkan şey, çoğu zaman insanın doğrudan tasarlayamayacağı kadar tuhaf, kısa, kaba ama etkili bir çözümdür.