Как и где найти грамотного персонального преподователя JAVA?
Всем привет!
Сейчас учусь по программе Java-разработчик на Яндекс.Практикуме.
Так как обучение по сути самообучение, то время от времени возникают вопросы, которые хотелось бы детально на примерах разобрать с наставником / преподавателем.
Необходимо персональное обучение.
За все возможные советы и отзывы заранее спасибо.
P.S. Наставники на обучении у Яндекса по сути могут только дать ответ на какой-то очень конкретный вопрос, а не глобально уделить тебе время по ряду вопросов или чтобы помочь разобрать тему.
mayton2019, наставник не смог мне без загадок объяснить какой способ хранения использовать лучше для распарсенных данных из файлов csv. У меня получился список с объектами, у которого 4 поля.
В списке объекты одного типа, но отличаются тем, что одни из одного отчета, а остальные из других двух. Отчеты отображают информации за месяц.
И это важно так дальше мне нужно вытаскивать данные из объектов.
Есть также отчёт 4 - годовой, который по сути = сумме тех трёх месячных отчётов.
Нужен класс, который проведёт сверку данных. Равны ли отчеты месячные сумарно годовому.
Вот как от списка с объектами (тратами) перейти к сверке отчётов не могу придумать. Кажется что я выбрал неудачный способ хранения данных.
Leonid_V, на всяких там процессах ETL я съел собаку. Но даже мне непонятно какой собственно ответ тебе нужен.
Может у тебя были просто завышенные ожидания? Знаешь есть такой принцип KISS? Его Java разработчики часто слышат но редко соблюдают. Они занимаются овер-проектированием. Тоесть вносят в задачу сущностей больше чем надо для решения этой задачи. Хотя KISS говорит что код должен содержать ровно минимум для решения задачи.
Ты попробуй здесь в qna задать свой вопрос. Только про "распаршенные" данные - надо написать подробнее.
Как и где найти грамотного персонального преподователя JAVA?
Поискать наставника / преподавателя:
1) Можно у кураторов тега JAVA https://qna.habr.com/tag/java на платной основе. Написать им в личку где есть контактные данные, кто-то может оказать такую услугу, вопрос только в цене и удобном времени для куратора.
2) У топ-фрилансеров раздела JAVA известных бирж. Можно и на зарубежных если английский позволяет.
3) На специализированных сайтах оказывающих услуги наставника / преподавателя
Единственное, что там нет кнопки-сортировки "грамотный", вам придётся поработать со многими чтобы отобрать себе подходящего специалиста, что есстественно отразится на ваших расходах.
Leonid_V, внятный ответ на ваш вопрос очень трудно дать.
тут напрашивается двумерный массив (N x 4). А в jave даже простой a[key] делается через HashMap String, NeedType
нет сами массивы тут есть, но они не ассациативные (индекс может быть только целым числом)
поэтому или крутиться с высчитыванием нужного индекса через дополнительные структуры или громоздить, чтото очень запутанное
Leonid_V, смотри. По поводу выбора способа хранения данных. Есть целая матрица стратегий как и чего хранить. В основном она зависит от доступа. Обсуждать эту задачу нужно сразу в свете сразу трех прожекторов. Первое - это ООП. И объект должен максимально отражать бизнес. Тоесть это должен быть не массив массивов массивов. А именно коллекция абстрактных бизнес-объектов (отчеты) которые имеют под-типы (Основной отчет, Расширенный, Годовой и т.п.). Второй прожектор это перформанс. Объекты должны лежать в максимально-детализованном виде. Тоесть никаких JSON строк быть не должно. Должны быть Java Maps, Lists e.t.c. С вложениями. И есть третий прожектор - это экономия Java Heap если ты решил прогрузить терабайтный CSV файл. Третий пункт вообще-то противоречит первым двум. И если мы докатились до такого кейса то надо снова обсуждать и ООП и перформанс.
Вобщем как ты понимаешь здесь нету идеального решения. Есть матрица стратегий. И твой Java-ментор не смог тебе ответить просто потому что здесь нет лучшего решения. Здесь есть оптимальные для данного класса условий.
Сам по себе формат CSV - достаточно плоский. Он на 99% близок к реляционной таблице где в полях лежат атомы. Строки. Числа. Но не JSON документы. Если вы ступили на такой грешный путь - то вам дорога в другую (не реляционную систему). Mongo или CouchDb к примеру.
Когда мы работали с одним хедж-фондом - то загружали данные биржевых сводок из CSV в Apache Ignite и мы выбрали такой способ хранения как Vertical Arrays. Это обычные Java массивы которые хранят колонки таблицы. Они - примитивны. Int, Long, String. Но для нашего варианта доступа такой способ подходил лучше чем хранение Java entities. Грубо говоря мы развернули способ хранения на 90 градусов.
Даже такое бывает. Вот думай. Вопрос сложный. И на него нельзя просто так ответить в рамках тех условий что ты рассказал.
Так как обучение по сути самообучение, то время от времени возникают вопросы, которые хотелось бы детально на примерах разобрать с наставником / преподавателем.
Нет смысла в персональном обучении... Либо ищите ментора, либо можете записаться на курсы.
Но необязательно. Можно самому все изучить. Тут уже от вас зависит все. Не забываем про учебники