Ответ на пост «Я написал свою книгу по программированию»
Если данный господин является инфоцыганом, то предлагаю на него кинуть жалобу в СК РФ сейчас их любят кошмарить!
Если данный господин является инфоцыганом, то предлагаю на него кинуть жалобу в СК РФ сейчас их любят кошмарить!
Меня мало кто помнит но старички надеюсь пустят ностальгическую слезу. 8 лет назад здесь я кинул абсолютно безумный клич: "Буду обучать бесплатно любого желающего программированию". Я думал соберу человек 10 и в качестве хобби помогу людям. :))
Шут там, собралось почти 2000 человек и я провёл месяц без сна так, как проверял всем домашки и постоянно вёл лекции. И самое весёлое что это правда было просто хобби и я не взял ни рубля с людей а также не продавал никаких курсов. Странно это слышать в эру прогревов и теневых продаж, не правда ли?
Через 2 года после этих занятий я сел писать книгу по программированию на языке C# и благодаря участникам тех занятий мы собрали 85 000 рублей на написание на краудфандинге. Спустя 6 лет с того момента я закончил.
Книга научит вас языку программирования C# с самых основ через практику. Мы начнём с вами с переменных и закончим инкапсуляций техник динамического программирования в объектно-ориентированном дизайне (чтобы это не значило).
В книге получилось почти 400 страниц и вы можете забрать бесплатно PDF здесь - https://t.me/sakutin_csharp/2274
Спасибо Пикабу за всё!
Для ЛЛ: история как я попал в компанию по разработке видеоигр будучи ~30 летним джуном.
Всем привет! Лет 5 назад плотно заинтересовался разработкой видеоигр на движке Unity. Особого опыта в программировании не имел (образование: инженер - программист, но по факту просто отсидел в универе 5 лет). За пару лет хобби - разработки выпустил 2,5 игры которые не принесли мне хоть какого то финансового благополучия.
Работал я тогда IT ремонтником заправок - что не приносило мне удовольствия. Интереса(?) ради разместил на HH 2 резюме как разработчик и моделер-дизайнер (3d моделирование также пришлось освоить, но на начальном уровне). Как пример указал одну из своих игр (самую привлекательную, вот пост про нее писал когда то: Хрюшкины войнушки) , и , собственно стал пассивно ждать.
Через пару недель мне написала какая то (уже не помню) компания и попросила сделать тестовое задание как моделера-дизайнера: а именно сделать и анимировать модель толстого дядьки в определенном стиле (был референс-худой дядька)). Моделька получилось страшной, я все же ее отправил - мне не перезвонили(. Я не очень расстроился, так как все же мне интереснее писать код чем моделировать.
Спустя 3 месяца мне в вотсапе написал человек и предложил пройти собеседование на Unity разработчика. Была возможность онлайн собеседования, но компания находилась в моем городе (Рязань) и я настоял на личной встрече.
Я пришел в полуподвальный огромный офис где меня собеседовало 6 человек сразу (как потом оказалось у них опыта в приеме на работу было не так много). Рассказал что умею делать, не ответил практически не на один тех вопрос - выглядели они так что я не очень им понравился, я предложил выполнить небольшое тестовое задание чтобы показать что умею на практике. На следующий день мне прислали задание (игра flow free). За неделю я справился с ним, и оказалось что я "хорошо сделал".
Дальше было для меня странно:
1) Они легко шли на компромисы: испытательный срок я совмещал со старой работой (я хотел на двух стульях посидеть - и посидел))
2) Честно и много платили за работу - хотя я больше учился у лида чем работал. Выходило больше чем на старой работе.
3) Предложили мне оборудование в личное пользование (там была возможность работать как дома так и в офисе - когда как хочется0
4) Помогали с любыми вопросами, буквально разжевывали мне то что было непонятно, хвалили когда я задавал вопросы (а я прям дофига их задавал)
5) Постоянно спрашивали приду ли я завтра)) (оказывается некоторые соискатели уходили на обед и пропадали)
В итоге я работаю в компании 3 года, они все такие же честные и отзывчивые, имею карьерный рост и рост ЗП (получаю выше рынка).
Компания называется MNO GO GAMES, иногда появляются вакансии (разработчики, дизайнеры, менеджеры). Правда теперь офис уехал на Кипр и появился HR - так что собеседование в подвале пройти не получится.
P.S. Разработку своих игр я не забросил, о последнем интересном своем проекте расскажу в следующем посте
P.S.S. Свою первую игру про свиней я подарил ребятам - школьникам которые связались со мною через пикабу и проявили интерес к разработке, надеюсь у них все получится.
Справились? Тогда попробуйте пройти нашу новую игру на внимательность. Приз — награда в профиль на Пикабу: https://pikabu.ru/link/-oD8sjtmAi
Зачем этот пост? Иногда выговориться помогает с выгоранием и пониманием куда ты хочешь идти дальше. Ну и похвастаться хочется чутка.
Что описываю? Свой путь в геймдеве, как из бармена пришёл в геймдев и стал зарабатывать 250К в месяц за ~3 года.
Вводные данные.
Начало Ковида, я работаю барменом в Ресторане в МСК, получаю 60к в месяц, выпиваю с коллегами по вечерам (и не только по вечерам, если не лукавить) и не имею планов на развитие. Начинается локдаун, меня, как и всех остальнрые, отправляют сидеть дома, срезают ЗП до 35К. Посидел месяц, перезадротил во всё что только можно и понял, что так дело не пойдёт. Денег конечно хватает, Жена работает, запасы есть, не бедствуем, но сидеть целыми днями и задротить не комильфо. С вводными всё.
Выбор направления.
Мои навыки на этот момент: пол-года Бауманки на программную инженерию, один миниатюрный проект на питоне. Почти чистый лист. Решил попробовать в геймдев, не потому-что много денег или что-то понимаю, а потому-что сам задрот и это показалось логичным. Провёл ресёрч, посмотрел какие вакансии выкладывают и пришёл к выводу что у меня выбора либо Юнити либо Юнити. Других вакансий в значимом объёме не видно. Выбор сделан.
Начало обучения.
Была идея воспользоваться курсами. Посмотрел чему на них учат примерно, понял что совсем для дебилов и решил заниматься изучением сам. Начал лепить миниатюрные игры разных форматов и познавать движок и C#. Получалось дерьмовенько, но рука постепенно набивалась.
Через месяц начал откликаться на все вакансии подряд, брал тестовые задания и делал их одновременно и для опыта и в надежде на получение работы. Точных чисел не скажу, но тестовых 20 я точно до конца довёл без каких-либо результатов с точки зрения работы. Сейчас понимаю, что это была не моя вина, просто компании которые эти тестовые дают - пользуются бесплатной рабочей силой. Ну или просто забивают на кандидатов.
Первая найденная работа.
Прошло примерно 5-7 месяцев с начала моего обучения, делаю очередное тестовое и, о чудо, получаю обратную связь. Что-то в формате "вот здесь и вот здесь херня, переделай, как будет готово - будет второй этап собеседования". Я поправил ошибки и через пару дней мы созвонились, обсудили как я их поправил, убедились в работоспособности и сошлись на третем этапе - моём приезде в офис, финальном обсуждении условий и подписании договора. Если кому интересно - тестовое было про мячик который катается по шахматной доске и сбивает фигуры в пропасть, максимально элементарно.
На личном собеседовании ничего особо интересного не было, сошлись на 35к в месяц, 3 дня в неделю удалённо, 2 дня в неделю в офисе. Копейки и душно кататься в офис по 2 часа, но выбора у меня не было.
Первый опыт полноценной работы.
И так, чем занималась фирма - производство гипер-казуальных игр в надежде что хоть одна да выстрелит. Срок производства одной игры - 2 недели. Финальный результат - лишь бы запустился и можно было рекламку на пол минуты снять. Я бы охарактеризовал эту работу как Ад. ты постоянно прыгаешь с одной задачи на другую, работаешь с написанным через пень колоду кодом, сам пишешь через пень колоду, потому-что во первых как лучше не знаешь, а во вторых тебе не за обучение платят, а чтоб было. Я работал примерно по 9 часов в день, плюс в "офисные" дни по 4 часа на дорогу. Сам продукт меня бесил. Времени и сил на развитие не оставалось от слова совсем.
Сейчас то я понимаю, что на мне просто ездили как на дурачке, но тогда я этого в достаточной степени не осознавал.
В общем я выгорел за 3 месяца, стал работать сильно медленне и посвящал освободившееся время поиску новых вакансий и тестовым заданиям для них.
Переход на вторую работу.
Новую работу я нашёл чудом. Из-за вечного поиска мне в вк выкинуло таргетированную реклами которую компания заказала в поисках сотрудников. Я написал им в телегу, мне очень быстро ответили и мы договорились на собеседование. В первое же собеседование меня встретили Собственник проекта и один из двух главных программистов. Я рассказал о своём опыте, мне рассказали что они делают, меня чутка поспрашивали по теории (и поняли, что я не особо много знаю) и предложили два варианта: либо они дают мне тестовое задание в формате задачи которая у них есть сейчас на проекте, я его делаю и если всё хорошо - мне платят и я приступаю к работе, а если им не понравится со мной работать - я его допиливаю, отдаю, мне платят и мы расходимся, или второй вариант - я ухожу со своей текущей работы и сразу иду к ним в штат на испытательный срок. В тот момент я решил, что я ни дня больше не вытерплю на гипер-казуалках, поэтому выбрал второй вариант и так началась моя работа в брокколи геймс.
Опыт на второй работе.
Разница между первой конторой и моей новой работой - небо и земля. Во первых - полная удалёнка. Во вторых - 60К в месяц. В третьих - адекватный менеджмент, щадящие сроки на задачи и поддержка от действительно хороших программистов. Тут я впервые осознал, что делать игры может быть приятно.
С текущим опытом я скажу, что не совсем качественно выполнял возложенные на меня задачи. Нет, конечно всё работало и выглядело как надо в итоге, но код который я тогда писал был не очень хорошим. Я допускал очень много ошибок которые не допустил бы сейчас) Но на это я и был новичком. Ко мне относились очень лояльно. Спустя примерно 7 месяцев моей работы меня пригласили на корпоратив в Вологду где располагается офис компании, оплатили проживание и проезд и познакомились со мной уже полноценно. на этом самом корпоративе произошло то, чего я ни как не мог ожидать. Мне предложили повышение. Нет, не так. Мне докинули 20К к зарплате без повышения обязанностей. Для меня тогда это был шок.
Тяжёлые времена.
Начались события на/в Украине. Моя жена работает с иностранными клиентами и у неё исчезла возможность получать переводы от них. В связи с этим было принято поспешное решение - переезжать. Для переезда была выбрана Грузия, мы собрались буквально за 5 дней, так как не были уверены что проезд останется открытым и отправились искать удачи там.
Вся морока с переездом подкосила мою рабочую продуктивность, но в целом я держался.
Примерно через месяц после переезда компания решила проиндексировать зарплату на поднявшийся курс доллара и таким образом я начал получать ещё на 20К больше, суммарно уже 100К в месяц. очень солидная сумма для 1 года фактического опыта работы. И тут один из очень важных для меня людей умирает от Рака. Это подкосило меня, я попал в состояние на подобии депрессии, но наверное это называется не совсем так, но в общем я выпал из жизни на длительный промежуток времени. Я старался работать, но моя скорость упала ниже плитуса. Я проработал так, еле-еле, примерно два месяца, потом у меня настал запланированный отпуск. За отпуск я чуть-чуть отошёл и уже было готов был возвращаться в работу с новыми силами, но моя жена слегла в больницу под нож хирурга. Продуктивность снова ушла в никуда, я проводил время с ней в больнице для поддержки и через месяц мне сказали что со мной решили попрощаться. Мне сказали что это чисто бизнес-решение, что я тут не при чём и они просто сокращают команду, но я понимаю, что это не совсем так. Мне выплатили ЗП за два месяца вперёд и отправили на все четыре стороны. Я на них абсолютно не сержусь - это было справедливое решение. Но в общем вот я снова без работы, снова ищу вакансии. Теперь уже не как начинающий программист, а как средненький такой работяга.
Возврат к адекватному существованию.
Череда неприятных событий прошла, я вернулся в строй и начал с новыми силами искать работу. В этот раз было сильно сложнее, очень много компаний вывалилось с рынка и если раньше всегда было 80-120 открытых вакансий - стало 20, если повезёт. Поиск занял долгий промежуток времени, почти пол года. Накоплений + ЗП Жены хватило на этот периуд, я нашёл себе новую работу. если коротко: пол-ставки, 100К в месяц. Кайф. Поработал на ней с пол-года, нашёл ещё одну, тоже пол-ставки, 150К в месяц. Двойной кайф. Сейчас работаю на обеих, поулчаю 250К в месяц, планирую искать ещё более выгодные варианты, развиваться, повышать навыки и ЗП.
Просуммирую:
Начал без навыков и ресурсов.
Обучение примерно пол-года, сам, без курсов.
Первая адекватная ЗП - 60К (800$ по тем врмеменам, примерно)
Потерял работу по своей вине/вине обстоятельств.
Новый поиск работы + обучение - пол-года.
ЗП как у мидла - 2500$ с двух халф-тайм работ.
Дальнейшее развитие - возможно, я уверен что через год буду зарабатывать минимум 3000$, может больше, тут уж как повезёт.
Может ли быть лучше? Да, если не ловить неприятности которые сбивают с ритма.
Получится ли у вас так-же? Не знаю, от вас зависит.
Один я бы не потянул. Справился только благодаря поддержке со стороны жены. И моральной, и финансовой, но тут а нас паритет, то она, то я зарабатывали)
И финальный дисклеймер. Когда я начинал - было намного больше вакансий. Я предположу что сейчас найти работу без опыта сильно сложнее, чем было тогда.
Разработчики игр среди прочего получат ранний доступ к инструментам на базе искусственного интеллекта Unity Muse и Unity Sentis
Unity Muse — позволяет создавать в редакторе Unity «почти все, что угодно» по текстовому описанию или по эскизу
Unity Sentis — кроссплатформенное решение, с помощью которого можно встраивать ИИ в свои проекты
Также компания оптимизировала производительность, улучшила работу с освещением и ускорила создание мультиплеерных игр
Релиз Unity 6 запланирован на 2024 год
JavaScript - это популярный и мощный язык программирования, который используется для создания интерактивных веб-страниц и приложений.
Он также может использоваться для разработки игр, как для браузеров, так и для мобильных устройств. Существует множество фреймворков и движков, которые облегчают создание игр на JavaScript.
Например:
PixiJS - это 2D-рендерер WebGL, который позволяет эффективно отрисовывать 2D-сцены и объекты1.
ExcaliburJS - это полноценный игровой фреймворк, написанный на TypeScript, который предоставляет систему сцен и камер, спрайты и анимации, звуки, физику и т.д.1.
Unity - это самый популярный игровой движок в мире, который поддерживает C# и JavaScript для создания 2D и 3D игр для разных платформ23.
Phaser - это быстрый и удобный фреймворк для создания HTML5 игр с использованием Canvas и WebGL.
Интересные факты и фичи языков программирования у нас в канале, заходи :)
в общем я делаю свою игру и хочу найти ребят в свою команду так как одному будет сложно работать, СРАЗУ скажу зарплаты не будет! деньги будем получать (если вообще будем) с донатов в вк и скачиваний игры
В КОМАНДУ НУЖНЫ:
программист 1 или 2
2д художник окружения
2д художник персонажей
и один 3д моделлер
вк студии:https://vk.com/club222708923
вк игры: https://vk.com/club222708136
Такую задачу поставил Little.Bit пикабушникам. И на его призыв откликнулись PILOTMISHA, MorGott и Lei Radna. Поэтому теперь вы знаете, как сделать игру, скрафтить косплей, написать историю и посадить самолет. А если еще не знаете, то смотрите и учитесь.
Современные приложения, особенно мобильные, часто требуют обмена данными с удаленными серверами. Это может быть запрос к веб-сервису для получения информации или отправка данных на сервер. Оптимизация этого процесса играет важную роль в производительности и удобстве работы пользователей. В этой статье мы рассмотрим, как использовать библиотеки OkHttp и Retrofit для эффективной работы в Интернете.
Прежде чем погрузиться в детали, давайте разберемся, почему OkHttp и Retrofit так важны для работы в Интернете. OkHttp - это современная библиотека для обработки HTTP-запросов, предоставляющая множество возможностей, включая поддержку HTTP/2, кэширование, переподключение и многое другое. Retrofit, в свою очередь, обеспечивает удобное создание REST-клиента на основе интерфейса, что делает код более читабельным и уменьшает его размер.
Прежде чем начать использовать OkHttp и Retrofit, необходимо установить и настроить их в своем проекте. Для этого необходимо добавить соответствующие зависимости в файл build.gradle. После этого необходимо выполнить начальную настройку, указав базовый URL для Retrofit и, при необходимости, добавить перехватчики для OkHttp, которые могут добавлять заголовки или выполнять другие операции перед отправкой запросов.
Одним из ключевых преимуществ Retrofit является возможность создания запросов с использованием интерфейсов. Мы определяем методы в интерфейсе, а Retrofit автоматически генерирует код для выполнения запросов. Это делает код более чистым и понятным. Кроме того, аннотации Retrofit могут быть использованы для настройки запросов, например, для указания URL, метода запроса, параметров и даже для разбора ответов в формате JSON.
OkHttp предоставляет множество инструментов для оптимизации сетевых запросов. Одним из них является кэширование. Мы можем настроить кэш для хранения ответов на запросы и их повторного использования, что снижает нагрузку на сервер и ускоряет загрузку данных. OkHttp также поддерживает сжатие данных, что уменьшает объем трафика.
При работе с сетью важно учитывать возможные ошибки. Retrofit позволяет определить, какие ошибки считаются успешными, а какие - нет. Это позволяет более точно отрабатывать различные сценарии, например, отсутствие подключения к Интернету или недоступность сервера.
Для повышения производительности приложения мы можем использовать параллельные запросы с помощью Retrofit и OkHttp. Это позволяет выполнять несколько запросов к серверу одновременно, ускоряя загрузку данных. Также для более эффективной обработки асинхронных операций можно использовать управление потоками, например RxJava или Kotlin Coroutines.
И последнее, но не менее важное, тестирование сетевых запросов. Мы можем использовать такие инструменты, как MockWebServer, для создания симуляции сервера и тестирования различных сценариев. Это позволяет обнаружить и устранить проблемы до того, как приложение будет запущено в производство.
Оптимизация работы с сетью с помощью библиотеки OkHttp и Retrofit может значительно повысить производительность и надежность приложения. Понимание основных концепций и правильное использование этих библиотек поможет создать более эффективные и отзывчивые приложения