01.02.2014, 00:00 Uhr

Siebenmal Kniffelspass für Entwickler

Sie sind Entwickler und lieben Rätsel? Dann sollten diese Websites etwa für Sie sein.
Rätsel lösen zu wollen, liegt in der Natur des Menschen. Dazu zählen beispielsweise ein Puzzle zu legen oder eine Rechenfrage zu beantworten. Kniffeln können Sie auch in der Softwareentwicklung. Gemeint ist jetzt nicht, sich das Hirn zu zermartern, wie denn nun mal diese blöde Klasse für die asynchrone Taskverteilung hiess. Nein. Es sind so kleine Aufgaben wie die Übungs-Katas, die meist für viel Spass sorgen.

Cyberdojo

Sie haben mal fünf Minuten Zeit und wollen sich ein bisschen die Zeit mit einem Rätsel für Entwickler vertreiben? Dann dürfte Cyberdojo das richtige sein. Hier finden sie jede Menge der klassischen Katas wie Fizzbuzz, Harry Potter, Tennis, Roman Numerals und viele mehr. Auch an Sprachen wird nicht geknausert. Selbstverständlich lassen sich die Katas in C# lösen. Aber es stehen auch Python, Perl, PHP, Java, Groovy, Clojure, JavaScript, CoffeeScript, Erlang, Go oder Haskell als Trainingssprachen zur Verfügung.

Wer an einem Dojo teilnehmen will, sucht zuerst die Sprache und die Kata aus und erhält dann von Cyberdojo eine practice id. Über diese id kann er jederzeit eine unterbrochene Kata wiederaufnehmen oder kann seinen Code anderen zugänglich machen. Ein Einsatz als Werkzeug, um Bewerber zu testen, ist denkbar. Siehe auch http://www.dotnetpro.de/dotnetpronews5184.aspx
Pex4Fun

Unter Pex4Fun gilt es, C#-, Visual-Basic- oder F#-Code zu finden, der bestimmte Testfälle erfüllt. Den Rahmen mit Klasse und Methodenrumpf gibt Pex4Fun vor. Ein Teilnehmer kann dann erst einmal auf "Ask Pex" klicken. Pex compiliert den Code und führt ihn aus. Der Teilnehmer erhält daraufhin eine Tabelle mit wenigen Testläufen, die die eingegebenen Parameter den Ergebnissen gegenüberstellen. Auf Basis dieser Ergebnisse kann man sich dann weiterhangeln und wie beim Spiel Mastermind Stück für Stück dem tatsächlichen Code näher kommen.
Hier eine Beispiellösung einer Aufgabe. So einfach kann die Lösung einer Aufgabe aussehen - aber draufkommen muss man.
using System;
public class Program {
  // Can you fill the puzzle method to match the secret arithmetic operation?
  public static int Puzzle(int x) {
    return x + 7;
  }
}

Kleine Aufgaben gibt es im Hackerboard

Beim Hackerboard handelt es sich um ein Forum, in das Entwickler Aufgaben einstellen können. Diese werden dann dort auch diskutiert und auch gelöst. Beispiele für Aufgaben sind Primzahlen berechnen, Tic-Tac-Toe-Spiel, Minesweeper oder Syntaxüberprüfung. Wer gern zwischendurch mal eine kleine Aufgabe löst, sollte sich das Hackerboard auf jeden Fall ansehen.

Programmieraufgaben aus der Schweiz

"Aufgaben für den Informatikunterricht" lautet der Untertitel für diese Site. Dort finden sich ähnlich wie im Hackerboard kleine Aufgaben wie Buchstabensalat, Uhrzeit in Textform oder BackTracking. Auch Optimierungsaufgaben wie eine besondere Form des Traveling Salesman oder eine harten Nuss mit dem netten Titel "Anna lernt lesen" sind im Repertoire. Lösung der Aufgaben können direkt in die Website eingestellt werden. Sehr schön gemachte Seite.

Kaggle

Einige Stufen weiter oben ist Kaggle angesiedelt: Hier geht es um schwere Probleme, mit deren Lösung sich aber auch echtes Geld verdienen lässt. So waren zur Weihnachtszeit in einer Aufgabe beispielsweise 10000 Dollar als Preisgeld ausgesetzt. Was sollte man dafür tun? Es galt dem Weihnachtsmann beim Packen seines Schlittens zu helfen. In den sollten maximal viele Geschenke passen. Da diese aber alle unterschiedliche Länge, Breite und Höhe haben, hat die Aufgabe ein bisschen etwas von Tetris. Auf Kaggle findet sich eine genaue Beschreibung zu solchen Problemen und Beispieldaten. Wer eine richtige Lösung einschickt, klettert im Ranking der Website nach oben. Die beste Lösung erhält dann auch das Preisgeld.

DVLUP

Noch ein bisschen anders ist die Situation beim Programm DVLUP von Nokia gelagert. Hier geht es darum, Herausforderungen anzunehmen und zu lösen. Dafür erhält man Punkte, die dann in Belohnungen umgetauscht werden können. Letztere gehen von Amazon-Gutscheinen bis hin zu Handys von Nokia. Die Aufgaben unterscheiden sich allerdings von denen der anderen Sites. Bei DVLUP ist meist richtige Produktentwicklung oder Produktverbesserung gefragt. Beispiel: Schreiben Sie ein Update für Ihre App. Oder: Schreiben Sie eine neue App mit dem Nokia Imaging SDK. Die Ausrichtung geht klar in Richtung der Nokia-Produkte.

dotnetpro.contest

Der darf nicht fehlen: unser eigener Wettbewerb. Alle drei Monate stellt die Redaktion eine Aufgabe. Wer mitmacht, programmiert das geforderte Modul, schickt es ein und hofft, dass es gut genug ist, um den ersten, zweiten oder dritten Platz zu belegen. Denn mit diesen Plätzen sind Gewinne verbunden, die von einer Vollversion ReSharper über Nokia Handies bis hin zu Büchern reichen. In den Ausgaben 1, 4, 7 und 10 werden die Aufgaben gestellt, drei Monate später die Auswertung veröffentlicht. (ph/.np)



Das könnte Sie auch interessieren