Web Developer Way
61 subscribers
37 photos
3 videos
3 files
150 links
@aymkin way to become a web developer
Download Telegram
Быдлокодерство и неочевидные ошибки.

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

Какое было удивление, когда поставил ESlint. Он тут же нашел с десяток проблем в моем коде.

Например. В теле функции мутирует параметр. То есть я передал функции какой то параметр и потом провожу над ним какие то действия. "И в чем же проблема?" - спросил я себя, ведь тут три строи кода всего то. Итак все понятно.

Одако:
1. Появляется плохая привычка
2. Нет понимание потенциальной опасности

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

и ошибок подобного уровня с десяток в рабочем-отлаженом коде.
Никогда тесты и дебаг не были столь наглядны. Спасибо VScode && Jest.

Тут самому захочется TDD исповедовать)
Channel name was changed to «Web Developer Way»
Channel photo updated
Forwarded from Oleksandr Naumkin
Привет Коттаны)

Я мяукаю изо всех сил, чтоб перобутся в коттаны. В темной, несознательной части моей жизни успел побывать: посудомойщиком, официантом, уборщиком, директором хостела, совладельцем http://easyms.co/ ...
Теперь, оглядываясь назад, я понимаю, что каждый из этих этапов был необходим для осознания - я хочу быть только веб разработчиком.
Встал на путь просветления в ноябре 2018 года, можно сказать с нуля. Был на Хекслете немного. Потом посмотрел в сторону Коттанов и... не смог оторваться!

Котики, спасибо, что вы есть!
=(^-^)=
Инструкция утверждает, что выполнение этого пункта занимает 4-5 часов.
У меня получилось 16. То есть в четыре (!4!), Карл, больше раза, чем норматив. Интересно, у кого то из обычных людей получилось так?
Тут должен заметить два пункта:

1. Я точно знаю сколько времени я провел за написанием кода для алгоритма. В этом помогет расширение для VScode, которое считает статистику по проектам, вплоть до минуты.
https://wakatime.com/

2. Время работы надо проектом больше норматива еще из-за того, что прежде писания кода - я писал тесты. Думаю что всего написание тестов заняло + настройка среды заняло около трех часоов для всех 16 заданий.
https://github.com/aymkin/algoritmsFcc
FreeCodeCamp один из лучших ресурсов для изучения JS, именно поэтому значительная часть программы Коттанов состоит из элементов FCC.

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

Удивляет... Выносит мозг... Заставляет эксперементировать...
Счастье есть!

В этом может убедится каждый, кто за один день впервые попробовал:
* испльзовать методы map, reduce, filter, every, some
* в решениях задач использовал регулярные выражения
* смог написать функцию, использующую каррирование
* без подсказки пишет функции типа
const urlSlug = (title) => title.toLowerCase().trim().split(/\W\s*/).join('-');
Quokka.js - запускает код в фоне сразу по мере ввода и отображает различные результаты выполнения прямо в редакторе кода.

https://quokkajs.com/
Если вы вдруг занимаетесь по туториалу Коттанов, то настоятельно рекомендую перед Algorithm Scripting Challenges в разделе JavaScript Basics изучить Регулярные выражения. Без них переходить за красную черту нет смысла.

https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/regular-expressions
Основы функционального программирования JS:
- читсые функции (детерминированные и без побочных эффектов)
- неизменяемость входных параметров функции (иммутабельность данных)
- использование функций выслего порядка (функции, которые в качестве параметров принимают другие функции)
- использование методов массива вместо for (forEach, map, every, some, reduce, filter...)
- стрелочные функции (стрелочный синтаксис)

Чуть больше тут: https://youtu.be/AKzrO5y0B2E
и тут: https://proglib.io/p/fp_basics/
Есть шансы прокачать скилы от напрямую от профессионалов:
@itkpi_mentor_bot
Студенты и профессионалы не понимают друг друга... Что я имею ввиду?

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

2. У профессионалов нейронных связей много, у новичков - мало. Поэтому и сама механника запоминания - разная. Поэтоу профи, обучая новичка, ожидает от него слишком многого. Профи: "И вообще, что тут не понятного?". Новичек:"Все". Профи не понимает как возможно не понимать "такие простые вещи".

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

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

Спасибо сообществу Коттанов, которые помогают таким образом друг другу.
=(^-^)=
Согласно исследованию Spotify, проведенному в 2014 году, 61% людей слушают музыку во время работы - в основном, чтобы оставаться сосредоточенным и заглушать окружающий шум.

Музыка для кодеров тут https://www.youtube.com/freecodecamp/live
Статья о стриме музыки freeCodeCamp: https://medium.freecodecamp.org/introducing-24-7-freecodecamp-radio-chill-tunes-you-can-code-to-dbae61681cf0