The bold items can appear in practical PA exercises.
You can look up / google / ask anything during the PA.
- terminal / command line basics
- basic navigation:
pwd,ls,cd - special paths:
./../~/- - autocompletion
- command history (arrow keys,
Ctrl+R) - executing programs (e.g. node, git, ...)
- quitting programs
- copying / pasting in the terminal
- managing files and directories:
mkdir,mv,cp,rm
- basic navigation:
- development environment: VS Code
- working with the terminal in VS Code
- configuration
- command palette and keyboard shortcuts
- extensions
- formatter (e.g. prettier)
- linter
- ESLint configuration
- git basics
- what are repositories, commits and branches?
- setting up authentication with SSH
- creating a new repository
- cloning an existing repository
- ignoring files
- recording changes:
-
git status -
git diff -
git add -
git restore -
git commit
-
- history
-
git log -
git checkout
-
- remote repositories
- GitHub: cloning an existing repository, publishing a new repository
-
git push -
git pull - merge conflicts
- JavaScript overview
- where is it used?
- using the interactive mode
- executing .js files with node
- JavaScript variables
- declaring variables with
letandconst - rules for variable names
- variable scope
- declaring variables with
- comments
- data types basics
- numbers
- arithmetic operations
- strings
- creating strings
- joining strings
- template strings and interpolation
- basic escape sequences (
\',\",\n,\\)
- booleans
- null and undefined
- objects
- defining objects
- accessing properties via dot notation
- accessing properties via bracket notation
- arrays
- defining arrays
- accessing and setting entries of arrays
- common array properties and methods: push, pop, splice, length, ...
- numbers
- types and type conversions
-
typeof - converting between different types
-
- calling functions
- using predefined functions
- parameters and return values
- methods
- documentation and resources
- accessing documentation on existing functions and methods
- websites for questions and answers
- built-ins
- working with
console
- working with
- comparisons and booleans
- comparisons with
===/!==/==/!= - comparisons with
</<=/>/>= - results of comparisons
- combining booleans with
&&,||,!
- comparisons with
- parts of programs, terminology
- code blocks and variable scope
- statements
- expressions
- control structures
- if / else / ...
- loops
- loops for iterating over arrays
- while loops
- break and continue
- loops for counting
- augmented assignment (
++,+=, ...)
- augmented assignment (
- loops for iterating through object keys
- conditional operator (ternary operator)
- modules
- loading node modules via
require
- loading node modules via
- defining functions
- arrow functions
- short and long notation of arrow functions
- variable scope
- pure functions
- single responsibility principle (SRP)
- don't repeat yourself (DRY)
- documentation comments (
/**) - default parameters
- arrow functions
- clean code
- array methods
-
.join() -
.push(),.unshift() -
.pop(),.shift() -
.sort() -
.slice() -
.splice() - ...
-
- string methods
-
.split() -
.replace() -
.toUpperCase()/.toLowerCase() -
.trim() -
.slice() - selecting characters via
[] - ...
-
- finding and fixing errors
- reading error messages / tracebacks
- logging
- breakpoints and debugger
- numbers
- NaN
- rounding
- random numbers
- floating point arithmetic (e.g.
0.1 + 0.2 !== 0.3)
- regular expressions
- creating class instances (e.g.
new Date(...),new RegExp(...)) - object references and mutations (e.g.
let arrayB = arrayA) - higher-order functions
-
.sort() -
setTimeout(),.setInterval()
-
- HTML
- basic syntax
- basic structure of a page
- elements and tags
- attributes
- element IDs and classes
- special characters and escape sequences
- whitespace
- comments
- development server (VS Code extension)
- hosting (GitHub pages, netlify drop, ...)
- HTML elements
- html, head, body
- text "formatting": em, strong, br, ...
- structuring: headings, paragraphs, horizontal lines
- lists
- images
- links
- "general" elements: div, span
- inputs: input, textarea, select
- tables
- including stylesheets
- CSS libraries and resets
- including scripts
- attributes: defer, type
- CSS
- selecting by element type / ID / class
- text style
- colors
- padding, border, margin
- display: inline / block / flex / none
- flexbox
- DOM manipulation
- selecting elements from JavaScript
- getting / setting text content (innerText, innerHTML)
- getting / setting styling and classes (style, className, classList)
- getting / setting properties (value, disabled, ...)
- creating, appending and removing elements (createElement, append, remove, ...)
- accessing / modifying child / parent elements (parentNode, children, childNodes, ...)
- adding event listeners: click, input, ...
- event objects
- browser devtools
- inspector (elements)
- console
- debugger (sources)
- CSS
- media queries
- flexbox
- grid
- box-shadow
- border-radius
- JavaScript
- exception handling (try / catch / finally)
- localStorage
- converting a string to a number (behavior of
Number(...)) - checking if a string is a valid number (behavior of
isNaN()) - checking if a number is NaN
- JavaScript built-ins
- Date
- JSON, JSON format