Найти в Дзене
Закреплено автором
road_to_android
Концепция самостоятельного обучения.
1 год назад
Сравнение методов обучения. Я не преподователь и к образованию не имею отношения. Просто делюсь своими мыслями. Возьмем классическую схему обучения, где знания преподносятся линейно, по мере увеличения сложности. В программировании мы сперва узнаем о переменных, их типах, юю и о действиях с переменными. Вроде бы все логично. Далее, по мере усложнения, нам расскажут о циклах и ветвлениях, массивах данных, классах и их видах. Методах и способах их использования. Посвятят в ООП и т.д. Все учебники, которые доводилось мне видеть, построины примерно схожим образом. Да, я своевременно и последовательно узнаю все больше новых вещей, но эти вещи остаются "синтетическими'. Они сами по себе. Мне приходилось сидеть и выдумывать сценарии использования тех либо иных инструментов, при этом не имея представления о том, как на самом деле и для чего их применяют. У меня нет опыта разработки и решения задач. Нет опыта - нет понимания. В таком формате знания не долго задерживаются в памяти и к ним сложно возвращаться. Что стало происходить, когда я решил сменить подход и попробовать новую, для меня методику?? Сперва я решил узнать с чего вообще начать и наткнулся на несколько материалов по "Основам программирования". Там я прочитал о том что такое алгоритмы и с чем их едят. Не сильно во все углублялся, но даже так узнал, что для реализации алгоритмов нужны ветвления и циклы. Немного изучив ветвления и циклы я пришел к переменным и их типам. Операции сложения, вычитания, умножения, конкатенация строк, сравнение... это пришло как-то само собой. Я прошел практически такой же путь, как и по учебнику. Но знания теперь, не просто как-то отложились в памяти, а связаны друг с другом. Я получил простые и понятные связи. Могу по этим связям "путешествовать" вызывая в памяти связанные с определенным вопросом моменты. Да еще и кучу сопутствующей информации почерпнул, которой в учебнике не будет. Лично для меня преимущества выбранного подхода неоспоримы. И надеюсь продемонстрировать результаты в ближайшем будущем. Программирование - это про практику, а у меня, в основном, болтология. Надо исправляться:))
1 год назад
Кулинарный ассистент. День 002 Kotlin Kotlin -основной инструмент, которым предстоит пользоваться. Стоит начать понимать, что он из себя представляет. Я нарыл последнее издание "Kotlin. Программирование для профессионалов" и надергал оттуда интересных словечек. Null-безопасность и исключения - что-то про безопасность и исключения. Звучит интересно. Вспомним про пост с фабрикой. Определенно нужно исключать не те материалы, либо процессы, если они не предусмотрены или невозможны. Условные конструкции if/else, when, while. Это все про возможность управлять процессами внутри условной фабрики. "Если эти доски едут в засушливые земли, то пропитать их одним составом, иначе - другим. Продолжать пилить бревна до тех пор, пока они не закончатся/пила не затупится/не наступит обеденное время" — все это определенные условия, при выполнении которых что-то будет происходить. Лямбда выражения - что-то на инопланетном. Списки - там много всего, разберемся. Объектно-ориентированное программирование — это концепция и она скорее о том, как языком пользоваться, а не о самом языке. Там куча понятий таких, как Классы, объекты, инкапсуляция, наследование, полиморфизм. Так с ходу больше ничего интересного не попалось. Либо оглавление кривое у электронной книги, либо я балбес. Однако!! Двигаясь дальше по-своему пути и столкнувшись с определенными терминами - я банально уже знаю, что мне может пригодиться, где это искать. и с чем вообще имею дело. Успехов!))
1 год назад
Кулинарный ассистент. День 001 И буквально сразу сталкиваюсь с вот такой вот проблемой. Это дорожная карта android разработчика и просто чье-то представление о том, как стоит учиться, чтобы доучиться. Каламбур какой-то)) Согласно методике обучения предложенной Джастином Сонгом, мне предстоит "переработать" эту дорожную карту под себя. Первый этап — это создать словарь интересных мне терминов. Но сперва вот в чем стоит разобраться. Java и Kotlin - языки программирования, на которых пишутся приложения под Android. Выбор достаточно очевиден. Учим Kotlin - большинство современных инструментов разработки на Android работают с Kotlin и не работают с Java. Уметь читать и понимать то, что написано на Java - большинство библиотек все еще написано на этом языке. С тем на каком языке доносить свою волю исполнителю - определились. Далее, оказывается, что у меня есть целых два способа рисовать интерфейс в своих приложениях. Первый, XML-разметка - штука, которая последние лет 15, если не больше, а значит, что большинство приложений в мире написаны с помощью этой разметки. Даже больше - XML продолжают и будут продолжать использовать еще какое-то время. Но и здесь есть нюанс. Открываем официальный сайт для разработчиков и смотрим за что топят в Google. А там топят за новый подход к созданию интерфейсов - Jetpack Compose. Это библиотека, реализующая декларативный способ "рисования" интерфейсов. Якобы оно проще, удобнее, быстрее и банально круче XML. Решено! Учим Compose. XML стоит просто понимать и более-менее разбираться, чтобы, столкнувшись не ужаснуться. Таком образом я буквально отсекаю огромный пласт информации, который, по крайней мере сейчас, для меня не очень актуален и не требует углубленного изучения. P.S. Подобные посты — это просто мои размышления и обсуждение возникших проблем и вопросов. Думаю, они будут выходить регулярно, но без строгого графика. С другой стороны - статьи. Каждая статья будет решать какой-либо возникший вопрос или отображать прогресс и процесс обучения. Статьи будут выходить пару раз в неделю.
1 год назад
Программа — это завод! Существует четкое определение того, что такое программа. "Программа в программировании — это последовательность инструкций, предназначенная для исполнения устройством управления вычислительной машины. Обычно образ программы хранится в виде исполняемого модуля (отдельного файла или группы файлов)" - и как бы понятно, и как бы не очень. Представим не большое производство! На это производство поступает некий материал. Этот материал там хранится. Затем его берут и каким-то образом обрабатывают. Например, берут бревна и перерабатывают их в какие-то там доски. Доски снова хранятся на внутреннем складе. Затем эти доски обрабатывают различными химикатами для того, чтобы подготовить их к определенной среде. Одна партия поедет в холодный климат, а другая в жаркий и сырой. Для этих партий понадобится различная пропитка и обработка. *Вообще ничего не понимаю в подобных вещах:)) * Затем обработанные доски могут снова отправиться на склад, отправиться заказчику, быть уничтоженными и переработанными из-за брака и много чего еще. И все это вполне может быть программой с названием "Деревообрабатывающая фабрика". Человек, который проектирует "фабрику" отвечает за то, как и где будет обрабатываться "древесина" и есть программист. Вместо бревен и досок у нас данные! Совершенно любые данные, с которыми мы решим работать. Калькулятор работает с числами. Навигатор - да тоже с числами. Фотошоп - с картинками, но, по сути, тоже числами))) Что может программа?? Принимать, хранить, обрабатывать и выдавать какие-либо данные. Разница между реальной фабрикой и программой в том, что в программе все "процессы обработки древесины" инструкции строго определены по порядку, количеству и имеют всегда предсказуемый и определенный результат. Если результат не тот, на который рассчитывает программист, то чаще всего мы имеем дело с багом, который нужно устранить. И данные тоже строго прописаны. Программа не будет работать с данными, работа с которыми не предусмотрена. Не получится вместо бревен привести стулья и сказать - "это тоже дерево"! Проект, который я начал так же должен будет уметь принимать, хранить, как-то взаимодействовать и выдавать информацию пользователю. Нужно будет организовать хранение текстовой информации (описание рецептов, списков покупок и т.д.) Затем организовать хранение картинок, которые наверняка захотят добавлять. Как-то все это подружить. Затем могут появиться вещи, которые вообще с данными, что мы получили, не взаимодействуют. Таймер, например. Не менее важно придумать, как все это будет выглядеть и демонстрироваться пользователю. Забот вагон и целая тележка, а я еще даже не начал. Увидимся!))
1 год назад
Изучая программирования - пиши проект
Привет! Я успел убедиться в том, что для погружения в какой-либо навык необходима практика. Этим летом я заглянул к своему знакомому, который живет в частном доме и зарабатывает на жизнь изделиями из металла. Сделать лавку, каркас крыши, макет Эйфелевой башни 6 метров высотой, качели…и все, что угодно — это к нему. Во дворе у него целая мастерская. Когда я попросил его научить меня варить. Он не дал мне книг, курсов по правильной сварке, руководств - он дал мне задание и инструменты. "На делай!" - и ушел заниматься своими делами...
1 год назад
Концепция самостоятельного обучения.
"Программирование, по своей сути, является практически полностью прикладным видом деятельности. По крайней мере это справедливо, когда речь идет о том, чтобы что-то создать" - подобное утверждение я встречал у множества различных состоявшихся программистов, который склонен считать достойными специалистами. Языки программирования, библиотеки, фреймворки, среды разработки и многое другое - по своей сути просто инструменты. Такие же инструменты, как столовые приборы, кастрюли, сковороды, отвертки и пассатижи, ручки и карандаши...
1 год назад
Привет! Расскажу немного о том, что будет здесь происходить. Канал, целиком и полностью, будет посвящен изучению программирования в целом и разработке под Android в частности. На данный момент мои знаний в этой области можно охарактеризовать примерно так "Знаю куда нажать и получить определенный результат." В сети огромной множество гайдов, рекомендаций, советов и дорожных карт о том, как учиться, чему учиться и почему учиться. Цель и задача этого канала на уровне полностью самостоятельного обучения отразить мой путь к Android разработчику. Этот канал — это дневник с моими размышлениями на тему, конспект, шпаргалка и все, что угодно. Это не гайд, руководство или обучающий курс. Я искренне был бы рад учить, но для этого нужно обладать квалификацией. Немного обо мне. Мне 29 лет и прежде, чем взяться за освоение программирования, я прошел не самый интересный жизненный путь. Мечтой податься в программисты я загорелся еще в школе, когда самым увлекательным предметом, для меня, оказалась информатика. По различным причинам, курс информатики на 5 лет, я прошел всего за 2 года. Мне дико понравилось! Почему android разработка?? Конечно, есть направления попроще. Вероятно, есть направления, которые, даже подошли бы мне больше, но первое, что мне приходило в голову во время выбора направления - желание делать вещи, которые будут упрощать жизнь людям и делать ее комфортнее. Что может быть лучше, чем запихнуть свое творение в смартфон, который есть у каждого??? Даже этот канал создан с всего 2 целями. 1. Это, возможно, помочь людям освоить что-то новое и показать, что процесс не так уж и страшен. Заведомо знаю, что денег этот канал, скорее всего, не принесет. 2. Создать для себя источник дополнительной мотивации, через ответственность перед читателями. Для самостоятельного освоения чего-либо нужна стальная дисциплина - я ею не сказать, что бы особо богат. С чего вообще начну??? У любого учебного заведения есть неоспоримое преимущество перед самостоятельным, домашним, изучением. Это готовая программа и план ее изучения. Программы у меня нет, но план или даже методику намудрить можно. Первая статья на этом канале будет посвящена методике изучения программирования. Различных методик много, но я, кажется, нашел наиболее мне подходящую. Это один из множества путей, по которому можно двигаться. Посмотрим куда он меня заведет!
1 год назад