IT Way | Стань профессиональным программистом pinned a photo
Похожие каналы
Все →Последние посты
Путь frontend-разработчика 🌌Большинство наших публикаций годятся для всех программистов: backend, frontend, gamedev... Но отдельной рубрикой у нас будут идти публикации, направленные на карьеру frontend-разработчика. Википедия нам подсказывает, что это "программист, занимающийся разработкой пользовательского интерфейса, то есть внешней публичной части сайта в браузере". По факту, это программист, который обеспечивает реакции программы на действия пользователя в браузере, клики и движения мышью. А также обрабатывает пользовательский ввод. И взаимодействует по различным протоколам с серверной частью продукта.Наверняка все знают, что фундаментом для frontend-направления является верстка. HTML (HyperText Markup Language) + CSS (Cascading Style Sheets). В целом, даже хорошего верстальщика нельзя назвать программистом. Ведь тот же HTML — это не язык программирования, а язык разметки. Тем не менее, вы не найдете ни одного frontend-разработчика, который бы не знал верстки. Далеко не всегда даже Senior Frontend Developer является классным верстальщиком. Но без фундамента не может обойтись никто. ☝️Ну и для тех, кто хочет пойти по frontend developer, рекомендуем освоить основы. Итак, с чего начать тем, кто еще не знаком с этой областью.Самый быстрый способ для расширения кругозора — хорошие видеоматериалы. Ведь когда мы работаем с внешним видом, всегда очень удобно сразу видеть, как влияют те или иные изменения в коде на отображение.Здесь мы можем вам порекомендовать просмотреть курс верстки, на YouTube. Например, такой — разделы с 3-го по 29-й. Но можете и больше. 👌Тем, кто никак не знаком с версткой, рекомендуем также пройтись по бесплатной части тренажера HTML Academy по верстке.Важно осознать: чтобы начать верстать, не обязательно выучить все стили и теги на зубок. Это вполне нормально, что вы будете частенько подглядывать в тот или иной справочник. Кстати, о справочниках:📕 http://htmlbook.ru/html📕 http://htmlbook.ru/css📕 https://developer.mozilla.org/ru/docs/WebОдна
Что почитать? 📚Когда нам задают этот вопрос, бывает сложно порекомендовать что-то конкретное, ведь ищущие знаний находятся на разных уровнях программистского развития, двигаются в направлении изучения разных технологий.Но есть вполне универсальный ответ на этот вопрос. Книга Роберт Мартина «Чистый код» (на Озоне, на Лабиринте). Этот труд дядюшки Боба может быть полезен как новичкам, так и опытным разработчикам. Даже банальные знания всего лишь второй и третьей глав — «Содержательные имена», «Функции» — сделают ваш код намного более понятным и структурированным. Конечно, не просто знания, а применение их на практике. Наверняка вы легко найдете эти главы даже в свободном доступе. Мы, конечно, рекомендуем прочитать всю книгу. Но поставьте себе цель прочитать по крайней мере эти 2 главы. 🎯 Маленькие цели — большие результаты. Код ваших тестовых заданий станет восприниматься гораздо приятнее. Одно только это — уже хорошая мотивация. Но даже если вы никому не предполагаете показывать свой код, применение правил из книги сделает его более легкоподдерживаем. Даже если вы программируете в одиночку. И, что немаловажно, это будет сокращать число ошибок в вашем коде.Так что читаем минимум 2 главы — и вперед применять на практике! 😎
Продолжение предыдущего поста5️⃣. Казалось, 4 вариант уже оптимален, но можно улучшить еще! Возможно, вы заметили, что, если искомая высота низкая, например, 136 метров, то первый предмет будет сброшен всего 2 раза, а второй придется использовать на интервале тех же размеров. Как можно использовать это наблюдение? Хорошо бы придумать алгоритм, согласно которому чем меньшая нагрузка на первый предмет, тем большее число попыток мы можем позволить со вторым предметом.И такой алгоритм есть. Мы просто должны сделать динамический интервал. Сначала берем интервал 100 — разобьется, но после попытки, интервал уже на 1 меньше — 99. Сбрасываем со 199 метров. Снова уменьшаем интервал — уже 98. Сбрасываем с 297 метров. Теперь интервал — 97 метров. Сбрасываем с 394 метров. Допустим, здесь предмет разбился, значит остается проверить высоты с 298 по 393 метра. То есть еще 96 попыток максимум. Вместе с теми, что сделали первым предметом, получаем 100 попыток максимум.С алгоритмом понятно, но как найти это самое число 100 для начального интервала? Задача специально составлена под круглое число, чтобы его легко было подобрать без сложных вычислений. Но, если все же включить математику, то подсчеты такие: в общем случае мы имеем интервал x, затем x-1, x-2 и так далее. В итоге интервал дойдет до 1. Причем, если все сложить, то мы должны получить как раз нашу максимальную высоту 5 000 метров. Получается:x + (x-1) + (x-2) ... + 1 = 5 000x + (x-1) + (x-2) ... + (x-x+1) = 5 000x*x/2 = 5 000x*x = 10 000x = 100По данной задаче мы принимали решения с ответом от 100 до 150. Так что здесь многие, успешно прошедшие вступительные испытания, могут найти что-то новенькое для себя.* * *Ну и, чтобы получить какой-то еще практический навык предлагаем написать еще дополнительную функцию/метод, которая могла бы отражать последовательность экспериментов.На вход функция получает высоту, с которой предмет начинает разбиваться. На выходе массив с экспериментами, которые должны провести ученые. Например, - на
Данная задача имеет несколько степеней решения.1️⃣. Самый примитивный вариант — сбрасывать предмет последовательно, с 1, 2, 3 метров и так далее. До тех пор, пока не разобьется. Но, здесь в худшем случае мы будем иметь 5 000 попыток, если только на высоте 5 000+ происходит разбитие. И непонятно, зачем нам тогда второй предмет.2️⃣. Многие в качестве решения предлагали действовать методом дихотомии. То есть сбрасывать с середины интервала. Сбросить с высоты 2 500, далее 3 750 и так далее. Но проблема в том, что если первый предмет разобьется сразу на высоте 2 500, то тогда второй предмет нам придется сбрасывать последовательно с 1, 2 и до 2 499 метров. И мы будем иметь 2 500 попыток. Да, именно 2 500 попыток дает такой алгоритм в худшем случае. Ведь сбросить второй предмет в такой ситуации с высоты 1 250 метров мы не можем, так как, если он сразу разобьется, предметов уже не будет, а точную высоту мы еще не знаем. Метод дихотомии работал бы, если бы у нас было бесконечное число предметов (или около полутора десятков), но у нас всего 2 предмета.3️⃣. Понимая, что у нас не 1 и не 20 предметов, а ровно 2, какой можно сделать вывод? Один (последний) предмет мы сможем использовать только последовательно, сбрасывая с высоты n, n+1, n+2 метров — иначе можем не узнать точную высоту, лишившись предмета. Значит, другой предмет (с которого начинаем эксперименты) мы должны использовать, чтобы сделать интервал для финального предмета минимальным. Поскольку этот интервал предстоит проходить метр за метром.Наиболее частый выбор такого интервала в решениях — 50 или 100 метров. Оба дают один и тот же ответ. Рассмотрим, на примере 100 метров. Первый предмет сбрасывают с высоты, 100, 200, 300... метров. Пока не разобьется. Например, разбивается на высоте 700 метров. Получается, на 600 не разбился, а на 700 разбился. Значит, вторым предметом проходим по высотам 601, 602, ... 699 пока не разобьется.Самый худший сценарий — это когда предмет разбивается на высоте 4 999 метров. Тогда первый
Для наглядности всегда удобно записать, какое условие по факту должно выполняться:а * б * в = а * г * ёг * д * е = б * д * жё * ж * з = в * е * зНесложно заметить, что эти строки можно упростить до:б * в = г * ёг * е = б * жё * ж = в * еПолучается, что числа а, д, з никак не влияют на результат. Т. е. в эти ячейки мы могли бы поставить любые числа, даже число "982672634735", если бы оно было.Как добиться выполнения:б * в = г * ёНапример,10 * 3 = 5 * 6(2 * 5) * 3 = 5 * (3 *2)Т. е. нам необходимо найти пары, имеющие схожие кратные.3 и 64 и 85 и 10Числа 7, 9, 11 подобных пар не имеют (9 имеет кратное с числом 3. 3 * 3 = 9, но схожего кратного больше нет). Значит, по диагонали а–д–з расставляем числа 7, 9, 11 в любой последовательности.9 б вг 7 её ж 11Дальше заполняем первый столбец и строку любой подходящей парой (например, такой 10 * 3 = 5 * 6):9 3 106 7 е5 ж 11Ну а расставить последние 2 числа (4 и 8) уже дело техники.9 3 106 7 45 8 11* * *Таким образом, приведенную выше задачу логически довольно легко решить. Но мы помним, что все мы тут программисты, поэтому в запасе у нас всегда есть еще один способ — метод программного перебора. :)В качестве задачки на саморазвитие, предлагаем вам написать функцию/метод, которая будет перебирать все возможные комбинации расстановки чисел и проверять, выполняется ли условие задачи для такой расстановки. Чтобы сделать метод еще более интересным, пускай он на выходе возвращает количество правильных способов, которым можно расставить числа. Ну а на вход метод получает массив из 9 чисел, например, наши [3,4,5,6,7,8,9,10,11].✔️ Само собой, рекомендуем вам разместить решение задачи на GitHub для роста вашего портфолио.

Ключевая идея решенияЛюди, которые всегда говорят правду, про любимое блюдо ответят положительно, про нелюбимые отрицательно. Т. е. дадут 1 утвердительный ответ.Лжецы — наоборот. Про любимое блюдо ответят отрицательно, а про нелюбимое — положительно. Т. е. дадут 2 утвердительных ответа.Всего утвердительных ответов (45 + 35 + 30) = 110, а людей 90. Получается, имеем (110 - 90) = 20 лишних утвердительных ответа. Как раз на 1 лжеца приходится 1 лишний утвердительный ответ (2 вместо 1). Значит и лжецов 20. Тех же, кто всегда говорит правду, получается (90 - 20) = 70.То же самое можно получить простейшим уравнением.x — количество людей, говорящих правду. Положительных ответов дадут x.(90 - x) — количество лжецов. Положительных ответов дадут (90 - x) * 2.Получаем:x + (90 - x) * 2 = (45 + 35 + 30) x + 180 - 2x = 110x = 70Обоими способами получили 70 человек, всегда говорящих правду.☝️ При проверке критерием приемки был просто правильный ответ, то, насколько подробно расписано, мы не учитывали.
Работа без опыта, но с опытом 🤦Работодатели чаще предпочитают сотрудников с опытом. Даже если в вакансии заявлено «можно без опыта». Такой парадокс. Все просто — кандидатов много, и среди них непременно найдутся те, кто уже имеет «домашние» проекты, поработал на фрилансе и т. д. Поэтому, чтобы на вас обратили внимание и дали тестовое задание, важно иметь хоть какое-то портфолио. А среди разработчиков наиболее распространенный способ демонстрации портфолио — GitHub.📌 Призыв к действию такой: освойте GitHub (если еще не сделали это). Сначала достаточно освоить навык работы с ним на уровне команд init, add, commit, push, pull (в помощь любой ролик по ссылке https://www.youtube.com/results?search_query=git). Вы более амбициозны? Разберитесь с темами megre, rebase, решением конфликтов. Тот же YouTube поможет, но времени потребуется побольше. Ну и полезно отработать все это на практике. Рекомендуем сайт https://githowto.com/ с его 50 короткими бесплатными уроками по работе с командами git.Далее начните наполнять свое портфолио. Опять же, неважно, чем именно. Ничего страшного, если задания простые. Сделали задание на codewars.com → выложили решение в git. Главное — ваше портфолио растет. GitHub, кстати, подсвечивает, в какие дни у вас была активность по работе с кодом. Вспомним ранее упомянутый принцип "Ни дня без строчки кода!", объединим его с умением работать с git и привычкой выкладывать результаты в свое портфолио — через какое-то время вы круто выделяетесь из общей массы соискателей. Ваши шансы на трудоустройство растут. 👍
💡 Для чего мы создали этот канал Мы часто проводим набор начинающих разработчиков для расширения штата наших компаний. За последние 8 месяцев мы наняли 13 разработчиков без опыта работы (12 из них продолжают с нами работать). Сейчас ищем еще двоих-троих. Ну и в целом, благодаря нам и нашим компаниям, уже более 100 человек получили путь в IT. Большая часть — студенты или вчерашние выпускники. Забавно, что многие открыли для себя путь профессионального программирования из неожиданных сфер: продавцы-консультанты, барберы, бухгалтеры, специалисты по установке лифтов и др. Конкуренция на входе в IT огромная, а вакансий для участников без опыта крайне мало. Как работодатели, мы знаем, что количество откликов на junior-вакансии выше, чем на опытных разработчиков, а в сравнении с senior-позициями — выше в десятки раз. Можете представить какая конкуренция... У этого канала 3 основных цели:1️⃣. Та самая миссия. Мы получаем много положительных откликов на сам отбор (хотя случаются и резко отрицательные) с просьбой подсказать, в каком направлении и как развиваться, чтобы рано или поздно получить предложение о работе в IT-сфере. И мы видим своей миссией помочь тем, у кого достаточно усердия и трудолюбия воплотить свою мечту/цель в жизнь. Так что в канале будут появляться как просто учебные материалы, так и призывы к конкретным действиям, выполнение которых ведет к успешному трудоустройству.2️⃣. Обратная связь для соискателей. Во время отбора мы не расписываем конкретные ошибки кандидатов, ведь при таком количестве участников дать персональную обратную связь слишком дорого. Поэтому здесь мы постепенно разберем все задачи, причем с пользой в том числе и для тех, кто верно справился с ними, ведь по ряду задач существует много способов решения. Вот мы и расскажем, какие использовать лучше всего с точки зрения скорости работы.3️⃣. Публикация вакансий. Как упоминалось, мы постоянно расширяем наш штат, поэтому в канал также будем публиковать наши будущие вакансии. Те, кто проявят стар

Ни дня без строчки кода 🔢 Многие из вас хотят стать профессиональными разработчиками. И для каждого это что-то свое: один хочет научиться писать более красивый или производительный код, другой получить долгожданный оффер в IT, третий что-то еще. Главный вопрос — что делать?Начните с того, что возьмете за правило принцип «Ни дня без строчки кода!» Вовсе не обязательно понимать это правило буквально. Вы вольны сами с собой договориться о графике: 6 дней в неделю или 4 дня — все зависит от желания расти и развиваться.«Допустим, но что писать?» — спросите вы. Главное — ни что именно, а сам факт, что пишете вы регулярно. Так, вы можете выбрать какую-то тему, вбить в поисковик что-то вроде "задачи по работе с циклами" — и получить примеры сайтов типа pas1.ru/taskcycle. Или воспользоваться сервисом codewars.com с тысячами примеров заданий, выбрав любой язык программирования и уровень сложности... Не ждите подходящего момента, начните действовать уже сейчас и результат не заставит себя ждать.☝️
Channel created