План обучения:

  1. Знакомство с Java: вывод на экран, типы String и int
  2. Знакомство с Java: переменные, методы, классы
  3. Первая программа: ввод с клавиатуры, работа в IDE
  4. Знакомство с ветвлениями и циклами
  5. Знакомство с классами: написание своих классов, конструкторы
  6. Знакомство с объектами: написание своих объектов, время жизни, статические переменные
  7. Массивы и списки: Array, ArrayList, знакомство с Generics
  8. Коллекции: LinkedList, HashSet, HashMap. Date - дата.
  9. Знакомство с исключениями: try, catch, throws, multy-catch.
  10. Приведение примитивных типов: расширение и сужение.
  11. Основы ООП: основные принципы, наследование, инкапсуляция.
  12. Основы ООП: перегрузка, полиморфизм, абстракция, интерфейсы.
  13. Интерфейсы: сравнение с абстрактным классом, множественное наследование.
  14. Приведение типов, instanceof. Большая задача на интерфейсы.
  15. Перегрузка методов, особенность вызова конструкторов
  16. Знакомство с нитями: Thread, Runnable, start, join, interrupt, sleep
  17. Знакомство с нитями: synchronized, volatile, yield
  18. Знакомство с потоками: InputStream/OutputStream, FileInputStream, FileOutputStream
  19. Знакомство с потоками: Reader/Writer, FileReader/FileWriter
  20. Сериализация
  21. Устройство объекта Object: equals, hashCode, clone, wait, notify, toString(),...
  22. String: mutable, immutable, format, StringTokenizer, StringBuilder, StringBuffer
  23. Внутренние классы, примеры: Map.Entry
  24. Внутренние классы, особенности реализации
  25. Создание и остановка нитей: start, interrupt, sleep, yield.
  26. Совместный доступ к монопольным данным: synchronized, volatile
  27. DeadLock. Wait, notify, notifyAll
  28. ThreadGroup, ThreadLocal, Executor, ExecutorService, Callable. Опыт работы с Jsoup
  29. Autoboxing, особенности реализации
  30. Операторы: числовые, логические и бинарные. Опыт работы с Swing
  31. Работа с файлами и архивами
  32. RMI и динамический прокси. Опыт работы с Swing
  33. JSON, JavaScript. Опыт работы с Guava, Apache Commons Collections, JUnit
  34. Рекурсия. Сборка мусора и типы ссылок в Java. Логгирование
  35. Системы контроля версий: Git и SVN. Generics
  36. Основные паттерны для создания веб приложений. Углубленное изучение коллекций
  37. Паттерны проектирования. Утилитные классы Arrays. Collections
  38. Методологии разработки. Аннотации в Java. Иерархия исключений
  39. Создаем первое веб приложение. Работа с Tomcat и Idea
  40. URI, URL. REST сервисы. Создаем свое клиент-серверное приложение.