Programmer Way | IT и фриланс
2.62K subscribers
118 photos
14 videos
4 files
248 links
Делиться моим путём до вершин IT индустрии!

Топовый чат: t.me/best_of_it

Условия рекламы: tsykunov.com/price

Автор: @nikitakokos
加入频道
​​Опыт и задачи.
Иногда мы пытаемся сделать что-то идеально: закончить проект со всеми задуманными фичами, еженедельно читать десяток станиц, пройти курс до конца месяца, но не всегда у нас это получается сделать, и это нормально, не стоит требовать от себя чего-то завышенного. Очень часто мы создаём для себя задачи, с которыми не можем справиться из-за нехватки опыта/навыков реализовать задумку, поэтому она так и пилиться у нас в голове. Либо мы начинаем ее делать и сталкиваемся с проблемами. 

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

Не стоит стремиться к идеалу, стоит стремиться к тому, чтобы этот идеал вы сделали в будущем, а для этого вам нужен опыт, который вы получаете, если сделаете несколько полноценных проектов
Todo.
Каждый хотя бы раз делал список задач на каком-то фреймворке. Это один из самых крутых моих проектов, делал по одному курсу(ссылку прикреплю к посту), там был фейковый json-server, у каждого списка были свой цвет и задачи, дополнительно сделал адаптив, возможность добавлять свой цвет и всплывающие подсказки — это было самое интересное.

У popup-ов был тип уведомления, ошибки, ввода текста, согласие или отмена, манипулируя пропсами я задавал тип, например, если мне надо получить согласие от пользователя на удаление списка, то я просто в пропсы передаю функцию, которая выполниться, когда пользователь нажмёт на «ок», а если надо сделать ещё и инпут, то просто передать определённый пропс, и функция, которая будет вызываться, уже будет принимать значение инпута

Демо версии нету, так как приложение использует сервер, если кто знает, как опубликовать такие приложение — напишите в личку, можете запустить код у себя на локалке и потестить todo:
​​Repozitorro.
Обзор портфолио различных веб-разработчиков, в плейлисте собрано 40 работ с полезной критикой, советами по улучшению портфолио, автор объясняет доступным языком про частые ошибки новичков или просто указывает на различные ошибки из-за невнимательности, иногда бывает очень полезно, чтобы твою работу посмотрел какой-то другой человек, ведь когда разрабатываешь сайт портфолио, то можешь не заметить банальных ошибок, поэтому порой нужен свежий взгляд

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

В видео автор делиться простым кодом, благодаря которому можно придать параллакс эффекта любому элементу на странице, обычно анимируют задний фон или какие-то элементы декора(например картинки облаков, если это сайт полетов на воздушных шарах). Демо прикреплю к посту, можно потестить результат:
​​Шрифт.
Меняли ли вы свою тему? А шрифт? Большинство программистов даже не задумывается про возможность изменения шрифта для редактора, хотя это напрямую влияет на производительность, удобство чтения и удовольствие при кодинге. Сейчас я расскажу на примере шрифта FiraCode, как изменить шрифт в VS code(если у вас другой редактор, то вот инструкция установки)

Для начала устанавливаем шрифт с официальной станицы GitHub, после этого распаковываем архив, выделяем нужные начертание, нажимаем правую кнопку мыши, а затем — установить. Теперь заходим в VScode: Settings->Open Settings (икона файла справа), и далее вставляем "editor.fontFamily": "'Fira Code', Consolas, 'Courier New', monospace", так как FiraCode — моноширинный, а это означает, что комбинации символов могут образовывать новый знак, например => превратиться в цельную стрелку, то для него еще нужно дописать "editor.fontLigatures": true. Ссылку на шрифт прикреплю к посту, можете подробнее почитать про фишки
​​Переход на yarn. 
Я перешёл на yarn ещё зимой и каких-то особых отличий не заметил, да, пакеты стали устанавливаться быстрее, да, без сбоев, да, удобнее, но особых изменений лично я не заметил. Независимо от того, устанавливается ли пакет с помощью npm или yarn, при этом решается серия задач. В npm эти задачи выполняются последовательно и отдельно для каждого пакета, это значит, что пока пакет не установлен полностью, следующий пакет будет ждать. В yarn эти операции выполняются параллельно, что улучшает производительность. Так же в yarn-е были исправлены некоторые косяки npm связанные с версиями, например, могло быть так, что на разных компьютерах при установки пакетов версии отличаются

Переходить или нет — дело ваше, в общем и целом, рекомендую попробовать.Вы можете установить yarn и самостоятельно проверить его работу, так же хочу посоветовать одну статью:
​​Создаём ЯП.
Хотели бы вы создать свой язык программирования, где разместить крутые и удобные фичи или исправить недочеты какого-то языка? В этом видео автор создаёт простой ЯП на свободной грамматике, в нем можно создавать переменные и делать вычисления и выводить их в лог, функционал написан в качестве примера, вы можете его доработать: создать условные операторы, циклы или какие-то крутые фичи. Первая половина состоит из теории, а затем идёт практическая часть, советую пересматривать пару раз, чтобы уловить суть
​​Деплой.
Как задеплоить реакт приложение? Этот вопрос обычно задают тогда, когда большая часть функционала готова, и вы уже хотите поделиться результатом с работодателем или скинуть друзьям. В этом видео автор расскажет как задеплоить статическое приложение или с фейковым сервером, в дополнение к видео хочу сказать, что есть бесплатное облачное хранилище firebase, которое предоставляет ещё и хостинг, поэтому если решили использовать его у себя в проекте, то можете не переживать за деплой. Надеюсь теперь вы сможете легко делиться своими работами и показывать их работодателям

Экзамены закончились, а значит теперь приступлю к ведению канала, заканчиваю просмотр курса «Путь самурая» и уже планирую об этом пост, так же хочу рассказать про английский, так как за год мое мнение изменилось
​​Английский для программиста.
Важно понимать, что какой бы ни был у вас уровень английского, вы все равно можете стать программистом, ведь он напрямую не влияет на вашу продуктивность или навыки кодинга. Английский помогает лучше понять то, что вы пишете, но это не главное ради чего его стоит учить. Основной целью для изучения любого языка является открытие возможностей, которые до этого вам были недоступны, поэтому главной причиной изучения английского является именно то, что это язык коммуникаций в IT: все крутые конференции/выступления проходят на английском, все самые свежие статьи, видео, документации выходят сначала на английском, язык общения в команде участников из разных стран или заказчиком из другой страны все тот же английский

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

Помните, вы учите английский, чтобы увеличить свой доход, работать с зарубежными заказчиками и быть востребованным специалистом, который в курсе всех новинок в индустрии, иначе зачем вам выходить из зоны комфорта, тратить время, деньги и нервные клетки:)
​​Советы по английскому.
Важно четко понимать, зачем вы учите язык и какие аспекты языка следует детальнее проработать, я решил поделиться несколькими советами по improve вашего английского:

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

2) Читайте(желательно проф. литературу). Чтение поможет в изучение новых слов и их применению, можно даже вырывать некоторые фразы из книги, чтобы потом их заучивать. Если вы занимаетесь фронтендом, то рекомендую книгу Fronted Unicorn, мне ее еще давно посоветовал один друг, но руки никак не доходили, теперь только приступил к прочтению

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

4) Создание привычки. Это похоже на первый пункт, но без привычки вы быстро бросите это делать, так как у вас будут дела поважнее. Желательно выработать минимальную привычку, которая не должна занимать много времени, а просто должна быть постоянной, например я каждую неделю пишу какую-то историю, это помогает увидеть прогресс за неделю, закрепить новые словечки и улучшить правописание. Вы же можете придумать себе другую привычку: будь то изучение 10 слов или чтение книги, частоту можете сами выбирать, главное то, чтобы вам самим было комфортно, но не стоит со старта читать по 30 станиц в день, привычка — это гарантия того, что вы будете в тонусе

5) Получайте удовольствие от изучения. Любая вещь, которая вам не нравиться, очень быстро надоедает, поэтому если вам не нравиться сам процесс изучения, то попробуйте поменять подход: понять зачем вы это делаете и где ваша цель, получайте удовольствие не только от результата, но и от дороги, которую вы проходите
​​Зелёное лето.
Все мы часто встречали на GitHub табличку активности(коммиты, создания веток, репозиториев и тд), которая закрашивается в соотвествующий зелёный оттенок, если сделать что-то из выше перечисленного. Но обычно эта табличка у меня довольно серая, с большими пробелами между зелёными полями. Я решил программировать каждый день и выкладывать весь код на GitHub. Островной идеей является то, чтобы программировать регулярно и посмотреть на прогресс через 3 месяца. Возможно не во все дни мне физически удастся программировать, но я постараюсь сохранить тенденцию и в этом мне поможет та самая таблица активности

В последнее время начал проходить разные марафоны по вёрстке и js, ещё делаю много мелких pet проектов, которыми хочу поделиться в ближайшее время. Этот пост должен был выйти раньше, но если кто-то захочет присоединятся, то жмите на кнопку и давайте программировать вместе
​​Путь самурая.
Это был самый большой(по времени) курс, который я проходил, но, скажу честно, что это того стоит. Хотя были моменты, когда мне просто хотелось заняться вёрсткой, пройти другой курс по реакт или написать что-то на нативном js, поэтому так долго не рассказывал

Однозначно рекомендую «Путь самурая» для тех, кто только начинает знакомиться с реактом, но только одного курса недостаточно, чтобы понять реакт, нужно ещё и читать документацию, смотреть на чужой код, чтобы увидеть подходы написания и решения тех или иных задач. На курсе я изучил react, redux, thunk, хуки, классовые компоненты, hoc, библиотеки: react router, axios, classnames, reduxForm, познакомился с cookies и отправлял запросы к api, по итогу у меня получилась соц сеть, код которой прикреплю к посту

Далее планирую сделать парочку своих проектов и начать проходить React Pizza, а так же немного поверстать, думаю лето будет насыщенное, интересно было бы почитать ещё про typescript и redux saga
​​JS марафон.
Прошел марафон от @JSMarafonBot, где создал 5 прикольных проектов на JavaScript, скажу честно, очень доволен. Последним проектом была полноценная игра, где нужно выбирать время, а потом на скорость кликать по кружочкам, которые располагаются случайным образом на поле и имеют случайный цвет. Понравилась как подача материала, так и сам контент: короткие видео по 20-30 минут, html и css уже написаны, остается только написать логику, узнал пару прикольных фич, которые буду использовать у себя в проектах, демо проектов прикреплю к посту, на очереди есть еще много прикольных идей для практики, которыми скоро собираюсь поделиться
​​Classnames.
Библиотека, которая упрощает работу с классами в react. Когда классы зависят напрямую от переменных, то мы прописываем каждый раз одну и ту же логику, classnames, же, позволяет удобно прописать зависимости классов, а также удобно навешивать сразу несколько классов, особенно это бывает полезно тогда, когда мы используем css модули. Нашёл урок, в котором демонстрируется преимущество использования classnames в связке с scss модулями:
Дебаггинг.
Сейчас разрабатываю аудио плеер на react, до этого никогда не работал с аудио, поэтому было интересно посмотреть на такую механику. Хотелось сделать простой, но удобный музыкальный плеер, куда можно добавлять свои песни, искать по названию, а также проигрывать их по списку или в случайном порядке(чтобы не надоедало)

Дебаггинг — это, если простыми словами, поиск и отладка ошибок. Иногда ошибки неочевидны. Например, у меня проблема возникла на этапе создания переключения песен: по нажатию на стрелку вперёд, индекс текущей песни увеличивался на 2, хотя я все посмотрел, и нигде не было двойки, но потом я немного отвлёкся и до меня дошло, что я переписывал логику переключения на switch-case конструкцию, а в каждом кейсе должен быть break. Сходу понять, что проблема была в этом довольно тяжело, банальная невнимательность может привести к долгим поискам ошибок

Умение быстро находить ошибки значительно ускоряет разработку, поэтому навык дебаггинга так высоко ценится
​​React Router.
Изначально маршрутизации в react не предусмотренно, поэтому для того чтобы менять url без перезагрузки используется библиотека react-router-dom, она позволяет легко и удобно отображать компоненты в зависимости от url, делать редиректы, а так же имеет большой функционал помимо этого, например: вы можете получить значение после определенного пути в переменную, это может быть id пользователя(/profile/:userId) или название пиццерии(/restaurant/:pizzeria). Нашёл небольшой урок про базовый функционал:
​​Как выучить все?
Когда смотришь на перечень js библиотек, то думаешь, что ничего не знаешь. Но это не так, и знать все не надо. Если задуматься, то все библиотеки построены на обычных функциях, классах и объектах, которые есть в js, они не приносят ничего нового, поэтому если хорошо знать базу языка, то изучение библиотек не будет такой уж сложной задачей

Библиотек много, но не факт, что каждая вам пригодится, библиотека — это лишь решение задачи, например, мне нужно было сделать кастомную аудиодорожку, а до этого я использовал библиотеку noUiSlider для создания ползунков, поэтому я выбрал именно эту библиотеку, так как я уже имел опыт работы с ней. Скорость изучения библиотеки зависит от предыдущего знакомства с ней, понимания принципов работы библиотеки и знаний языка, на котором она написана
​​Сложность алгоритма.
Я думаю вы часто встречали такое понятие, как «сложность алгоритма», но что это такое? Если простыми словами, то каждый алгоритм принимает на вход данные и обрабатывает их. Когда входящие данные будут увеличиваться, то у нас будут расти 2 параметра: время, за которое будет выполняться и количество памяти, которое будет использоваться. Скорость роста этих параметров и показывает нам сложность алгоритма

В видео автор на примерах рассказывает более подробно про сложность алгоритма, а также в конце будут задачки на закрепление
​​Качество или количество?
Часто слышу мол: «Нужно набрать Х часов, и тогда вы станете крутым программистом», некоторые набирают эти Х часов и всё-таки становятся спецами, но это ошибка выжившего. Многие, набрав эти часы, так и не начинают понимать то, как все устроено. Зачастую эти люди просто ставят себе цель: буду программировать по 14 часов в неделю и через 3 месяца стану программистом, но в это время включается ещё и просмотр обучающих видео, ответы на сообщения, пролистывание соцсетей и тд

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

Ещё часто встречается, что программируют по 10 часов в сутки, а потом неделю просто ничего не делают. Важно программировать регулярно, чтобы код был всегда перед глазами, так вы не забудете то, что выучили и лучше запомните новое
​​Fullstack проект.
В чем отличие fullstack проекта от не fullstack? В том, что в первом мы делаем сразу и фронтенд и бэкенд части, а во втором — только одну. Если мы захотим сделать fullstack pet-проект, но не знаем бэкенда, то мы можем воспользоваться готовыми решениями, например использовать готовые api, но мы попрежнему будем разрабатывать только одну часть

В одной из недавних статей я рассказывал то, что сейчас работаю над своим pet-проектом Music Mix, если коротко, то это музыкальный плеер, где можно слушать и загружать музыку. Но я столкнулся с проблемой: мне нужен был сервер, чтобы хранить аудио и картинки для постов, думал использовать json server, но, как вы уже поняли по названию, он хранит данные в строковом формате(json), поэтому я максимум могу помесить туда путь к файлам, и все опять упирается в бэкенд

Я принял решение заморозить проект, пока я не освою node.js, думаю мне надо время, чтобы найти хорошую информацию по этой теме. Основной функционал уже готов: проигрывание песен в обычном и случайном порядке или только избранные, добавление в избранное, поиск по названию, страница избранных и страница всех песен, осталось только внедрить добавление песен и пару фич, но для этого нужен api
​​Спойлер.
Если кратко, спойлер — это контент, который мы хотим скрыть, а по нажатию на заголовок отобразить. Аккордион — это тоже самое, но открытым может быть только один спойлер. Есть два самых популярных варианта использования: когда у нас слишком большой контент, который занимает много места или не является очень важным, чаще всего это ответы на вопросы или характеристики товара; либо когда мы хотим скрыть меню(или любой другой блок) в спойлер на определенном расширении

В видео автор делиться собственными наработками, которые позволят сделать любой спойлер + крутая анимация