Курс по Core Java към Хак България
Хак България организира безплатен курс по Core Java, който ще започне в седмицата, започваща на 19 май.
Подробности от сайта на организаторите:
Курсът по Core Java е безплатен!
Точно така. Инвестицията от ваша страна ще се изразява във време, а не в пари. По този начин може да филтрираме сериозните хора и да гарантираме крайното качество на обучението.
За курсът по Core Java ще има 40 свободни места, разпределени в две групи. За да изберем хората, които ще го посещават, ще направим сериозна филтрация на две нива:
- От всички кандидатствали ще направим съкратен списък с тези, които ще интервюираме.
- С всички от съкратения списък, ще се чуем по Skype, за да преценим дали ще продължат към курса!
Времеви рамки на курса и място на провеждане
- Курсът ще започне в седмицата на 19ти май с продължителност от 2 месеца и половина
- Занятията ще бъдат 3 пъти в седмицата, по 4 часа
- Ще има обедна и вечерна група
- Залата, където ще се състоят занятията, се намира в кв. Младост 1A, на 37 секунди от спирката на метростанция “Младост 3”
Курсът не е за ниво начинаещи
Няма да ви лъжем. Ако все още не може да програмирате или не се справяте достатъчно добре, този курс не е за вас.
Ще бъде интензивен и ще изисква знания по следните неща:
- Основи на програмирането - какво е for, if, булев израз, функция, обект и т.н
- Основни знания в структурите от данни - какво е списък, хеш-таблица, опашка и т.н
- Основни знания в алгоритмите - що е то алгоритъм, как да обходите масив с два for-цикъла и как да структурирате решение на даден проблем
Още информация на сайта на Hack Bulgaria
КОГА: 19.05.2014
МЯСТО: Младост 1А (до метро станция Младост 3)
Уводен материал и нулева седмица.
- Git quick recap - инициализиране и теглене от репозитори със задачи.
- Виртуална машина - overview, java и class файлове, jar файлове, байткод.
- Параметри на виртуалната машина. Main метод(и).
- Hello world. Компилиране през терминал. Изпълнение без IDE, предаване на параметри към main метод. Терминален hello world, обяснение за процеса на компилация. System.out, System.in, System.err. Печатане в конзолата.
Въведение в Eclipse. Въведение в Java.
- Концепция на IDE. Eclipse - структура (изгледи, перспективи, плъгини, параметри).
- Създаване на проект, създаване на пакети и класове, изпълнение на hello world чрез IDE. Подаване на параметри чрез Eclipse.
- Вградени типове данни в Java. Константи, променливи, основни оператори, изрази, конструкции if/else, for/while/do-while/switch.
- Масиви. Работа с масиви. Предаване по референция. Някои интересни задачи.
- Дебъгинг в Eclipse.
- Възможности, настройки. Breakpoints. Условни breakpoints. Спиране на изпълнението точно преди грешка в прогрмата.
- Watcher, Expressions, Display прозорци. Възможности.
- Отдалечено дебъгване като концепция, JPDA.
Въведение в Java, част 2.
- Методи. Сигнатури на методи.
- Пакети, файлове (предговор). Класове. Низове. Char и unicode в Java.
- Обвиващи класове за вградените типове, основни функции на обвиващи класове.
- Енумерации.
- Unit тестове като концепция. Запознаване с jUnit. Задачи за писане на тестове, задачи за покриване/минаване на тестове.
Обектно-ориентирано програмиране част 1.
- Класове и обекти. Конструктори. Референции. Методи. Предаване по референция, предаване по стойност.
- Класът Object. Важни методи на класа Object - toString, equals, hashCode, getClass и т.н.
- Клас String. Основни методи на класа String, интересни задачи за низове. Escape sequences в String. Интерниране на низове.
- Mutable и immutable класове. String и String Builder. Performance сравнения (чрез задача, която ще има ограничение за време).
- Heap и GC като концепция.
Обектно-ориентирано програмиране част 2.
- Интерфейси, абстрактни класове. Типов полиморфизъм. Модификатори за достъп. Примери.
- Писане на примерни йерархии. Разлика между класове и интерфейси, use case-ове за употребата им.
- Примери и задачи за моделиране чрез интерфейси и абстрактни класове.
- Инкапсулация - концепция, примери. Задачи за моделиране на данни, Model класове. Концепция на ORМ.
Обектно-ориентирано програмиране част 3.
- Видове класове - вътрешни, вложени, локални, анонимни. Скриване на имплементация.
- Добри и доказали се ООП практики. (Композиция пред наследяване, high cohesion, loose coupling. и т.н.)
-
Правилно писане на коментари и добри практики при документация.
Exceptions and error handling. Logging.
- Try-catch блокове. Семантика. Return + finally семантика.
- Йерархия на Exceptions. Разлики между Exception, Error, Throwable. Runtime exceptions vs catched exceptions. Exception chaining.
- Logging. Apache log4j.
- Добри практики при error handling (throw when API, handle when client, etc).
I/O. Работа с файлове. Сериализация.
- Потоци. Буферирани потоци. Четене/писане във файлове чрез потоци. Try-with-resource. Closeable и AutoCloseable.
- Манипулации по файлова система с Java <=6.
- Манипулации по файлова система с Java 7.
- Сериализация и десериализация.
- Apache-commons-IO.
Collections framework. Generics basics.
- Collections клас. Йерархия на collections framework-a.
- Stack, Vector, Queue, PriorityQueue, ArrayList, LinkedList, Set.
- Iterator. Концепция. Използване.
- Map, HashSet, HashMap, LinkedHashMap, TreeMap.
Generics in details.
- Generic методи.
- Дизайн на generic класове. Работа с generic типове.
- Advanced Generics - type erasure, bounded generics, wild cards, etc.
Работа със структурирани данни. XML, JSON.
- JSON in Java.
- XML. JAXP, DOM XML parser. JAXB.
Анотации. Reflection.
- Анотации в Java. Вградени анотации, създаване на анотации.
- Class loading механизъм, Classloaders.
- Инстанциране, извиквания на методи. Анализиране на декларирани анотации.
Интернет програмиране с Java.
- Sockets. URL, URLConnection.
- Клиент-сървър приложение.
- Apache HTTPClient.
Конкурентно програмиране в Java.
- Процеси, нишки, Runnables. Interrupts, joins.
- ThreadLocals, Executors.
- Синхронизация чрез критичен участък. Synchronized методи. Атомарни данни, volatile декларация.
- Wait/notify механизъм в Java.
Build tooling.
- Ant basics.
- Maven basics.
- Continuous integration концепция. Интеграция с IDE, deploy-on-save техники и други.
Regular expressions.
- Matcher, Pattern, examples.
- Groups. Quantifiers.
Advanced Eclipse.Content assist fine-tunning.
- Noteable plugins - Checkstyle, Findbugs, PMD, Autoformat, etc.
- Refactoring primitives, optimal keystroke bindings presets.
- Custom templates and custom actions.