C ist an sich nicht sehr schwer zu lernen, allerdings nimmt dir die Sprache nichts ab, Du musst alles "zu Fuß" machen.
Java nimmt dir z.B. die Speicherverwaltung vollständig ab, den Luxus hast Du mit C nicht, Du musst also sehr viel mehr aufpassen, was Du mit deinen Daten machst und entsprechend aufräumen.
Auch hast Du keine Objektorientierung, Du musst also sehr viel mehr Aufwand betreiben, um dein Programm gut zu strukturieren.
Und noch vieles anderes, wie z.B. Strings, die eine Vereinfachung in Java sind. C hat gar keine Strings (nicht direkt zumindest), stattdessen musst Du mit char-Pointern und Längen arbeiten, oder Du nutzt externe Bibliotheken, die das bereits tun.
C ist vergleichsweise "klein", die Sprache bietet nicht sehr viel, aber das, was sie bietet, kann sehr feingranular genutzt werden, sodass man am Ende dann doch extrem viel damit machen und extrem gut optimieren und Hardware steuern kann. Diesen Vorteil erkrauft man sich aber mit deutlich größerer Komplexität in der Verwendung, auch wenn die Sprache an sich recht einfach ist.
Programmiersprachen wie Java oder C# wurden dagegen dafür entwickelt, mit möglichst wenig Aufwand möglichst komplexe Projekte zu ermöglichen, während die Sprache (bzw. die Runtime) möglichst viele häufige und durchaus gefährliche Probleme verhindert. Das erkaufen sich diese Sprachen aber mit schlechterer Gesamt-Performance, schlechterer Detail-Optimierbarkeit und teils deutlich größerem Sprach-Umfang und größerer Einstiegshürde.
Für den Einstieg wirst Du aber vermutlich gut voran kommen, der Rest kommt dann mit der Zeit. Die Komplexität kommt erst dann zum Tragen, wenn man auch komplexere Projekte umsetzen will.
Und wird man durch das Studium besser programmieren lernen?
Ja und nein.
C zu lernen schaden auf keinen Fall, selbst wenn Du es am Ende nie wieder benutzt. Es kann enorm hilfreich sein, zu verstehen, wie alles im Kern funktioniert, denn auch Sprachen wie Java oder C# fallen am Ende auf C zurück. Erfahrung mit C hilft, durch die teils komplexe Abstraktion von Java oder C# "hindurch" zu schauen, um Konzepte oder Probleme besser zu zu verstehen. Hast Du dieses Wissen nicht, musst Du es dir vom anderen Ende mühsam aufbauen, aber viele tun das nicht und denen fehlt dieses Wissen dann in subtilen Situationen. Das kann der entscheidende Unterschied zwischen einem "nur" guten Entwickler und einem Top-Entwickler sein, den die Kollegen fragen, wenn sie nicht mehr weiter kommen.
Allerdings hilft dir das Studium an sich nicht, besser zu programmieren. Ein Studium ist größtenteils Theorie, ggf. lernt man ein Stück weit eine Programmiersprache, der wirklich wirklich wirklich entscheidende Faktor ist Erfahrung und die bekommst Du nicht in Vorlesungen, sondern nur in realen Projekten, am besten auch in einer produktiv arbeitenden Firma mit realen Problemen.
Eine Fachhochschule hat da ggf. andere Prioritäten, aber auch die können ein reales Projekt nicht viel Erfahrung nicht ersetzen. Wenn Du nicht neben dem Studium arbeiten kannst, dann solltest Du dir zumindest private Projekte überlegen und umsetzen und sobald Du fertig bist, nimmst Du dir eben dieses Projekt nochmal vor und überlegst, wie Du es ausbauen/verbessern oder übersichtlicher machen kannst. Gerade am Anfang wirst Du dabei viele fundamentale Fehler machen, die dir dann später auf die Füße fallen - eben diese Erfahrung ist sehr wichtig.
Du musst dich allerdings davon verabschieden, dass Du nach dem Studium ausgelernt bist - dem ist nicht so. Es dauert auch danach noch Jahre, bis Du ein ernstzunehmender Softwareentwickler bist, den eine Firma auch alleine an ein komplexes Projekt lassen kann, ggf. sogar mit Verantwortung. Auch das ist normal, wichtig ist nur, dass Du dich nicht davon entmutigen lässt - und hoffentlich einen Arbeitgeber findest, der das auch versteht ;)