Какие методики продуктивного глубокого освоения многих направлений программирования можно взять на вооружение?

Проходил собеседование в одну Московскую компанию. Удивился какой там был опытный и сильный тимлид, который меня опрашивал. На часть вопросов я не смог ответить - просто я примерно уровня мидл а он меня спрашивал всё что угодно - начиная про алгоритмы, заканчивая принципом работы kaffka, Active Record и чем к примеру Rabbit MQ отличается от Kafka. Спрашивал про внутреннее устройство баз данных.

После собеседования я был восхищен его уровнем и в то же время подавлен.

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

Подскажите дайте советы как за счет личного времени подтянуть знания чтоб повысить свою эффективность и рыночную стоимость. Нужно много читать?

Дополнительно:

Ответы:

Нужно много читать.

  • а вы можете поделиться своим опытом? как часто вы читаете книги и конспектируете их или как это все откладывается в голове без практического применения? Я вас просто хорошо помню. Ваши ответы всегда вызывают восхищение.
  • Слава, читаю примерно по тысяче страниц в месяц. По поводу конспектирования уже отвечал. Правда, сейчас у меня литература больше теоретического характера, в которой ни примеров нет, ни пет-проект на ней не набомбить. В периоды, когда был мидлом, выписывал то, что в описании вакансии было малознакомым, в чём плавал на собеседованиях, что в фидбеке указали слабостями, а потом гуглил непонятное, находил книги об этом и читал. Плюс слежу за технологическими трендами и постоянно пробую что-нибудь новое. Каждые несколько лет определяю для себя приоритетные направления и стараюсь в них максимально углубляться.
  • Сергей Горностаев, спасибо вам за переданный опыт. вот бы такого тимлида - мечта каждого.

А ещё на практике.
Тимлид на то и тимлид, что времени у него на то чтобы попробовать на практике было достаточно.

А ещё раз он собеседует - значит у него есть рядом шпаргалка, по которой он и задаёт вопросы и имеется где-то табличка, по которой можно оценить ответы. (По крайней мере так в крупных компаниях).

Ещё может быть даже есть табличка с источниками информации, на которые можно дать ссылку в обратной связи для кандидата.

Не обманывайте себя, он знает также мало, как и все остальные. Просто спрашивает он то, что знает, и разумеется не спросит то, что не знает. А получилось ли так, что ваш круг знаний не совпал с его, или действительно ваш круг знаний слишком мал однозначно сказать нельзя.
То, что вы плотно не работали с брокерами сообщений или ActiveRecord вообще ничего не значит. Тоже самое про алгоритмы, хотя тут с оговорками, смотря о чем была речь. Опять же, что подразумевается под "внутреннее устройство баз данных", если что из себя представляет B-Tree, то middle должен это знать, а если сколько раз MySQL в отличие от PostgreSQL записывает каждую строчку на диск, то не обязательно.
И это, не говоря о том, что спросить он мог не то, что вам понадобится для работы, и даже не то, что сам использует, а то что вчера прочитал на Хабре и чем решил выпендриться.

 

Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.

 

    • Какие методики продуктивного глубокого освоения многих направлений программирования можно взять на вооружение?Есть ответ
    • 07.04.2024
    Ответить

    Для продуктивного глубокого освоения многих направлений программирования можно использовать следующие методики:

    1. **Постановка конкретных целей**: Определите, какие языки программирования и технологии вы хотите изучить. Составьте план обучения, включающий конкретные задачи и сроки их выполнения.

    2. **Изучение основ**: Начните с изучения основ программирования, таких как алгоритмы, структуры данных, парадигмы программирования и т.д. Это поможет вам понять базовые принципы, которые применимы к различным языкам.

    3. **Практика и проекты**: Практика играет ключевую роль в освоении программирования. Решайте задачи, участвуйте в проектах, создавайте собственные приложения. Это поможет вам применить полученные знания на практике.

    4. **Чтение и анализ кода**: Изучайте код других разработчиков, читайте открытые проекты на GitHub, анализируйте его структуру и логику. Это поможет вам понять лучшие практики и стиль программирования.

    5. **Обучение на практических примерах**: Вместо того, чтобы просто читать теорию, попробуйте изучить язык программирования, создавая реальные проекты. Это поможет вам лучше запомнить материал и применить его на практике.

    6. **Участие в сообществе**: Присоединяйтесь к программистским сообществам, форумам, участвуйте в хакатонах и конференциях. Общение с другими разработчиками поможет вам узнать новые методики и подходы к программированию.

    7. **Постоянное обучение**: Мир программирования постоянно меняется, поэтому важно постоянно обновлять свои знания. Изучайте новые технологии, языки программирования, следите за трендами в отрасли.

    8. **Тестирование и оптимизация**: Уделите внимание тестированию своего кода и его оптимизации. Это поможет вам научиться писать более эффективный и надежный код.

    Используя эти методики и постоянно развиваясь, вы сможете успешно освоить множество направлений программирования и стать опытным разработчиком.

Оставить комментарий