Prima di tutto non sono un genio.
Secondo, non importa conoscere il Pascal, se ti serve il C impara quello. Quello che è importante è sapere come sono fatte e quali sono le qualità delle strutture dati che ti vengono insegnate, a prescindere da come si implementano in questo o quel linguaggio. Array, matrici, liste, alberi, grafi, ecc... più conosci bene queste cose più sarai capace di risolvere i problemi per "analogia".
Una volta che ti si presenta un problema lo scomponi, individui i "numeri" che lo dominano (ad esempio il 5 per la mano di poker e poi 3 per il tris e 3 + 2 per i full...) individui gli "attori in gioco" (le carte che puoi rappresentare come coppiette di seme+valore Asso di Fiori=1F, 3 di quadri = 3Q, jack di picche=jP..)
una volta che hai tutto in tavola cominci a "simulare" la soluzione del problema così come la faresti "a mano" e cerchi di avvicinarla ad un possibile metodo per pc.
Tutto questo è fuori dal sapere questo o quel linguaggio... poi viene l'implementazione vera e propria e li ci vuole lavoro, lavoro lavoro... anche perché non puoi reinventare la ruota... alla fine per programmare "a manella" ci vuole solo pratica.
L'università non insegna una professione... non può, dovrebbe formare un individuo ad essere capace di affrontare qualsiasi problema in un certo ambito ma nel tuo caso non si tratta di un corso di programmatori, è anche per questo che non vi seguono tanto nell'insegnarvi queste cose, non è nel loro interesse. Comunque quello che vi insegnano e diciamo un 5% di quello che serve per la professione... diciamo quel 5% che tutti i professionisti conoscono.
Chip