Il lavoro svolto da karan (Karan Goel) e pubblicato su un repository GitHub è di notevole fattura. Si tratta infatti di una raccolta, divisa per ambiente di sviluppo e per tipologia di task, che racchiude svariate problematiche comuni che possono presentarsi agli sviluppatori, Web e non solo.
L'opera è sostanzialmente divisa in due parti: una riguardante i problemi e l'altra relativa alle possibili soluzioni. Sono presenti diverse sezioni su numeri, file, classi, database, grafici e, naturalmente, Web.
Ad esempio, per gli sviluppatori che si occupano di operazioni matematiche, è possibile imbattersi in task che richiedono algoritmi con cui risolvere le seguenti problematiche:
- lavorare con la sequenza di Fibonacci: creare un programma che genera la sequenza di Fibonacci fino al numero digitato in entrata.
- Numeri primi: dato un numero in entrata, scrivere un programma che trova tutti i fattori primi e li mostra, se presenti.
- Trova il numero primo successivo: scrivere un programma che trova i numeri primi in sequenza fino a quando l'utente non decide di interromperla.
o per operare con testi e stringhe:
- invertire una stringa: scrivere un programma che, data una stringa, la stampi invertita (es "ciao" diventa "oaic").
- Calcolo di vocali: scrivere un programma che, data una stringa, calcoli il numero di vocali presenti. Per aggiungere una leggera complessità possiamo anche richiedere il numero di occorrenze di ciascuna vocale.
Nella sezione dedicata al Web vengono presentati compiti di varia natura e complessità differenti, tra cui ad esempio:
- Page scraper: creare un'applicazione che si connetta ad un sito Web e ne "risucchi" le risorse, come links ed immagini, salvandole in una lista esterna. Opzionalmente: produrre un indice user-friendly che non ammetta duplicati.
- Weather News: creare un'applicazione che, dato in entrata un codice postale/zip code, fornisca informazioni sul clima/meteo corrente. Opzionalmente dovrebbe essere possibile rilevare automaticamente l'informazione a seconda della posizione dell'utente corrente.
- Custom CMS: realizzare un Content Management System che permetta di loggarsi, scrivere e modificare articoli. Opzionalmente si dovrebbe permettere l'integrazione di estensioni e plug-in.
- Custom Captcha: creare un proprio sistema di Captcha-making, che permetta, tramite un apposito algoritmo, di stabilire se l'utente è umano o un bot.
Via karan