Освоение основ
Я попытался задокументировать все ссылки для каждой концепции, о которой здесь говорится. Многие из используемых примеров взяты из самой документации по javascript. Тем не менее, проекты будут уникальными и адаптированы к вашим личным интересам. Цель здесь состоит в том, чтобы быстро дать вам задокументированные примеры, разобрать и объяснить на примерах из реального мира и заставить вас практиковать это как можно скорее.
Реалистичные ожидания —
Как и все остальное, это потребует времени и самоотверженности, чтобы научиться и освоить. Теперь, прежде чем вы сдадитесь, я хотел бы заверить вас, что овладение основными понятиями в течение 30–90 дней вполне возможно. Тем не менее, до того, как вы будете приняты на работу в агентство или уверенно пойдете за более высокооплачиваемыми контрактами, сочетание выполнения небольших проектов и уделения времени еженедельной практике со временем приведет к желаемому работодателем уровню навыков.
Итак, сколько вы должны посвящать еженедельно овладению этим новым навыком? Если вы полный новичок в STEM, то это может быть немного сложнее, но все же возможно.
Приведу два основных сценария и ожидания:
Первый вариант –
Более 20 часов в неделю каждую неделю
30 дней, чтобы освоить основные концепции и 1 год, чтобы стать профессионалом
Вариант второй —
Менее 20 часов в неделю каждую неделю
60–90 дней, чтобы освоить основные концепции и 1–3 года, чтобы стать профессионалом
ВОА ВОА ВОА…. Я думал, вы сказали максимум 90 дней, чтобы овладеть основными понятиями? Ну да. Основные концепции — это основы, получение навыков, желаемых работодателями, требует немного больше усилий и самоотверженности. Вместо того, чтобы думать, что 1 или даже 3 года — это долго, рассмотрите альтернативную перспективу. ПОЛНОСТЬЮ СМЕНИТЬ НОВУЮ ПРОФЕССИЮ ВАМ НУЖНО ВСЕГО 1–3 ГОДА.
Разработка программного обеспечения — это быстрорастущая карьера с высоким спросом (я имею в виду ВЫСОКИЙ СПРОС). Средняя зарплата младших инженеров/разработчиков составляет от 50 000 до 80 000 долларов, а более продвинутые инженеры/разработчики превышают порог в 100 000 долларов [1].
Предварительные требования
Я пройдусь по предварительным требованиям для каждого раздела программы, но в целом фундаментальное понимание концепций программного обеспечения полезно в дополнение к критическому мышлению и навыкам решения проблем, поэтому обычно ожидается высшая математика.
Методология
Поучительная методология, которую я решил внедрить, во многом отражает то, как я изучаю новые концепции. Я делаю общие мазки по предмету и провожу анализ 80/20 концепций, ведущих к профессиональному мастерству. Обычно для более чем 80-процентного понимания нового предмета требуется небольшое количество понятий. Это означает учиться больше, узнавая меньше [2][3]. Как инженер-компьютерщик и разработчик программного обеспечения вы быстро переосмыслите свой мир, чтобы приспособиться к своей новой ментальной структуре. Вы будете более критично подходить к проблемам и искать наиболее эффективное и действенное решение ваших проблем.
Итак, я сосредоточился на подборе контента, который лучше всего отражает подход 80/20. Я кратко упомяну наиболее важную информацию в начальном разделе, а также создам шпаргалки, перечисленные под разделом, подобно тому, что я использую при изучении и обучении. Тем не менее, я настоятельно рекомендую вам играть более активную роль в обучении, создав свою собственную шпаргалку, на которую можно ссылаться при сборке, в дополнение к простому проведению часов на экране (либо построению, либо чтению кода).
Цели
Цели перечислены в соответствующих разделах программы. Тем не менее, я стремлюсь научить вас к концу этого учебного курса, как освоить основы javascript в базовом разделе, быть в состоянии уверенно создавать веб-сайты и базовые веб-приложения для клиентов в течение 3-6 месяцев в умеренном разделе и полностью создавать полноценные веб-приложения — даже нативные приложения — с использованием таких фреймворков, как React и React Native в разделе «Дополнительно».
Ограничение
Основным ограничением в данном случае является вы сами. Вы определяете, сколько часов вы посвящаете обучению и практике, тем самым определяя промежуток времени, необходимый для овладения этим новым навыком.
Ограничения для курса перечислены в соответствующем разделе, но основные ограничения касаются основных понятий, таких как HTML и React. Поскольку этот учебный курс посвящен javascript, я не хотел разбавлять инструкцию, сосредоточив внимание на концепциях HTML/CSS или углубившись в изучение фреймворка React (что используется в расширенном разделе). Поэтому я предлагаю вам просмотреть эти ресурсы, чтобы помочь вам в соответствующих разделах:
HTML для начинающих:
CSS для начинающих:
React для начинающих:
После прохождения базового раздела, ведущего к разделу «Умеренный», вы должны быстро освоить концепции HTML и CSS, а также я расскажу вам о пакетах, которые значительно упрощают реализацию обеих концепций.
React — это фреймворк для javascript, так что это просто javascript с немного другими нюансами. Пройдите курс React для начинающих, чтобы получить представление о концепциях, но вы будете шокированы тем, насколько он похож на vanilla js и jquery.
Основы
Цели:
Основная цель этого конкретного раздела — научить и укоренить основные концепции JavaScript в вашем мозгу! Это основные строительные блоки ваших приложений. Думайте об этом разделе как о словах, предложениях, абзацах, а затем о книге. Каждая концепция основывается друг на друге, чтобы завершить надежную книгу или, в нашем случае, приложение.
- Основы ванильного Javascript
Предпосылки
Для этого раздела нет абсолютно никаких предварительных требований, однако базовые знания STEM и некоторый более высокий математический опыт полезны, но НЕ обязательны для изучения и успешного завершения этого раздела. Да, даже великий Джо Экзотик мог выучить и освоить этот раздел, последовательно проводя часы на экране, практикуя концепции, которые предстоит преподавать.
Ограничение
Очевидным ограничением является то, что этот раздел предоставит вам только базовые инструменты, необходимые для создания чего-либо значимого. Тем не менее, мы узнаем, как создавать некоторые базовые проекты, которые вы могли бы использовать в своей повседневной жизни. Тем не менее, на этом этапе вы ограничены довольно базовыми функциями и дизайном.
01 Типы языков
- Пример использования проекта
https://www.javascripting.com/
02 Настройка вашей среды
- Установка VSCode
- Варианты среды кодирования
- Наше окружение
- Первое приложение
03 Структуры данных и объекты
- Тип против нетипа
- Примитивные типы
- Объекты (все остальное)
04 Операторы
- Основные операторы
- Операторы сравнения
- Продвинутые операторы
05 Заявления JS
- Объявления и функции
- Итерации
- Поток управления
06 Методы и функции
- Выражение функции против объявлений
- Функции
- Область действия вложенного оператора
- Перезвонить Fn
- Методы
07 Встроенные объекты
- Список наиболее часто используемых
- Список отдыха (ресурс)
08 Создание объектов
- Тип функций
- Литералы объекта
- Это ключевое слово
09 Объектно-ориентированное программирование
- Классы
- Расширенные методы
10 ошибок и их обработка
- Время синтаксического анализа и время выполнения
- Пытаться
- Поймать
- Бросать
- Ну наконец то
- Другие
11 мини-проект
- Строим вместе
- Выбери свой собственный [список идей проекта]
Умеренный
Цели:
Цели этого раздела «Учебного курса» — научить вас создавать веб-сайты, изучать DOM и манипуляции с DOM для создания надежного пользовательского интерфейса, изучать пакеты и то, как они помогают вам создавать больше, делая меньше, и создавать базовые веб-сайты. приложения с ограниченным функционалом. Мы также рассмотрим концепции, которые будут более подробно рассмотрены в расширенном разделе.
- Основы HTML/CSS
- Jquery — Взаимодействие с пользователем/события
Предварительный запрос
Освоив организованное всестороннее понимание Базового раздела, вы сможете легко перейти к этой части Bootcamp. Я также перечислил ресурсы HTML/CSS выше, чтобы вы могли их просмотреть, так как в этом разделе мы в основном фокусируемся на jquery и взаимодействии с пользователем. Я буду создавать веб-сайт, поэтому ваше понимание основ HTML/CSS приветствуется, но не обязательно на 100% на этом этапе.
Ограничение
Это полнофункциональные веб-сайты или базовые статические сайты. После изучения этого раздела и практики в течение нескольких недель вы должны получить знания и набор навыков, необходимых для создания надежных веб-сайтов для будущих клиентов (да, эти два раздела снабдят вас знаниями для создания веб-сайтов и скаутских контрактов). Однако вы ограничены функциями, которые вы можете развернуть на этих сайтах, а общий уровень безопасности низок.
01 HTML — краткий обзор
- Теги и CSS — структурирование контента и улучшение внешнего вида контента
- Структура тега
- Основы CSS
02 ДОМ
- Типы манипуляций (изменение CSS, добавление контента, реакция на пользовательские события)
- Упражнение для каждого ^
- Практическое упражнение
03 Модули и пакеты
- Обзор (подробнее в разделе «Дополнительно»)
- Jquery
- Другие пакеты
04 JSON
- Как пользоваться
- JSON в строку и обратно
- Другие типы
05 Введение в базу данных
- Организация — Таблицы и записи
- Поля и значения
- Операции — сортировка, выборка/добавление,
- СУБД — Введение Firebase
- Плоская БД против реляционной БД
- Пример
- Расширенная информация:
06 Генераторы и итераторы
- Синтаксис
- Урожай
07 Асинхронно / Ожидание
- Синхронный против асинхронного
- Обещать
- потом
- Дополнительная информация:
08 Декораторы
- Подклассы
- Украшение
- Fn высшего порядка — см. Обратные вызовы
09 Развернуть сайт
- Введение в Firebase
- Командные строки
10 Модель параллелизма и цикл событий
Это дополнительная информация, которая может быть использована в будущем, но пока вам не нужно знать их так же хорошо, как другие упомянутые подтемы.
11 Управление памятью
Дополнительная информация:
12 Строгий режим
Это может быть полезно для вас, чтобы понять, когда вы видите его при чтении кода. Короче говоря, он анализирует код и обнаруживает больше ошибок, чем в противном случае. Большинство ошибок обнаруживается при сравнении неидентичных типов данных. Вот краткий пример:
'strict mode' var a = 0 var b = '0' const compare = (a,b) => { else if (a === b) { console.log('a === b') } else { console.log('a != b') } } compare(a,b) // Expected Result: 'a != b'
Дополнительная информация:
12 мини-проект
- Создать сайт
Передовой
Цели:
В этом последнем и заключительном разделе «Учебного лагеря» мы собираемся погрузиться в изучение надежного фреймворка. Мы кратко рассмотрим основы фреймворка React, поговорим о планировании приложений, рассмотрим облачные функции, использование аутентификации и изучим передовые методы передачи объектов в вашем приложении.
Предварительный запрос:
Вам необходимо понимать HTML/CSS и освоить Основы из первого раздела. Кроме того, во втором разделе (Умеренный) вы должны освоить основные концепции баз данных, использование и управление внешними данными, декораторами (или функциями высшего порядка), а также узнать, как передавать данные на сервер и с сервера. от клиента.
Ограничение:
Этот раздел не дает подробного объяснения React. Если вы продолжите использовать реакцию в качестве предпочтительной среды и погрузитесь в гибридный язык реакции-натива, вы можете быть ограничены в создании полностью нативного приложения для iOS или Android. В противном случае этот раздел может потенциально (со временем на практике) помочь вам разработать относительно надежные приложения с очень желательной функциональностью и вооружить вас набором навыков, востребованным уважаемыми работодателями.
01 React.js и React Native — общий обзор
- Обратитесь к Основам 01 для фреймворков
- JSX — виртуальный дом
- Компоненты и реквизит
- Состояние — данные и пользовательский интерфейс (динамические данные)
- Вложенные компоненты
- Функции как свойства и состояние обновления
02 Планирование приложений
- Определение цели и задач
- Определение основной функциональности
- Блок-схема пользовательской навигации
- Дизайн пользовательского интерфейса
- Создание и тестирование UI/UX
- Создание серверных/основных функций
- Управление базами данных
- Добавить авторизацию
- Бета-тест
- Запуск
03 Сервер против клиента
- Краткая информация
04 Настройка вашей среды
- Введение в НПМ
- Папка проекта — Папки src
- Hello World — Упражнение
05 Класс против функций конструктора
- Когда использовать?
- Жизненный цикл компонента
06 Настройка компонентов навигации
- React-Router-Dom — npm
- Маршрутизатор, коммутатор, ссылка, перенаправление
07 Первый экран — основной/приборный/главный
- Собираем это вместе
08 Другой компонент экрана
- Повтор 07
09 страниц ссылок — React-Router-Dom
- Ссылка в файле app.js
- адресовать
10 Завершите другие компоненты
- Повторите 07 (возможно, не компоненты пользовательского интерфейса)
11. Сделайте компоненты функциональными
- Посмотрите на шаг № 6 в планировании приложений
12 Добавить фиктивные данные
13 Создать магазин
- Передача данных от компонентов
- Магазин/Действие/Редуктор
- Преобразователь
- HoCs
14 Создание проекта Firebase
- Настройка консоли ФБ
- Связывание проекта
- Правила безопасности
- Создание экземпляра
- Создание БД и вызов данных
15. Асинхронный код с Redux
- Использование преобразователь
- Остановить отправку для асинхронного запуска
17 Подключение Redux к Firestore/Firebase
- React-Redux-Firebase
- Redux-Firestore
- Улучшение магазина и действий
18 Добавить и вызвать данные из Firebase
- Добавление в базу данных
- Звонок из базы данных
11 Настройка аутентификации Firebase
- Аутентификация Firebase
- Зарегистрируйтесь / Войдите с помощью электронной почты и пароля
19 Зарегистрироваться, войти, выйти
- Аутентификация Firebase
- Создание Документа пользователя в Коллекции пользователей
20 Подключение аутентификации Firebase к Redux
- Отслеживание состояния аутентификации
21 Охрана маршрута
- Использование аутентификации при загрузке или перенаправлении
22 Безопасность
- Правила
23 облачных функции
- Настройка среды (firebase-tools)
- Два типа триггера
- Защитные функции
24 Сортировка данных Firestore
- Список заказа
- Методы фильтрации
25 Развертывание
- Инициализация и развертывание
26 мини-проект
- Маленькое приложение
использованная литература
https://www.glassdoor.com/Salaries/entry-level-software-engineer-salary-SRCH_KO0,29.htm
https://www.amazon.com/80-20-Principle-Secret-Achieving/dp/0385491743
https://www.amazon.com/4-Hour-Workweek-Escape-Live-Anywhere/dp/0307465357
Спасибо за чтение! Если вам понравилась эта статья, не забудьте поаплодировать нам внизу! Это много значит для меня, и это помогает другим людям увидеть историю.
Свяжитесь со мной:
Инстаграм| Твиттер| Ютуб| "Групповой чат"
Сценарист: Ангел Мондрагон.