The student, on their own, is able to:
- Follow indentation and coding styleguides in their code (https://github.com/airbnb/javascript)
- Use and set up linters => npm init => npm install eslint --save-dev => eslint --init
- Create variables, functions, objects in JavaScript based on a given specification
- Use conditions and loops:
- Filtering
- Finding elements or index
- Generating collections
- Counting items in an object
- Determine the output of a logical expression
- Determine the output of an immediately invoked function expression
- Use higher order functions
- Explain their own code
- Initialize a node package
- Install packages via a package manager
- Write unit tests for functions and methods without mocking dependencies
- Include and call 3rd party libraries in their code
- Using libraries on the frontend => index.html => smoothscroll
- Using libraries on the backend => (https://github.com/greenfox-zerda-lasers/gaborbencsik/blob/master/week-09/day-1/todoBackEnd.js [backend])
- Use frameworks and know its components and processes => angularJS
- Use async structures:
- Writing functions that are taking and calling callbacks => (https://github.com/greenfox-zerda-lasers/gaborbencsik/blob/master/week-09/day-1/script.js [callbacks])
- Determining the calling order in nested callbacks
- Using timers
- Use git:
- Commit, add, push, pull
- Resolving a simple merge conflict
- Creating a pull request
- Use the command line:
- Traversing directories
- Moving, copying, creating, deleting files
- Passing command line arguments to commands
- Use databases:
- Implement database calls with JavaScript (https://github.com/greenfox-zerda-lasers/gaborbencsik/blob/master/week-09/day-1/todoBackEnd.js [backend])
- Write a simple SQL query for a single table:
- Listing, Deleting, Updating, Creating rows with specific values
- Write backend code:
- Implement an HTTP endpoint
- Set headers on HTTP responses
- Explain REST concepts (GET, POST, UPDATE, DELETE, OPTIONS)
- Write frontend code:
- Create layout in CSS and HTML based on a given specification
- Select any HTML element using CSS selectors
- Handle events
- Dynamically create elements
- Change attributes and properties on HTML elements using JavaScript
- Initiate HTTP requests
- Use build tools => WebPack => npm install -dev => webpack.config.js
- Deploy application to hosting service => heroku, gomix
- Differentiate between backend and frontend functionality
- Refactor code:
- Create meaningful names for functions and variables
- Split bigger functions to smaller ones
- Separate functions to different files
- Point out code smells
- Name 3 design patterns => Module Pattern, Revealing Module Pattern,
- Understand how the internet works
- Name the parts of an URL
- Name a few protocols/technologies in connection with network communication