Вчера на занятии по менторству мы пришли к двум очень интересным мыслям.
Мысль первая
Довольно просто (относительно) выучить или даже зазубрить какие-то отдельно взятые темы в программировании.
Например:
- что такое перегрузка методов
- что такое Generics
- что такое функциональное программирование в Java
Но профессионализм разработчика определяется в том, что он глубоко понимает эти темы,
а главное, может комбинировать эти знания воедино для решения поставленной задачи.
И это решение должно получиться максимально простым, гибким и эффективным.
Мысль первая
Довольно просто (относительно) выучить или даже зазубрить какие-то отдельно взятые темы в программировании.
Например:
- что такое перегрузка методов
- что такое Generics
- что такое функциональное программирование в Java
Но профессионализм разработчика определяется в том, что он глубоко понимает эти темы,
а главное, может комбинировать эти знания воедино для решения поставленной задачи.
И это решение должно получиться максимально простым, гибким и эффективным.
👍47
Мысль вторая
Невозможно достичь профессионализма (мысль первая), если не развивать свои навыки и не пробовать разные подходы в решении задач.
Например, ты научился хорошо или даже отлично делать сальто назад и успешно это практикуешь.
Но пока ты не начнешь пробовать делать тройное сальто назад, ты так и не научишься этому (что логично) и будешь довольствоваться тем, что есть.
Поэтому, опыт в программировании с какого-то определенного момента не может раскрыть навыки разработчика.
Человек с 5 годами опыта может дать фору 10-летнему. А все потому, что он продолжает пробовать.
Невозможно достичь профессионализма (мысль первая), если не развивать свои навыки и не пробовать разные подходы в решении задач.
Например, ты научился хорошо или даже отлично делать сальто назад и успешно это практикуешь.
Но пока ты не начнешь пробовать делать тройное сальто назад, ты так и не научишься этому (что логично) и будешь довольствоваться тем, что есть.
Поэтому, опыт в программировании с какого-то определенного момента не может раскрыть навыки разработчика.
Человек с 5 годами опыта может дать фору 10-летнему. А все потому, что он продолжает пробовать.
👍38🤔1
Ни одно приложение не обходится без шифрования данных.
https уже давно стал стандартом для любых веб сайтов.
Генерация public и private ключей тоже обыденность при работе с репозиториями в github.
А цифровая подпись в JWT?
Но здорово не только понимать, как все работает, но и знать историю, как зарождалось шифрование (а это на минуточку тысячи лет назад!) и что способствовало его развитию.
Про все это есть просто шикарнейшая и одна из моих любимейших книг
The Code Book, Simon Singh
#dmdev_top_books
https уже давно стал стандартом для любых веб сайтов.
Генерация public и private ключей тоже обыденность при работе с репозиториями в github.
А цифровая подпись в JWT?
Но здорово не только понимать, как все работает, но и знать историю, как зарождалось шифрование (а это на минуточку тысячи лет назад!) и что способствовало его развитию.
Про все это есть просто шикарнейшая и одна из моих любимейших книг
The Code Book, Simon Singh
#dmdev_top_books
🔥30👍11👏3
🛠 Нет ничего постояннее, чем временное
В который раз убеждаюсь, что временный фикс может остаться в проде на долгие месяцы или даже годы.
Как только команда решает выкатить какие-то временные изменения, которые "
Всегда найдутся более важные задачи или поменяются приоритеты, или некогда согласовывать с другими командами откат тех самых временных изменений.
Вот прямо сейчас сидим и исправляем код, которому уже как минимум пол года, хотя думали когда-то, что его мы "
#dmdev_о_наболевшем
В который раз убеждаюсь, что временный фикс может остаться в проде на долгие месяцы или даже годы.
Как только команда решает выкатить какие-то временные изменения, которые "
скоро
" уберем - то будьте уверены, что это "скоро
" может даже не наступить.Всегда найдутся более важные задачи или поменяются приоритеты, или некогда согласовывать с другими командами откат тех самых временных изменений.
Вот прямо сейчас сидим и исправляем код, которому уже как минимум пол года, хотя думали когда-то, что его мы "
скоро
" уберем😅#dmdev_о_наболевшем
👍28😁8🔥6
🤯 СДВИГ ПАРАДИГМ
У изучающих программирование я отчетливо вижу 3 основных этапа, которые довольно сложно осознать или принять. Эти этапы я называю сдвиг парадигм.
Первый этап - это когда человек только начинает изучать программирование и ему невероятно сложно понять новый для него язык - язык машин. Сложно привыкнуть к тому, что такое типы данных, переменные, функции, циклы, логические конструкции и массивы. И это еще все вместе взаимодействует друг с другом!
Если первый этап пережит, то приходит спокойствие и равновесие. Все становится на свои места: программировать просто и понятно, мотивация на высоте. Но ровно до тех пор, пока не приходит тема ООП - второй этап и второй сдвиг парадигмы. Переход от структурного в объектно ориентированное программирование.
Появляется вновь много вопросов и недопонимание концепции классов и объектов: зачем так усложнять? Зачем эти поля и ключевое слово this? Наследование, композиция… Зачем? Все ведь было и без этого отлично. Писались программы и даже довольно неплохо получалось. А главное работало!
Если второй этап пережит - то опять наступает внутреннее равновесие, происходит серьезный рост в навыках программиста. Кажется, что перед тобой открыт весь мир. Ты можешь творить просто невероятные вещи с ООП!
Пока не оказывается, что есть еще и функциональное программирование - третий этап и уже третий большой сдвиг парадигмы.
Самое интересное, что человек до последнего не хочет отпускать привычный ему мир и, например, продолжает использовать примитивные типы данных, когда можно использовать классы и поля в них. Либо вообще избегает использования функциональных интерфейсов и замыканий.
В итоге, пройдя успешно эти три этапа, программист начинает понимать основной принцип - что нет одного инструмента в решении проблем. Более того, нет универсального инструмента, который поможет во всех задачах (one size fits all).
И когда придет это понимание, программист научится не только использовать каждую парадигму в наиболее выгодном месте, но и комбинировать их друг с другом. Ибо самое главное - это простое и понятное решение любой по сложности задачи.
PS. Лично у меня эта перестройка мышления заняла не один год
У изучающих программирование я отчетливо вижу 3 основных этапа, которые довольно сложно осознать или принять. Эти этапы я называю сдвиг парадигм.
Первый этап - это когда человек только начинает изучать программирование и ему невероятно сложно понять новый для него язык - язык машин. Сложно привыкнуть к тому, что такое типы данных, переменные, функции, циклы, логические конструкции и массивы. И это еще все вместе взаимодействует друг с другом!
Если первый этап пережит, то приходит спокойствие и равновесие. Все становится на свои места: программировать просто и понятно, мотивация на высоте. Но ровно до тех пор, пока не приходит тема ООП - второй этап и второй сдвиг парадигмы. Переход от структурного в объектно ориентированное программирование.
Появляется вновь много вопросов и недопонимание концепции классов и объектов: зачем так усложнять? Зачем эти поля и ключевое слово this? Наследование, композиция… Зачем? Все ведь было и без этого отлично. Писались программы и даже довольно неплохо получалось. А главное работало!
Если второй этап пережит - то опять наступает внутреннее равновесие, происходит серьезный рост в навыках программиста. Кажется, что перед тобой открыт весь мир. Ты можешь творить просто невероятные вещи с ООП!
Пока не оказывается, что есть еще и функциональное программирование - третий этап и уже третий большой сдвиг парадигмы.
Самое интересное, что человек до последнего не хочет отпускать привычный ему мир и, например, продолжает использовать примитивные типы данных, когда можно использовать классы и поля в них. Либо вообще избегает использования функциональных интерфейсов и замыканий.
В итоге, пройдя успешно эти три этапа, программист начинает понимать основной принцип - что нет одного инструмента в решении проблем. Более того, нет универсального инструмента, который поможет во всех задачах (one size fits all).
И когда придет это понимание, программист научится не только использовать каждую парадигму в наиболее выгодном месте, но и комбинировать их друг с другом. Ибо самое главное - это простое и понятное решение любой по сложности задачи.
PS. Лично у меня эта перестройка мышления заняла не один год
🔥46👍29👏3❤1
👂Что по Spring-у?
Ребят, кто там интересовался, когда будет завершен курс по Spring?
Официально заявляю, он готов!
Что он включает?
- Spring Core
- Spring Boot
- Spring Logging
- Spring Test
- Spring Data (+Database migrations)
- Spring JDBC
- Spring Web (+REST, +Thymeleaf)
- Spring Validation
- Spring Security (+OAuth2)
- Spring AOP
🏁 Итого: 126 видео продолжительностью 21 час и 9 минут
Желаю всем приятного просмотра и продуктивной практики!
Да прибудет с вами сила Spring-a 💪
P.S. Ссылка как обычно в описании канала
P.P.S. Напоминаю про наличие купонов IntelliJ IDEA Ultimate на 6 месяцев бесплатного использования для продуктивного прохождения курсов DMdev.
Если есть подписка на GetCourse, YouTube или покупка на Udemy любого моего продукта - напиши мне в личку Telegram или Instagram, вышлю купон!
Ребят, кто там интересовался, когда будет завершен курс по Spring?
Официально заявляю, он готов!
Что он включает?
- Spring Core
- Spring Boot
- Spring Logging
- Spring Test
- Spring Data (+Database migrations)
- Spring JDBC
- Spring Web (+REST, +Thymeleaf)
- Spring Validation
- Spring Security (+OAuth2)
- Spring AOP
🏁 Итого: 126 видео продолжительностью 21 час и 9 минут
Желаю всем приятного просмотра и продуктивной практики!
Да прибудет с вами сила Spring-a 💪
P.S. Ссылка как обычно в описании канала
P.P.S. Напоминаю про наличие купонов IntelliJ IDEA Ultimate на 6 месяцев бесплатного использования для продуктивного прохождения курсов DMdev.
Если есть подписка на GetCourse, YouTube или покупка на Udemy любого моего продукта - напиши мне в личку Telegram или Instagram, вышлю купон!
❤41🔥27👍19
🎉 2 года каналу DMdev
Сегодня 30.05.2022 ровно 2 года с момента выхода первого видео на канале DMdev.
Это видео - Java для начинающих. 1.1 Первая программа.
В момент его публикации я просто хотел автоматизировать свое преподавание в IT-academy. Я не умел монтировать видео, работать со звуком, не было камеры, да и в принципе не ожидал дальнейшего развития канала.
Я планировал отправлять своих студентов на YouTube, чтобы не повторять свои лекции вслух в 5-ый раз. Это тот самый момент, когда лень - двигатель прогресса 😅
Но с появлением первых подписчиков, лайков, комментариев, обратной связи от вас - зародилась идея создать полноценное обучение для Java разработчиков.
Хочу сказать огромное спасибо всем подписчикам и спонсорам.
Благодаря вашему вкладу канал продолжает расти и развиваться!
Сегодня 30.05.2022 ровно 2 года с момента выхода первого видео на канале DMdev.
Это видео - Java для начинающих. 1.1 Первая программа.
В момент его публикации я просто хотел автоматизировать свое преподавание в IT-academy. Я не умел монтировать видео, работать со звуком, не было камеры, да и в принципе не ожидал дальнейшего развития канала.
Я планировал отправлять своих студентов на YouTube, чтобы не повторять свои лекции вслух в 5-ый раз. Это тот самый момент, когда лень - двигатель прогресса 😅
Но с появлением первых подписчиков, лайков, комментариев, обратной связи от вас - зародилась идея создать полноценное обучение для Java разработчиков.
Хочу сказать огромное спасибо всем подписчикам и спонсорам.
Благодаря вашему вкладу канал продолжает расти и развиваться!
🔥80👍29❤14👏7🎉5
💥 Цифры за год
И немного статистики о проделанной работе за прошедший год, которой я также хочу поделиться с вами:
- Создано 4 полноценных курса (Groovy, Gradle, Hibernate, Spring)
- 275 новых видео
- 48 часа контента
- Курсы теперь доступны на двух новых платформах (Udemy, GetCourse)
- Созданы и запущены 2 ступени менторства
- Запущен формат ”Code review”
И на картинке статистика от YouTube за последние 365 дней, где также можно увидеть на сколько выросли показатели в сравнении с предыдущим годом 🚀
И немного статистики о проделанной работе за прошедший год, которой я также хочу поделиться с вами:
- Создано 4 полноценных курса (Groovy, Gradle, Hibernate, Spring)
- 275 новых видео
- 48 часа контента
- Курсы теперь доступны на двух новых платформах (Udemy, GetCourse)
- Созданы и запущены 2 ступени менторства
- Запущен формат ”Code review”
И на картинке статистика от YouTube за последние 365 дней, где также можно увидеть на сколько выросли показатели в сравнении с предыдущим годом 🚀
❤29🔥24👏20
🗝 Как я хакнул систему и сделал Level Up?
Существует множество советов, практик по написанию кода и подходов к разработке.
Есть даже довольно неплохая книга, где можно почерпнуть парочку из них: The Pragmatic Programmer.
Но я бы хотел поделиться тремя основными, которые действительно произвели сильный толчок именно в моем развитии как программиста и которые я использую по сей день.
1️⃣ Замедляться, думать над каждой написанной строчкой кода
Наверное, эта практика пришла из психологии: быть в моменте. Поначалу это кажется очень сложным, потому что человеку свойственно отправлять привычные вещи на автопилот. Но как только ты начинаешь задумываться, почему я пишу именно так эту строчку кода, или зачем я вызываю метод flush у потока, или кем обрабатывается аннотация @Transactional в тестах - твой мозг начинает решать поставленные вопросы и докапываться до базовых, но таких важных, даже ключевых вещей и понятий!
2️⃣ Теория разбитых окон
Еще одна практика, которая пришла уже из другой области - криминологии. Тем не менее, невероятно полезна и при разработке приложений. Я бы даже вынес ее на первое место в любых списках и рейтингах, ибо без ее соблюдения - со временем распадаются не только программы, но и команды.
Она гласит: «Если в здании разбито одно стекло и никто его не заменяет, то через некоторое время в этом здании не останется ни одного целого окна».
❗️Решение здесь очень простое и сложное одновременно - не лениться и не стесняться исправлять недочеты в программе как только их увидел. Выделять время на разгребание технического долга!
3️⃣ Проявлять инициативу, критически осмысливать полученную информацию
Этот пункт основополагающий не только для двух предыдущих, но и в целом. Потому что для заделывания дыр в окнах нужно проявлять инициативу, нужно брать на себя ответственность не только за свой код, но и за код других людей в команде и даже за весь проект в целом. А раз берешь на себя ответственность, то ты должен уметь оспаривать те или иные свои решения и отстаивать свою точку зрения. А для этого нужно критически подходить к любой получаемой информации и знать как работает тот или иной модуль системы (та или иная строчка кода).
Существует множество советов, практик по написанию кода и подходов к разработке.
Есть даже довольно неплохая книга, где можно почерпнуть парочку из них: The Pragmatic Programmer.
Но я бы хотел поделиться тремя основными, которые действительно произвели сильный толчок именно в моем развитии как программиста и которые я использую по сей день.
1️⃣ Замедляться, думать над каждой написанной строчкой кода
Наверное, эта практика пришла из психологии: быть в моменте. Поначалу это кажется очень сложным, потому что человеку свойственно отправлять привычные вещи на автопилот. Но как только ты начинаешь задумываться, почему я пишу именно так эту строчку кода, или зачем я вызываю метод flush у потока, или кем обрабатывается аннотация @Transactional в тестах - твой мозг начинает решать поставленные вопросы и докапываться до базовых, но таких важных, даже ключевых вещей и понятий!
2️⃣ Теория разбитых окон
Еще одна практика, которая пришла уже из другой области - криминологии. Тем не менее, невероятно полезна и при разработке приложений. Я бы даже вынес ее на первое место в любых списках и рейтингах, ибо без ее соблюдения - со временем распадаются не только программы, но и команды.
Она гласит: «Если в здании разбито одно стекло и никто его не заменяет, то через некоторое время в этом здании не останется ни одного целого окна».
❗️Решение здесь очень простое и сложное одновременно - не лениться и не стесняться исправлять недочеты в программе как только их увидел. Выделять время на разгребание технического долга!
3️⃣ Проявлять инициативу, критически осмысливать полученную информацию
Этот пункт основополагающий не только для двух предыдущих, но и в целом. Потому что для заделывания дыр в окнах нужно проявлять инициативу, нужно брать на себя ответственность не только за свой код, но и за код других людей в команде и даже за весь проект в целом. А раз берешь на себя ответственность, то ты должен уметь оспаривать те или иные свои решения и отстаивать свою точку зрения. А для этого нужно критически подходить к любой получаемой информации и знать как работает тот или иной модуль системы (та или иная строчка кода).
🔥45👍22👏3
Эмоциональный цикл перемен
Любые перемены в жизни, независимо от их природы, буть то переезд в другую страну, изучение программирования, навыка стрельбы из пистолета или плавания - развиваются в соответствии с эмоциональным циклом перемен.
Этот цикл разбивается на 5 основных этапов:
🔹Необоснованный оптимизм
🔹Информационный пессимизм
🔹Момент отчаяния
🔹Информационный оптимизм
🔹Успех и самореализация
Любые перемены в жизни, независимо от их природы, буть то переезд в другую страну, изучение программирования, навыка стрельбы из пистолета или плавания - развиваются в соответствии с эмоциональным циклом перемен.
Этот цикл разбивается на 5 основных этапов:
🔹Необоснованный оптимизм
🔹Информационный пессимизм
🔹Момент отчаяния
🔹Информационный оптимизм
🔹Успех и самореализация
👍28🔥8
1️⃣ Первый этап или необоснованный оптимизм - мы представляем свое прекрасное будущее, забывая о том, что все имеет свою цену.
💁♂️ “Вот сейчас выучу Java и стану программистом. Буду зарабатывать много денег, работать удаленно из любой точки мира - выйду на новый уровень!”.
К сожалению, состояние необоснованного оптимизма длится не долго, потому что мы замечаем в основном только положительное стороны перемен и не видим отрицательных.
2️⃣ Мы сталкиваемся с реальностью и вторым этапом - информационный пессимизм, где выгоды уже не кажутся такими близкими или даже осязаемыми, а цена, которую мы УЖЕ платим, очевидна.
🤷♂️ Каждый задается вопросом: "А действительно ли эти перемены стоят затраченных усилий?
И уже начинаем искать оправдания, чтобы отказаться от того, чтобы “стать программистом”.
3️⃣ Но дальше еще хуже и наступает момент отчаяния, когда не получается НИЧЕГО.
На этом третьем этапе сдается большинство людей, потому что принимают самое простое для себя решение - все бросить и вернутся к старой жизни без этих перемен, ведь “раньше же как-то жили, и вроде даже неплохо! Ну его это программирование”.
Чтобы пережить этот этап, нужно иметь четкое представление картины будущего и сильное желание достичь своей цели. Но еще лучше справиться с этим этапом помогают дисциплина и самоконтроль.
4️⃣ Если пережить момент отчаяния, то наступает четвертый этап - информационный оптимизм, где вероятность добиться успеха и в принципе своей цели заметно увеличивается.
Мы уже начинаем получать первые “плоды своего труда”, “код уже кажется довольно простым и понятным”, а действия становятся более осмысленными.
🤦 Зачастую мы слышим в голове такую мысль: “Как я раньше этого не понимал?”
5️⃣ Если не остановиться на достигнутом, то наступает заключительный этап и приходят успех и самореализация. Действия, которые были для нас сложны и неприятны, становятся привычны и просты.
Мы получаем бурю положительных эмоций, у нас все получается и самооценка растет до небес.
🙋♂️ «Я наконец-то стал Java разработчиком!»
❗️И тут важно помнить, что это цикл, а значит, после этого этапа придет необоснованный оптимизм, плавно перетекающий в информационный пессимизм и т.д.
И чем больше мы сможем пройти таких циклов в жизни, тем проще будут даваться другие перемены, приобретение новых навыков и достижение поставленных целей!
💁♂️ “Вот сейчас выучу Java и стану программистом. Буду зарабатывать много денег, работать удаленно из любой точки мира - выйду на новый уровень!”.
К сожалению, состояние необоснованного оптимизма длится не долго, потому что мы замечаем в основном только положительное стороны перемен и не видим отрицательных.
2️⃣ Мы сталкиваемся с реальностью и вторым этапом - информационный пессимизм, где выгоды уже не кажутся такими близкими или даже осязаемыми, а цена, которую мы УЖЕ платим, очевидна.
🤷♂️ Каждый задается вопросом: "А действительно ли эти перемены стоят затраченных усилий?
И уже начинаем искать оправдания, чтобы отказаться от того, чтобы “стать программистом”.
3️⃣ Но дальше еще хуже и наступает момент отчаяния, когда не получается НИЧЕГО.
На этом третьем этапе сдается большинство людей, потому что принимают самое простое для себя решение - все бросить и вернутся к старой жизни без этих перемен, ведь “раньше же как-то жили, и вроде даже неплохо! Ну его это программирование”.
Чтобы пережить этот этап, нужно иметь четкое представление картины будущего и сильное желание достичь своей цели. Но еще лучше справиться с этим этапом помогают дисциплина и самоконтроль.
4️⃣ Если пережить момент отчаяния, то наступает четвертый этап - информационный оптимизм, где вероятность добиться успеха и в принципе своей цели заметно увеличивается.
Мы уже начинаем получать первые “плоды своего труда”, “код уже кажется довольно простым и понятным”, а действия становятся более осмысленными.
🤦 Зачастую мы слышим в голове такую мысль: “Как я раньше этого не понимал?”
5️⃣ Если не остановиться на достигнутом, то наступает заключительный этап и приходят успех и самореализация. Действия, которые были для нас сложны и неприятны, становятся привычны и просты.
Мы получаем бурю положительных эмоций, у нас все получается и самооценка растет до небес.
🙋♂️ «Я наконец-то стал Java разработчиком!»
❗️И тут важно помнить, что это цикл, а значит, после этого этапа придет необоснованный оптимизм, плавно перетекающий в информационный пессимизм и т.д.
И чем больше мы сможем пройти таких циклов в жизни, тем проще будут даваться другие перемены, приобретение новых навыков и достижение поставленных целей!
👍45🔥20👏4
Media is too big
VIEW IN TELEGRAM
Любознательность
Сейчас, находясь в отпуске и плавая на надувном матрасе в бассейне, словил себя на мысли, что мой мозг постоянно пытается что-то новенькое сгенерировать или опробовать:
💡 А давай попробуем на руках под водой подняться по ступенькам, получится ли?
💡 Интересно, а сколько можно проплыть бассейнов туда-сюда на одном дыхании?
💡 Если я так спокойно одной рукой поднимаю жену, то насколько тяжелые предметы можно поднять под водой. Где бы что-то потяжелее найти…
💡 Хм, чувак на гидроцикле так круто рассекает по морю, сложно ли им управлять? Стоп, я же не катался на нем ни разу в жизни! Так, откуда он выехал… Надо оплатить и опробовать самому!
И тут я понял, что в детстве ведь у меня было точно также. Только почему-то с возрастом эта любознательность ушла и спустя лишь время вернулась вновь.
🤔 Не знаю, что происходит и что/кто виноват, но это возвращение мне определенно очень нравится!
Сейчас, находясь в отпуске и плавая на надувном матрасе в бассейне, словил себя на мысли, что мой мозг постоянно пытается что-то новенькое сгенерировать или опробовать:
💡 А давай попробуем на руках под водой подняться по ступенькам, получится ли?
💡 Интересно, а сколько можно проплыть бассейнов туда-сюда на одном дыхании?
💡 Если я так спокойно одной рукой поднимаю жену, то насколько тяжелые предметы можно поднять под водой. Где бы что-то потяжелее найти…
💡 Хм, чувак на гидроцикле так круто рассекает по морю, сложно ли им управлять? Стоп, я же не катался на нем ни разу в жизни! Так, откуда он выехал… Надо оплатить и опробовать самому!
И тут я понял, что в детстве ведь у меня было точно также. Только почему-то с возрастом эта любознательность ушла и спустя лишь время вернулась вновь.
🤔 Не знаю, что происходит и что/кто виноват, но это возвращение мне определенно очень нравится!
😁23👍21🔥8👏2👎1
✍️ Почерк программиста
Ты когда-нибудь задумывался, что твой код и стиль его написания - имеет много общего с почерком, когда ты берешь в руки карандаш и пишешь на листе бумаги?
1️⃣ Во-первых, у каждого программиста он свой.
Сейчас на проекте у меня 4 backend разработчика, и я могу практически безошибочно сказать, кто написал тот или иной функционал, не глядя в git.
2️⃣ Во-вторых, без практики почерк ухудшается.
Недавно мне нужно было ручкой заполнять от руки кое-какие бумаги, и это было просто ужасно: прерывистый, неуверенный, разного размера буквы и т.д.
То же самое и с кодом - без практики этот навык (как и любой другой в принципе) начинает деградировать.
3️⃣ В-третьих, он меняется с опытом.
Чем больше ты пишешь, чем больше практикуешься и изучаешь новые концепции и языки - тем лучше, проще и выразительнее твой код.
Но что еще интереснее - стиль написания кода явно или неявно перенимается, или даже вплетается в твой, от других программистов вне зависимости от их уровня.
Поэтому и сейчас я часто вижу в чатах скрины с кодом от других ребят и отчетливо прослеживаю нотки своего почерка.
И мне это определенно нравится 😏
Ты когда-нибудь задумывался, что твой код и стиль его написания - имеет много общего с почерком, когда ты берешь в руки карандаш и пишешь на листе бумаги?
1️⃣ Во-первых, у каждого программиста он свой.
Сейчас на проекте у меня 4 backend разработчика, и я могу практически безошибочно сказать, кто написал тот или иной функционал, не глядя в git.
2️⃣ Во-вторых, без практики почерк ухудшается.
Недавно мне нужно было ручкой заполнять от руки кое-какие бумаги, и это было просто ужасно: прерывистый, неуверенный, разного размера буквы и т.д.
То же самое и с кодом - без практики этот навык (как и любой другой в принципе) начинает деградировать.
3️⃣ В-третьих, он меняется с опытом.
Чем больше ты пишешь, чем больше практикуешься и изучаешь новые концепции и языки - тем лучше, проще и выразительнее твой код.
Но что еще интереснее - стиль написания кода явно или неявно перенимается, или даже вплетается в твой, от других программистов вне зависимости от их уровня.
Поэтому и сейчас я часто вижу в чатах скрины с кодом от других ребят и отчетливо прослеживаю нотки своего почерка.
И мне это определенно нравится 😏
🔥36👍21🤔4👏2
Сафари для жизни
Находясь в отпуске, прочел довольно познавательную, мотивирующую и вдохновляющую книгу “Сафари для жизни“.
Она вызвала довольно теплые чувства внутри после прочтения. И определенно захотелось побывать в Африке!
Поэтому хотел бы поделиться несколькими интересными моментами из нее, что я отметил для себя:
1. Не нужно быть первопроходцем. Достаточно найти того, КТО уже сделал то, чего хочешь ты, либо очень похожее сделал. Человек по своей природе - универсальная копировальная машина
2. Постоянно искать своих КТО. Постоянно учиться чему-то новому
3. Делать все возможное от тебя. После чего можно не переживать о результате в будущем, ибо ты сделал максимум своих возможностей
4. Чтобы понять свои желания, задай себе вопрос:
Чем бы ты занимался, если бы не было никаких ограничений? (деньги, не в той стране/времени родился)
5. У каждого свои испытания и уроки жизни. Не стоит их менять или помочь решить. Человек сам должен пройти через них и все понять
6. Забивать мяч в футбольные ворота, когда никого нет - может и доставит удовольствие, но лишь на несколько попаданий.
Затем - это просто наскучит.
Гораздо интереснее, когда на поле есть и защитник, которого нужно обойти, и вратарь!
То же самое и в жизни - без испытаний, она будет казаться простой, не интересной и скучной
P.S. Книга довольно коротенькая, поэтому за вечер можно спокойно осилить
#dmdev_top_books
Находясь в отпуске, прочел довольно познавательную, мотивирующую и вдохновляющую книгу “Сафари для жизни“.
Она вызвала довольно теплые чувства внутри после прочтения. И определенно захотелось побывать в Африке!
Поэтому хотел бы поделиться несколькими интересными моментами из нее, что я отметил для себя:
1. Не нужно быть первопроходцем. Достаточно найти того, КТО уже сделал то, чего хочешь ты, либо очень похожее сделал. Человек по своей природе - универсальная копировальная машина
2. Постоянно искать своих КТО. Постоянно учиться чему-то новому
3. Делать все возможное от тебя. После чего можно не переживать о результате в будущем, ибо ты сделал максимум своих возможностей
4. Чтобы понять свои желания, задай себе вопрос:
Чем бы ты занимался, если бы не было никаких ограничений? (деньги, не в той стране/времени родился)
5. У каждого свои испытания и уроки жизни. Не стоит их менять или помочь решить. Человек сам должен пройти через них и все понять
6. Забивать мяч в футбольные ворота, когда никого нет - может и доставит удовольствие, но лишь на несколько попаданий.
Затем - это просто наскучит.
Гораздо интереснее, когда на поле есть и защитник, которого нужно обойти, и вратарь!
То же самое и в жизни - без испытаний, она будет казаться простой, не интересной и скучной
P.S. Книга довольно коротенькая, поэтому за вечер можно спокойно осилить
#dmdev_top_books
🔥26👍21👏2🤔1
Старая поговорка
Нужно писать код самому!
Cкажи мне, и я забуду.PS. Оказывается, это давно известно, что даже если помнишь все, что я говорю в своих курсах - этого все равно не достаточно для понимания материала.
Покажи, и я запомню.
Дай мне сделать, и я пойму.
Нужно писать код самому!
🔥56👍9❤3👏1
Не прошло и 20+ лет прежде чем я наконец-то понял суть грамматики английского языка.
В который раз убеждаюсь, что учиться правильно с самого начала - в разы проще,
чем учиться неправильно и переучиваться после.
Самое печальное, что почему-то в школах, универе, групповых курсах и даже репетиторстве 1 на 1
(в общем, через что я только ни проходил при изучении английского) - везде используют ложное представление грамматики английского языка.
Меня всегда смущали эти Tenses, и почему никто не может сказать точное их количество: 16? 18? 20?
Я был почему-то уверен, что должно быть что-то вроде Java Core, только при изучении не языков программирования, а человеческих.
А эти Tenses не нужны от слова совсем!
И вот я наконец-то на этой неделе набрел на книгу, которая просто открыла мне глаза.
Я прочел ее залпом за несколько дней. И почему-то уверен, что она вам тоже очень зайдет!
Как говорится, лучше поздно, чем никогда :)
Ссылка на книгу тут
#dmdev_top_books
В который раз убеждаюсь, что учиться правильно с самого начала - в разы проще,
чем учиться неправильно и переучиваться после.
Самое печальное, что почему-то в школах, универе, групповых курсах и даже репетиторстве 1 на 1
(в общем, через что я только ни проходил при изучении английского) - везде используют ложное представление грамматики английского языка.
Меня всегда смущали эти Tenses, и почему никто не может сказать точное их количество: 16? 18? 20?
Я был почему-то уверен, что должно быть что-то вроде Java Core, только при изучении не языков программирования, а человеческих.
А эти Tenses не нужны от слова совсем!
И вот я наконец-то на этой неделе набрел на книгу, которая просто открыла мне глаза.
Я прочел ее залпом за несколько дней. И почему-то уверен, что она вам тоже очень зайдет!
Как говорится, лучше поздно, чем никогда :)
Ссылка на книгу тут
#dmdev_top_books
👍37🥰2🤔2👎1
В тему изучения языков...
Думаю, тут все знают с чего нужно начинать и продолжать изучения Java? 😁
#dmdev_mems
Думаю, тут все знают с чего нужно начинать и продолжать изучения Java? 😁
#dmdev_mems
😁36👍6🔥4👎1
Визуализация
Мне всегда было гораздо сложнее воспринимать информацию на словах, нежели когда та же самая информация излагалась с помощью картинок и диаграмм. По этой причине, чем более сложную тему я рассказываю на курсах dmdev, тем больше и чаще я прихожу к помощи визуализации.
Вот как на картинке - жизненный цикл бинов в Spring.
И тут оказалось, что это на самом деле научно доказанный факт!
Человек просто тратит гораздо больше энергии на представление чего-то нового у себя в голове, ибо мы всегда мыслим образами.
А значит, если помочь нашему мозгу в этом, то он будет больше тратить энергии на понимание и усвоение информации. Как раз то, что нужно!
Поэтому я не жалею тратить часть своего времени на визуализацию, когда необходимо что-то объяснить коллегам на работе, на курсах dmdev или любому другому человеку.
PS. Кстати, для визуализации я использую приложение Lucidchart
Мне всегда было гораздо сложнее воспринимать информацию на словах, нежели когда та же самая информация излагалась с помощью картинок и диаграмм. По этой причине, чем более сложную тему я рассказываю на курсах dmdev, тем больше и чаще я прихожу к помощи визуализации.
Вот как на картинке - жизненный цикл бинов в Spring.
И тут оказалось, что это на самом деле научно доказанный факт!
Человек просто тратит гораздо больше энергии на представление чего-то нового у себя в голове, ибо мы всегда мыслим образами.
А значит, если помочь нашему мозгу в этом, то он будет больше тратить энергии на понимание и усвоение информации. Как раз то, что нужно!
Поэтому я не жалею тратить часть своего времени на визуализацию, когда необходимо что-то объяснить коллегам на работе, на курсах dmdev или любому другому человеку.
PS. Кстати, для визуализации я использую приложение Lucidchart
👍52🥰2👎1
Code Review is coming back
Кажется, пришло время очередного Code Review!
Как вы на это смотрите?
Кажется, пришло время очередного Code Review!
Как вы на это смотрите?
Anonymous Poll
25%
Круто! Хочу, чтобы ты отревьювил мой код!
70%
Хочу, но только как зритель и наблюдатель
5%
Не хочу, не интересно
👍29🔥9❤2👎2
P.S. Для тех, кто не в теме, оставляю ссылку на предыдущие выпуски "Code Review"