Witam, interesują mnie roczne studia podyplomowe z programowania w Java. Interesuje mnie dokładnie, czy program który będzie na niej realizowany (poniżej zamieszczam szczegółowy opis), jest wystarczający, aby móc potem szukać pracy, czy możę na początku stażu jako programista Java. Oczywiście, domyślam się, że niektórzy odpiszą mi, że należy też na własną rękę pracować, że studia jeszcze nie robią z nikogo programisty do końca, ale chodzi mi o to, czy zakres materiału jest wystarczający (gdzie przecież nikt nie mówi, że nie zamierzam się sam w domu rozwijać w tym zakresie, trenować i ćwiczyć), czy może czegoś brakuje? Chodzi mi o taki typowy etat programisty Java, nie w Androidzie, po prostu chodzi mi o takie najczęstsze oferty pracy na tym stanowisku. Oto ten zakres:
Podstawy programowania w języku Java
Jednostki leksykalne języka Java.
Charakterystyka i zastosowanie prostych typów danych.
Tablice.
Operatory arytmetyczne i logiczne.
Rzutowania.
Instrukcje sterujące (instrukcje warunkowe, pętle).
Metody, parametry i argumenty, wywołania rekurencyjne.
Standardowe biblioteki platformy Java: obsługa i formatowanie napisów, obsługa daty i czasu, operacje matematyczne, operacje wejścia/wyjścia, lokalizacje i wersje językowe.
Platformy programistyczne
Kompilacja, budowa i uruchamianie aplikacji Java
Obsługa i wsparcie zintegrowanego środowiska programistycznego (IDE) oraz Maven.
Dokumentowanie kodu i tworzenie raportów projektowych.
Budowa własnych i wykorzystanie istniejących bibliotek - archiwa jar.
Programowanie sterowane testami, klasy i zbiory testów, typy asercji.
Efektywne programowanie w języku Java, zarządzanie i wersjonowanie kodu.
Refaktoryzacja kodu.
Logowanie zdarzeń, wersjonowanie kodu.
Programowanie obiektowe w języku Java
Klasa i jej obiekty. Konstruktor obiektu. Obiekty this i super. Obiekty i adresy (wartość null). Konwencja nazw klas i obiektów. Metoda finalize(). Klasy predefiniowane typów prostych. Metody i pola statyczne i finalne.
Dziedziczenie wraz z hierarchią klas java.lang.Object. Konstruktory, przesłanianie. Zarządzanie pamięcią (garbage collector).
Modyfikatory dostępu, adnotacje.
Metody i klasy abstrakcyjne. Polimorfizm i interfejsy.
Standardowe interfejsy: Comparable, Clonable, Serializable.
Klasy anonimowe i klasy wewnętrzne. Reflekcje (metadane).
Standardowe kolekcje List, Set, Map. Metody equals() i hashCode(). Kolekcje generyczne. Typy predefiniowane dla typów prostych (java.lang) i operacje matematyczne na liczbach (java.math).
Wzorce projektowe
Zakres zastosowania oraz cechy poszczególnych wzorców projektowych z kanonicznego katalogu wzorców projektowych.
Podstawowe struktury danych, m. in. typy wyliczeniowe oraz ziarna w języku programowania Java.
Mechanizm dynamicznego ładowania klas.
Menadżer bezpieczeństwa umożliwiający zabezpieczenie środowiska, w którym wykonywany jest skompilowany kod.
Notacja UML, przedstawienie i analiza podstawowych diagramów UML
Będę wdzięczny za odpowiedź
niezdecydowany