Quando avvio un nuovo progetto, tendo a guardare il codice sorgente di altre persone che hanno implementato lo stesso progetto. Questo mi dà un'idea su come dovrebbe essere creato il progetto complessivo e il flusso di base e la logica di attuazione del programma.
Il problema con questo approccio, credo, è che non sto pensando da solo da zero, e il mio progetto finisce per essere quasi come un clone dell'altro progetto.
Attualmente sto provando a creare un motore di scacchi, e per iniziare dovrò guardare altri motori di scacchi open source. Questo mi darà un'idea di come dovrebbe funzionare un motore di scacchi e quali sono le sue diverse componenti, ma come un inconveniente, allora mi limiterò a copiare il design di qualcun altro e la loro implementazione personale.
Di fronte a un nuovo progetto che è di una complessità ragionevole, come iniziano le persone?