A list of key concepts that build a strong foundation for Phase 1 of the learning path.

🎯 Phase 1 Key Concepts - Foundation Mastery Checklist

This checklist complements the broader React Native Learning Path and is designed to help you verify that your JavaScript, React, and Node.js fundamentals are solid before diving deeper into mobile.

🔹 JavaScript Fundamentals & ES6+

Core JavaScript Concepts

  • Variables & Data Types: let, const, var differences and when to use each
  • Primitive Types: String, Number, Boolean, null, undefined, Symbol, BigInt
  • Type Coercion: Implicit and explicit type conversion, truthy/falsy values
  • Operators: Arithmetic, comparison, logical, assignment, ternary operator
  • Control Flow: if/else statements, switch cases, loops (for, while, for…in, for…of)

Functions & Scope

  • Function Declarations vs Expressions: Hoisting behavior differences
  • Arrow Functions: Syntax, this binding differences, when to use
  • Parameters: Default parameters, rest parameters (...args)
  • Scope: Global, function, block scope understanding
  • Closures: How inner functions access outer function variables
  • Higher-Order Functions: Functions that take/return other functions

ES6+ Modern Features

  • Destructuring: Array and object destructuring, nested destructuring
  • Spread Operator: ... for arrays and objects, cloning vs shallow copy
  • Template Literals: String interpolation with backticks, multiline strings
  • Enhanced Object Literals: Shorthand properties, computed property names
  • Modules: import/export syntax, default vs named exports
  • Classes: Class syntax, constructors, methods, inheritance with extends

Arrays & Objects

  • Array Methods: map(), filter(), reduce(), forEach(), find(), some(), every()
  • Array Manipulation: push(), pop(), slice(), splice(), concat()
  • Object Methods: Object.keys(), Object.values(), Object.entries()
  • JSON: JSON.stringify() and JSON.parse() for data serialization

Asynchronous JavaScript

  • Callbacks: Understanding callback pattern and callback hell
  • Promises: Creating promises, .then(), .catch(), .finally()
  • Async/Await: Modern async syntax, error handling with try/catch
  • Fetch API: Making HTTP requests, handling responses
  • Promise Methods: Promise.all(), Promise.race(), Promise.allSettled()

🔹 React Fundamentals

Core React Concepts

  • JSX: JavaScript XML syntax, embedding expressions, JSX rules
  • Components: Functional vs class components (focus on functional)
  • Props: Passing data to components, prop types, children prop
  • State: Component state with useState() hook
  • Event Handling: onClick, onChange, onSubmit event handlers
  • Conditional Rendering: Ternary operators, logical &&, early returns

React Hooks (Essential)

  • useState: Managing component state, state updates, functional updates
  • useEffect: Side effects, dependency array, cleanup functions
  • useContext: Consuming context values, avoiding prop drilling
  • Custom Hooks: Creating reusable logic, naming conventions

Component Lifecycle & Effects

  • Effect Dependencies: When effects run, dependency array importance
  • Cleanup: Preventing memory leaks, cleanup functions
  • Effect Patterns: Data fetching, subscriptions, timers

Lists & Forms

  • Rendering Lists: map() for dynamic content, key prop importance
  • Form Handling: Controlled components, form submission
  • Input Types: text, checkbox, radio, select inputs
  • Form Validation: Basic client-side validation patterns

React Best Practices

  • Component Composition: Breaking UI into reusable components
  • Prop Naming: Clear, descriptive prop names
  • State Structure: Keeping state simple and normalized
  • Component Organization: File structure and naming conventions

🔹 Node.js Basics

Node.js Core Concepts

  • Runtime Environment: Node.js vs browser JavaScript differences
  • Global Objects: global, process, __dirname, __filename
  • Module System: CommonJS (require/module.exports) vs ES Modules
  • NPM/Yarn: Package installation, package.json understanding
  • Scripts: NPM scripts for automation, common script patterns

File System & Path

  • File Operations: Reading/writing files synchronously and asynchronously
  • Path Module: Working with file paths, path.join(), path.resolve()
  • Directory Operations: Creating, reading directories
  • Streams: Understanding readable/writable streams basics

HTTP & Web Fundamentals

  • HTTP Module: Creating basic HTTP servers
  • Request/Response: Understanding req/res objects
  • HTTP Methods: GET, POST, PUT, DELETE purposes
  • Status Codes: Common HTTP status codes (200, 404, 500, etc.)
  • Headers: Content-Type, Accept, Authorization basics

Debugging & Development

  • Console Methods: console.log(), console.error(), console.table()
  • Error Handling: try/catch blocks, error objects
  • Debugging: Using debugger, Node.js debugging tools
  • Environment Variables: process.env, .env files

🔹 Development Tools & Workflow

Version Control (Git)

  • Basic Commands: git init, git add, git commit, git push
  • Branching: Creating and switching branches, git merge
  • Remote Repositories: Connecting to GitHub, cloning repositories
  • Collaboration: Pull requests, code reviews basics

Development Environment

  • Code Editor: VS Code extensions for JavaScript/React/Node
  • Terminal/Command Line: Basic commands, navigation
  • Browser DevTools: Console, Elements, Network tabs
  • Package Managers: NPM vs Yarn, lock files understanding

🎯 Practical Skills Assessment

By the end of Phase 1, you should be able to build:

JavaScript Projects

  • Weather App: Fetch data from API, display dynamic content
  • Todo List: Add/remove items, localStorage persistence
  • Calculator: Handle user input, perform calculations
  • Quiz App: Multiple choice questions, score tracking

React Projects

  • React Todo App: State management, form handling
  • Shopping Cart: Add/remove items, calculate totals
  • Profile Card: Props usage, conditional rendering
  • Counter App: useState hook, event handling

Node.js Projects

  • File Manager: Read/write files, directory operations
  • Simple HTTP Server: Serve static files, handle routes
  • Command Line Tool: Accept arguments, process data
  • API Mock Server: Return JSON data, different endpoints

🔍 Self-Assessment Questions

Test your understanding with these questions:

JavaScript

  • Can you explain the difference between let, const, and var?
  • What is a closure and can you provide an example?
  • How do you handle errors in async/await functions?
  • What’s the difference between map() and forEach()?

React

  • When would you use useEffect with an empty dependency array?
  • How do you pass data from child to parent component?
  • What is the virtual DOM and why is it useful?
  • Why is the key prop important when rendering lists?

Node.js

  • What’s the difference between fs.readFile() and fs.readFileSync()?
  • How do you handle different HTTP methods in a Node.js server?
  • What is the purpose of package.json?
  • How do you debug a Node.js application?

🚀 Ready for Phase 2 Indicators

You’re ready to move to Phase 2 when you can:

  • Build a complete React application with multiple components
  • Implement state management and data flow between components
  • Create a Node.js server that handles HTTP requests
  • Use modern JavaScript features confidently in your code
  • Debug JavaScript, React, and Node.js applications effectively
  • Understand error messages and know where to look for solutions
  • Complete coding challenges involving arrays, objects, and functions
  • Explain your code and technical decisions to others

⏱️ Time Investment Breakdown

  • JavaScript Practice: 40% of time (Daily coding challenges)
  • React Building: 35% of time (Component-based projects)
  • Node.js Exploration: 20% of time (Server and file system work)
  • Integration: 5% of time (Connecting pieces together)
  • Week 1-2: JavaScript fundamentals and ES6+ features
  • Week 3-4: React components, hooks, and state management
  • Week 5: Node.js basics and HTTP servers
  • Week 6: Integration projects and assessment

Master these concepts thoroughly before advancing. A strong foundation in Phase 1 will make the subsequent phases much more manageable and enjoyable!

FAQ

How does this Phase 1 checklist relate to the main React Native learning path?
This post is a companion to the broader React Native Learning Path and acts as a skills checklist for JavaScript, React, and Node.js. You can use it to verify that your foundations are solid before diving deeper into mobile-specific material.
When am I ready to move on from Phase 1 to deeper React Native topics?
You are ready to move on once you can check off most of the items in each section by actually applying them: building small apps, debugging issues, and explaining the concepts in your own words, not just recognizing them in theory.

Welcome to The infinite monkey theorem

Somewhere a monkey just typed Shakespeare in TypeScript. Be the first to read the masterpieces (and the hilarious misfires) landing on the blog.

Subscribe to The infinite monkey theorem

We fling fresh posts—no banana peels attached—straight to your inbox.