
udemy
Udemy - одна из самых больших площадок в мире по доставке обучающего контента от разных авторов всего мира. Присутсвуют курсы практически на любую тему.
Functional Programming For Beginners With JavaScript
Практическое руководство, которое обучает вас функциональному программированию на JavaScript. Большая часть программного обеспечения, написанного сегодня, чрезмерно сложна, трудна для понимания, сложна для тестирования, трудна для изменения и содержит множество ошибок. Итак, как мы в конечном итоге решаем эти проблемы?
По моему опыту, функциональное программирование более продуктивно, чем объектно-ориентированное программирование, потому что нужно думать меньше, поэтому вы не перегружаете рабочую память. Обычно вы просто думаете о простых старых данных и преобразованиях данных, используя функции. Кроме того, в функциональном программировании нет множества конкурирующих способов сделать одно и то же, поэтому вам не нужно думать о ненужных вещах. Функциональное программирование ограничивает, и это хорошо. Вы можете лучше сосредоточиться на проблеме, которую решаете, а не на инструментах, которые вы используете для ее решения.
В объектно-ориентированном программировании вы должны думать о множестве различных типов сложных объектов с состоянием, с которыми можно взаимодействовать по-разному. Вы должны думать не только о данных и о преобразовании данных ... Вы должны думать о таких вещах, как состояние и побочные эффекты, гораздо больше, чем в функциональном программировании.
«Что я буду изучать в этом курсе?»
Вы узнаете, как создавать интерфейсные веб-приложения в стиле функционального программирования с помощью практического обучения. В этом курсе вы будете создавать 5 значимых веб-приложений с нуля. В конце этого курса вы поймете и оцените важные для функциональных программистов вещи и, скорее всего, принципиально измените то, как пишете программы.
«Какие фреймворки я буду изучать?»
Я мог бы научить вас функциональному программированию с использованием популярного фреймворка, такого как React или Vuejs, но фреймворки приходят и уходят, и принципы, которым я вас научу, - это вечные принципы, которые выходят за рамки фреймворков ... Итак, вместо этого вы изучите функциональное программирование, просто используя современный JavaScript и несколько вспомогательных библиотек. Знания и навыки, которые вы приобретете в этом курсе, могут быть использованы с популярными системами сегодня и завтра!
Будет ли этот курс на 100% JavaScript с нуля?
Мы не будем использовать никаких фреймворков, но мы будем использовать несколько вспомогательных библиотек, где это имеет смысл, как описано ниже.
«Какие библиотеки JavaScript используются в этом курсе?»
Основное внимание в этом курсе уделяется изучению концепций функционального программирования. Написание всего вручную с нуля вполне может отвлечь от основных понятий, поэтому, чтобы оставаться сосредоточенным, мы будем использовать несколько библиотек там, где это имеет смысл.
Использованные библиотеки:
«Я бэкэнд-разработчик, но я бы хотел изучить функциональное программирование ... Должен ли я пройти этот курс?»
Знания и фундаментальные принципы, которые вы изучите в этом курсе, могут быть легко переведены на сервер. Я учу вас функциональному программированию для внешнего интерфейса, потому что программирование на внешнем интерфейсе может быть довольно сложным, а функциональное программирование особенно хорошо подходит для внешнего интерфейса. Важно отметить, что этот курс фокусируется на современном JavaScript и не использует интерфейсную среду, поэтому вам не придется изучать технологии интерфейса, которые вы никогда не сможете использовать.
«Могу ли я писать функциональные программы на JavaScript?»
Да, конечно. JavaScript позволяет программировать в разных стилях, а функциональное программирование - отличный выбор. Вы начнете с изучения методов функционального программирования с использованием современного JavaScript (ES2018), а затем вы узнаете о превосходной библиотеке Ramda JavaScript. Возможно, вы слышали фразу «JavaScript, хорошие части». Когда вы программируете в функциональном стиле, вы просто используете хорошие части языка, и вы, естественно, избегаете плохих и запутанных частей (например, это ключевое слово thisヽ (ಠ_ಠ) ノ).
Разве функциональное программирование - это не маленькая ниша в информатике?
Раньше это было правдой, но не больше. В течение десятилетий объектно-ориентированное программирование было доминирующей силой в разработке программного обеспечения, но в последние несколько лет функциональное программирование имело огромный рост и использовалось в крупных компаниях, таких как Facebook, Twitter и даже Walmart. Но не только крупные компании, использующие функциональное программирование, малые и средние компании по всему миру обращаются к функциональному программированию.
В декабре 2017 года Forrester выпустило исследование под названием «Новая заря функционального программирования», в котором утверждается, что «функциональное программирование начинает выходить на главную сцену… мир разработки программного обеспечения перерастает разработку с учетом состояния и объектно-ориентированную разработку».
Всегда имеет смысл изучать восходящие трендовые технологии, и функциональное программирование является отличным выбором по этой причине и многим другим.
«Разве я не должен быть математическим гением, чтобы понимать функциональное программирование?»
Точно нет! В течение десятилетий основными приверженцами функционального программирования были в основном ученые и люди, заинтересованные в специализированных областях математики. В то время большинство работающих программистов (включая меня) не очень понимали Функциональное программирование, а люди, которые понимали Функциональное программирование, не очень хорошо объясняли, что это такое, какие преимущества, как это сделать… и т.п.
Правда в том, что вам не нужно быть гением математики, чтобы понимать функциональное программирование. Суть функционального программирования имеет мало общего с математикой, которую вы увидите в этом курсе.
«Разве мне не нужно изучать новый словарный запас, чтобы понимать функциональное программирование?»
Нет! Я не буду бомбардировать вас ненужным техническим жаргоном, на самом деле я избегаю его настолько, насколько это возможно, и когда я использую новый словарь функционального программирования, обычно это просто связывает имя с тем, что вы уже выучили, с простым старым разговорным английским языком.
«Будут ли знания, полученные на этом курсе, устаревать через год или два, как и мои знания по Angular 1?»
Нет! То, что вы изучите в этом курсе, будет актуальным и полезным в течение многих лет и, возможно, десятилетий.
«Как это возможно?»
Потому что я не учу вас функциональному программированию в контексте конкретной среды, такой как React или Vue.js. Фреймворки приходят и уходят, но навыки, которые вы изучите в этом курсе, выходят за рамки популярного времени.
«Как получается, что код, написанный в стиле функционального программирования, менее подвержен трудностям поиска ошибок?»
Самые трудные для поиска и исправления ошибок, связаны с кодом, который позволяет побочные эффекты (общение с серверами, изменения состояния и т. Д.). Функциональное программирование уделяет значительное внимание устранению и контролю побочных эффектов ... Таким образом, было бы разумно, чтобы устранение побочных эффектов, где это возможно, и жесткий контроль побочных эффектов, когда они необходимы, приводили к меньшему количеству сложных ошибок.
«Вы говорите, что функциональное программирование простое, но я пробовал функциональное программирование, и это было сложно !?»
Ах, я не говорил, что это легко, я сказал, что это просто. Написание простого кода, это не просто, часто это сложно. Но сложное программное обеспечение, построенное на простой базе кода, - это красота, и оно того стоит.
Если вы знаете и любите объектно-ориентированное программирование, вы можете принять вызов. Многое из того, что вы знаете о программировании, должно быть переоценено и часто игнорируется. Я подозреваю, что для нового программиста может быть легче изучить функциональное программирование по сравнению с опытным объектно-ориентированным программистом, потому что функциональное программирование настолько отличается от объектно-ориентированного программирования ... Но, опять же, оно того стоит :)
«Я не понимаю некоторые вещи, о которых вы говорите, такие как« побочные эффекты »и« чистые функции »?»
Не волнуйтесь, в этом курсе я начну с самых основ, поэтому у вас не должно возникнуть никаких проблем. Кроме того, я предлагаю несколько уникальных бесплатных опций для получения помощи, которые я описываю в видео о том, как получить помощь.
«Это курс для меня?»
Этот курс предназначен для 2 типов студентов:
* Может быть пара видео, которые опытный программист может пропустить, но я предлагаю заново ознакомиться с основами, поскольку они представлены с точки зрения функционального программирования.
«Почему я должен брать этот курс у вас?»
Мои курсы отличаются от большинства инструкторов. Я не верю, что курс должен охватывать каждую часть языка или технологии.
Я объясню почему с аналогией.
Представь, что вы хочете выучить испанский. Один из подходов к изучению испанского языка - выучить каждое слово на испанском. В испанском словаре около 100 000 слов ... ой!
Вот в чем дело, 1000 испанских слов, которые составляют 80% всего разговорного испанского ... 2000 слов составляют 95% всех разговорных слов.
Не лучше ли сосредоточиться на изучении 1000 или 2000 наиболее употребляемых испанских слов?...
Эти же принципы применимы к языкам программирования и технологиям. Многие инструкторы делают 10, 20 и +30 часовые курсы, в которых полно варенья, которого можно было избежать!
Я не хочу тратить впустую ваше время, поэтому я буду учить вас только наиболее используемым частям JavaScript и функционального программирования, так что вы будете "говорить" быстрее.
Udemy - одна из самых больших площадок в мире по доставке обучающего контента от разных авторов всего мира. Присутсвуют курсы практически на любую тему.
Научитесь применять передовые методы для решения практических задач в JavaScript. Откройте для себя функциональное программирование и посмотрите шаг за шагом как построить веб-приложения с помощью абстрактных интерфейсов, как Monads, Functors и другие. После этого курса вы будете думать и писать на JavaScript совсем по другому.
В мастер-классах по жестким часятм вы балансируете разработку «скрытых» ментальных моделей того, как сложная концепция работает с погружением в проблемы программирования, что дает вам возможность легко ориентироваться в любых новых проблемах.
Типичный фронтенд код неясен, его трудно тестировать и он хрупок. Научитесь применять методы из передовых исследований в области компьютерных наук для решения практических задач в Javascript. В этом курсе мы увидим, сколько проблем в браузере от AJAX до проверки ошибок может быть построено из математических блоков общего назначения. Приготовьтесь навсегда изменить способ написания и думать о фронтенд коде!
В этом двухдневном курсе вы изучите основы JavaScript, необходимые для того, чтобы стать современным разработчиком JavaScript. Каждый навык, которым вы овладеете в этом курсе, необходим для изучения популярных фреймворков JavaScript, таких как React и Vue, поможет вам углубить ваше понимание языка JavaScript и даст вам методы для написания профессионального JavaScript. Если вы плохо знакомы с языком или у вас возникли проблемы с современным JavaS
Функциональное программирование (ФП) глубоко любимо его приверженцами, но его часто боятся простые программисты, которые борются за то, чтобы манипулировать всеми обозначениями, типами и теориями категорий, а также терминологией. Наивно я привык думать: «Эй, я использую функции в своем коде, я должен заниматься функциональным программированием». Как я был не прав! Я имею в виду, да, функция лежит в основе ФП, но факт в том, что больши