вторник, 13 декабря 2016 г.

Tips & Tricks

Частенько при написании программ по новым темам возникает необходимость "подглядывать" в ранее написанные мной программы. подумываю завести себе какую-нибудь "базу знаний", что-то вроде своего собственного "Tips & Tricks". Возникло затруднение? Открываем базу, смотрим, как это надо делать и делаем.
Можно, конечно, и по класс-файлам искать, но хочется, чтобы все было красиво: с описанием и возможностью поиска.
Пока еще не определился, как это сделаю. Присматриваюсь к MyTerra.

До        После        GitHub        LinkedIn

Прогресс

Давненько не писал в бложик.
Не было времени - учеба, работа, дни рождения, дела семейные, Новый Год на носу... и еще много других оправданий у меня припасено ))
На самом деле, я сейчас нахожусь в таком состоянии, когда первое непонимание ООП вообще и java в частности уже прошло и началось усиленное впитывание новых знаний. Чем больше узнаю нового о java, тем больше понимаю, как я на самом деле мало об этом языке знаю и, что по сути, ничего умного о нем пока сказать не могут. Поэтому, собственно, и не писал.

Неделю назад сдал ментору устный экзамен по 2 модулю (части) курса по java и перешел к изучению 3 модуля.
А впереди еще 12 модулей (частей).
Общая структура курса такая:
001. Базовый Синтаксис. (7)
002. ООП (8)
003. Ввод-вывод (3)
004. ООД (7)
005. Collections (7)
006. Garbage Collection (5)
007. Multithreading (6)
008. SQL, JDBC (5)
009. Serlvet JSP (9)
010. Hibernate. (5)
011. Spring (7)
012. Интеграция. (7)
013. Шаблоны проектирования. (6)
014. Алгоритмы. (7)
В скобочках указано количество тем, на которые поделен модуль. В каждой теме по 1 - 6 заданий на написание программ по пройденной теме.
По каждому модулю нужно устно сдать от веты на контрольные вопросы (около 30 - 40) и 1 - 2 контрольных задания.
Выглядит каждый модуль примерно так:


Задания по пройденным темам всегда предполагают самостоятельное изучение тонн дополнительного материала. Оно и правильно. Это приучает искать информацию самостоятельно и читать спецификации на английском. ))

На экзаменах, помимо 30 - 40 заранее известных вопросов, могут быть заданы около 10 дополнительных. Поэтому всегда найдется 1 - 2 вопроса, на которые не готов ответить. Нельзя объять необъятное.
Но это не беда. Вопрос, на который ответить не смог, записываем себе в специальный "white list" и ставим на котроль пополнить недостающие знания.

На курсе в общем чате стараюсь отвечать на вопросы новичков. С одной стороны, это позволяет контролировать свои знания: действительно ли я усвоил пройденный материал. С другой - заставляет вспомнить те "грабли", с которыми уже давно не сталкивался, т.к. научился по умолчанию на них не наступать, и то, почему все делаю так, а не иначе.

Сейчас изучаю потоки ввода-вывода. Если до этого программирование мне снилось только во время выполнения контрольного задания по 2 модулю (написать логику шахмат), то сегодня приснилось, как я разбирался с ByteArrayInputStrem (только второе задание из 3 модуля). Это показывает, насколько усложняются задания от модуля к модулю.

Еще, с 3 модуля ментор разрешил мне пользоваться IDEA. До этого все программы я писал в Sublime Text и gedit. Несмотря на все свои плюсы, IDEA в некоторых частях настолько сложна и запутанна, что проще то, что нужно сделать в gedit.
Например, на днях попробовал сделать каталоги и pom.xml для программ 3 модуля в IDEA. Такой фарш получился... И, главное, не исправляется в IDEA никак. Пришлось удалить все файлы IDEA из проекта, сделать все "ручками" и потом открыть как уже готовый проект в IDEA ))
В общем, есть еще к чему стремиться.


До        После        GitHub        LinkedIn