A ver, creo que estais todos algo confundidos...
En la carrera, si es que tus profesores son competentes, te habran enseñado que los paradigmas y los lenguajes deben de usarse dependiendo de el objetivo que tengamos. Además los paradigmas no son características en sí de los lenguajes.
Me explico. En el caso de que querramos desarrollar una aplicación destinada, por ejemplo, a un videojuego, a un simulador o a un programa con bastante interacción con el usuario, lo mejor es usar el paradigma orientado a objetos. ¿Porqué? Pues básicamente porque nos será más facil de desarrollar, quedara un código mucho más legible y ordenado, pudiendo aplicar todo el ciclo del software de una manera correcta, y será mucho más MANTENIBLE.
En cambio, si por ejemplo necesitamos utilizar una aplicación multihilo, lo más probable es que usemos un lenguaje que haga uso del paradigma Funcional, ya que al usar la transparencia referencial no habrá efectos colaterales y convertiremos la concurrencia en paralelismo, evitando condiciones de carrera.
Esto es así, como ingeniero te corresponde saber en que situación debemos de usar un lenguaje(por sus características, como tipado, nivel de abstracción, si es compilado o interpretado...) y los paradigmas que este maneja.
Así que no se que cojones te han dicho en la carrera, pero las cosas son así. Otra cosa es que estudies más el paradigma orientado a objetos porque actualmente sea el que más se usa y el que más salida laboral represente.
Un saludo.
AÑADO: No asocies clase con POO. Objeto es lo que esta asociado para POO. Clase es la manera que tiene Java, C#, y otros lenguajes de definir las propiedades de los objetos, pero hay otros lenguajes que no usan clases, si no otras cosas, para definirlos, como Python.