Здравсвуйте. Сейчас на 17-м уровне, и ощущается, что тяжело уже все идет, мотивация падает из-за того, что не понимаешь что-то или даже больше из-за того, что каша в голове.
Суть моего вопроса в общем в том, чтобы хотелось еще больше практики, мини проекты какие-то, но не тупо отсортировать коллекцию определенным образом, а чтобы была задумка какая-то интересная(например мини игра, парсер с сайта) но графику еще не изучал, поэтому только консоль. Может кто подсказать подобные интересные задачи?
Суть моего вопроса в общем в том, чтобы хотелось еще больше практики, мини проекты какие-то, но не тупо отсортировать коллекцию определенным образом, а чтобы была задумка какая-то интересная(например мини игра, парсер с сайта) но графику еще не изучал, поэтому только консоль. Может кто подсказать подобные интересные задачи?
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Рекомендую:
1. поставить линукс и делать все там.(мне особо не пригодилось, работаю под виндовс, но все же многие вещи становятся более понятными)
2. книги(первую книгу по джава я наверно с 3й попытки прочитал, т.к. изучал «алфавит»)
3. делать приложения типа веб сервер с БД(до сих пор не закончил, не до него стало))))
4. английский — написать пару сочинений — о себе, чем хочу заниматься, почему.
5. тренироваться проходить собеседования (общение).
Тут было как то написано что после 20го уровня можно начинать искать работу. А когда приходишь на собеседование — забываешь «как маму зовут» не то что когда использовать linkedList, а когда ArrayList и в чем отличие. Собеседоваться можно даже на любую другую специальность или работу… Играет роль само волнение и уверенность в себе, поведение и т.д.
Ну и еще есть куча сайтов с «рейтингом программиста» там автоматическое тестирование задач… на «java code» гугл выдал www.codecademy.com/learn/learn-java — меня как то на подобном тестировали и я конечно же тесты завалил.
Вот я как то писал.
info.javarush.ru/Heavy/2016/03/28/%D0%9E%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD-%D1%82%D0%B5%D1%81%D1%82%D1%8B-%D0%BD%D0%B0-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D
каша в голове поправляется структурированием информации. поэтому мне кажется, тут лучше не только задачи делать, но и теорию читать. всякие статьи в интернете, или книжки.
ведь не все, что ты прочитал на джавараш усвоилось прям с первого раза и ты теорию всю на память знаешь) по-любому остались какие-то бреши, белые пятна… и вот именно из-за них как-раз и не может сложиться вся мозаика целиком в голове (ну это так у меня бывало).
наткнулся на какой-то вопрос, который ты вроде знаешь, но как-то неуверенно — гуглишь его) общие вопросы часто на хабре расписаны, типа, как работает HashMap например) какие-то ньюансы уже обычно так просто в статьях по интернету раскиданы.
или вот например что за метод такой intern() в классе String, зачем он и в чем суть его работы?
или что за ключевое слово такое strictfp и что оно делает? да и вообще сколько знаешь ключевых слов в java (и какие из них не используются). я вот по теории готовился нашел на сайте become java senior 300+ вопросов к собеседованиям, и там в комментах кто-то поделился ссылочкой на ответы.
уметь задачи решать — это конечно хорошо)) но и теорию знать стоит тоже) тогда и решения попроще будут сами находиться)
так же в интернете есть всякие сайты с подборками интересных задач для разных ЯП (гуглятся на ура) или даже без привязки к какому-то конкретному ЯП. когда поокрепнешь — можешь ковырять опенсорс проекты на гитхабе, смотреть идею и пытаться запилить что-то свое.
можешь сделать поискового бота (ну типа как у гугла), которы будет ходить по сайту, разбирать страничку, находить ссылки и переходить по ним (только по внутренним, иначе вылезешь в интернет и бот захлебнется информацией)… и так пока не обработает все ссылки на этом сайте. а ссылку и title страницы например сохранять в файлик, а ссылки на внешние ресурсы сохранять в другой файлик (реальная задача из жизни seo-специалиста)
можешь поковырять какой-нибуд
помогайте другим людям с их задачами (например с теми, которые вы уже решили).
только во-первых, не давайте прямого решения человеку, а лучше просто описать идею словами. пусть сам решение напишет благодаря вашей идее)
и конечно же никаких ответов из серии «давай по новой, Миша, все х**ня»))) такие ответы ни вам, ни человеку не принесут никакой пользы) если уж и даете ответ — то стоит объяснить почему лучше так, а не иначе, в чем загвоздка, итд. в процессе написания ответа — вы и сами будете подгугливать всякие детали и тонкости, чтобы не упасть лицом в грязь и дать человеку правильный ответ) заодно получается и повторение пройденного материала :)
довольно часто бывает, что вроде на несложный вопрос приходится сидеть и гуглить больше, чем вообще можно было представить))) вот так и свои пробелы заполните, помогая другим :)
я вот даже отвечая вам подгуглил как тот сайт с задачами называется)) и это я писал ответ абсолютно не вдаваясь в какие-то технические подробности.
если же попробуете объяснить человеку что такое static и зачем он вообще нужен — возможно придется тоже какие-то детали уточнять в интернете ;)
написать программу, которая бы находила дубликаты файлов на компе
была бы возможность при запуске указать список папок для сканирования
дубликатом считать такие файлы, которые имеют одинаковое имя и контент
*задание со звездочкой — также найти папки-дубликаты. это такие папки, у которых одинаковое имя, и в которых все файлы и подпапки имеют одинаковые имена и контент
так как работа программы займет длительное время (особенно на терабайтных винчестерах) — надо запилить также:
1. многопоточность (лучше использовать thread pool executor-ы всякие, например CachedThreadPool или какой-то другой, в зависимости от того, как вы будете реализовывать многопоточность. если с таким еще не сталкивались — отличная возможность почитать и разобраться в этом. если не получится — всегда можно переписать через старые добрые треды :) )
2. спинер, который бы крутился в консоли, показывая, что программа не зависла, а выполняется (можете взять код из этого ответа, разобраться как он работает, и прикрутить себе в проект)
по срокам примерно день-два на MVP, неделю на допиливание и прикручивание всяких фич :) ну это фултайм дни, конечно же. если в день у вас есть только 2 часа в день на программирование — тогда было бы желательно MVP получить через неделю-две работы :)