Всегда и во всех дисциплинах и сферах ненавидел подход, при котором на первом этапе всё объясняется на совершенно синтетических, оторванных от реальности примерах. И только спустя какое-то время (и то не всегда) рассказывают, как и где это применять.
🚫Проблема такого подхода для меня в том, что я плохо усваиваю вещи, пока не понимаю их смысла. Я могу заучить, не понимая, но я очень быстро это забуду.
✔️Поэтому со своими менти я следую подходу "Practice first", с самого начала и до конца объясняя всю теорию на примере написания конкретного приложения. Да, я, разумеется, даю необходимые ссылки на статьи и книги для изучения, но мы сразу применяем изученное, реализовывая очередную фичу в приложении. Так приложение постепенно обрастает "мясом", а в мозге менти всё складывается на нужные полочки и закрепляется.
✔️В самостоятельном обучении я советую следовать тому же принципу. Например – не пытайтесь просто выучить, как устроены корутины, не применяя их. Лучше придумайте несколько ситуаций, при которых в приложении понадобятся разные кейсы с корутинами, сначала попроще, потом посложнее. Попробуйте синхронизировать корутины между собой, позапускать асинхронно из разных мест и так далее.
Не понимаете смысла многострадальных inline и reified? Попробуйте написать экстеншн с дженериком
fun Context?.checkInstance(): T
который будет проверять, является ли этот Context типом T, если да – возвращать его, а если нет – кидать эксепшн.
Так информация усвоится быстрее, да и на собеседовании, если вы ответите на вопрос, исходя из своей практики, это подействует на интервьюера куда сильнее, чем академический ответ из книжки.
#android #лайфхаки
@andrdevnotes | androidmentor.ru