#junior #middle #Поговорим #Java
Многие знают, что первое, куда стоит заглядывать, если вы чего-то не понимаете в технологии или языке - это документация 🤖
Документация Java и Spring:
https://docs.oracle.com/en/java/javase/19/https://docs.spring.io/spring-framework/docs/current/reference/html/ Далее я приведу пример на языке Java, но читателю достаточно понимания и общих принципов программирования
Возьмем HashMap - удобный способ хранения в Java данных в виде ассоциативного массива, то есть пар "ключ-значение". Например, в нем мы можем хранить оценки учеников: ["Петров": 5, "Иванов": 3, "Сидоров": 2]
Поиск в таком ассоциативном массиве осуществляется по ключу (в нашем случае, фамилия школьника). А сам алгоритм поиска основан на работе корзин (buckets) и хэшкодов (hashcode). Количество таких корзин по-умолчанию задано в Java жестко. Более того, часто на собеседованиях я слышал вопрос: "Может быть, помните изначальное количество корзин в HashMap?" 😳
Давайте постараемся "вспомнить"
Есть три варианта это сделать. Я называю их первичным, вторичным и третичным ♨️
Третичным вариантом пользуемся мы все: бежим в гугл и ищем информацию о количестве корзин. Я уверен, что вы найдете информацию на первом же сайте (как ее нашел я).
Чем хороша такая информация? Она написана на вашем родном языке и, скорее всего, написана на вашем уровне. Более того, наш с вами канал - тоже источник третичной информации. Минусы тоже очевидны: информация может быть неактуальной или вовсе неверной. Стоит все перепроверять ⚠️
Вторичным источником можно назвать официальную документацию. Чаще всего такая документация описана на английском, но иногда она переводится и на другие языки (пример: документация по vue.JS). Из плюсов: шансы найти в ней ошибку минимальны. Минусы: чаще всего это прямое пересказывание кода.
Первичным источником информации является КОД. Да, написанный разработчиками код, в котором есть и описания на английском языке, и, что самое важное, все переменные, методы и функции 🌪
Хороший код, во многом, самодокументируемый. Это значит, что открывая его, вы в целом будете понимать, о чем идет речь (если у вас есть достаточно опыта в разработке). Посмотрите на третий скриншот, тут напрямую говорится о том, что "вместимость HashMap" равна 16. Это и есть ответ на наш вопрос.
Изучая настоящий код Java (или любого другого языка), вы получаете сразу три бенефита:
⚠️ Ответ на свой вопрос
🐣 Понимание устройства языка, его структуры
♨️ Способность читать чужой код
И третий из них, по моему мнению, просто невероятно важен каждому программисту.
Да, ключевым минусом тут является то, что вам придется разбираться даже не в английском тексте, а напрямую в коде, но вы же для этого и учились?
Читайте первичные источники информации!