Schritt 3:
Wird nichtmehr weiter ausgeführt, da die While-Schleife hier bereits beendet worden ist.
Soweit ich dich verstanden habe soll dem aber nicht der Fall sein.
Es würde nämlich sonst nur bis zu dem ersten Vorkommen eines Skills mit einer ID < 25 gesucht werden und danach abgebrochen werden ohne Acht darauf zu geben wie viele weitere Skills noch kommen würden und welche ID diese haben.
Tatsächlich müsste dein Code an der Stelle wie folgt aussehen:
Um alle Skills mit den ID's < 25 heraus zu filtern.
Alternativ könntest du auch zuerst @skills.sort! ausführen und danach iterieren bis du eine ID >= 25 gefunden hast.
Außerdem sollte der Code
Soweit ich deine Absicht damit richtig verstanden habe vielleicht lieber folgendermaßen geschrieben werden:
Es ist definitiv leichter verständlich, ich nehme an auch effektiver von der Performance her aber das ist nicht empirisch von mir überprüft worden sondern lediglich eine Vermutung.