-21

Как создать интернет магазин на Ruby on Rails. Гем Spree

Всем привет. Продолжаю делать скринкасты и людям нравится) По чему выкладываю очередной скринкаст по Ruby on Rails. Интернет магазин на Rails. Наслаждайтесь:)

Дубликаты не найдены

+2

Зачем тут срач устроили в комментах? У руби ведь дружелюбное сообщество. Ну а автору предлагаю делать видео как у Mackenzie Child. Длиться его видео долго, но в результате получаем клон какого-нибудь известного сервиса.

раскрыть ветку 2
-2

Мне тоже нравится такой формат. Проделал нечто подобное в видео о блоге за 15 минут. 

-1

Есть ли что-то типа Mackenzie Child, но для Python\Django

+2

Твои посты по Ruby в глубокой жёппе в минусах

Лучше продолжай на сиськах плюсики дрочить.

раскрыть ветку 1
-4

Плюсики были нужны исключительно для возможности заливки видео) 

-1

Я делаю скринкасты, исключительно ради образования людей. Мне это нравится. Нравится получать на почту письма благодарности. Нравится совершенствоваться, читая критику. Не для плюсов это делаю конечно же. 

Многие обвиняют в жажде наживы. Если скажете как можно зарабатывать на этом приличные деньги, то добро пожаловать в команду)) 

На самом деле это хобби. Не более. 

Мои видео ведь не реклама чего-то. Просто решил просветить немного народ. 

Но правда пикабу в том, что никому не нужны знания, все хотят только сиськи) мои посты это наглядно доказывают.

раскрыть ветку 36
-1

http://railscasts.com/ Ну у Ryan Bates как то получилось на этом заработать. Правда он гуру в рельсах и коммитит в репозиторий.

Правда уже давно не выпускает видео. Всё то что вы делаете, давно уже по нескольку раз сделано и пересмотрено на Eng сегменте интернет.

Я не говорю, что не нужно этим заниматься. Но мне например это было не интересно я это видел года 3 назад. Ну а Убунту на русском убила.


Хотел подписаться на rss на вашем сайте для интереса. А там Account disabled by server administrator.

раскрыть ветку 35
-3

Добавлю, что Раян ввел платную подписку. Я такого делать не планирую. Все бесплатно. И так обвинений нахватался о жажде наживы. Хотя никаких шагов к этому не предпринимал.

раскрыть ветку 25
-3

Да все сделано, но на старых рельсах. К тому же поступает куча просьб перевести их на русский. Я стараюсь адаптирую. Ubuntu на русском да. Как это влияет на разработку? 

раскрыть ветку 8
0

так и не познал прелести руби, все время какие то траблы с гемами были, даже гем авторизации на рельсах так и не смог поставить, давно дело правда было. пхп пока удовлетворяет все потребности, а yii так говорят вообще очень похож на ror. Но когда нибудь, когда времени будет побольше, попробую еще очередную попытку. 

раскрыть ветку 2
-4

Если на винде, то да проблем много. на Unix все легко:) yii сделан по подобию RoR, тоже хороший фреймворк, но руби уже стал быстрее пхп, хотя пхп 7 не щупал еще.

раскрыть ветку 1
-2

не, на винде даже не представляю как работать. ну и да, пхп уже неплохо по производительности поднялся, но в то же время и говнокодеров на пыхе в разы больше, про руби хочется думать, что это несколько другой уровень) 

-2

тут не как создать интернет-магазин, а как установить гем.. для интернет магазина мало установки, нужна работа с 1С, нужны импорт\экспорт товаров, обновление цен и остатков. вобщем малоинформативное видео вышло

раскрыть ветку 3
-4

Это ознакомительное видео. Для 1с есть отдельный гем. Если будет востребовано я конечно сделаю видео по этому аспекту вопроса.

раскрыть ветку 2
-1

ну лично мне не нужно, я к тому что называя видео "как создать интернет-магазин" надо было эти вопросы сразу раскрыть.

раскрыть ветку 1
Похожие посты
1233

Когда потомки увидят твой говнокод

Когда потомки увидят твой говнокод Картинки, Юмор, Программирование, Разработка, Github, IT юмор

Перевод:
"Загрязнение Арктики - это серьезная проблема"
Я, после того как мой говнокод поместили в арктическое хранилище

Компания GitHub рассказала в своем блоге, что 8 июля 2020 года архив открытых исходных кодов сервиса был успешно размещен в арктическом хранилище Arctic World Archive на острове Шпицберген.

Чтобы заархивировать и перевести на физических носителях весь GitHub понадобилось более пяти месяцев кропотливой работы. 2 февраля 2020 года специалисты компании сделали копию всего открытого исходного кода, хранившегося на сервисе — это вклад работы более 37 миллионов пользователей, который включает около 100 миллионов активных публичных репозиториев.

Ссылка на новость - https://habr.com/ru/news/t/511402/

31

Тесты ПУЭ на Xamarin

Не так давно я опубликовал пару постов о приложениях для подготовки к тестированию по электробезопасности. Это простые одностраничные приложения в которых крутятся вопросы по электробезопасности. На странице показывается вопрос и несколько вариантов ответа. Пользователь жмёт в выбранный им вариант. Правильный ответ показывается сразу после выбора варианта ответа. Приложение написано на Xamarin, поэтому среди прочих тегов присутствовали Xamarin и CSharp. Но, как справедливо заметили в комментариях, о Xamarin не было ничего. Исправляюсь.

Ссылки на посты:

Запилил тесты ПУЭ

Выкатил вопросы на 5 группу электробезопасности

Решение на XamarinForms содержит несколько проектов. Главный проект и проекты для каждой выбранной на этапе создания решения платформы.

Здесь была выбрана только одна платформа, поэтому решения два.

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Каждый вопрос с вариантами ответов хранится в классе QuestCase.

Переменная errors - счётчик до выхода вопроса из списка чаще показываемых вопросов. Когда происходит неправильный ответ, errors становится 5. С каждым правильным ответом errors уменьшается на 1. Когда errors становится 0, вопрос исключается из списка чаще показываемых.

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Интерфейс IFileWorker нужен для работы с файлом вопросов/ответов.

Этот интерфейс описан в главном проекте

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

а реализован в проекте для Android в классе FileWorker.

Также этот класс содержит вспомогательный метод GetFilePath, который определяет путь к указанному файлу.

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Текст каждого ответа размещается в MyLabel наследованном от Label.

MyLabel знает какой ответ в нем - верный или неверный - свойство isAnswer,

MyLabel запоминает клик по нему - свойство isClicked.

Я использовал BindableProperty для реализации этих свойств.

Тесты ПУЭ на Xamarin Xamarin, Csharp, Программирование, Приложение на Android, Разработка, Длиннопост

Это первая часть поста. Планирую ещё как минимум две.

Показать полностью 5
457

Проект «Качок»

Поступил от одной фирмы заказ. Нужно было разработать мозги для электрической помпы, которую они проектировали. Предназначалась эта штука для проверки датчиков давления в полевых условиях. Собственно, помпа уже была. Ручная. Но, оказалось, что, для того, чтобы накачать 40 атмосфер вручную, нужно быть качком. Качки среди тетенек-метрологов — редкость. Следовательно, ручной труд нужно было срочно механизировать!


Ничто не мешает давить на поршень компрессора не рычагом, а каким-нибудь электроприводом. Заказали актуатор. По сути, коллекторный движок с винтовым механизмом, превращающий вращательное движение в поступательное. Такие ставят на механические ворота. Актуатор впихнули в раму, соединили с компрессором. Получилось годно.

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

А вот с электронной начинкой что-то пошло не так. Инженеры заказчика сначала попытались сделать все сами. Конечно же на ардуино. Прицепили к ней силовую часть на реле, кнопки, токовый датчик… И, получили что-то очень грустное, и упорно не желающее работать как надо. Но общий принцип и бета версия прототипа у меня была. Осталось все воплотить на более достойном уровне.


По идее, схему сначала как-то прототипируют, пишут софт, а уже потом разводят плату. Но, можно сделать наоборот. В данном случае, схемотехника была примерно понятна. Есть готовый драйвер коллекторного двигателя. Есть контроллер, функционал которого, в любом случае, задается софтом. А это позволяет подключать его ноги практически произвольно. Есть цепи питания и всякой периферии. Проще, сразу развести всё на плате, чем делать двойную работу, собирая на проводках похабную макетку.


Плату буду делать в EagleCAD.


Платка была мелкая, в ограничение демоверсии влезала легко. Первым делом, решил нарисовать цепь питания. Контроллер потребляет мало. Значит, хватит обычного линейного стабилизатора. Делаем ему обвязку из конденсаторов на входе и выходе. Не забываем зашунтировать электролиты керамикой, а то у них огромная индуктивность, и наносекундные импульсы они почти не фильтруют.Так… А чем включать? Актуатор жрёт довольно неслабый ток. А заказчик дал нам гламурную кнопочку, чтоб было красиво. Что делать? Будем усиливать. В разрыв цепи ставится Р-канальный мосфет, который открывается кнопкой. Современные транзисторы могут схавать дикие токи при очень мелких габаритах. Заодно, получаем халявную защиту от переполюсовки.

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

Чтобы совсем не запутаться, разводим часть платы. Переходим в трассировщик, и ужасаемся. Первое ощущение — ступор и паника. На экране девственно пустая плата. В углу, кучкой, навалены детали, а между ними ктулхическое переплетение соединений. Спутанные наушники видели? А теперь, представьте, что их полный рюкзак.

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

Растаскиваю компоненты по плате, и начинаю рисовать дорожки. Вроде получается. Часть схемы постепенно обретает вменяемый вид. Переношу на плату стабилизатор. Рисую. Смотрю на результат. Нецензурно ругаюсь. Удаляю часть дорожек и переделываю. Кажется, внутренний перфекционист удовлетворен. Можно идти дальше.


Перехожу обратно к схеме. Впихиваю контроллер. И сразу разъем для программирования. Надо, чтобы чип прошивался прямо на плате. Шить их перед запайкой было бы ни разу не технологично. Рисуем разъемы под кнопки и светодиод индикации. Добавляем делитель напряжения, чтобы измерять, что у нас там по питанию. И, обязательно, гнусную пищалку!

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

Снова разводим дорожки. Выясняется, что разъем для программатора впихивается ужасно неудобно. Сейчас бы двустороннюю разводку! Но, прототип решили делать односторонним. Все равно, потом допиливать. Наконец, с помощью такой то матери удается все красиво скомпоновать.

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

Настало время впихнуть на плату драйвер двигателя. Взяли готовый модуль. По странному стечению обстоятельств, модуль оказался дешевле, чем компоненты, которые на нем распаяны. Причем раза так в три дешевле.


Здравый смысл за то, чтобы взять его как есть. Тем более это будет выставочный образец, да и если и серия, то небольшая. Десятки штук. Так что модуль будет вполне оптимален.

Разумеется, модуля в библиотеке EagleCAD нет. Придется рисовать.


Задаем условное обозначение на схеме. Перерисовываем плату, стараясь не ошибиться с габаритами. Игл радует тем ,что координаты начал и концов можно прям цифрами вносить в свойства линий. И не надо ничего подгадывать и считать клеточки. Затем вбиваем соответствие ног на схеме и на плате. Готово!


Впихиваем модуль на плату. Важно правильно развести силовые цепи. Если пустить землю одной линией, то модуль будет создавать помехи контроллеру. Дело в том, что дорожки отнюдь не сверхпроводящие, и при большом токе через земляную линию между её участками может получится неслабый потенциал. Чтобы этого не было, ведем силовую землю прям от источника питания.


Еще несколько штрихов. Разглядываю плату. Правлю мелкие косяки. Кажись, можно воплощать в железе.

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

жЫрно печатаю маску с дорожками на бумаге. Через неё мы будем засвечивать фоторезист!

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

Если посмотреть бумагу на просвет, видно, что тонер закрашивает её недостаточно плотно. Это плохо. Скорее всего, через такую маску засветится что не надо, и будет брак. На этот случай есть специальная жижа, которая вызывает набухание тонера и его уплотнение. Зовется она Density Toner и купить ее можно в фирмах продающи расходники для типографий. Рублей 400 за баллон стоит, хватает очень надолго. Еще можно шаблон подержать в парах ацетона, от них тонер тоже набухает знатно.

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

Фоторезист выглядит как тонкая пленка. Её накатывают на плату, засвечивают через маску, и смывают. Там, где на неё воздействовал ультрафиолет, она стабилизируется и так просто уже не смывается. В результате, у нас получается рисунок дорожек.


Важно накатать пленку ровно, без пузырей и заломов. Лучше всего с этим справляется ламинатор.

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

Фоторезист засвечен и смыт проявителем. Остается протравить плату в хлорном железе.

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

Полчаса ожидания, и плата готова. Быстро запаиваю все детали. Результат мне нравится. Физически это уже готовое изделие, но без прошивки — труп.

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

Шел второй час кодинга. Устремив взор в белое безмолвие монитора я пытался разобраться с регистрами незнакомого мне ранее контроллера. В какой-то момент мне захотелось бросить всё, и написать программу на Ардуино… Я обернулся. Ди Хальт смотрел на меня, и с укоризной во взгляде правил лезвие своего кукри, как бы намекая, что не стоит его разочаровывать.


Главная проблема устройства в том, что все надо делать быстро. Помпа давит гидравлику и там, за считанные доли секунды, может накачать огромное давление и все поломать. И надо одновременно и интерфейс обрабатывать и замерять давление. Датчика давления там нет, но косвенно его можно понять по току двигателя. Он ведь напрямую зависит от момента, а момент от сопротивления.


У контроллера нет никакой многозадачности. По кругу выполняется одна единственная программа, в которой и происходит всё интересное. Чтобы многозадачности, все таки, добиться, есть особые приемы. В первую очередь, прерывания.


Прерывания — это особые события, на которые контроллер отвлекается и быстро выполняет куски кода, возвращаясь потом к основной программе. Допустим, прилетел байт в UART. Надо скопировать его в какой-нибудь буфер. Ждать нельзя, а то прилетит следующий, вытолкает из регистра тот, что был, и мы его потеряем. А вот если вынести код, пихающий байты в буфер, в прерывание, то в момент прихода байта контроллер будет его быстренько сохранять, почти не тормозя выполнение основной программы.


Так вот. Я благодарен Ди Хальту, за то, что он сразу заставил меня писать на чистом Си. Начинающие ардуинщики обычно не умеют в прерывания. Так и случилось. В той проге, что написали заказчики, крутился основной цикл. В нем была куча задержек. Они нужны, так как, контроллер тикает миллионы раз в секунду, а переходные процессы в кнопках и датчиках происходят намного медленнее, и на полной скорости он будет ловить кучу ошибок.


Это как посадить семечко, и через каждые несколько секунд его откапывать и смотреть, насколько оно подросло.


Пока программа прокручивала цикл с задержками, контроллер безответственно профукивал бросок тока. Уменьшить задержки? Тоже плохо.


Вообще, ардуино не запрещает делать все на прерываниях. Проблем тут две.


Первая — обычно, те, кто учится прогать на ардуино, не копают глубоко. Они просто не знают, что вообще бывают прерывания, регистры, и все такое. Бабуино — это такой особый путь.


Ну и вторая — библиотеки ардуино делают без ведома программиста кучу неведомой хрени, стараясь упростить ему жизнь. В результате, попытки напрямую обратиться к аппаратным ресурсам могут привести к неожиданным глюкам и непонятному времени исполнения. А нам, напомню, надо все делать очень быстро.


(Ну ну, я тут расхвастался зря. Я очень начинающий разработчик, и нифига не умею. Проект то простой. В то время, как есть те, кто делает на ардуино вещи гораздо более крутые. Но, это как раз люди, знающие архитектуру контроллера и копающие глубоко. Ну, или грамотное использование библиотек, написанных такими людьми.)


В общем, нахер ардуино, я решил пойти путем здорового человека. Мне было нужно в реальном времени замерять ток на двигателе, опрашивать кнопки, и крутить довольно простой главный цикл, в котором движок гонял бы поршень туда-сюда реверсируя направление при срабатывании конечника, или при превышении тока.


По току на движке можно понять, что происходит. Чем сильнее нагружаешь двигатель, тем больше он жрет. Заклинило, уперся в стенку — ток будет максимальным. Значит, ориентируясь по току, легко можно сделать автоматику как у дверей лифта, которые, если что-то не дает закрыться, отходят обратно.


АЦП контроллера тикает с определенной частотой. Как только он померял, что на него приходит, он выдает прерывание. Вот в это прерывание я и засунул кусок кода, отвечающий за измерение тока. Туда же засунул измерение напряжения питания. Сварганив простенький конечный автомат. Пригодится.


Получается, что пока основная программа работает с какой-то своей скоростью и задержками, контроллер много раз успевает быстро посмотреть, какой ток у нас в двигателе. И, к тому времени, как программа доходит до условия по току, у нас всегда есть его текущее значение.

Теперь нужно было разобраться с кнопками. У нас целых три таймера. Их можно заставить выполнять что-то в прерывании, в то время, как основной цикл занят своими делами.


Заказчик хотел две сенсорные кнопки. Одна должна включать привод, пока на нее давишь. Вторая включать и выключать.


С первой все совсем просто. Кнопка нажата — есть флаг разрешения работать. Основной цикл врубает движок. Нет — вырубает.


Со второй все чуть сложнее. Простейшее решение, сделать так, чтобы нажатие кнопки инвертировало какой-то флаг. Тычешь один раз — он сменяется с «выкл» на «вкл». Еще раз — наоборот.


Работать это будет. Но, криво. С ложными срабатываниями. Чтобы всё было идеально четко, нужно реализовать конечный автомат. В общем, логику как у авторучки с кнопкой. Нажимаешь один раз, алгоритм поднимает флаг, и переключается в следующее состояние, в котором ждет отпускания кнопки. Нажимаешь второй — флаг сбрасывается, и программа снова ждет отпускания. При этом, нажатие кнопки срабатывает четко, и её не трясет как от болезни Паркинсона.


Кстати, о тряске. У механических кнопок контакт замыкается не сразу. Какие-то миллисекунды он дребезжит. Контроллер быстрый, и успевает принять это за кучу нажатий подряд. На этот случай можно ввести итератор, который будет переключать конечный автомат с следующее состояние только если несколько циклов подряд состояние кнопки не будет меняться.

У нас кнопки сенсорные. Но, на всякий случай, антидребезг я, все же запилил, чтобы не возиться с этим, если внезапно заказчик захочет механические.


Программа уже почти готова. Основной цикл получился не сложный. Но, оброс процессами, вынесенными в прерывания. По сути, это уже многозадачность.


Загружаем код в контроллер. Подаем питание. РАБОТАЕТ!!!

Проект «Качок» Разработка, Контроллер, Компрессор, Длиннопост, Программирование

В том, как полученный агрегат совершал возвратно-поступательные движения, определенно, чувствовалось что-то фрейдистское.


Настало время допиливания. Первым делом надо было как то нагрузить актуатор, чтобы понять насколько адекватно у нас идет измерение тока. Ведь от тока зависел и момент. Ага, легко сказать. У него усилие в несколько сот килограмм. И я, даже навалившись на него всем весом, не смог бы создать сколь-нибудь ощутимой нагрузки. Ди посмотрел на это, схватил нож и куда то убежал. Вернулся через пять минут с обрезком толстого резиного шланга, сантиметров на 10. Я даже думать не хочу у кого он его отрезал. Натянули шланг на шток актуатора, на манер крайней плоти. Осталось только воткнуть отвертку в отверстие на конце штока, чтобы шлангу не куда было деваться и попробовать его сжать. Сопротивление кусок резины оказал достойное, удалось даже заклинить актуатор, выведя его на максимальную нагрузку.


Нагрузка есть, первым делом, я решил откалибровать датчик тока. Ноги UARTа очень удачно оказались на разъеме, к которому должен цепляться светодиод. Ничто не мешало врубить его в режиме отладки, и подключиться к компу.


Оказалось, что сигнал довольно зашумлен. График слегка колбасило.


Чтобы это побороть, я сделал кольцевой буфер. Контроллер при каждом измерении тока записывает результат в массив, пока не наберется 32 значения. Когда нам нужно узнать ток, мы перемножаем их все, и вычисляем среднее арифметическое. Получился простенький аналог RC цепочки.


Шумы исчезли, осталась только плавная линия, рисующая график того, как мы нагрузили двигло.


А главное, интегрирование значений помогло избавиться от проблемы пускового тока. В момент запуска двигателю нужно преодолеть инерцию, чтобы стронуться с места. В этот момент, он жрет столько, сколько может проглотить. То есть, намного больше, чем при работе. Это мешало откалибровать защиту по току. В момент изменения направления система думала, что у нас перегрузка, и начинала дергать движок в разные стороны, вместо того, чтобы проявить целеустремленность. Интеграция сгладила этот пик, и проблема пофиксилась.


Допилил еще кучу мелочей. Результат мне уже нравился. В какой-то момент, стало ясно, что он соответствует техзаданию, а в чем-то его даже превосходит.


Настало время суровых испытаний.


В торжественной тишине мы внесли устройство в лабу к заказчику. Под барабанную дробь подключили помпу, которой оно должно было рулить. И…


Оно заработало.


И тут выяснилось, что есть одна проблема. Помпа работает как с воздухом, так и с жидкостью. Воздух сжимается. Качать его нужно долго. Жидкость же накачивается до нужного давления буквально мгновенно.


Так вот. Движок давит со всей дури. И пока сработает защита по току (у нас же кольцевой буфер с интеграцией, и заполняется он не сразу), он успевает накачать слишком много.

Уменьшить буфер? Система начинает реагировать на пусковой ток, как на превышение нагрузки.

Начался мозговой штурм. Как бы это быстро поправить прям тут, не переписывая всю программу полностью.


Предложили сделать так, чтобы после срабатывания концевика программа плавно повышала ток на двигателе, а буфер уменьшить. Потом, предложили сделать физический токовый стабилизатор, который бы не давал движку развивать усилие больше заданного. Благо токовые стабилизаторы валялись буквально под ногами.


Мне представилась пирамида из костылей. Ага. Нужно построить зиккурат.


И тут…


Это похоже на луч света, внезапно озаривший пасмурное небо. Инсайт! Я дописал одну… Всего одну строчку кода! И двигатель стал плавно разгоняться ШИМом, и развивать строго определенное усилие.


При этом, в программе никакой плавной регуляции не было. Никаких таймеров с ШИМ выходом. Никаких циклов, медленно добавляющих ток двигателю. Ничего.


Просто, в прерывание АЦП я добавил строку, которая, если ток становился больше определенного, отключала его до следующей итерации. И этого оказалось достаточно. АЦП тикает с довольно высокой частотой. Значит, он, совершенно естественным образом будет обрезать большой пусковой ток, автоматически создавая ШИМ с нужной скважностью. А индуктивность двигателя его сгладит. Если же движок упрется в препятствие, его усилие, так же, будет ограниченно заданным током.


А что с реверсом по превышению тока? А он никуда не делся. Пока ШИМ ограничивает пиковый ток, кольцевой буфер заполняется его значениями. И, как только, среднее арифметическое станет больше заданной величины, сработает реверс.


Решение оказалось настолько простым и изящным, что я не мог поверить. А что, так можно было?!


Оказалось, да.


Устройство уехало на выставку.


Функциональный прототип готов. Впереди допиливание, ресурсные испытания, ловля оставшихся багов, и, если повезет, предсерийный образец.


Источник

Показать полностью 11
39

Топ-10 стран по золотым медалям на Олимпиаде по информатике

Десять стран с наибольшим количеством золотых медалистов на Международной олимпиаде по информатике с 1989 по 2019 год:

Соревнование состоит из двух дней, в котором участникам предлагается решить и запрограммировать алгоритмические задачи. Участники соревнуются индивидуально, от каждой страны может быть не больше четырёх участников.

Топ-10 стран по золотым медалям на Олимпиаде по информатике Информатика, Образование, Программирование, Программист, Школьная олимпиада, Статистика, Рейтинг, Самый умный, Видео

Лидирует Китай, Россия уверенно занимает второе место, правда в последние годы начинает догонять США.

Интересный факт: Геннадий Короткевич из Белоруссии с 6 золотыми медалями является рекордсменом в истории Международных олимпиад по информатике.

На счету СССР 3 золотые медали.

Россия - 62 (золотые медали)

Белоруссия - 16

Украина - 10

Латвия - 7

Грузия - 5

Эстония - 5

Казахстан - 3

Литва - 2

Армения - 1

Туркменистан - 1

Показать полностью
35

Что находится между идеей и кодом? Обзор 14 диаграмм UML

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Аве Кодер! Тебе пришла крутая идея продукта, но ты не хочешь увязнуть в коде и потерять целостную картинку из-за мелких деталей? Ты вот-вот присядешь за то, что крякнул корпоративный сервер и тебе нужно набить что-то крутое и айтишное?


UML, как мы знаем, является стандартизированным языком моделирования, состоящим из интегрированного набора диаграмм, разработанных, чтобы помочь разработчикам систем и программного обеспечения в определении, визуализации, конструировании и документировании артефактов программных систем, а также, к примеру, для бизнес-моделирования.


UML представляет собой набор лучших инженерных практик, которые доказали свою эффективность в моделировании больших и сложных систем и является очень важной частью разработки объектно-ориентированного программного обеспечения.


UML использует в основном графические обозначения, чтобы выразить дизайн программных проектов. Использование UML помогает проектным группам общаться, изучать потенциальные проекты и проверять архитектурный дизайн программного обеспечения.


Для тех, кому лень читать и кто предпочитает смотреть и слушать: https://youtu.be/0I9aIP5gKCg


Основные цели дизайна UML:

Предоставить пользователям готовый, выразительный язык визуального моделирования, чтобы они могли разрабатывать и обмениваться осмысленными моделями.

Обеспечить механизмы расширяемости и специализации для расширения основных понятий.

Быть независимым от конкретных языков программирования и процессов разработки.

Обеспечить формальную основу для понимания языка моделирования.

Поощрять рост рынка объектно-ориентированных инструментов.

Поддержка высокоуровневых концепций разработки, таких как совместная работа, структуры, шаблоны и компоненты.

Интегрировать лучшие практики.


Диаграммы UML подразделяют на два типа - это структурные диаграммы и диаграммы поведения.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Структурные диаграммы показывают статическую структуру системы и ее частей на разных уровнях абстракции и реализации, а также их взаимосвязь. Элементы в структурной диаграмме представляют значимые понятия системы и могут включать в себя абстрактные, реальные концепции и концепции реализации.


Диаграммы поведения показывают динамическое поведение объектов в системе, которое можно описать, как серию изменений в системе с течением времени.


Теперь пару слов о каждой из них


Диаграмма классов

https://youtu.be/sVVJp5a41o4


Диаграмма классов - это центральная методика моделирования, которая используется практически во всех объектно-ориентированных методах. Эта диаграмма описывает типы объектов в системе и различные виды статических отношений, которые существуют между ними.


Три наиболее важных типа отношений в диаграммах классов (на самом деле их больше), это:

-- Ассоциация, которая представляет отношения между экземплярами типов, к примеру, человек работает на компанию, у компании есть несколько офисов.

-- Наследование, которое имеет непосредственное соответствие наследованию в Объектно-Ориентированном дизайне.

-- Агрегация, которая представляет из себя форму композиции объектов в объектно-ориентированном дизайне.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма компонентов

https://youtu.be/OiVyha3sf_I


На языке унифицированного моделирования диаграмма компонентов показывает, как компоненты соединяются вместе для формирования более крупных компонентов или программных систем.


Она иллюстрирует архитектуры компонентов программного обеспечения и зависимости между ними.

Эти программные компоненты включают в себя компоненты времени выполнения, исполняемые компоненты, а также компоненты исходного кода.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма развертывания

https://youtu.be/Yz8phtJoP7I


Диаграмма развертывания помогает моделировать физический аспект объектно-ориентированной программной системы. Это структурная схема, которая показывает архитектуру системы, как развертывание (дистрибуции) программных артефактов.

Артефакты представляют собой конкретные элементы в физическом мире, которые являются результатом процесса разработки.


Диаграмма моделирует конфигурацию времени выполнения в статическом представлении и визуализирует распределение артефактов в приложении.

В большинстве случаев это включает в себя моделирование конфигураций оборудования вместе с компонентами программного обеспечения, на которых они размещены.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма объектов

https://youtu.be/tVW5oHNfAvc


Статическая диаграмма объектов является экземпляром диаграммы класса; она показывает снимок подробного состояния системы в определенный момент времени. Разница в том, что диаграмма классов представляет собой абстрактную модель, состоящую из классов и их отношений.

Тем не менее, диаграмма объекта представляет собой экземпляр в конкретный момент, который имеет конкретный характер.Использование диаграмм объектов довольно ограничено, а именно - чтобы показать примеры структуры данных.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма пакетов

https://youtu.be/237BWanM4Ak


Диаграмма пакетов - это структурная схема UML, которая показывает пакеты и зависимости между ними.

Она позволяет отображать различные виды системы, например, легко смоделировать многоуровневое приложение.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма составной структуры

https://youtu.be/nsuJcMNaKeE


Диаграмма составной структуры аналогична диаграмме классов и является своего рода диаграммой компонентов, используемой в основном при моделировании системы на микроуровне, но она изображает отдельные части вместо целых классов. Это тип статической структурной диаграммы, которая показывает внутреннюю структуру класса и взаимодействия, которые эта структура делает возможными.


Эта диаграмма может включать внутренние части, порты, через которые части взаимодействуют друг с другом или через которые экземпляры класса взаимодействуют с частями и с внешним миром, и соединители между частями или портами. Составная структура - это набор взаимосвязанных элементов, которые взаимодействуют во время выполнения для достижения какой-либо цели. Каждый элемент имеет определенную роль в сотрудничестве.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма профилей

https://youtu.be/qBws7AfvDL8


Диаграмма профилей позволяет нам создавать специфичные для домена и платформы стереотипы и определять отношения между ними. Мы можем создавать стереотипы, рисуя формы стереотипов и связывая их с композицией или обобщением через интерфейс, ориентированный на ресурсы. Мы также можем определять и визуализировать значения стереотипов.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма прецедентов

https://youtu.be/BdAcxboG5No


Диаграмма прецедентов описывает функциональные требования системы с точки зрения прецедентов. По сути дела, это модель предполагаемой функциональности системы (прецедентов) и ее среды (актеров).

Прецеденты позволяют связать то, что нам нужно от системы с тем, как система удовлетворяет эти потребности.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма деятельности

https://youtu.be/Z8PHBsNXAgc


Диаграммы деятельности представляют собой графическое представление рабочих процессов поэтапных действий и действий с поддержкой выбора, итерации и параллелизма.

Они описывают поток управления целевой системой, такой как исследование сложных бизнес-правил и операций, а также описание прецедентов и бизнес-процессов.

В UML диаграммы деятельности предназначены для моделирования как вычислительных, так и организационных процессов.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма состояний

https://youtu.be/ojCcUvGfpi8


Диаграмма состояний - это тип диаграммы, используемый в UML для описания поведения систем, который основан на концепции диаграмм состояний Дэвида Харела. Диаграммы состояний отображают разрешенные состояния и переходы, а также события, которые влияют на эти переходы. Она помогает визуализировать весь жизненный цикл объектов и, таким образом, помогает лучше понять системы, основанные на состоянии.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма последовательности

https://youtu.be/ycg3njrkk1c


Диаграмма последовательности моделирует взаимодействие объектов на основе временной последовательности. Она показывает, как одни объекты взаимодействуют с другими в конкретном прецеденте.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма Коммуникации

https://youtu.be/KVLJj9xOq0E


Как и диаграмма последовательности, диаграмма коммуникации также используется для моделирования динамического поведения прецедента. Если сравнивать с Диаграммой последовательности, Диаграмма коммуникации больше сфокусирована на показе взаимодействия объектов, а не временной последовательности. На самом деле, диаграмма коммуникации и диаграмма последовательности семантически эквивалентны и могут перетекать одна в другую.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Диаграмма обзора взаимодействия

https://youtu.be/E0OJG8ojEAg


Диаграмма обзора взаимодействий фокусируется на обзоре потока управления взаимодействиями. Это вариант Диаграммы деятельности, где узлами являются взаимодействия или события взаимодействия. Диаграмма обзора взаимодействий описывает взаимодействия, в которых сообщения и линии жизни скрыты. Мы можем связать «реальные» диаграммы и добиться высокой степени навигации между диаграммами внутри диаграммы обзора взаимодействия.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Временная диаграмма

https://youtu.be/NKTyDQUkLoM


Временная диаграмма показывает поведение объекта (ов) в данный период времени. По сути - это особая форма диаграммы последовательности и различия между ними состоят в том, что оси меняются местами так, что время увеличивается слева направо, а линии жизни отображаются в отдельных отсеках, расположенных вертикально.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма
Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Зачем в UML столько диаграмм?


Причина этого заключается в том, что можно взглянуть на систему с разных точек зрения ведь в разработке программного обеспечения будут участвовать многие заинтересованные стороны, такие как: аналитики, конструкторы, кодеры, тестеры, контроль качества, клиенты, технические авторы.

Что находится между идеей и кодом? Обзор 14 диаграмм UML IT, Длиннопост, Софт, Программирование, Программа, Программист, Разработка, Диаграмма

Все эти люди заинтересованы в различных аспектах системы, и каждый из них требует разного уровня детализации.

Например, кодер должен понимать проект системы и уметь преобразовывать проект в код низкого уровня.

Напротив, технический писатель интересуется поведением системы в целом и должен понимать, как функционирует продукт.

UML пытается предоставить язык настолько выразительным образом, что все заинтересованные стороны могут извлечь выгоду, как минимум из одной диаграммы UML.



Аве!

Показать полностью 17
131

Во что поиграть программисту на карантине

На карантине я решил освоить программирование на Python…, но залип на играх. На эту тему есть много игрушек, в которых программисту можно весело провести время. Я опишу некоторые из тех, которые меня заинтересовали.

TIS-100

Во что поиграть программисту на карантине Программирование, Инди игра, Компьютерные игры, Подборка, Симулятор, Разработка, Длиннопост

Игра, от Zachtronics, которая уже считается классикой и практически породила свой собственный жанр “zach-like”, (не путать с “souls-like” )))))), а то будет боооооль). Без поллитра не разберешься, но когда разберешься, то становится интересно, и дальше все интереснее. Минус - сюжет только на английском языке. Если любите сложные задачки - очень рекомендую.


Ссылка на Steam: https://store.steampowered.com/app/370360/TIS100/

SHENZHEN I/O

Во что поиграть программисту на карантине Программирование, Инди игра, Компьютерные игры, Подборка, Симулятор, Разработка, Длиннопост

Если понравилась предыдущая игрушка, то также посмотрите на ее более продвинутую версию от того же разработчика - с более интересными геймплейными возможностями, поддержкой мастерской и большим комьюнити.


Также у Zachtronics есть и другие игры, но они похожи друг на друга и напоминают перечисленные выше, что я не стал о них писать. Кто захочет познакомиться сам.


Ссылка на Steam: https://store.steampowered.com/app/504210/SHENZHEN_IO/

ASTRA-256 Assembler

Во что поиграть программисту на карантине Программирование, Инди игра, Компьютерные игры, Подборка, Симулятор, Разработка, Длиннопост

После игр Зака, наткнулся на эту игру, которая делается уже усилиями наших разработчиков. Хотя это скорее не игра, а олд-скульный компьютер, или калькулятор, с возможностями программирования на Ассемблере. Также программа дает представление о том как работает железо компьютера. У проекта пока ранний доступ и не слишком много отзывов, но есть мастерская и подробная документация. Также рекомендую к ознакомлению.


Ссылка на Steam: https://store.steampowered.com/app/1260310/ASTRA256_Assembler/

Basic8

Во что поиграть программисту на карантине Программирование, Инди игра, Компьютерные игры, Подборка, Симулятор, Разработка, Длиннопост

Если наелись Ассемблером, тогда вот вам старый-добрый Бейсик в новой обертке! Те, из вас, кто как и я в школьные годы пытались создать что-то свое при помощи этого языка, обязательно должны попробовать эту игру. Программа малоизвестна и у нее также маловато отзывов, пока что...


Ссылка на Steam: https://store.steampowered.com/app/767240/BASIC8/

Human Resource Machine и 7 Billion Humans

Во что поиграть программисту на карантине Программирование, Инди игра, Компьютерные игры, Подборка, Симулятор, Разработка, Длиннопост

Эти 2 игры от авторов World of Goo я решил объединить под одним заголовком, потому что они очень похожи и являются более простыми играми на тему программирования. Подойдет даже ребенку. Хотя я не уверен, что под конец игры ваше чадо не будет с глазами красными от слез и кода =)) Также, может подойти, чтобы познакомиться с основами и скоротать несколько вечеров.


Ссылка на Steam: https://store.steampowered.com/app/375820/Human_Resource_Machine

Ссылка на Steam #2: https://store.steampowered.com/app/792100/7_Billion_Humans

while True: learn()

Во что поиграть программисту на карантине Программирование, Инди игра, Компьютерные игры, Подборка, Симулятор, Разработка, Длиннопост

Нейросети, коты, программирование и приятный визуальный стиль - ядреная смесь! Ненапряжно, интересно, забавно. Если переиграли во все выше перечисленное, тогда посмотрите и данную игру.


Ссылка на Steam: https://store.steampowered.com/app/619150/while_True_learn/

Gladiabots

Во что поиграть программисту на карантине Программирование, Инди игра, Компьютерные игры, Подборка, Симулятор, Разработка, Длиннопост

Пока коты спят... как вам программирование ИИ боевых роботов с последующими гладиаторскими боями в одиночном режиме или в мультиплеере? Заинтересовало? Тогда обязательно посмотрите эту игру. Думаю, затянет вас надолго =).


Ссылка на Steam: https://store.steampowered.com/app/871930/Gladiabots/

Я ничего интересного не упустил? Возможно, вы в комментариях дополните список другими интересными проектами?

Показать полностью 5
126

Во все тяжкие: Веб-разработчик с нуля. 1 год

Во все тяжкие: Веб-разработчик с нуля. 1 год IT, Программирование, Карьера, Javascript, Веб-Разработка, Frontend, Web, Длиннопост

"Еще до встречи с Юнаковым он уже жил по правилу: не отступать и не теряться. Не вышло—повтори. Правило, чем-то напоминающее цирковой обычай: не удался прыжок, упал с лошади или с проволоки — повтори, не откладывая в долгий ящик, повтори, преодолевая боль и страх, повторяй до тех пор, пока не добьешься своего, иначе тебе никогда не избавиться от неуверенности в решающий момент. Александр Крон - "Капитан дальнего плавания".


ЦельSenior Frontend Developer.

Язык: JavaScript.

Возраст: 29 лет.

Работа (настоящее время): Trainee Frontend Developer в компании "Корус Консалтинг СНГ".

Локация: г. Санкт-Петербург.


Привет! Пролетел год, с того самого дня, как я твердо решил освоить профессию инженера-программиста (веб-разработчика). И в этом посте мне не хочется рассказывать в привычной мне манере о том, что я сделал за последний месяц и о трудностях с которыми столкнулся. Вкратце, расскажу об этом в конце поста, а сейчас позволю себе кое-что поведать.


Этот год был интересен для меня не столько программированием, сколько открытием для себя новой плоскости, знакомство с людьми, чье мышление и навыки довольно интересны сами по себе.


Каждый человек рожден для того, чтобы развить в себе способность разбираться за короткий промежуток времени и решить задачу в любой сфере, неважно в какой. В истории, примеров людей, реализовавших эту способность, десятки. Современная жизнь требует от человека решение задач в разных плоскостях, но общество заставляет становиться узкоспециализированным специалистом в одной сфере, абсолютно неспособного ни на что, стоит только его вытянуть за пределы его плоскости влияния. И, как вы понимаете, жизнь со всеми ее ситуациями делает и будет продолжать делать это с каждым. Неважно, программист ты или врач, сантехник или менеджер, тебе обязательно придется столкнуться с реалиями жизни и со сферами, которые тебе не знакомы. Поэтому очень важно научиться быстро разбираться в любой сфере и принимать правильные решения.


К чему это я веду? К тому, чтобы глядя на мой пример, вы ни в коем случае, не закрывались в четырех стенах с компьютером в обнимку. Со стороны может показаться, что моя история - это история человека, который решил "жить программированием", что он только и делает, что программирует и больше ему ничего не интересно. Нет, это не так.


Моя жизнь не заканчивается программированием. Для меня программирование сейчас - это лишь сфера, которая мне показалась год назад очень хорошей для того, чтобы освоить определенные навыки и почувствовать под ногами опору в профессиональной сфере. Сейчас она мне кажется до сих пор такой сферой. Получилось ли это? Еще нет, я в начале пути, но определенно кое-какие успехи есть, и чувствую я себя увереннее. И я абсолютный противник такого образа жизни, при котором мышление человека фиксируется на одной плоскости и практически никогда оттуда не смещается. Иногда, да, требуется длительная фокусировка на сфере, но не фиксация.


Что касается программирования - то это обычная профессиональная плоскость, со своими особенностями и определенными требуемыми навыками. Она интересная, как и многие другие сферы, но она не особенная.


Сейчас у меня начался второй месяц стажировки и учебы в компании "Корус Консалтинг СНГ". Могу с уверенностью сказать, что за этот месяц я понял и освоил, с помощью преподавателя, больше, чем за несколько месяцев самостоятельной работы. Это к тому, что если есть возможность учиться у кого-то, кто уже прошел такой же путь - то обязательно делайте это. Еще я понял, что конкретные технологии абсолютно не имеют значения. React, Vue, Angular... это все не важно. Если вы понимаете главные принципы построения программы, принципы взаимодействия ее частей и тот язык на глубоком уровне, на базе которого происходит всё это построение, то вы очень быстро перейдете на любую абстракцию и будете спокойно ее использовать.


Меня недавно спросили -"Как закреплять элементарные основы по JS (if, for, простые функции) на практике? откуда брать задания? с задачами на learn-javascript я более менее справляюсь, но этого мало."

Хочу написать для всех. Задайте себе вопрос: К чему вы идете? Вы хотите научиться решать задачки с Codewars или вы хотите устроиться в компанию и решать коммерческие задачи, тем самым зарабатывая деньги? Если ответ второй, то тогда начните с тестовых заданий в компании (или компанию, если есть такая, в которую вы хотите попасть). И пляшите от тестового задания. Всё, что вам необходимо знать и уметь для решения этой и подобных задач, с полным понимаем, того что вы делаете, и будет тем, куда вам необходимо прикладывать усилия. Про собеседования, на которых вас заставляют решать задачи, абсолютно никак не связанные с будущими задачами на работе - я промолчу.


В связи с этим, я решил помочь таким же как и я и создал базу тестовых заданий для frontend разработчиков. На данный момент она пополняется исключительно теми заданиями, которые присылали мне. По мере возможности, я буду ее пополнять. Я думаю, еще порядка 15-20 заданий, я в ближайшие дни туда выложу. Так же, приветствую пулреквесты. На гитхабе есть подобный репозиторий, но там очень мало тестовых, и в основном задания от крупных компаний. Но ведь больше как раз маленьких компаний, и было бы хорошо +- понимать, какие тестовые могут быть в этой компании и вообще, какие навыки и знания будут требоваться при работе там, с учетом особенности сферы и т.д. С другой стороны это позволит работодателям не расслабляться и постоянно менять тестовые. Дабы действительно брать на работу только тех, кто решил задачу, а не тех, кто скопировал решение из чужого репозитория или канала на ютубе, а потом будет сидеть и тупить на работе.


Что же касается моего развития, то я публично выкладываю материалы, которые я закончил изучать. Можете смело глядеть и подбирать для себя то, что хотите. У меня вкус хороший, надеюсь.


На этом я хочу сегодня закончить. Развиваемся дальше. Впереди у меня еще месяц стажировки, TypeScript и React. Но об этом в следующем отчете.


Всем профессионального роста и силы. Не забывайте, что мир сам по себе тайна, которую стоит раскрыть для себя. Не капсулируйте весь мир в одной плоскости!



Артем OWIII.

Контакты: Instagram, Github.

Показать полностью
83

Бесплатно помогаю пикабушникам учить программирование, часть 7: «Ответы на часто-задаваемые вопросы»

Недавно я предложил бесплатную помощь в изучении программирования на Ruby.

Некоторые пикабушники-программисты сделали аналогично, предложив помощь в изучении других тем.

Вот весь список

https://teleg.one/LearnRubyForPikabu - Изучение Ruby

https://teleg.one/emergency_english - Изучение Английского

https://vk.com/learnpythonforfun - Изучение Python

https://tlgg.ru/uiuxtavern - Изучение дизайна(UI/UX)

https://teleg.one/LetsDesignPool - И еще одна группа по изучению дизайна

https://youtu.be/wpUztJjtoAY - Канал по изучению дизайна

https://discord.gg/MPAdxTw - Изучение Javascript

https://teleg.one/javacodingforpikabu - Изучение C# и Java

https://teleg.one/aerohockeyondart - Изучение Dart

https://teleg.one/barlabsmm - Изучение таргетированой рекламы

https://vk.com/learnblender - Изучение 3d моделирования в Blender (обновление)

https://discord.gg/6FsqqdW - Еще одна группа по изучениею 3d моделирования (обновление)

https://teleg.one/IELTSwithAnnaGulak - Помощь с написанием эссе для IELS (обновление)

https://pikabu.ru/story/1s_dlya_sovsem_nachinayushchikh_7337537 - Изучение 1С (обновление)

https://vk.com/club193741158 - обучение SEO (обновление)

https://teleg.one/egemathpikabu - Подготовка к ЕГЭ по математике

https://teleg.one/egephyspikabu - Подготовка к ЕГЭ по физике

https://teleg.one/ogephyspikabu - Подготовка к ОГЭ по физике

https://t.me/ogemathpikabu - Подготовка к ОГЭ по математике


Сегодня я вкратце отвечу некоторые вопросы, которые попадают ко мне в личку.


В каком текстовом редакторе писать код ?

Хоть в блокноте. Главное, чтобы вам было удобно. От себя рекомендую VS Code или RubyMine.


Есть план обучения а уроков нет. Когда будут ?

Я не вижу особой пользы от создания уроков потому, что уже существующих хватит для начала.


Я открываю hh.ru и вижу что вакансий для Ruby меньше чем для иного языка. Значит стоит учить более популярный язык?

Выбранная вами площадка вакансий далеко не единственная. Главное, чтобы вам нравился язык и он хоть немного пользовался спросом на текущий момент. Тренды меняются очень быстро и советчиков, которые считают что их мнение очень весомо/единственно правильное, будет очень много.


Почему говорят, что этого материала очень мало для новичка ?

Почему в разных компаниях будут разные требования для одинаковой должности. В маленькой провинциальной компании вы можете иметь уровень архитектора(очень высокая должность) а в условном Гугле подойдете только учеником на джуниора.

После освоения материала из этого плана вам хватит знаний для получения должности стажера/младшего разработчика в большинстве компаний СНГ.


За сколько времени я дойду до уровня джуниора ?

Слишком много факторов, чтобы ответить на этот вопрос однозначно. Зависит от обучаемости, дисциплины, отвлекающих факторов, изначальных данных, уровня кислорода в комнате, рациона питания и т.д. Не узнаете, пока не попробуете.


Мой канал в Telegram: https://teleg.one/LearnRubyForPikabu
Показать полностью
146

Во все тяжкие: Веб-разработчик с нуля. 11 месяцев

Во все тяжкие: Веб-разработчик с нуля. 11 месяцев IT, Программирование, Карьера, Javascript, Веб-Разработка, Frontend, Web, Длиннопост

А вот теперь меня уволили.. Месяц был насыщенным.. И не веселым.


Цель — Senior Frontend Developer.

Язык: JavaScript.

Возраст: 28 лет;

Работа (настоящее время): - Trainee Frontend Developer в компании "Корус Консалтинг СНГ";

Локация: г. Санкт-Петербург.


Привет всем моим подписчикам! Как вы там? У кого какие успехи?


Меня вот за этот месяц уже успели уволить разок, а сейчас я уже "работаю" в крупной компании. Ну давайте обо всем по порядку.


Я сделал десятки откликов на всем известной площадке для трудоустройства и конечно, было довольно много откликов с разного уровня тестовыми заданиями. Ходил на несколько собеседований, но что-то дело с мертвой точки не сдвигалось. Либо я не тянул и не мог тестовое сделать, либо после, вроде как успешного собеседования - тишина, не ответа ни привета.


Решил сменить тактику и опубликовал в своем твиттере клич о поиске работы. И тут на меня вышел работодатель, предложил вакансию верстальщика-разработчика.

Компания американская, стартап из Силиконовой Долины. Проект - свой браузер (расширение, надстройка над браузером на базе Chromium). Я подумал - крутой проект, плюс работа удаленная, зарплата в долларах, я не один фронт на проекте - предел мечтаний просто. Созвонились по скайпу с ведущим фронтом, я ответил на все вопросы, рассказал о своем небольшом опыте, вроде все обсудили и обо всем договорились.


Часа через два я  уже общался по видеосвязи с руководителем и инвестором стартапа, который сидел в солнечной Калифорнии и рассказывал о работе в их команде.


Еще через час я уже сидел и читал договор на английском и искал в нем пункт о продаже почки. Но нашел только свою зарплату в долларах. Если перевести в рубли, то примерно зарплата миддла в РФ. В общем, все подписал, мне выдали все доступы ко всяким jiraм и корпоративным почтам. Я не мог нарадоваться! Завтра в бой, с утра на митап или как там это называется. Знакомство с командой! Уже представил в мыслях как через пару месяцев смогу загорать на Бали и работать под пальмой. Но рано радовался..


На следующий день мне поставили задачи, задача была немного расплывчатой, входных данных мало(макет корявый). До обеда я только настраивал окружение, в чем мне помогал руководитель фронта и только после смог приступить к задаче. Но только я посмотрел на код и на то, как устроен проект, я понял, что это будет непросто..


Я увидел настоящий ад для верстальщика. Чтобы увидеть изменения нужно ввести пару команд в консоль, дабы пересобрать проект и после этого перезагрузить браузер. А так как это расширение, то там не совсем удобно работать с девтулзами. Но самое сложное - это их самописный фрэймворк, на котором все держалось. Я вообще не понимал как данные и элементы появляются на странице в расширении. То есть, просто так взять и добавить в код тег, в надежде его увидеть на странице, не получится. Я сидел и пытался понять, как же эта тварь работает. Документации к фрэймворку мне не дали.


К вечеру моя голова уже разрывалась на части, я чувствовал себя ничтожеством и раскатал руководителю сообщение о том, что мне нужно разобраться глубже как это все работает и что нужно что-то сделать с релоадом страницы и автоматической сборкой после изменений, иначе верстать в слепую - это тяжко и долго. Да и вообще, на данный момент я не могу сдвинуться, нужно осваивать фрэйм.


Но спустя пару часов руководитель и инвестор всего проекта предложил созвониться. Я почувствовал что-то неладное. По его тону я понял, что это всё. Говорил, что-то вроде: "Руководитель фронтэнда говорит, что переоценил свои возможности по обучению и уделению времени джуну" . В общем, они не готовы были вкладывать время в мое обучение. Он предложил прекратить сотрудничество и компенсировать мой рабочий день, но чего уж там.. Мне было не до этого. Я расстроился. Это был удар. Неожиданно просто все произошло, вот я и приуныл.


Изначально то мне сказали, что мы начнем с простых задач и потихоньку будем усложнять и делать задачи сложнее. А по итогу даже не дали времени на освоение их стека. Один день - это мало, я считаю. Но у них скоро должен был быть релиз, видимо из-за этого меня быстро отправили восвояси. Хозяин барин. Что сказать.


Вот так прошел мой первый и последний день работы в американском стартапе из Силиконовой Долины.


Помимо этого, за несколько дней до устройства я сдал тестовое задание в другую компанию и прошел во второй этап тестирования (очный этап). Но этот очный этап выпал на мой первый рабочий день в стартапе, поэтому я на него не смог пойти. В итоге я потерял и эту работу и возможно вторую ( так как первое тестовое мое оценили хорошо, а на второй этап я не пошел). Ну да ладно.


Далее я встряхнулся, сделал выводы и написал в ту компанию, в которую должен был идти на второй(очный) этап тестирования и объяснил ситуацию. И мне пошли навстречу, предложили сделать тестовое удаленно! Но оно было на время, ровно на 4 часа, с контролем времени. И вот на следующий день я выполнил эти два задания. Честно говоря, давно так не стрессовал. Еле уложился в 4 часа. Всё, сдал. Отправил.


Через пару часов получил фидбек, что сделал все замечательно и меня принимают в их проект. Что за проект вы спросите? Дебютный проект компании "Корус Консалтиинг СНГ". Крупная компания, дочка Сбербанка. Суть проекта - это два месяца оплачиваемой учебы (по срочному договору), вы учитесь и вам платят среднюю зп джуна по рынку! Не круто ли? После - трудоустройство в один из их проектов. А там ДМС, белая зп, английский и всякое такое.


Сегодня закончился третий день учебы. И знаете что? Это то, что мне было необходимо. Преподаватель, код ревью, лекции - очень интенсивная учеба и не простые практические задания. Нас в проекте 6 человек, возраст ребят и одной девушки от 22 до 30 лет. Мы общаемся, обмениваемся опытом, в общем - круто. И еще плюс: сегодня нас перевели на удаленку, в связи с чем - сами понимаете :) Стало еще удобнее.


Такие дела. Не останавливаемся и движемся к цели!


Ну и по традиции. Что я сделал и изучил за последний месяц:


1. Дочитал книгу "Грокаем Алгоритмы". Кто подписан на мою инсту уже давно в курсе;

2. Разобрал примерно половину книги Мартина Фаулера "Рефакторинг кода на JavaScript";

3. Разобрал процентов на 20% книгу Эрика Хэнчетта "Vue.js в действии".

4. Написал пару приложений( пару недописал) и мини проектов. Искать в гитхабе.

5. Я оформил свое резюме прямо в гитхабе. Как вам?

6. Посмотрел конференцию от Яндекса «Я ❤ Фронтенд 2020»; рекомендую!

7. Посмотрел конференцию от Яндекса «Я ❤ Фронтенд 2019»; рекомендую!

8. Сходил на конференцию Piter JS #45;

9. Познакомился с библиотекой Lodash;

10. Познакомился и попрактиковался с шаблонизатором Pug;

11. Познакомился и сделал пару проектов по WebGL(Tree.js);

12. Посмотрел где-то 1/4 курса ШРИ 2018 года от компании Яндекс.


Ну, что ребята? 11 месяцев позади и кажется, что у меня вот только-только что-то начинает получаться осознанное. Так, что кто думает, что можно стать более менее понимающим веб-разработчиком за 3-4 месяца - чушь. Вспоминаю свои первые собесы - стыд и срам.


Год интенсивного и каждодневного изучения и практики дадут плоды, но небольшие. Большие - дальше.


Успеха Вам! Подписчикам здоровья и удаленной работы в этой больной мировой обстановке! До встречи через месяц!


Артем, OWIII.

Показать полностью
383

Стартап на кузове машины

Работаю водителем, но — прошлое даёт о себе знать, — и потому кузов моей служебной машины в ожидании очередной мойки собственноручно расписан (в промежутках между разгрузками-загрузками) всякими умными словами, типа «PHP», «MySQL», «Python», «JQuery» и пр. На днях возвращаюсь к машинке и вижу, как двое юношей, — лет по 14 каждому, —сосредоточенно дополняют роспись. Подхожу.

— Что рисуем, художники?

— Ой, это ваша машина? Извините! Да мы увидели, что у вас тут языки программирования написаны, ну и решили дописать название своего, всё равно хуже не станет.

— Своего?! Какого своего?!

И тут ребята мне рассказывают, что при помощи языка Луэ они самостоятельно разработали свой язык программирования под названием Next. Дальше расспрашивать не стал — может, и зря, лишнего времени не было.

Ребята, если вы рассказали мне правду и читаете это на Пикабу — не бросайте это дело! Вы молодцы! Если ваш Next войдёт в обиход — обещаю изучить и даже что-нибудь на нём написать. Может, и с работы водителя соскочу когда-нибудь благодаря вам. Только документацию нормальную сделайте.

2469

Может ли тракторист стать разработчикам игр? Сегодня релиз моей игры в Steam.

Всем привет.

Сегодня очень важный день для меня, во-первых вчера я выписался из больницы после месяца болезни и осложнений от лечения пневмонии(думал отойду в мир иной), во вторых, сегодня 7 ноября, мне исполнился 31 год, ну а в третьих я наконец таки полностью доделал свою игру и сегодня тот самый день когда она выходит на площадке Steam.

Немного отступления:

Тем кто не знаком с моими постами на пикабу вкратце расскажу. Меня зовут Николай, я из Беларуси, по образованию слесарь по сельскохозяйственной техники и как дополнение тракторист(никогда не работал по профессии, максимум что умею это поменять колесо и свечи и то при условии что все легко открутится). Зачем пошел учиться в такую профессию? Да потому что мало кто в 17 лет сильно думает о будущем, тем более с моим аттестатом могли и туда не взять. Старшие классы школы это постоянные прогулы и зависание в компьютерных клубах играя в warcraft, CS и т.п.

Примерно 5 лет назад я решил изменить что то в своей жизни и научится чему то новому и интересному, выбор пал на разработку игр т.к. являюсь геймером с многолетним стажем и мне это было весьма интересно. Благо сейчас с развитием интернета, для успешного обучения любому человеку нужно только упорство и сильное желание, настойчивость, характер, имея все это я более чем уверен практически любой человек сможет обучиться всему. Просто некоторым даны какие-то вещи и им обучаться легче, а кому-то природой не дано, но если ему дано упорство, то эффект будет не хуже чем у таланта.

Может ли тракторист стать разработчикам игр? Сегодня релиз моей игры в Steam. Steam, Gamedev, Длиннопост, Ужасы, Инди, Видео, Трейлер, Unity, Программист, Разработка
Может ли тракторист стать разработчикам игр? Сегодня релиз моей игры в Steam. Steam, Gamedev, Длиннопост, Ужасы, Инди, Видео, Трейлер, Unity, Программист, Разработка

История Генри Бишопа — это мистический триллер в котором герой может использовать предметы, решать загадки, не только прятаться, но и убивать врагов. На игру я потратил 3 года разработки, делал её в гордом одиночестве, откладывая деньги с зарплат, покупая недостающие модели, озвучку, переводы. Игра в данный момент озвучена на 2‑х языках — английский и русский, так же переведена на 8 языков(субтитры).

Хотелось бы сказать спасибо многим людям, в том числе и с пикабу, за поддержку. Многие мне писали теплые слова, именно благодаря таким людям есть силы что-то делать на энтузиазме, когда тебе не платят, а перспектива оплаты в будущем весьма туманна.

Может ли тракторист стать разработчикам игр? Сегодня релиз моей игры в Steam. Steam, Gamedev, Длиннопост, Ужасы, Инди, Видео, Трейлер, Unity, Программист, Разработка
Может ли тракторист стать разработчикам игр? Сегодня релиз моей игры в Steam. Steam, Gamedev, Длиннопост, Ужасы, Инди, Видео, Трейлер, Unity, Программист, Разработка

Изначально еще 3 года назад я не задумывался создать игру для какой-то наживы, я хотел научиться делать игры, освоить движок, левел дизайн, программирование и это было основной моей целью. Поэтому еще тогда в своей группе в ВК в которой было от силы 200 человек я написал что моя главная цель сделать интересную игру и половину заработанных денег пожертвовать на лечение детей в своей стране. Я не писал никогда об этом на пикабу, есть такая категория людей которая все искренние начинания принимает за пиар для наживы и еще какие-то темные схемы. Но вот сейчас мне почему то все ровно,  пусть думают что, хотят. Я не знаю сколько моя игра сможет заработать в ближайшее время, но знаю что мой следующий пост на пикабу будет именно об этом. И очень надеюсь что я, смогу хоть кому-то помочь и сделать  хоть что то хорошее. Даже если игра нечего не заработает, но кто-то вдохновится моими идеями и сделает что-то хорошее и доброе — это уже будет моя большая победа.

P.S.

Ребята вообщем большое спасибо всем за поддержку, следите за новостями я обязательно все расскажу и скину отчеты по заработкам и пожертвованиям. Всем хорошего настроения и крепкого здоровья.

Группа игры в ВК

Страница игры в STEAM

Может ли тракторист стать разработчикам игр? Сегодня релиз моей игры в Steam. Steam, Gamedev, Длиннопост, Ужасы, Инди, Видео, Трейлер, Unity, Программист, Разработка
Показать полностью 5
196

Во все тяжкие: Веб-разработчик с нуля. 6 месяцев

Во все тяжкие: Веб-разработчик с нуля. 6 месяцев IT, Программирование, Карьера, Javascript, Веб-Разработка, Frontend, Web, Длиннопост

Нет. Не весело. И не легко. Но важен подход, от которого будет зависеть степень сложности.


Цель — Senior Frontend Developer.

Язык: JavaScript.

Возраст: 28 лет;

Работа (настоящее время): Junior Frontend Developer (контракт на 3 месяца).


Я не витал в облаках, когда решил стать веб-разработчиком. Я понимал, что там, где большие деньги - большая ответственность. Какой дурак будет платить хорошие деньги за простую и легкую работу? Но понимать - это одно, а вот испытать всё это на своей шкуре - это другое.


Я продолжаю работать над старым проектом и еще как минимум месяц буду им заниматься. Много ли я сделал за последний месяц? Нет, не много. Много ли я понял - думаю да. Есть чем поделиться.


Программирование - сложная сфера, даже не побоюсь сказать, что очень сложная. Но к любому делу нужен правильный подход. Так уж вышло, что я стал именно тем человеком, которого слишком рано подвели к большому и сложному проекту(на мой необъективный взгляд). Это выглядит вот как: 3 месяца я учился работать технически сложноустроенной  лопатой с кучей характеристик и кнопок. Еще не успел до конца не разобраться как следует с этой штукой, как меня подвели к землеройному комплексу из разных крутых и современных технических средств, и сказали - ты тут рулишь всей этой темой. И твоя задача разобраться как оно всё работает, как все устройства взаимосвязаны друг с другом и рыть туннель через вон ту скалу. Дерзай.

И это не весело. Абсолютно.


За последний месяц меня много раз настигало разочарование в себе. Куча мыслей, которые накручивались одна за другой после очередного поражения. А может быть я вообще не создан для этого дела? Наверное я не смогу с этим справиться, наверное это не мое. Вон ребята на ютубе так просто всё делают, у них всё получается, я делаю также - у меня нихера не получается. ОМГ?


Но потом успокаиваешься и просто начинаешь трезво мыслить и понимать, что не получается потому, что много пробелов, очень много пробелов в знаниях и умениях. Те ребята прошли долгий путь с самого нуля, постепенно осваивая технологию за технологией, усложняя и усложняя проекты. А тут ты, хочешь сразу всё понять не имея соответствующего бэкграунда? Камон. Так не бывает.

После этого я возвращаюсь к основам и начинаю изучать основы "Азбуки".


К чему сей спич? К тому, что если тебе кажется, что у тебя ничего не получится - просто измени подход. Разрежь арбуз. Так ты и наешься и почувствуешь вкус.


Из этого кстати и вытекает нобходимость поиска такой работы, где тебя будут вводить в курс дела постепенно, шаг за шагом усложняя и доверяя тебе всё сложнее и сложнее задачи. Особенно это касается таких же вайтишников как и я. Если работодателю нужен уже готовый специалист, и он не готов тебя водить некоторое время за руку, то лучше не иди туда. Получишь гору неудач и в итоге можешь вообще перегореть и бросить всё это дело.


Наверное, я не открыл истину, эти вещи простые и понятные всем, но иногда они забываются.


Что касается моей продуктивности, то как следствие вышестоящего текста, она была маленькая по самому проекту, но неплохая с точки зрения осваивания основ программирования:


1. Познакомился с регулярными выражениями. Сначала начал читать крутую книгу Джеффри Фридл "Регулярные выражения", а потом нашел раздел вот здесь. Этого мне хватило за глаза.

2. На 70% прошел курс Дмитрия Лаврика по Vue JS. Очень крутой, рекомендую.

3. Разобрался на базовом уровне с Vuex. Пользуюсь кстати Vue CLI. Кто писал мне про него - да, спасибо, это спасение :)

4. Углубил основы JS по всем известному учебнику.

5. Прошел несколько уроков по старому курсу JS. Всё никак не могу его закончить.

6. Прошел курс по алгоритмам и структурам данных. Правда объясняется на языке Паскаль. Но тем не менее, интересно.

7. Английский. Продолжаю проходить курс Elementary. Английский подтянул очень хорошо. Если раньше у меня был уровень Elementary, то теперь у меня уже твердый Elementary.

8. Начал писать тексты на английском языке. Раз в 2-3 дня сажусь за текстовый документ, открываю рандомайзер слов на английском. Попадается слово(как правило несколько слов) - вокруг них начинаю строить предложения на английском, объяснять их на английском, импровизировать. Задача написать связный текст на 1 страницу вордовского документа, 13 кегль.

По методу Пимпслера прошел 30 уроков и завязал с ним. Скучный он для меня.


По рабочему проекту:

1. Сверстал и внедрил фоторедактор на Vue, за основу взял вот этот готовый компонент. Не все функции еще работают, так как нужен бэк, которого нет, но фронт частично готов.

2. Научился немного работать с VK Api. Пока слабовато, но кое что удалось написать.

3. С Api Instagram так и не разобрался, темный лес для меня.


Такие у меня дела. Как у вас? Есть успехи у того, кто тоже недавно начал похожий путь? Поделитесь - будет очень интересно почитать!


Через месяц я заканчиваю работу над этим проектом и буду искать пристанище в продуктовой(желательно, но необязательно) компании в г. Санкт-Петербург.

Если есть вакансии в ваших компаниях(обращаюсь к программистам, тим лидам и проджектам) - буду благодарен за наводку.

Начну ходить на собеседования уже через неделю.


Всем успехов, не унывайте и держите хвост трубой!

А я пойду дальше копаться в своем проекте :)

Показать полностью
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: