<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
## Table of Contents

- [Introduction to front-end programming for back-end developers](#introduction-to-front-end-programming-for-back-end-developers)
  - [Goal of this training](#goal-of-this-training)
  - [Prerequisites](#prerequisites)
  - [To do before the course](#to-do-before-the-course)
  - [Curriculum](#curriculum)
  - [Roadmap: to go further](#roadmap-to-go-further)
  - [Inspiration](#inspiration)
  - [Other resources](#other-resources)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Introduction to front-end programming for back-end developers

## Goal of this training

This training was developed for back-end and infra developers. It is meant to be used as a support for an oral presentation.

I am not an expert in front-end development. This should only be considered an introduction.

## Prerequisites

Assumed knowledge:

- Basics about HTTP (cookies, protocol, HTTPS)
- Basics about browser (DOM, using the developer console)
- Basics about HTML and CSS (tags & attributes, how CSS work, CSS selectors, CSS styling)
- Basics about programming languages (conditionals, loops, variables, typing, tests)
- Basics about JavaScript (syntax, having written a few hundred lines of code)

## To do before the course

Read the [grab/front-end-guide](https://github.com/grab/front-end-guide) to get a 10,000 viewpoint about the road ahead. Evidently you don't need to check the details about each topic (that's what we'll do in this course), but obviously feel free to look up what seems interesting to you!

## Curriculum

Instead of going deep in topics, we try to go as fast as possible to front-end programming (i.e. React with TypeScript), and then we go back to address those more specific topics.

1. The language: writing modern Javascript
2. React
3. TypeScript
4. The browser
5. CSS/HTML restart
6. Front-end development practices

## Roadmap: to go further

![learning front-end roadmap](./img/learning-roadmap.png)

Image from https://github.com/kamranahmedse/developer-roadmap

## Inspiration

- [Front-end Developer Handbook 2019 - Learn the entire JavaScript, CSS and HTML development practice!](https://frontendmasters.com/books/front-end-handbook/2019/)
- [grab/front-end-guide: 📚 Study guide and introduction to the modern front end stack.](https://github.com/grab/front-end-guide)

## Other resources

- [leonardomso/33-js-concepts](https://github.com/leonardomso/33-js-concepts): 33 JavaScript concepts every developer should know.
- [The Modern JavaScript Tutorial](https://javascript.info/)
- [A slightly sarcastic history of frontend](https://app.daily.dev/posts/a-slightly-sarcastic-history-of-frontend-1ohcpd7uq)
- [gibbok/typescript-book: The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.](https://github.com/gibbok/typescript-book)
