Il linguaggio con cui iniziare... dipende molto da ciò che si vuole fare con il linguaggio che si vuole imparare!
In un certo senso, prendendo spunto da come si studia ad Ingegneria informatica (dunque seguendo un "metodo rigoroso" per imparare a programmare), ti potrei dire di partire da un linguaggio di basso livello (con scarsa "astrazione" del codice, dunque più vicino al linguaggio macchina interpretato direttamente dal processore) come l'Assembly o il C, ma questi linguaggi a mio parere sono in un certo senso "inutili" se si vuole partire subito a programmare qualcosa di davvero utile, in quanto si perdono molte righe di codice anche per le operazioni più semplici.
Altrimenti parti già con linguaggi di livello più alto, con astrazione maggiore (che ti permettono di fare di più, con meno linee di codice), come Il C++, il Phyton oppure Java o C# (sebbene con questi 2 sei legato, col primo alla JVM per l'esecuzione delle applicazioni ed il secondo al .NET Framework di Microsoft, sebbene anche quest'ultimo sta per diventare multipiattaforma).