Какие методики продуктивного глубокого освоения многих направлений программирования можно взять на вооружение?
Проходил собеседование в одну Московскую компанию. Удивился какой там был опытный и сильный тимлид, который меня опрашивал. На часть вопросов я не смог ответить - просто я примерно уровня мидл а он меня спрашивал всё что угодно - начиная про алгоритмы, заканчивая принципом работы kaffka, Active Record и чем к примеру Rabbit MQ отличается от Kafka. Спрашивал про внутреннее устройство баз данных.
После собеседования я был восхищен его уровнем и в то же время подавлен.
Сейчас задался вопросом - как всё это познать? Ну патерны проектирования изучить дело не сложное. Работаем над этим. Но ведь он знает буквально всё! на таком глубоком уровне. Я тоже так хочу, но даже если я устроюсь на работу в команду, то мне будут давать определенный набор задач и я наврядли всё это изучу то что знал тот тимлид. Нужна какая-то методика.
Подскажите дайте советы как за счет личного времени подтянуть знания чтоб повысить свою эффективность и рыночную стоимость. Нужно много читать?
Дополнительно:
Содержание
Ответы:
Нужно много читать.
- а вы можете поделиться своим опытом? как часто вы читаете книги и конспектируете их или как это все откладывается в голове без практического применения? Я вас просто хорошо помню. Ваши ответы всегда вызывают восхищение.
- Слава, читаю примерно по тысяче страниц в месяц. По поводу конспектирования уже отвечал. Правда, сейчас у меня литература больше теоретического характера, в которой ни примеров нет, ни пет-проект на ней не набомбить. В периоды, когда был мидлом, выписывал то, что в описании вакансии было малознакомым, в чём плавал на собеседованиях, что в фидбеке указали слабостями, а потом гуглил непонятное, находил книги об этом и читал. Плюс слежу за технологическими трендами и постоянно пробую что-нибудь новое. Каждые несколько лет определяю для себя приоритетные направления и стараюсь в них максимально углубляться.
- Сергей Горностаев, спасибо вам за переданный опыт. вот бы такого тимлида - мечта каждого.
А ещё на практике.
Тимлид на то и тимлид, что времени у него на то чтобы попробовать на практике было достаточно.
А ещё раз он собеседует - значит у него есть рядом шпаргалка, по которой он и задаёт вопросы и имеется где-то табличка, по которой можно оценить ответы. (По крайней мере так в крупных компаниях).
Ещё может быть даже есть табличка с источниками информации, на которые можно дать ссылку в обратной связи для кандидата.
Не обманывайте себя, он знает также мало, как и все остальные. Просто спрашивает он то, что знает, и разумеется не спросит то, что не знает. А получилось ли так, что ваш круг знаний не совпал с его, или действительно ваш круг знаний слишком мал однозначно сказать нельзя.
То, что вы плотно не работали с брокерами сообщений или ActiveRecord вообще ничего не значит. Тоже самое про алгоритмы, хотя тут с оговорками, смотря о чем была речь. Опять же, что подразумевается под "внутреннее устройство баз данных", если что из себя представляет B-Tree, то middle должен это знать, а если сколько раз MySQL в отличие от PostgreSQL записывает каждую строчку на диск, то не обязательно.
И это, не говоря о том, что спросить он мог не то, что вам понадобится для работы, и даже не то, что сам использует, а то что вчера прочитал на Хабре и чем решил выпендриться.
Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.
Оставить комментарий Отменить
Ответы
- Есть ответ! к записи Как уменьшить масштаб меньше 100% в Windows 10 (22H2)
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Аналоги CloudFlare в России?
- Есть ответ! к записи Как называется человек, который дизайн придумает для сайта и сверстает его?
- Есть ответ! к записи Можно ли установить Яндекс.Диск на АльтЛинукс?
- Есть ответ! к записи Картинки мутные только на сафари, есть выход?
- Есть ответ! к записи Keenetic. Как настроить SSTP клиент с сертификатом?
- Есть ответ! к записи Чем заменить executor в aiogram 3?
Для продуктивного глубокого освоения многих направлений программирования можно использовать следующие методики:
1. **Постановка конкретных целей**: Определите, какие языки программирования и технологии вы хотите изучить. Составьте план обучения, включающий конкретные задачи и сроки их выполнения.
2. **Изучение основ**: Начните с изучения основ программирования, таких как алгоритмы, структуры данных, парадигмы программирования и т.д. Это поможет вам понять базовые принципы, которые применимы к различным языкам.
3. **Практика и проекты**: Практика играет ключевую роль в освоении программирования. Решайте задачи, участвуйте в проектах, создавайте собственные приложения. Это поможет вам применить полученные знания на практике.
4. **Чтение и анализ кода**: Изучайте код других разработчиков, читайте открытые проекты на GitHub, анализируйте его структуру и логику. Это поможет вам понять лучшие практики и стиль программирования.
5. **Обучение на практических примерах**: Вместо того, чтобы просто читать теорию, попробуйте изучить язык программирования, создавая реальные проекты. Это поможет вам лучше запомнить материал и применить его на практике.
6. **Участие в сообществе**: Присоединяйтесь к программистским сообществам, форумам, участвуйте в хакатонах и конференциях. Общение с другими разработчиками поможет вам узнать новые методики и подходы к программированию.
7. **Постоянное обучение**: Мир программирования постоянно меняется, поэтому важно постоянно обновлять свои знания. Изучайте новые технологии, языки программирования, следите за трендами в отрасли.
8. **Тестирование и оптимизация**: Уделите внимание тестированию своего кода и его оптимизации. Это поможет вам научиться писать более эффективный и надежный код.
Используя эти методики и постоянно развиваясь, вы сможете успешно освоить множество направлений программирования и стать опытным разработчиком.