Что значит программировать, и почему многие не понимают этот процесс
Приветствую, этот пост - небольшое дополнение к посту про уч.материалы. Точнее, к 2 пунктам из того поста, я особо не акцентировал на них внимание(пост был о другом), но именно они, могут стать решением, чуть ли не самой большой проблемы на этапе изучения программирования.
Проблема - непонимание самого процесса программирования. Мне кажется, она является чертой, определяющей получится ли в разработку или нет. Именно за ней, скрывается ситуация, когда учебный материал пройден, но изучивший абсолютно не умеет программировать, т.е. писать программы, решающие какие либо задачи, выходящие за пределы типовых описанных в уч. материале.
Утрированный пример - есть менеджер, абсолютно не понимающий в разработке, и при этом стоящий над разработчиком(так быть, разумеется, не должно). Как он видит процесс работы программиста?
Программист смотрит документацию(он что ее не выучил?), это еще что, он буквально гуглит какие то решения(точно ничего не знает) и смотрит чужой код(ну это уже за гранью наглости), да и к тому же в конце его всегда ждут ошибки(и почему его вообще взяли?) и вообще пол дня сидит, бороду чешет уставившись в экран.
Очевиден сюр подобных умозаключений. Понятное дело, никто так не думает, и менеджеров таких нет, но если уменьшить градус бреда, то так ли далек этот утрированный пример от отношения к разработке за пределами it?(напомню, новички именно за этими пределами)
Программирование, безусловно, техническая профессия(наверно даже, самая техническая), однако, описанное выше не особо ложится на представление о чем строгом и точном. К примеру, вы бы точно не хотели лететь на самолете который разрабатывают в расчете сопровождения после выпуска, будут допиливать и исправлять ошибки, после каждого полета.
Довольно интересно наблюдать, как сами разработчики пытаются подобрать понятную метафору для этого процесса, к примеру, нередки сравнения с творчеством(если хочется покопаться в теме метафор, то довольно интересно это описывает Макконнелл, во 2 главе “Совершенного кода”)
Получается интересный набор - странные свойства процесса, сравнения от которых вопросов становится лишь больше, но при этом невероятная эффективность и производительность(даже менеджер из утрированного примера должен это заметить).
При этом, со стороны программистов, эти свойства, эти описания и вообще сам процесс настолько очевидны/логичны/правильны, что об этом как будто бы, нет смысла даже говорить.
Немного про сам процесс
Важно понять, программирование - не выученный синтаксис языка, программирование - умение решать задачи. Не решение задачек из книжки, или курса, а умение решать свои задачи с помощью кода(немного отдает пафосом - но это, про то как думать в некой сложной системе, недостаточно просто ее выучить).
Программист как бы постоянно выстраивает структуру будущей программы, выставляет какие то чекпоинты и идет по ним, создавая и заставляя эти куски функционировать как ему надо, можно даже не знать, как в точности, сделать определенный кусок, но важно понимать как его сделать.
Сложность - в умении выстроить эту структуру, это и отличает хорошего программиста, он куда более элегантен в своих решениях, но сам метод одинаковый. С одинаковыми побочками - вне зависимости от уровня, разработчик так же вылавливает и исправляет ошибки, и так же может посмотреть какое то решение, но повторюсь, хороший - делает это куда более эффективно.
Именно такой подход и порождает “странные” свойства самого процесса, по идее, именно на нем и стоит сосредоточиться. Но вместо этого, учебные материалы зачастую берут другой вектор - вместо того, чтобы учить программированию, они зачастую учат просто синтаксису(думаю это очевидно, но на всякий случай напишу, я не говорю о том, что учить синтаксис не нужно, это просто нелепо).
Зачастую, самому процессу программирования уделяют(если вообще уделяют) очень мало внимания. Нопо сути, яп - лишь инструмент, можно сказать переменная, а сам процесс программирования - постоянная.
Приветствую, этот пост - небольшое дополнение к посту про уч.материалы. Точнее, к 2 пунктам из того поста, я особо не акцентировал на них внимание(пост был о другом), но именно они, могут стать решением, чуть ли не самой большой проблемы на этапе изучения программирования.
Проблема - непонимание самого процесса программирования. Мне кажется, она является чертой, определяющей получится ли в разработку или нет. Именно за ней, скрывается ситуация, когда учебный материал пройден, но изучивший абсолютно не умеет программировать, т.е. писать программы, решающие какие либо задачи, выходящие за пределы типовых описанных в уч. материале.
Утрированный пример - есть менеджер, абсолютно не понимающий в разработке, и при этом стоящий над разработчиком(так быть, разумеется, не должно). Как он видит процесс работы программиста?
Программист смотрит документацию(он что ее не выучил?), это еще что, он буквально гуглит какие то решения(точно ничего не знает) и смотрит чужой код(ну это уже за гранью наглости), да и к тому же в конце его всегда ждут ошибки(и почему его вообще взяли?) и вообще пол дня сидит, бороду чешет уставившись в экран.
Очевиден сюр подобных умозаключений. Понятное дело, никто так не думает, и менеджеров таких нет, но если уменьшить градус бреда, то так ли далек этот утрированный пример от отношения к разработке за пределами it?(напомню, новички именно за этими пределами)
Программирование, безусловно, техническая профессия(наверно даже, самая техническая), однако, описанное выше не особо ложится на представление о чем строгом и точном. К примеру, вы бы точно не хотели лететь на самолете который разрабатывают в расчете сопровождения после выпуска, будут допиливать и исправлять ошибки, после каждого полета.
Довольно интересно наблюдать, как сами разработчики пытаются подобрать понятную метафору для этого процесса, к примеру, нередки сравнения с творчеством(если хочется покопаться в теме метафор, то довольно интересно это описывает Макконнелл, во 2 главе “Совершенного кода”)
Получается интересный набор - странные свойства процесса, сравнения от которых вопросов становится лишь больше, но при этом невероятная эффективность и производительность(даже менеджер из утрированного примера должен это заметить).
При этом, со стороны программистов, эти свойства, эти описания и вообще сам процесс настолько очевидны/логичны/правильны, что об этом как будто бы, нет смысла даже говорить.
Немного про сам процесс
Важно понять, программирование - не выученный синтаксис языка, программирование - умение решать задачи. Не решение задачек из книжки, или курса, а умение решать свои задачи с помощью кода(немного отдает пафосом - но это, про то как думать в некой сложной системе, недостаточно просто ее выучить).
Программист как бы постоянно выстраивает структуру будущей программы, выставляет какие то чекпоинты и идет по ним, создавая и заставляя эти куски функционировать как ему надо, можно даже не знать, как в точности, сделать определенный кусок, но важно понимать как его сделать.
Сложность - в умении выстроить эту структуру, это и отличает хорошего программиста, он куда более элегантен в своих решениях, но сам метод одинаковый. С одинаковыми побочками - вне зависимости от уровня, разработчик так же вылавливает и исправляет ошибки, и так же может посмотреть какое то решение, но повторюсь, хороший - делает это куда более эффективно.
Именно такой подход и порождает “странные” свойства самого процесса, по идее, именно на нем и стоит сосредоточиться. Но вместо этого, учебные материалы зачастую берут другой вектор - вместо того, чтобы учить программированию, они зачастую учат просто синтаксису(думаю это очевидно, но на всякий случай напишу, я не говорю о том, что учить синтаксис не нужно, это просто нелепо).
Зачастую, самому процессу программирования уделяют(если вообще уделяют) очень мало внимания. Нопо сути, яп - лишь инструмент, можно сказать переменная, а сам процесс программирования - постоянная.
Именно поэтому, многие разрабы скажут, что абсолютно неважно с какого языка начнешь учить, и могут даже предложить достаточно экзотический вариант(сразу на ум приходит легендарная книга из 80-ых, написанная в MIT, где яп - lisp), главное - понять сам процесс.
Как же понять этот самый процесс?
Вернемся к тем 2-ум пунктам из поста про уч.материалы, но перед этим, пару слов о питоне и почему вообще, это один из лучших вариантов первого япа.
Он простой, при этом позволяет очень быстро писать сложные программы или их рабочие прототипы, т.е. как можно быстрее прийти к тому самому процессу программирования. Также можно ограничить круг задач, тем самым еще ускорив этот переход(в посте про уч. материалы - все что связано с автоматизацией рутины(п.1.)).
1. Чтобы понять процесс программирования, для начала надо его увидеть.(увидеть процесс программирования и досконально понять код - разные вещи, нам нужно именно само мышление).
https://www.youtube.com/watch?v=vpyWbpdk3Xs серия видео, где показан именно тот самый процесс мышления при написании программы.
Будет позитивной практикой, время от времени пересматривать и отмечать что-то новое, трекать свой прогресс. Можно считать видео ориентиром, когда подобный способ понят, понят и сам процесс программирования.
2. https://stepik.org/course/4519 курс в котором учат гуглить, искать на StackOverflow, читать документацию, и юзать библиотеки. Это тот самый подход, про такую - трушную практику. В каком то смысле, здесь учат делать, как в видео выше.
Забавная штука насчет этого курса, пару раз видел реакцию, из разряда - “какой ужас, в нем ищут ответы на StackOverflow”. Это идеально иллюстрирует то самое “непонимание процесса” из начала поста.
Программирование всегда про рациональный подход
Есть еще один важный момент, касаемый странных свойств процесса - программирование всегда про рациональность.
Лучше раньше об этом узнать(и принять), отпадет куча вопросов и сохранится куча нервов. Рациональность - в буквальном смысле слова, всегда выбираем более выгодный вариант.
Многих новичков смущает, что в тех же ЯПах есть проблемы/неудобства, о которых все знают(и обсуждают), но, кажется, ничего по этому поводу не делают. Во-первых - это не так, ЯПы постоянно прогрессируют/исправляются, иногда плавно, иногда весьма радикально(когда Python разошелся на 2.x и 3.x версии). Во-вторых, не всегда исправление - рациональный вариант, к примеру, если оно коснется чего то глубокого, после него придется затратить кучу ресурсов(переписать огромное количество кода), учитывая 'наслоение' технологий друг на друга, это может, стать невыполнимой задачей.
Если в программировании, на первый взгляд, что-то кажется не рациональным, стоит взглянуть на всю систему в целом, с большой вероятностью, из виду упущен какой то важный момент.
К примеру, существование какой то распространенной практики всегда рационально, иначе она бы не распространилась. Возьмем те же, стандарты оформления кода(стиля), крайне удобная штука, но видно это будет, когда начнется работа с большим количеством кода(особенно чужого).
Как же понять этот самый процесс?
Вернемся к тем 2-ум пунктам из поста про уч.материалы, но перед этим, пару слов о питоне и почему вообще, это один из лучших вариантов первого япа.
Он простой, при этом позволяет очень быстро писать сложные программы или их рабочие прототипы, т.е. как можно быстрее прийти к тому самому процессу программирования. Также можно ограничить круг задач, тем самым еще ускорив этот переход(в посте про уч. материалы - все что связано с автоматизацией рутины(п.1.)).
1. Чтобы понять процесс программирования, для начала надо его увидеть.(увидеть процесс программирования и досконально понять код - разные вещи, нам нужно именно само мышление).
https://www.youtube.com/watch?v=vpyWbpdk3Xs серия видео, где показан именно тот самый процесс мышления при написании программы.
Будет позитивной практикой, время от времени пересматривать и отмечать что-то новое, трекать свой прогресс. Можно считать видео ориентиром, когда подобный способ понят, понят и сам процесс программирования.
2. https://stepik.org/course/4519 курс в котором учат гуглить, искать на StackOverflow, читать документацию, и юзать библиотеки. Это тот самый подход, про такую - трушную практику. В каком то смысле, здесь учат делать, как в видео выше.
Забавная штука насчет этого курса, пару раз видел реакцию, из разряда - “какой ужас, в нем ищут ответы на StackOverflow”. Это идеально иллюстрирует то самое “непонимание процесса” из начала поста.
Программирование всегда про рациональный подход
Есть еще один важный момент, касаемый странных свойств процесса - программирование всегда про рациональность.
Лучше раньше об этом узнать(и принять), отпадет куча вопросов и сохранится куча нервов. Рациональность - в буквальном смысле слова, всегда выбираем более выгодный вариант.
Многих новичков смущает, что в тех же ЯПах есть проблемы/неудобства, о которых все знают(и обсуждают), но, кажется, ничего по этому поводу не делают. Во-первых - это не так, ЯПы постоянно прогрессируют/исправляются, иногда плавно, иногда весьма радикально(когда Python разошелся на 2.x и 3.x версии). Во-вторых, не всегда исправление - рациональный вариант, к примеру, если оно коснется чего то глубокого, после него придется затратить кучу ресурсов(переписать огромное количество кода), учитывая 'наслоение' технологий друг на друга, это может, стать невыполнимой задачей.
Если в программировании, на первый взгляд, что-то кажется не рациональным, стоит взглянуть на всю систему в целом, с большой вероятностью, из виду упущен какой то важный момент.
К примеру, существование какой то распространенной практики всегда рационально, иначе она бы не распространилась. Возьмем те же, стандарты оформления кода(стиля), крайне удобная штука, но видно это будет, когда начнется работа с большим количеством кода(особенно чужого).
Этот пост - содержание/меню канала. Мне не очень нравится, как выглядят такие посты в закрепе канала, поэтому раз в месяц будут ссылаться на него(примерно с тем же интервалом он будет пополняться).
upd: 08.05.2021
у основных постов появилась видеоверсия на youtube
заново запущена серия - ‘план изучения программирования’
добавлены новые посты
Основы:
Python, основы | что читать/смотреть | как правильно использовать уч.материалы - https://t.me/tobeprog/29
upd. Видеоверсия - https://youtu.be/cqyluq__UOU
Что значит программировать, почему многие не понимают этот процесс(и как эту проблему решить) - https://t.me/tobeprog/32
upd. Видеоверсия - https://youtu.be/jXyFCLnN06c
upd. Видео Самый ПОЛЕЗНЫЙ Github репозиторий| создание с нуля СЛОЖНОЙ технологии https://youtu.be/000-NvdYPMg
upd. Где найти хороший roadmap/план изучения/список учебных материалов - https://t.me/tobeprog/51
Посты про проекты(идеи для проектов):
Как делать интересные проекты из скучных - https://t.me/tobeprog/13
Про цепи Маркова (и немного про то, как делать учебные проекты) - https://t.me/tobeprog/22
upd. Roguelike игры - https://t.me/tobeprog/38
Серия постов, с планом по изучению программирования
upd. (Видеоверсия, поскольку серия запущена заново и произошел сдвиг нумерации(сразу несколько частей в одном видео), то это теперь “часть 1”)
План изучения программирования | Python | Часть 1 - https://youtu.be/J8MLsG1_bu8
Прошлая версия:
Первая часть - ‘плана изучения программирования’. - https://t.me/tobeprog/16
Вторая часть - ‘плана изучения программирования’. - https://t.me/tobeprog/18
Небольшие посты(к примеру, в которых рассказывается об интересных уч.материалах), добавлять не буду, для них есть хэштеги.
upd: 08.05.2021
у основных постов появилась видеоверсия на youtube
заново запущена серия - ‘план изучения программирования’
добавлены новые посты
Основы:
Python, основы | что читать/смотреть | как правильно использовать уч.материалы - https://t.me/tobeprog/29
upd. Видеоверсия - https://youtu.be/cqyluq__UOU
Что значит программировать, почему многие не понимают этот процесс(и как эту проблему решить) - https://t.me/tobeprog/32
upd. Видеоверсия - https://youtu.be/jXyFCLnN06c
upd. Видео Самый ПОЛЕЗНЫЙ Github репозиторий| создание с нуля СЛОЖНОЙ технологии https://youtu.be/000-NvdYPMg
upd. Где найти хороший roadmap/план изучения/список учебных материалов - https://t.me/tobeprog/51
Посты про проекты(идеи для проектов):
Как делать интересные проекты из скучных - https://t.me/tobeprog/13
Про цепи Маркова (и немного про то, как делать учебные проекты) - https://t.me/tobeprog/22
upd. Roguelike игры - https://t.me/tobeprog/38
Серия постов, с планом по изучению программирования
upd. (Видеоверсия, поскольку серия запущена заново и произошел сдвиг нумерации(сразу несколько частей в одном видео), то это теперь “часть 1”)
План изучения программирования | Python | Часть 1 - https://youtu.be/J8MLsG1_bu8
Прошлая версия:
Первая часть - ‘плана изучения программирования’. - https://t.me/tobeprog/16
Вторая часть - ‘плана изучения программирования’. - https://t.me/tobeprog/18
Небольшие посты(к примеру, в которых рассказывается об интересных уч.материалах), добавлять не буду, для них есть хэштеги.
Готовлю много постов, первые будут уже завтра: библиотеки, идеи для проектов и даже gamedev немного затронем.
Уже некоторое время думал над тем, чтобы попробовать формат видео, кроме того, что это - банально удобно(не читать, а врубить видео на фоне и заниматься своими делами), в будущем я думал попробовать формат стримов(к примеру, я как то писал, что code review в прямом эфире - страшно недооцененный и очень полезный контент).
Сегодня выдалось свободное время - решил запилить, к сожалению, как я не изощрялся, записать хоть сколько нибудь нормальный звук без хорошего микрофона не вышло. Пока микрофон едет ко мне, воспользовался услугами диктора. Само видео - озвучка последнего большого поста.
Это все в рамках такого, скорее эксперимента. Поэтому не нужно к этому относиться серьезно, но все же критика очень приветствуется. Я крайне далек от всей этой ютюбной истории, лепил, что называется по лекалам(к примеру, поставил игру на бэк видео, это странно, но вроде бы все так делают и т.п.).
Небольшая просьба - оцените видео, если не нравится, смело ставьте диз, я точно не обижусь, это наоборот, даст мне понимание нужно ли продолжать всю эту историю с видео.
https://youtu.be/jXyFCLnN06c
Уже некоторое время думал над тем, чтобы попробовать формат видео, кроме того, что это - банально удобно(не читать, а врубить видео на фоне и заниматься своими делами), в будущем я думал попробовать формат стримов(к примеру, я как то писал, что code review в прямом эфире - страшно недооцененный и очень полезный контент).
Сегодня выдалось свободное время - решил запилить, к сожалению, как я не изощрялся, записать хоть сколько нибудь нормальный звук без хорошего микрофона не вышло. Пока микрофон едет ко мне, воспользовался услугами диктора. Само видео - озвучка последнего большого поста.
Это все в рамках такого, скорее эксперимента. Поэтому не нужно к этому относиться серьезно, но все же критика очень приветствуется. Я крайне далек от всей этой ютюбной истории, лепил, что называется по лекалам(к примеру, поставил игру на бэк видео, это странно, но вроде бы все так делают и т.п.).
Небольшая просьба - оцените видео, если не нравится, смело ставьте диз, я точно не обижусь, это наоборот, даст мне понимание нужно ли продолжать всю эту историю с видео.
https://youtu.be/jXyFCLnN06c
YouTube
Что значит ПРОГРАММИРОВАТЬ, почему многие не понимают этот процесс
Канал в телеге - https://t.me/tobeprog
Ссылки из видео:
https://youtu.be/vpyWbpdk3Xs - “Программирование на Python” с канала “Стас Волик”
https://stepik.org/course/4519 - курс со степика "Python для решения практических задач"
Книги:
"Совершенный код"…
Ссылки из видео:
https://youtu.be/vpyWbpdk3Xs - “Программирование на Python” с канала “Стас Волик”
https://stepik.org/course/4519 - курс со степика "Python для решения практических задач"
Книги:
"Совершенный код"…
ursina engine
Простой опенсорсный игровой движок, который может в 3d и к тому же, работает на питоне.
Такие штуки, лучше сразу смотреть в действии. https://youtu.be/DHSRaVeQxIk [англ.]- достаточно подробный туториал, отдельный респект - прежде чем переходить к написанию “клона minecraft”, немного объясняются основы самого движка(для меня загадка, почему подобное не стало правилом хорошего тона во всех туториалах).
Объективно - впечатляет, механика строительства уложенная в 30 строк кода. Эти 30 строк - один из примеров, выложенных самим автором движка, в видео выше его как бы разбирают и дописывают. Другие примеры есть на github, их разбор, а также некоторые технические моменты о движке, можно посмотреть в видео - https://youtu.be/aCpBzdciU0o [англ.]
Вся документация, а также несколько туториалов есть на офф. сайте - https://www.ursinaengine.org/documentation.html
У движка есть канал на ютуб, на нем всего два видео, трейлер движка и показ внутриигрового редактора уровней - https://youtu.be/Zn9aCWyoG-I
Пока, движок не очень известен(как мне кажется, в этом случае, популярность - вопрос времени), и уч. материалов по нему очень мало. В любом случае, он развивается, к тому же проект достаточно интересный, время от времени буду чекать куда все движется.
#gamedev #python
Простой опенсорсный игровой движок, который может в 3d и к тому же, работает на питоне.
Такие штуки, лучше сразу смотреть в действии. https://youtu.be/DHSRaVeQxIk [англ.]- достаточно подробный туториал, отдельный респект - прежде чем переходить к написанию “клона minecraft”, немного объясняются основы самого движка(для меня загадка, почему подобное не стало правилом хорошего тона во всех туториалах).
Объективно - впечатляет, механика строительства уложенная в 30 строк кода. Эти 30 строк - один из примеров, выложенных самим автором движка, в видео выше его как бы разбирают и дописывают. Другие примеры есть на github, их разбор, а также некоторые технические моменты о движке, можно посмотреть в видео - https://youtu.be/aCpBzdciU0o [англ.]
Вся документация, а также несколько туториалов есть на офф. сайте - https://www.ursinaengine.org/documentation.html
У движка есть канал на ютуб, на нем всего два видео, трейлер движка и показ внутриигрового редактора уровней - https://youtu.be/Zn9aCWyoG-I
Пока, движок не очень известен(как мне кажется, в этом случае, популярность - вопрос времени), и уч. материалов по нему очень мало. В любом случае, он развивается, к тому же проект достаточно интересный, время от времени буду чекать куда все движется.
#gamedev #python
YouTube
Creating Minecraft in Python [with the Ursina Engine]
A basic tutorial on how to create Minecraft in Python by using the Ursina Game Engine. This also includes a general introduction to the engine itself.
Timestamps:
0:00 - Intro
1:24 - The basics of Ursina
15:49 - Creating Minecraft style blocks
35:25 - Creating…
Timestamps:
0:00 - Intro
1:24 - The basics of Ursina
15:49 - Creating Minecraft style blocks
35:25 - Creating…
Раз коснулись minecraft в прошлом посте, а следующий о roguelike играх, нельзя не упомянуть о целой группе, очень интересных, но в тоже время сложных задач - процедурной генерации.
Смотрите, с точки зрения игрового процесса, фишка minecraft - в самой механике строительства(ну и очевидно, крафта), но с точки зрения разработки, самое важное и сложное - генерация мира(с этим, к сожалению, у урсины все немного печально, но тут сложно придраться, поскольку сам автор оставляет дисклеймер в коде ‘клона’ игры о том, что решение в данном случае не масштабируется на большую карту).
Чтобы понять в чем состоит сложность, можно ознакомится с решением более простого варианта задачи. Генерация простой карты островов - https://youtu.be/0emj42Bn-_Y [есть автоматический перевод в субтитрах, но он - оставляет желать лучшего]. Даже для такой несложной задачи, уже приходится использовать достаточно сложные метод решения - шум Перлина. И это без 3d, без излишней детализации и т.д. и т.п.
Это точно не история для новичков, тут скорее стык программирования с математикой, но это невероятно интересная область. К тому же она достаточно популярна, можно найти кучу контента на тему, от очень поверхностного в плане кода и математики(но от этого, не менее интересного), до требующих достаточно глубокого знания мат. аппарата.
#gamedev #python
Смотрите, с точки зрения игрового процесса, фишка minecraft - в самой механике строительства(ну и очевидно, крафта), но с точки зрения разработки, самое важное и сложное - генерация мира(с этим, к сожалению, у урсины все немного печально, но тут сложно придраться, поскольку сам автор оставляет дисклеймер в коде ‘клона’ игры о том, что решение в данном случае не масштабируется на большую карту).
Чтобы понять в чем состоит сложность, можно ознакомится с решением более простого варианта задачи. Генерация простой карты островов - https://youtu.be/0emj42Bn-_Y [есть автоматический перевод в субтитрах, но он - оставляет желать лучшего]. Даже для такой несложной задачи, уже приходится использовать достаточно сложные метод решения - шум Перлина. И это без 3d, без излишней детализации и т.д. и т.п.
Это точно не история для новичков, тут скорее стык программирования с математикой, но это невероятно интересная область. К тому же она достаточно популярна, можно найти кучу контента на тему, от очень поверхностного в плане кода и математики(но от этого, не менее интересного), до требующих достаточно глубокого знания мат. аппарата.
#gamedev #python
YouTube
Understanding Simple Perlin Noise - Generating Islands
The colors ended up a little wonky, but this is a quick look at using Perlin Noise to simulate elevation and create your own islands! If you wanted to expand on this project, there is a lot you can do, for example...
- Use another layer of Perlin Noise…
- Use another layer of Perlin Noise…
Roguelike
Игры жанра roguelike абсолютно восхитительны, по сути - это неограниченный полет мысли и фантазии разработчика. Много уникальных проектов, куча настоящих ‘проектов мечты’(работа над которыми может идти годами) и просто интересных идей/реализаций.
И все же, это очень и очень нишевая штука. Первое, что бросается в глаза - графика, которая может не просто не заинтересовать, а скорее даже отпугнуть(но есть и достаточно симпатичные примеры обратного, и с каждым днем их все больше).
С одной стороны - это плохо, с другой - создает сообщество с уникальным уровнем вовлечения. Можно сказать, энтузиасты делают игры для энтузиастов. Отсюда, абсолютно другой подход к созданию этих игр. Этот подход очень хорошо видно в статье, ссылка на которую ниже.
Статья(автор - Josh Ge) о том, как приступить к созданию игр жанра roguelike:
https://www.gridsagegames.com/blog/2018/10/how-to-make-a-roguelike/ - Оригинал
https://habr.com/ru/post/428620/ - Перевод
Разобрано все, от выбора идеи/основной механики/темы, и до указания конкретных инструментов и путей реализации первой игры. Это эталон того, как нужно делать гайды, единственное, что хочется делать после прочтения подобного - отправляться делать свою roguelike.
libtcod - это библиотека для разработки roguelike игр, о ней рассказывается в статье, поэтому добавил такой хэштег
#roguelike #gamedev #libtcod
Игры жанра roguelike абсолютно восхитительны, по сути - это неограниченный полет мысли и фантазии разработчика. Много уникальных проектов, куча настоящих ‘проектов мечты’(работа над которыми может идти годами) и просто интересных идей/реализаций.
И все же, это очень и очень нишевая штука. Первое, что бросается в глаза - графика, которая может не просто не заинтересовать, а скорее даже отпугнуть(но есть и достаточно симпатичные примеры обратного, и с каждым днем их все больше).
С одной стороны - это плохо, с другой - создает сообщество с уникальным уровнем вовлечения. Можно сказать, энтузиасты делают игры для энтузиастов. Отсюда, абсолютно другой подход к созданию этих игр. Этот подход очень хорошо видно в статье, ссылка на которую ниже.
Статья(автор - Josh Ge) о том, как приступить к созданию игр жанра roguelike:
https://www.gridsagegames.com/blog/2018/10/how-to-make-a-roguelike/ - Оригинал
https://habr.com/ru/post/428620/ - Перевод
Разобрано все, от выбора идеи/основной механики/темы, и до указания конкретных инструментов и путей реализации первой игры. Это эталон того, как нужно делать гайды, единственное, что хочется делать после прочтения подобного - отправляться делать свою roguelike.
libtcod - это библиотека для разработки roguelike игр, о ней рассказывается в статье, поэтому добавил такой хэштег
#roguelike #gamedev #libtcod
Grid Sage Games
How to Make a Roguelike - Cogmind / Grid Sage Games
A comprehensive primer on how to get started with roguelike development, a text version of my talk at Roguelike Celebration 2018.
Перевел еще пару постов в видеоформат:
Python, основы | что читать/смотреть | как правильно использовать уч.материалы
https://youtu.be/cqyluq__UOU
Самый ПОЛЕЗНЫЙ Github репозиторий| создание с нуля СЛОЖНОЙ технологии
https://youtu.be/000-NvdYPMg
Python, основы | что читать/смотреть | как правильно использовать уч.материалы
https://youtu.be/cqyluq__UOU
Самый ПОЛЕЗНЫЙ Github репозиторий| создание с нуля СЛОЖНОЙ технологии
https://youtu.be/000-NvdYPMg
YouTube
Python, основы | что читать/смотреть | как правильно использовать уч.материалы
Канал в телеге - https://t.me/tobeprog
----------------
Книги:
Автоматизация рутинных задач с помощью Python, Эл Свейгарт
Изучаем Python, Марк Лутц
Изучаем Python. Программирование игр, визуализация данных, веб-приложения, Эрик Мэтиз
Программирование на…
----------------
Книги:
Автоматизация рутинных задач с помощью Python, Эл Свейгарт
Изучаем Python, Марк Лутц
Изучаем Python. Программирование игр, визуализация данных, веб-приложения, Эрик Мэтиз
Программирование на…
Перевод - https://habr.com/ru/company/macloud/blog/551838/
Оригинал - https://jacobian.org/2021/apr/7/embrace-the-grind/
Вчера в топе хабра был перевод совсем небольшой, но оттого не менее замечательной статьи[автор - Jacob Kaplan-Moss], ссылка на которую выше.
Буду время от времени постить ссылки на такие материалы, из категории - ‘лучше узнать об этом раньше’.
#habr #перевод
Оригинал - https://jacobian.org/2021/apr/7/embrace-the-grind/
Вчера в топе хабра был перевод совсем небольшой, но оттого не менее замечательной статьи[автор - Jacob Kaplan-Moss], ссылка на которую выше.
Буду время от времени постить ссылки на такие материалы, из категории - ‘лучше узнать об этом раньше’.
#habr #перевод
Хабр
Программирование — это скучная магия
Есть один карточный трюк, который запомнился мне навсегда. Вот его краткое описание: доброволец выбирает карту и запечатывает её в конверт. Затем фокусник предлагает добровольцу выбрать чай. У него...
Сейчас будет немножко пафосно, сорян, изначально философия этого канала - быть полезным. Я как то писал, что меня страшно раздражают каналы “где эдакая рефлексия о программировании переплетенная с полу мотивационным бредом.”
На канале про изучение программирования, должны быть материалы об изучении программирования. В идеале, каждый пост должен приносить какую то пользу: рассказывать об интересном учебном материале, библиотеке, методах изучения, идеях для проектов и т.д. и т.п.
Но бывают такие “пограничные” темы, они вроде бы и могут как-то повлиять на процесс изучения, но они не про сам процесс и, как следствие, выбиваются из изначальной концепции/идеи канала.
У меня уже скопилась куча всяких заметок для будущих постов из этой категории, для них я создал отдельный канал @tokovIT , репост ниже как раз с него.
На канале про изучение программирования, должны быть материалы об изучении программирования. В идеале, каждый пост должен приносить какую то пользу: рассказывать об интересном учебном материале, библиотеке, методах изучения, идеях для проектов и т.д. и т.п.
Но бывают такие “пограничные” темы, они вроде бы и могут как-то повлиять на процесс изучения, но они не про сам процесс и, как следствие, выбиваются из изначальной концепции/идеи канала.
У меня уже скопилась куча всяких заметок для будущих постов из этой категории, для них я создал отдельный канал @tokovIT , репост ниже как раз с него.
Forwarded from Токов о программировании
Есть одна, абсолютно потрясающая штука связанная с IT-индустрией - в привычном нам виде она(индустрия) началась совсем недавно(есть конечно те, кто считает чуть ли не со времен Алана Тьюринга, но это по моему какое-то снобство). Вытекающий из этого факт, который постоянно ‘взрывает’ мне мозг:
Люди создававшие эту самую индустрию не где то в далеком прошлом, а наши современники(многие уже в почтенном возрасте, но ситуацию это не меняет).
В начале 70-ых годов Деннис Ритчи создал язык программирования СИ, он же в соавторстве с Брайаном Керниганом написал книгу “The C Programming Language”.
Книга стала эталоном ввода в ЯПы(кстати все еще популярна и отлично продается), куча всего связано с этой книгой, например именно в ней был представлен “хелло ворлд”, ставший впоследствии традиционно первой программой.
Учитывая влияние Си и то, что книга была долгое время единственным учебником по языку, можно с уверенностью сказать, что именно на ней было взращено не одно поколение программистов.
И до чего же странные эмоции я испытывал, смотря в середине прошлого лета подкаст Лекса Фридмана(канал - Lex Fridman) с одним из авторов(Брайаном Керниганом) - https://youtu.be/O9upVbGSBFo
Вроде бы все сходится по датам, но раз 10 ловил себя на мысли, что как будто бы случилось нарушение временного континуума, это же автор той самой книги(я ее читал больше 10 лет назад, и уже тогда она была ‘книгой из 70-ых’, к тому же скоро ей стукнет полтинник), а я в 2020(подкаст вышел в середине прошлого лета) смотрю как автор пришел на подкаст и рассуждает о разных япах, их истории, unix, и даже немного ИИ затронули.
Кстати, на этот же подкаст приходили:
Бьёрн Страуструп(создатель C++) https://youtu.be/fjIhFzTUB9I
Гвидо ван Россум (создатель Python) https://youtu.be/ghwaIiE3Nd8
Джеймс Гослинг (создатель Java) https://youtu.be/IT__Nrr3PNI
Дональд Кнут(автор знаменитой монографии ‘Искусство программирования’) https://youtu.be/2BdBfsXbST8
Услышать от автора чего то значимого, какие то рассуждения, узнать что он думает о влиянии, развитии и как видит будущее своего творения и т.д. можно сказать, подобное расставляет все точки над i.
Люди создававшие эту самую индустрию не где то в далеком прошлом, а наши современники(многие уже в почтенном возрасте, но ситуацию это не меняет).
В начале 70-ых годов Деннис Ритчи создал язык программирования СИ, он же в соавторстве с Брайаном Керниганом написал книгу “The C Programming Language”.
Книга стала эталоном ввода в ЯПы(кстати все еще популярна и отлично продается), куча всего связано с этой книгой, например именно в ней был представлен “хелло ворлд”, ставший впоследствии традиционно первой программой.
Учитывая влияние Си и то, что книга была долгое время единственным учебником по языку, можно с уверенностью сказать, что именно на ней было взращено не одно поколение программистов.
И до чего же странные эмоции я испытывал, смотря в середине прошлого лета подкаст Лекса Фридмана(канал - Lex Fridman) с одним из авторов(Брайаном Керниганом) - https://youtu.be/O9upVbGSBFo
Вроде бы все сходится по датам, но раз 10 ловил себя на мысли, что как будто бы случилось нарушение временного континуума, это же автор той самой книги(я ее читал больше 10 лет назад, и уже тогда она была ‘книгой из 70-ых’, к тому же скоро ей стукнет полтинник), а я в 2020(подкаст вышел в середине прошлого лета) смотрю как автор пришел на подкаст и рассуждает о разных япах, их истории, unix, и даже немного ИИ затронули.
Кстати, на этот же подкаст приходили:
Бьёрн Страуструп(создатель C++) https://youtu.be/fjIhFzTUB9I
Гвидо ван Россум (создатель Python) https://youtu.be/ghwaIiE3Nd8
Джеймс Гослинг (создатель Java) https://youtu.be/IT__Nrr3PNI
Дональд Кнут(автор знаменитой монографии ‘Искусство программирования’) https://youtu.be/2BdBfsXbST8
Услышать от автора чего то значимого, какие то рассуждения, узнать что он думает о влиянии, развитии и как видит будущее своего творения и т.д. можно сказать, подобное расставляет все точки над i.
YouTube
Brian Kernighan: UNIX, C, AWK, AMPL, and Go Programming | Lex Fridman Podcast #109
Brian Kernighan is a professor of computer science at Princeton University. He co-authored the C Programming Language with Dennis Ritchie (creator of C) and has written a lot of books on programming, computers, and life including the Practice of Programming…
Forwarded from Токов о программировании
Не знаю как скоро, но на основном канале обязательно выйдет ряд постов про уч.материалы для разных ЯПов(по типу уже существующего поста про уч.материалы для python).
Поскольку, посты хотелось бы представить в лучшем виде, это скорее всего займет некоторое время(много всяких нюансов). К примеру, в посте про Си основная сложность в том, чтобы объяснить зачем его вообще сейчас изучать и чем он так хорош.
Я подумал, раз есть второй канал, почему бы туда не выкладывать такие небольшие кусочки будущих постов.
Поскольку, посты хотелось бы представить в лучшем виде, это скорее всего займет некоторое время(много всяких нюансов). К примеру, в посте про Си основная сложность в том, чтобы объяснить зачем его вообще сейчас изучать и чем он так хорош.
Я подумал, раз есть второй канал, почему бы туда не выкладывать такие небольшие кусочки будущих постов.
Forwarded from Токов о программировании
Си. Как мне кажется, очень удачная связка уч.материалов:
Язык программирования C. Лекции и упражнения, Стивен Прата
Интересная штука с книгами Праты, 2 самые популярные - ввод в c и c++, это скорее забавное совпадение, но у обоих языков есть вводы написанные самими создателями языков.
В чем же преимущество Праты? Я бы сказал доступность(но разумеется, всегда рекомендую ознакомиться со всеми вариантами), очень плотная подача материала и разжевано до самых мелочей. Абсолютный must-read для изучающих С.
Язык программирования Си, Брайан Керниган, Деннис Ритчи
Та самая книга от создателя языка, если планируете изучать си, с ней в любом случае стоит ознакомиться. Но есть важный момент, она очень далека от современного понимания книг по ‘вводу в ЯП’, это не учебник, а именно книга написанная инженерами для инженеров(особенно хорошо это видно в сравнении с предыдущей книгой).
Изучаем программирование на C, Гриффитс Дэвид, Гриффитс Дон
В свое время серия книг ‘Head First’, стала “глотком свежего воздуха” в мире it литературы. Все дело в подаче, даже не знаю как это описать, она что ли веселая: шутки, смешные картинки(не уверен что тогда термин ‘мем’ был распространен), куча всякой визуализации и т.д. и т.п., и это на фоне достаточно ‘серьезных’ представителей жанра(это учитывая, что первая книга вышла в 2003).
В книге по Си, разумеется, рассматривается самое важное сложное - взаимодействие с памятью. И в данном случае, необычный стиль может сыграть на руку и сильно помочь в понимании этой темы(главный барьер в изучении языка).
#c #книги
Язык программирования C. Лекции и упражнения, Стивен Прата
Интересная штука с книгами Праты, 2 самые популярные - ввод в c и c++, это скорее забавное совпадение, но у обоих языков есть вводы написанные самими создателями языков.
В чем же преимущество Праты? Я бы сказал доступность(но разумеется, всегда рекомендую ознакомиться со всеми вариантами), очень плотная подача материала и разжевано до самых мелочей. Абсолютный must-read для изучающих С.
Язык программирования Си, Брайан Керниган, Деннис Ритчи
Та самая книга от создателя языка, если планируете изучать си, с ней в любом случае стоит ознакомиться. Но есть важный момент, она очень далека от современного понимания книг по ‘вводу в ЯП’, это не учебник, а именно книга написанная инженерами для инженеров(особенно хорошо это видно в сравнении с предыдущей книгой).
Изучаем программирование на C, Гриффитс Дэвид, Гриффитс Дон
В свое время серия книг ‘Head First’, стала “глотком свежего воздуха” в мире it литературы. Все дело в подаче, даже не знаю как это описать, она что ли веселая: шутки, смешные картинки(не уверен что тогда термин ‘мем’ был распространен), куча всякой визуализации и т.д. и т.п., и это на фоне достаточно ‘серьезных’ представителей жанра(это учитывая, что первая книга вышла в 2003).
В книге по Си, разумеется, рассматривается самое важное сложное - взаимодействие с памятью. И в данном случае, необычный стиль может сыграть на руку и сильно помочь в понимании этой темы(главный барьер в изучении языка).
#c #книги
Forwarded from Токов о программировании
Самое крутое в изучении Си, это чуть ли не единственный язык, который можно выучить через изучение сложной технологии.
Не буду вдаваться в объяснения почему так, это достаточно непростая история(об этом, разумеется, будет в большом посте). Просто скажу, это неприменимо к другим ЯПам, и скорее создаст кучу нервов и потраченного времени, но Си - исключение(единственное!).
На том же buildyourownx, практически весь подраздел ‘Operating System’ занят Си.
#c
Не буду вдаваться в объяснения почему так, это достаточно непростая история(об этом, разумеется, будет в большом посте). Просто скажу, это неприменимо к другим ЯПам, и скорее создаст кучу нервов и потраченного времени, но Си - исключение(единственное!).
На том же buildyourownx, практически весь подраздел ‘Operating System’ занят Си.
#c
Еще одна особенность - куча крутейшего кода, некоторые примеры буквально легендарны(это породило разборы этого самого легендарного кода).
Мне, почему-то, сразу вспоминается Кармак.
Один из лучших примеров разбора его кода[канал - Nemean]:
https://youtu.be/p8u_k2LIZyo
На видео подробнейшим образом разобран алгоритм быстрого извлечения обратного квадратного корня. Штука сложная, точно не для новичков(кстати ответ на вопрос зачем программистам математика). Но если все хорошо с англом, очень рекомендую к просмотру(красота решения поражает).
#c #gamedev #youtube
Мне, почему-то, сразу вспоминается Кармак.
Один из лучших примеров разбора его кода[канал - Nemean]:
https://youtu.be/p8u_k2LIZyo
На видео подробнейшим образом разобран алгоритм быстрого извлечения обратного квадратного корня. Штука сложная, точно не для новичков(кстати ответ на вопрос зачем программистам математика). Но если все хорошо с англом, очень рекомендую к просмотру(красота решения поражает).
#c #gamedev #youtube
YouTube
Fast Inverse Square Root — A Quake III Algorithm
In this video we will take an in depth look at the fast inverse square root and see where the mysterious number 0x5f3759df comes from. This algorithm became famous after id Software open sourced the engine for Quake III. On the way we will also learn about…
https://youtu.be/J8MLsG1_bu8
Приветствую, перевел еще один пост в видеоформат. Как-то начинал подобную серию постов, вот решил довести эту историю уже в видеоформате.
Приветствую, перевел еще один пост в видеоформат. Как-то начинал подобную серию постов, вот решил довести эту историю уже в видеоформате.
YouTube
План изучения программирования | Python | Часть 1
Канал в телеге - https://t.me/tobeprog
----------------
Видео:
Python, основы | что читать/смотреть | как правильно использовать уч.материалы - https://youtu.be/cqyluq__UOU
Что значит ПРОГРАММИРОВАТЬ, почему многие не понимают этот процесс - https://you…
----------------
Видео:
Python, основы | что читать/смотреть | как правильно использовать уч.материалы - https://youtu.be/cqyluq__UOU
Что значит ПРОГРАММИРОВАТЬ, почему многие не понимают этот процесс - https://you…
Давно хотел сделать канал посвященный теме it бизнеса. Тема невероятно интересная, от маленьких стартапчиков и до огромных корпораций в которые эти стартапы вырастают.
Канал будет отличатся тем, что я буду смотреть на всю эту историю с точки зрения программиста(как по мне, очень уж часто эту тему освещают люди далекие от разработки).
P.S. я не эксперт в бизнесе или инвестициях, а всего лишь программист, который делится исключительно своим взглядом и тем, что мне интересно.
Канал будет отличатся тем, что я буду смотреть на всю эту историю с точки зрения программиста(как по мне, очень уж часто эту тему освещают люди далекие от разработки).
P.S. я не эксперт в бизнесе или инвестициях, а всего лишь программист, который делится исключительно своим взглядом и тем, что мне интересно.
Forwarded from Об IT индустрии
Самая невероятная модель бизнеса в it(возможно и за пределами индустрии)
Есть одна штука в большом it-шном бизнесе, каждый раз когда об этом размышляю, пребываю в таком легком “хорошем” шоке.
Есть ряд таких компании, можно сказать высшего эшелона it мира - технические гиганты. Если кто-то пропустил, не так давно со стороны правительства США, был проявлен небывалый интерес к этим ребятам.
Кроме кучи смешных мемчиков с Цукербергом, и понимания насколько ребята из конгресса далеки от ребят из индустрии, можно было подметить одну важную деталь. Как будто кого-то забыли позвать на праздник, кого-то кто безоговорочно является гигантом, и всего-то, делает самую популярную операционку в мире.
Знающие люди сразу скажут, что Майкрософт уже это проходили, более того на 20 лет раньше остальных. И эта разница в 20 лет, является первым кусочком пазла во всей картине.
Гиганты на то и гиганты, у них есть куча всяких направлений деятельности, далеких от их основного продукта/направления, но при этом этот самый основной продукт видно всегда, он может меняться с годами как например у apple, или наоборот быть неизменной основой как у amazon.
Таких продуктов у гиганта может быть несколько, например Facebook и Instagram, поэтому говоря основной, подразумеваю, не единственный, а тот в который они вкладывают больше всего сил, тот(или те) вокруг которых крутится основной бизнес.
У майков, очевидно, это операционка(наверно в каком то смысле еще и офисный пакет, но и с ним очень похожая история).
А теперь об этом основном продукте.
Каждый раз, когда я гружу видео на youtube, задаюсь вопросом, а что мешает кому-нибудь грузить видео аля “ковыряюсь в носу 24 часа”, и разумеется в 4к, в целом - ничего не мешает.
С одной стороны - это круто для создателей контента, с другой - дичайшая нагрузка на платформу, с ней(нагрузкой) нужно что-то делать. Тот же амазон растет, но вместе с тем, нужно строить кучу складов, работать со сложнейшей логистикой и т.д. и т.п., другими словами, чтобы продукт чувствовал себя хорошо, нужно постоянно что-то делать со все более увеличивающейся нагрузкой.
Однако, с операционкой другая история, ее нужно разработать, по сути один раз(это, конечно, очень утрировано), а дальше - заняться с распространением. Да, над ней постоянно работают, желание винды обновиться - отдельный мем. Но все же, у нее нет жизненно необходимой потребности расти изнутри.
Другими словами, если майки решат, что все хватит, винда хороша, не будем ничего допиливать, то с бизнесом ничего страшного не случится. Но если Марк решит что инста уже достигла максимума и хватит ей расти, то инста - закончится. Тоже касается и ограничений, к примеру лимит на сторис, конечно не убьет соц. сеть, но точно сильно повлияет на популярность.
Теперь обратимся к другой части компаний, которые занимаются постоянным выводом новых продуктов, ярчайший пример - apple, особенно ярко это было во времена Джобса(сейчас это не так заметно, компания несколько стабилизировала свой курс).
Я очень хорошо помню появление первого айпада, настроения после презентации были примерно такои - никто не понял что это, но все очень хотели. Айпад - пример успешной инновации, но инновации это всегда риски. Один неудачный продукт, может может очень сильно подкосить компанию.
Однако майки, сумели избежать и этой проблемы. Винде как будто бы можно лажать(известная история о чередовании качества винды,
...
xp - великолепно
виста - ужас
семерка - великолепна
...)
Достаточно сложно разбираться почему так(самое очевидное, новая винда - не отменяет прошлой винды, можно сидеть на старой хорошей и ждать пока выйдет новая хорошая), поэтому не будем вдаваться в этот вопрос. Но сам факт того, что Майки так могут и это нисколько их не подкосило - поразителен.
Также важный момент - винда виртуальна, т.е. сломаться что-то на заводе по производству винды не может(так же не скажется, например дефицит полупроводников).
Есть одна штука в большом it-шном бизнесе, каждый раз когда об этом размышляю, пребываю в таком легком “хорошем” шоке.
Есть ряд таких компании, можно сказать высшего эшелона it мира - технические гиганты. Если кто-то пропустил, не так давно со стороны правительства США, был проявлен небывалый интерес к этим ребятам.
Кроме кучи смешных мемчиков с Цукербергом, и понимания насколько ребята из конгресса далеки от ребят из индустрии, можно было подметить одну важную деталь. Как будто кого-то забыли позвать на праздник, кого-то кто безоговорочно является гигантом, и всего-то, делает самую популярную операционку в мире.
Знающие люди сразу скажут, что Майкрософт уже это проходили, более того на 20 лет раньше остальных. И эта разница в 20 лет, является первым кусочком пазла во всей картине.
Гиганты на то и гиганты, у них есть куча всяких направлений деятельности, далеких от их основного продукта/направления, но при этом этот самый основной продукт видно всегда, он может меняться с годами как например у apple, или наоборот быть неизменной основой как у amazon.
Таких продуктов у гиганта может быть несколько, например Facebook и Instagram, поэтому говоря основной, подразумеваю, не единственный, а тот в который они вкладывают больше всего сил, тот(или те) вокруг которых крутится основной бизнес.
У майков, очевидно, это операционка(наверно в каком то смысле еще и офисный пакет, но и с ним очень похожая история).
А теперь об этом основном продукте.
Каждый раз, когда я гружу видео на youtube, задаюсь вопросом, а что мешает кому-нибудь грузить видео аля “ковыряюсь в носу 24 часа”, и разумеется в 4к, в целом - ничего не мешает.
С одной стороны - это круто для создателей контента, с другой - дичайшая нагрузка на платформу, с ней(нагрузкой) нужно что-то делать. Тот же амазон растет, но вместе с тем, нужно строить кучу складов, работать со сложнейшей логистикой и т.д. и т.п., другими словами, чтобы продукт чувствовал себя хорошо, нужно постоянно что-то делать со все более увеличивающейся нагрузкой.
Однако, с операционкой другая история, ее нужно разработать, по сути один раз(это, конечно, очень утрировано), а дальше - заняться с распространением. Да, над ней постоянно работают, желание винды обновиться - отдельный мем. Но все же, у нее нет жизненно необходимой потребности расти изнутри.
Другими словами, если майки решат, что все хватит, винда хороша, не будем ничего допиливать, то с бизнесом ничего страшного не случится. Но если Марк решит что инста уже достигла максимума и хватит ей расти, то инста - закончится. Тоже касается и ограничений, к примеру лимит на сторис, конечно не убьет соц. сеть, но точно сильно повлияет на популярность.
Теперь обратимся к другой части компаний, которые занимаются постоянным выводом новых продуктов, ярчайший пример - apple, особенно ярко это было во времена Джобса(сейчас это не так заметно, компания несколько стабилизировала свой курс).
Я очень хорошо помню появление первого айпада, настроения после презентации были примерно такои - никто не понял что это, но все очень хотели. Айпад - пример успешной инновации, но инновации это всегда риски. Один неудачный продукт, может может очень сильно подкосить компанию.
Однако майки, сумели избежать и этой проблемы. Винде как будто бы можно лажать(известная история о чередовании качества винды,
...
xp - великолепно
виста - ужас
семерка - великолепна
...)
Достаточно сложно разбираться почему так(самое очевидное, новая винда - не отменяет прошлой винды, можно сидеть на старой хорошей и ждать пока выйдет новая хорошая), поэтому не будем вдаваться в этот вопрос. Но сам факт того, что Майки так могут и это нисколько их не подкосило - поразителен.
Также важный момент - винда виртуальна, т.е. сломаться что-то на заводе по производству винды не может(так же не скажется, например дефицит полупроводников).
Forwarded from Об IT индустрии
Более того, продукт настолько защищен, что если вдруг перестанет существовать интернет(что абсолютно невозможно), майки будут как в старые добрые, в картонных коробочках на дискетах распространять свою винду, конечно подобное скажется, но компанию точно не убьет.
Отдельный вопрос о конкуренции, винда может не беспокоится на это счет, вы читаете эти строки, а прямо сейчас какой нибудь парнишка матеря и проклиная всех майнеров, прикидывает будущую сборку своего пк, и даже вопроса о выборе операционки не стоит. И опять таки, майкам ничего не нужно для этого делать, я очень сомневаюсь, что если они обрубят всю маркетинговую компанию, о винде вдруг все забудут.
Инста соперничает с тик током, так же у ютуба есть претензии на формат коротких видео(недавний формат shorts), сам ютуб явно не против заиметь аудиторию Твича. И скорее всего кто-то еще, со своим форматом видео контента, ворвется рано или поздно в эту игру, пытаясь оторвать себе кусок аудитории.
Эпл конкурирует со всеми(в рамках интересных компании продуктов), те же китайцы неожиданно научились пилить очень крутую технику. Фейсбук - постоянная гонка социальных сетей.
И только майки спокойно пилят винду и что самое веселое, 20 лет назад, они занимались все тем же, и смею предположить, что через 20 лет ничего не изменится.
Не берусь предположить из-за чего так, мб гений Гейтса или случайное стечение обстоятельств, но факт остается фактом - у майков абсолютно уникальная, невероятно защищенная и отлично работающая(уже не одно десятилетие) модель бизнеса(достичь чего то подобного, кажется абсолютно невозможным, но они сумели), и нет никаких, по крайней мере очевидных мне причин, чтобы эта модель перестала работать.
Отдельный вопрос о конкуренции, винда может не беспокоится на это счет, вы читаете эти строки, а прямо сейчас какой нибудь парнишка матеря и проклиная всех майнеров, прикидывает будущую сборку своего пк, и даже вопроса о выборе операционки не стоит. И опять таки, майкам ничего не нужно для этого делать, я очень сомневаюсь, что если они обрубят всю маркетинговую компанию, о винде вдруг все забудут.
Инста соперничает с тик током, так же у ютуба есть претензии на формат коротких видео(недавний формат shorts), сам ютуб явно не против заиметь аудиторию Твича. И скорее всего кто-то еще, со своим форматом видео контента, ворвется рано или поздно в эту игру, пытаясь оторвать себе кусок аудитории.
Эпл конкурирует со всеми(в рамках интересных компании продуктов), те же китайцы неожиданно научились пилить очень крутую технику. Фейсбук - постоянная гонка социальных сетей.
И только майки спокойно пилят винду и что самое веселое, 20 лет назад, они занимались все тем же, и смею предположить, что через 20 лет ничего не изменится.
Не берусь предположить из-за чего так, мб гений Гейтса или случайное стечение обстоятельств, но факт остается фактом - у майков абсолютно уникальная, невероятно защищенная и отлично работающая(уже не одно десятилетие) модель бизнеса(достичь чего то подобного, кажется абсолютно невозможным, но они сумели), и нет никаких, по крайней мере очевидных мне причин, чтобы эта модель перестала работать.
Forwarded from Токов о программировании
Где найти хороший roadmap/план изучения/список учебных материалов
Приветствую, совсем короткий пост. Пару раз видел это вопрос под моими постами, да даже сами посты с этой тематикой получают наибольшее внимание. Очевидно, тема актуальная, и хотя ответ на поверхности, думаю многим он поможет.
Итак, где же найти хороший roadmap/план изучения/список учебных материалов?
Ответ который мне нравится большего всего: продолжать смотреть мою замечательную серию видео “план изучения программирования”
Но если серьезно, к примеру в том же видео/посте про понимание самого процесса программирования, говорилось, что сам принцип один, и хотя там он рассматривался в рамках питона, можно выбрать любой другой ЯП, и это будет работать. Так где найти, хотя бы хороший список учебных материалов?
Ну или к примеру, зритель сильно обгоняет план изучения, в таком случае ему нужны более углубленные учебные материалы, и нужны они, очевидно, сейчас.
Есть немного грубый, но в целом верный ответ - гугл. Проблема в том, что этот поиск может сильно затянуться и только сильней запутать. Правило здесь очень простое(о нем говорилось в видео про учебные материалы для основ питона)
“в программировании, популярность учебного материала - верный признак качества. Правда работает это тогда, когда популярность - следствие рекомендаций уже ставших программистами(именно подобные отзывы и стоит искать при подборе уч. материалов).”
Нужно идти туда, где программисты обитают, где возможно невысокий, но все же хоть какой-то порог вхождения, случайным людям там будет просто не особо интересно, таким образом, ценность оценок возрастает.
И первое что приходит на ум, страшно недооцененный в целях изучения - github. Это немного абсурдное заявление, поэтому уточню, недооцененный - новичками, те кто хотя бы немного продвинулся в изучении, понимают насколько это ценный ресурс.
Первая же строка выдачи “python + roadmap + github”
https://github.com/GnuriaN/Python-Roadmap - крутой roadmap для изучения python на русском, ссылается на русскоязычные ресурсы, достаточно подробно расписано, без лишней воды.
Я его мельком посмотрел. Что-то я бы вычеркнул, что-то добавил, на чем-то больше сакцентировал внимание, но повторюсь, по моему, это отличный roadmap.
Меня особо порадовало, что в конце упоминается курс от Computer Science Center, я как то о нем писал, именно о той версии которую советует автор roadmap-а, для меня это такой знак качества - невероятно крутой курс(о котором, к сожалению, очень мало где говорят).
Можно найти учебный план, не просто определенного ЯПа, а даже целой специальности/области/профессии, иногда у них есть даже целая история.
https://github.com/jwasham/coding-interview-university (англ.)
https://github.com/jwasham/coding-interview-university/blob/main/translations/README-ru.md (на русском)
John Washam имел достаточно успешную карьеру, но у него была мечта - попасть в гугл. Его отделяло от нее отсутствие образования и знаний в сфере computer science, собственно весь план - это его подготовка к собеседованию и обретение этих знаний с нуля. Даже в отрыве от столь амбициозной задачи, это просто крутой план по изучению computer science.
Кстати у Джона получилось, правда не с Гуглом, а с другим представителем FAANG - Амазоном.
https://github.com/ossu/computer-science Еще один достаточно известный репозиторий, эти ребята вообще называют себя опенсорсный университетом.
Таких репозиториев куча, где-то это личный проект, например человек просто таким образом трекал свой прогресс, где-то огромный проект с кучей людей и переводами на разные языки.
Это может быть даже просто картинка, где показана связь необходимых для предмета топиков/тем, а может быть детально проработанный план изучения. В любом случае, это делалось программистами для программистов(возможно будущих), и оценки будут напрямую коррелировать качеством.
P.S. Можно искать на самом гитхабе, если по каким-то причинам, это пока вызывает дискомфорт, можно просто приписать в гугле к запросу ‘github’ ну или уточнить поиск по сайту(в гугле это делается командой site:адрес, т.е. «site:github.com»
Приветствую, совсем короткий пост. Пару раз видел это вопрос под моими постами, да даже сами посты с этой тематикой получают наибольшее внимание. Очевидно, тема актуальная, и хотя ответ на поверхности, думаю многим он поможет.
Итак, где же найти хороший roadmap/план изучения/список учебных материалов?
Ответ который мне нравится большего всего: продолжать смотреть мою замечательную серию видео “план изучения программирования”
Но если серьезно, к примеру в том же видео/посте про понимание самого процесса программирования, говорилось, что сам принцип один, и хотя там он рассматривался в рамках питона, можно выбрать любой другой ЯП, и это будет работать. Так где найти, хотя бы хороший список учебных материалов?
Ну или к примеру, зритель сильно обгоняет план изучения, в таком случае ему нужны более углубленные учебные материалы, и нужны они, очевидно, сейчас.
Есть немного грубый, но в целом верный ответ - гугл. Проблема в том, что этот поиск может сильно затянуться и только сильней запутать. Правило здесь очень простое(о нем говорилось в видео про учебные материалы для основ питона)
“в программировании, популярность учебного материала - верный признак качества. Правда работает это тогда, когда популярность - следствие рекомендаций уже ставших программистами(именно подобные отзывы и стоит искать при подборе уч. материалов).”
Нужно идти туда, где программисты обитают, где возможно невысокий, но все же хоть какой-то порог вхождения, случайным людям там будет просто не особо интересно, таким образом, ценность оценок возрастает.
И первое что приходит на ум, страшно недооцененный в целях изучения - github. Это немного абсурдное заявление, поэтому уточню, недооцененный - новичками, те кто хотя бы немного продвинулся в изучении, понимают насколько это ценный ресурс.
Первая же строка выдачи “python + roadmap + github”
https://github.com/GnuriaN/Python-Roadmap - крутой roadmap для изучения python на русском, ссылается на русскоязычные ресурсы, достаточно подробно расписано, без лишней воды.
Я его мельком посмотрел. Что-то я бы вычеркнул, что-то добавил, на чем-то больше сакцентировал внимание, но повторюсь, по моему, это отличный roadmap.
Меня особо порадовало, что в конце упоминается курс от Computer Science Center, я как то о нем писал, именно о той версии которую советует автор roadmap-а, для меня это такой знак качества - невероятно крутой курс(о котором, к сожалению, очень мало где говорят).
Можно найти учебный план, не просто определенного ЯПа, а даже целой специальности/области/профессии, иногда у них есть даже целая история.
https://github.com/jwasham/coding-interview-university (англ.)
https://github.com/jwasham/coding-interview-university/blob/main/translations/README-ru.md (на русском)
John Washam имел достаточно успешную карьеру, но у него была мечта - попасть в гугл. Его отделяло от нее отсутствие образования и знаний в сфере computer science, собственно весь план - это его подготовка к собеседованию и обретение этих знаний с нуля. Даже в отрыве от столь амбициозной задачи, это просто крутой план по изучению computer science.
Кстати у Джона получилось, правда не с Гуглом, а с другим представителем FAANG - Амазоном.
https://github.com/ossu/computer-science Еще один достаточно известный репозиторий, эти ребята вообще называют себя опенсорсный университетом.
Таких репозиториев куча, где-то это личный проект, например человек просто таким образом трекал свой прогресс, где-то огромный проект с кучей людей и переводами на разные языки.
Это может быть даже просто картинка, где показана связь необходимых для предмета топиков/тем, а может быть детально проработанный план изучения. В любом случае, это делалось программистами для программистов(возможно будущих), и оценки будут напрямую коррелировать качеством.
P.S. Можно искать на самом гитхабе, если по каким-то причинам, это пока вызывает дискомфорт, можно просто приписать в гугле к запросу ‘github’ ну или уточнить поиск по сайту(в гугле это делается командой site:адрес, т.е. «site:github.com»
Дополнил меню/содержание канала. Все новое с пометкой - upd (update)