Course Overview
This course covers everything you need to know about JavaScript and become either Frontend Web developer, or Full-stack Web Developer, or Backend developer.
This course includes more than 70 CHALLENGES and all exercise files are available in Git repositories.
We will start from the very beginning and you will learn fundamentals and basic concepts of JavaScript.
Than you will learn new features included in ES6, ES7 etc.
Also we will dive into the Node.js - environment for JavaScript code execution and you will understand what is the difference between Web Browser and Node.js.
In separate sections we will discuss Babel, NPM, Webpack and MongoDB.
Also you will learn most popular JavaScript framework - React.
JavaScript Bible was designed for developers with different levels of JavaScript knowledge.
If you are BEGINNER in JavaScript - start with very first section called JavaScript Basics.
In case you have SOME experience with JavaScript - jump directly in the sections where I cover ES6 topics such as rest/spread parameters, arrow functions, ES6 Classes etc.
If you are experienced MIDDLE or SENIOR developer with years of JavaScript development background - jump directly into the Challenges and test your knowledge. Each challenge has task and solution in separate Git branches.
All videos have different labels:
LECTURE: in those videos I explain different features and concepts of the language. Main main goal in those videos is to teach you HOW specific feature work under the hood. I don't teach HOW TO USE feature.
Instead I teach you WHY and HOW specific feature works.
PRACTICE: here I will dive into the coding and show you different real-world examples of the usage of specific feature. Usually I will present to you several examples for each specific feature. I strongly recommend you to follow me in those videos and code along with me.
CHALLENGE: each challenge (except simple and short challenges) has START and FINISH branches with task and solution. PLEASE don't skip challenges even if you are already familiar with the topic. Try to solve each challenge yourself.
DEMO: in some videos I will demonstrate you examples where you don't necessarily need to follow me and code along with me
If you want to become an Expert in JavaScript, please join this course now!
See you onboard!
FAQ
FAQ area empty
Course curriculum
-
INTRO - Exercise Files and Software Setup
Xem trước -
LECTURE - Software Setup Overview
-
PRACTICE - WINDOWS ONLY - Install "cmder"
-
PRACTICE - Visual Studio Code Setup
-
PRACTICE - Launch Node.js and execute test JavaScript file
Xem trước -
PRACTICE - Git Overview - PART 1
-
PRACTICE - Git Overview - PART 2
Xem trước -
PRACTICE - Clone remote GIt repository and switch Branches
-
PRACTICE - Use SourceTree for Git repositories management
-
INTRO - JAVASCRIPT BASICS - Intro
-
GIT REPOSITORY FOR THIS SECTION
-
PRACTICE - Exploring Web Sites in the Browser
-
PRACTICE - Create first HTML file and start Live Server
Xem trước -
PRACTICE - Add favicon to the HTML file
-
PRACTICE - JavaScript embedded into the HTML
-
DEMO - Git branches management
-
PRACTICE - JavaScript in the separate file
-
CHALLENGE - External Scripts
-
✓ CHALLENGE - External Scripts - SOLUTION
-
PRACTICE - JavaScript in the Console of the Browser
-
INTRO - JAVASCRIPT BASICS - Types and Variables
-
LECTURE - Object in JavaScript
-
LECTURE - Primitive vs Reference Value Types
-
PRACTICE - Exploring Primitive Value Types
-
PRACTICE - Exploring Reference Type - Object
-
LECTURE - Variable declaration using "var", "let" and "const"
-
PRACTICE - Variable declaration and assignment
-
CHALLENGE - Variable Declaration and Assignment
-
CHALLENGE - Variables Reusage
-
LECTURE - Statically vs Dynamically typed Languages
-
PRACTICE - Dynamic typing in JavaScript
-
INTRO - JAVASCRIPT BASICS - Objects
-
LECTURE - Variety of Objects in JavaScript
-
LECTURE - Objects Modification
-
PRACTICE and CHALLENGES - Objects - PART 1
-
PRACTICE and CHALLENGES - Objects - PART 2
-
PRACTICE and CHALLENGES - Objects - PART 3
-
LECTURE - Global Objects - "window" and "global"
-
LECTURE - Methods of the Object
-
INTRO - JAVASCRIPT BASICS - Functions
-
LECTURE - Introduction to the Functions
-
LECTURE - Syntax of the Function
-
PRACTICE - Functions - PART 1
-
PRACTICE - Functions - PART 2
-
CHALLENGES - Functions - PART 1
-
CHALLENGES - Functions - PART 2
-
LECTURE - Function Expressions vs Function Declarations
-
PRACTICE - Function Expressions, setTimout(), setInterval()
-
CHALLENGE - Function Expressions
-
✓ CHALLENGE - Function Expressions - SOLUTION
-
INTRO - JAVASCRIPT BASICS - Operators
-
LECTURE - Operators
-
LECTURE - Operands, Unary vs Binary Operators and Notations
-
PRACTICE - Arithmetic Operators - PART 1
-
PRACTICE - Arithmetic Operators - PART 2
-
PRACTICE - Comparison Operators - PART 1
-
PRACTICE - Comparison Operators - PART 2
-
PRACTICE - Logical Operators - PART 1
-
PRACTICE - Logical Operators - PART 2
-
PRACTICE - Operators Precedence and Associativity
-
CHALLENGES - Operators - PART 1
-
CHALLENGES - Operators - PART 2
-
LECTURE - Introduction to the Loops
-
LECTURE - "for" Loop
-
LECTURE - "while" Loop
-
LECTURE - "do while" Loop
-
LECTURE - "for in" and "for of" Loops
-
PRACTICE Loops - PART 1
-
PRACTICE Loops - PART 2
-
PRACTICE Loops - Looking for loops in a pubic JavaScript library
-
LECTURE - Conditional Statements - if, if else and switch
-
LECTURE - Ternary Operator
-
PRACTICE - Conditional statements and ternary operator - PART 1
-
PRACTICE - Conditional statements and ternary operator - PART 2
-
CHALLENGES - Loops and Conditions - PART 1
-
CHALLENGES - Loops and Conditions - PART 2
-
CHALLENGES - Loops and Conditions - PART 3
-
CHALLENGES - "for in" and Ternary Operator
-
PRACTICE - Mutable vs Immutable Values
-
PRACTICE - "typeof" and "instanceof" Operators
-
PRACTICE - "new Array", "new String"
-
PRACTICE - "new Object", "new Function"
-
PRACTICE - Execution contexts and Execution contexts stack
-
PRACTICE - "this"
-
PRACTICE - "call", "apply" methods of the Function
-
PRACTICE - "bind" method of the Function
-
PRACTICE - "pass by value" vs "pass by reference"
-
PRACTICE - IIFE - Immediately Invoked Function Expression
-
PRACTICE - Synchronous Code Execution
-
PRACTICE - Events and Events queue
-
PRACTICE - Callbacks - PART 1
-
PRACTICE - Callbacks - PART 2
-
PRACTICE - Closures
-
GIT REPOSITORY FOR THIS SECTION
-
LECTURE - Recap of the "var"
-
LECTURE - Scopes - Global, Function and Block
-
LECTURE - let
-
LECTURE - const
-
LECTURE - Variables Usage Guidelines
-
LECTURE - Var, Let or Const?
-
CHALLENGE 1-1 - let, var and const
-
✓ CHALLENGE 1-1 - let, var and const - SOLUTION
-
CHALLENGE 1-2 - let, var and closures
-
✓ CHALLENGE 1-2 - let, var and closures - SOLUTION
-
LECTURE - JavaScript Engine Phases
-
LECTURE - Variable Lifecycle Phases
-
LECTURE - Var lifecycle
-
LECTURE - Undeclared variable lifecycle
-
LECTURE - Let lifecycle
-
LECTURE - Const lifecycle
-
LECTURE - Function lifecycle - Part 1
-
LECTURE - Function lifecycle - Part 2
-
LECTURE - What is finally hoisting?
-
DEMO - Putting different variables lifecycles together
-
✓ DEMO - Putting different variables lifecycles together - SOLUTION, Part 1
-
✓ DEMO - Putting different variables lifecycles together - SOLUTION, Part 2
-
CHALLENGE 1-3 - Variable Lifecycles
-
✓ CHALLENGE 1-3 - Variable Lifecycles - SOLUTION
-
LECTURE - Variables Phases Section Summary
-
GIT REPOSITORY FOR THIS SECTION
-
LECTURE - Introduction to the Arrow Functions Section
-
LECTURE - Traditional JavaScript Functions Overview.
-
LECTURE - Introduction to the Arrow Functions
-
LECTURE - Arrow Functions syntax
-
PRACTICE - Arrow Functions
-
LECTURE - Arrow Functions and "this".
-
LECTURE - Regular functions instead of Arrow Functions
-
CHALLENGE 2-1 - Regular vs Arrow Functions
-
✓ CHALLENGE 2-1 - Regular vs Arrow Functions - SOLUTION
-
LECTURE - Arguments in the Functions
-
LECTURE - Arrow Functions Summary
-
GIT REPOSITORY FOR THIS SECTION
-
LECTURE - forEach() Overview
-
PRACTICE - forEach()
-
CHALLENGE 3-1 - forEach() with Index
-
✓ CHALLENGE 3-1 - forEach() with Index - SOLUTION
-
LECTURE - map() Overview
-
PRACTICE - map()
-
CHALLENGE 3-2 - map() JSON to Object
-
✓ CHALLENGE 3-2 - map() JSON to Object - SOLUTION
-
LECTURE - filter() Overview
-
PRACTICE - filter()
-
LECTURE - find() Overview
-
PRACTICE - find()
-
CHALLENGE 3-3 - find() Single Post
-
✓ CHALLENGE 3-3 - find() Single Post - SOLUTION
-
LECTURE - every() and some() Overview
-
PRACTICE - every() and some()
-
CHALLENGE 3-4 Is Array of Numbers Sorted?
-
✓ CHALLENGE 3-4 Is Array of Numbers Sorted? - SOLUTION
-
CHALLENGE 3-5 Are Arrays Equal or not?
-
✓ CHALLENGE 3-5 Are Arrays Equal or not? - SOLUTION
-
CHALLENGE 3-6 Check if Element is in Array
-
✓ CHALLENGE 3-6 Check if Element is in Array - SOLUTION
-
LECTURE - includes() Overview
-
PRACTICE - includes()
-
CHALLENGE 3-7 Includes() with Array or Object
-
✓ CHALLENGE 3-7 Includes() with Array or Object - SOLUTION
-
CHALLENGE 3-8 Push Element to Array if Not Exists
-
✓ CHALLENGE 3-8 Push Element to Array if Not Exists - SOLUTION
-
LECTURE - reduce() Overview
-
PRACTICE - reduce()
-
CHALLENGE 3-9 Reduce Array of Objects
-
✓ CHALLENGE 3-9 Reduce Array of Objects - SOLUTION
-
CHALLENGE 3-10 Reduce Array of Objects to Object
-
✓ CHALLENGE 3-10 Reduce Array of Objects to Object - SOLUTION
-
LECTURE - Do you know how sort() works?
-
LECTURE - Sorting Algorithms Overview
-
LECTURE - Stable vs Unstable Sort
-
LECTURE - sort() Overview
-
LECTURE - sort() without Arguments
-
LECTURE - sort() Analyze sorting algorithms
-
LECTURE - sort() Algorithms in different browsers
-
CHALLENGE 3-11 sort() Array of objects
-
✓ CHALLENGE 3-11 sort() Array of objects - SOLUTION
-
CHALLENGE 3-12 sort() Long Array of objects
-
✓ CHALLENGE 3-12 sort() Long Array of objects - SOLUTION
-
LECTURE - sort() Summary
-
LECTURE - Array helper methods Summary
-
GIT REPOSITORY FOR THIS SECTION
-
LECTURE - Rest Parameters Overview
-
PRACTICE - Rest Parameters
-
LECTURE - Spread Operator Overview
-
PRACTICE - Spread Operator
-
CHALLENGE 5-1 Rest and Spread Operators
-
✓ CHALLENGE 5-1 Rest and Spread Operators - SOLUTION
-
LECTURE - Default Function Parameters Overview
-
PRACTICE - Default Function Parameters
-
CHALLENGE 5-2 Default value without default parameters
-
✓ CHALLENGE 5-2 Default value without default parameters - SOLUTION
-
CHALLENGE 5-3 Generate Missing Unique IDs
-
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 1
-
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 2
-
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 3
-
✓ CHALLENGE 5-3 Generate Missing Unique IDs - SOLUTION PART 4
-
GIT REPOSITORY FOR THIS SECTION
-
LECTURE - Destructuring Overview
-
PRACTICE - Array Destructuring
-
CHALLENGE 6-2 Array Destructuring
-
✓ CHALLENGE 6-2 Array Destructuring - SOLUTION
-
CHALLENGE 6-3 Destructure Result of the Function
-
✓ CHALLENGE 6-3 Destructure Result of the Function - SOLUTION
-
PRACTICE - Object Destructuring - PART 1
-
LECTURE - New Variable Names and Default Values in Object Destructuring
-
PRACTICE - Object Destructuring - PART 2
-
CHALLENGE 6-4 Object Destructuring
-
✓ CHALLENGE 6-4 Object Destructuring - SOLUTION
-
CHALLENGE 6-5 Object Destructuring and Array Helper Methods
-
✓ CHALLENGE 6-5 Object Destructuring and Array Helper Methods - SOLUTION
-
CHALLENGE 6-6 Delete Object Properties
-
✓ CHALLENGE 6-6 Delete Object Properties - SOLUTION
-
GIT REPOSITORY FOR THIS SECTION
-
LECTURE - Class-based vs Prototype-based
-
LECTURE - What is inheritance?
-
LECTURE - Prototype Chain
-
LECTURE - __proto__ and [[Prototype]]
-
LECTURE - What is Prototype?
-
LECTURE - Don't reassign __proto__
-
LECTURE - Native Prototypes - PART 1
-
LECTURE - Native Prototypes - PART 2
-
LECTURE - Prototypal Inheritance in JavaScript
-
PRACTICE - Function Constructors - PART 1
-
LECTURE - Function Constructors Overview
-
PRACTICE - Function Constructors - PART 2
-
PRACTICE - Function Constructors - PART 3
-
LECTURE - Object.create() Overview
-
PRACTICE - Object.create()
-
PRACTICE - Function Constructors - PART 4
-
LECTURE - Function Constructors - New Prototype in the Chain
-
CHALLENGE 7-1 Insert Prototype Into the Existing Prototype Chain
-
✓ CHALLENGE 7-1 Insert Prototype Into the Existing Prototype Chain - SOLUTION
-
LECTURE - "instanceof" and "typeof" in the Prototype Chain
-
CHALLENGE 7-2 Fix Mistakes in the Function Constructors
-
✓ CHALLENGE 7-2 Fix Mistakes in the Function Constructors - SOLUTION
-
LECTURE - Classes - Overview
-
LECTURE - Classes vs Function Constructors
-
PRACTICE - Classes - PART 1
-
PRACTICE - Classes - PART 2
-
PRACTICE - Classes - PART 3
-
CHALLENGE 7-3 Convert Function Constructors to Classes
-
✓ CHALLENGE 7-3 Convert Function Constructors to Classes - SOLUTION
-
CHALLENGE 7-4 Extend Array
-
✓ CHALLENGE 7-4 Extend Array - SOLUTION
-
CHALLENGE 7-5 Custom Push Method for Arrays
-
✓ CHALLENGE 7-5 Custom Push Method for Arrays - SOLUTION
-
LECTURE - React and ES6 Classes
-
CHALLENGE 7-6 Classes in React - Additional Button
-
✓ CHALLENGE 7-6 Classes in React - Additional Button - SOLUTION
-
Babel Module Introduction
-
LECTURE - What is Compiler?
-
LECTURE - Compiled vs Interpreted languages
-
LECTURE - Transpiler
-
LECTURE - Transpling vs Compiling
-
LECTURE - ES5, ES6 and JavaScript
-
LECTURE - What Babel does?
-
LECTURE - Why do we need Babel?
-
LECTURE - ES6 support by Browsers
-
LECTURE - How many browsers need compiled ES5 code?
-
PRACTICE - Babel in action - ES6 Rest operator
-
PRACTICE - Compare performance - ES6 Rest Operator(Node.js)
-
PRACTICE - Compare Performance - ES6 Rest Operator (Google Chrome)
-
CHALLENGE - Compare Performance - ES6 Destructuring
-
✓ CHALLENGE - Compare Performance - ES6 Destructurng - SOLUTION
-
LECTURE - What is User Agent?
-
LECTURE - Serve different JS files to different browers
-
LECTURE - Different JS files on the server
-
PRACTICE - Browser detection on the client
-
CHALLENGE - Detect feature support in the Browser
-
✓ CHALLENGE - Detect feature support in the Browser - SOLUTION
-
CHALLENGE - Insert different script tags into the DOM
-
✓ CHALLENGE - Insert different script tags into the DOM - SOLUTION
-
LECTURE - How Babel Works?
-
PRACTICE - Online Babel Compiler
-
LECTURE - Install Babel Globally
-
PRACTICE - Compile JS file using Babel
-
LECTURE - Plugins and Presets
-
LECTURE - Introduction to the NPM
-
PRACTICE - Exploring NPM packages
-
LECTURE - Package.json and init
-
LECTURE - Semantic Versioning
-
LECTURE - Packages Installation
-
PRACTICE - Install package in the project
-
CHALLENGE - Install Semver package
-
✓ CHALLENGE - Install Semver Package - SOLUTION
-
PRACTICE - Install Browserslist - package with own dependencies
-
LECTURE - Dependencies and Development Dependencies
-
PRACTICE - Examine Development Dependencies
-
PRACTICE - Browser App vs Server Package
-
CHALLENGE - Clock Browser Application
-
✓ CHALLENGE - Clock Browser Application - SOLUTION
-
LECTURE - Clock Challenge Summary
-
LECTURE - Browser App vs Public Package
-
PRACTICE - Exploring Package Information and Versions
-
PRACTICE - Installing Specific Package Version
-
LECTURE - Why package-lock.json file is needed?
-
CHALLENGE - Reinstall old package version without lock file
-
✓ CHALLENGE - Reinstall old package version without lock file - SOLUTION
-
LECTURE - How lock file is handled
-
LECTURE - Lock file summary
-
LECTURE - Update NPM packages overview
-
CHALLENGE - Update project dependencies
-
✓ CHALLENGE - Update project dependencies - SOLUTION
-
LECTURE - Introduction to the NPM scripts
-
PRACTICE - Start npm script
-
CHALLENGE - Create prestart script
-
✓ CHALLENGE - Create prestart script - SOLUTION
-
PRACTICE - Custom NPM scripts
-
CHALLENGE - Run NPM scripts simultaneously
-
✓ CHALLENGE - Run NPM scripts simultaneously - SOLUTION
-
LECTURE - NPM .bin Folder with Executable Scripts
-
PRACTICE - Explore .bin Folder on the Mac
-
PRACTICE - Explore .bin Folder on Windows
-
LECTURE - NPM Scripts Wrap-Up
-
LECTURE - Where MongoDB is used?
-
LECTURE - Relational vs Document Databases
-
LECTURE - MongoDB Structure
-
LECTURE - MongoDB Shell and MongoDB Server
-
PRACTICE - Installation of the MongoDB on the local computer
-
PRACTICE - Launch MongoDB Server and connect to it from the MongoDB Shell
-
PRACTICE - MongoDB database in the Cloud
-
PRACTICE - Exploring MongoDB Shell
-
PRACTICE - Installing and Exploring Robo 3T (previously Robomongo)
-
LECTURE - JSON Overview
-
LECTURE - Difference between JSON and JavaScript Object
-
LECTURE - How Documents are stored in the Database? - BSON Format
-
LECTURE - What is Extended JSON?
-
LECTURE - Data Types representation in Extended JSON
-
LECTURE - How types are stored in BSON?
-
PRACTICE - Creation of the new Collection
-
LECTURE - Insert Methods insertOne() and insertMany()
-
LECTURE - Sample Data Overview
-
PRACTICE - Insert Sample Documents into the Collection
-
LECTURE - Find Methods find() and findOne()
-
PRACTICE - Finding Documents
-
LECTURE - Query Operators Overview
-
PRACTICE - Finding Documents with Query Operators
-
LECTURE - Sort, Limit and Skip helper methods
-
PRACTICE - Sort, Limit and Skip
-
LECTURE - Update Methods updateOne() and updateMany()
-
LECTURE - Update Operators
-
PRACTICE - Updating Documents using Update Operators
-
LECTURE - Delete Methods deleteOne() and deleteMany()
-
PRACTICE - Deleting Documents
-
LECTURE - MongoDB Aggregation Framework
-
PRACTICE - Aggregating Documents
-
LECTURE - MongoDB Indexes
-
LECTURE - MongoDB Utilities
-
LECTURE - What is MongoDB Replica Set?
-
LECTURE - MongoDB Drivers
-
Intro to Additional JavaScript Challenges
-
EXERCISE FILES
-
Software Setup
-
CHALLENGE 1 - Sum numbers
-
✓ CHALLENGE 1 - Sum numbers - SOLUTION
-
CHALLENGE 2 - Const
-
✓ CHALLENGE 2 - Const - SOLUTION
-
CHALLENGE 3 - Let
-
✓ CHALLENGE 3 - Let - SOLUTION
-
CHALLENGE 4 - Hoisting
-
✓ CHALLENGE 4 - Hoisting - SOLUTION
-
CHALLENGE 5 - Ternary Operator
-
✓ CHALLENGE 5 - Ternary Operator - SOLUTION
-
CHALLENGE 6 - Arrow Functions
-
✓ CHALLENGE 6 - Arrow Functions - SOLUTION
-
CHALLENGE 7 - Default parameters
-
✓ CHALLENGE 7 - Default parameters - SOLUTION
-
CHALLENGE 8 - Check presence of the function parameters
-
✓ CHALLENGE 8 - Check presence of the function parameters - SOLUTION
-
CHALLENGE 9 - Object Destructuring
-
✓ CHALLENGE 9 - Object Destructuring - SOLUTION
-
CHALLENGE 10 - Destructuring and Rest Operator
-
✓ CHALLENGE 10 - Destructuring and Rest Operator - SOLUTION
-
CHALLENGE 11 - Spread Operator
-
✓ CHALLENGE 11 - Spread Operator - SOLUTION
-
CHALLENGE 12 - Copy Array
-
✓ CHALLENGE 12 - Copy Array - SOLUTION
-
CHALLENGE 13 - Template Literals
-
✓ CHALLENGE 13 - Template Literals - SOLUTION
-
CHALLENGE 14 - Object Destructuring
-
✓ CHALLENGE 14 - Object Destructuring - SOLUTION
-
CHALLENGE 15 - Iterate over String
-
✓ CHALLENGE 15 - Iterate over String - SOLUTION
-
CHALLENGE 16 - Swap values of the two variables
-
✓ CHALLENGE 16 - Swap values of the two variables - SOLUTION
-
CHALLENGE 17 - IIFE (Immediately Invoked Function Expression)
-
✓ CHALLENGE 17 - IIFE (Immediately Invoked Function Expression) - SOLUTION
-
CHALLENGE 18 - Classes
-
✓ CHALLENGE 18 - Classes - SOLUTION
-
CHALLENGE 19 - Iterate over Object
-
✓ CHALLENGE 19 - Iterate over Object - SOLUTION
-
CHALLENGE 20 - Sum positive and negative numbers
-
✓ CHALLENGE 20 - Sum positive and negative numbers - SOLUTION
Requirment
-
Just your computer
-
Readiness to solve different Challenges yourself
-
Passion for coding and learning
Outcomes
-
Become a Senior JavaScript developer by learning and practicing all modern features of the JavaScript. Become able easily apply to Web Developer, Frontend Developer, Backend Developer or Full Stack Web Developer jobs.
-
Learn JavaScript, ES6, NPM, Webpack, Babel, Node, React by solving tens of CHALLENGES with real-world scenarios. Each CHALLENGE has task and solution. And all of them are available in the GIT repositories that you will download at the beginning of the course.
-
Learn all FUNDAMENTAL features of the JavaScript starting from basic concepts such as Variables, Objects, Functions, Scopes, Operators and finishing with ADVANCED topics as Closures, Hoisting, IIFEs (Immediately Invoked Function Expressions), Classes and many more.
-
Learn and understand ES6 features such as Arrow functions, Destructuring, Default function parameters, Template Literals, Array helper methods, Classes
-
Understand proper methods to work with Arrays - map, forEach, reduce, filter, includes
-
Deeply understand purpose of the NPM - Node Package Manager
-
Learn and practice Babel - JavaScript Compiler
-
Learn basics of the most popular NoSQL database with JavaScript Engine - MongoDB
Instructor
Nguyễn Đình Cường
1.2
-
1 Student
-
330 Courses
-
1253 reviews
Xin chào các bạn, tôi là Nguyễn Đình Cường, một lập trình viên và giảng viên đam mê công nghệ với hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Tôi tốt nghiệp từ Bưu Chính Viễn Thông và đã từng làm việc cho một số công ty công nghệ hàng đầu như FPT Software và VinGroup. Với chuyên môn chính là phát triển ứng dụng web, tôi đã làm việc với nhiều công nghệ như HTML, CSS, JavaScript, React cho front-end và Node.js, Express, MongoDB cho back-end. Không chỉ dừng lại ở việc viết mã, tôi còn yêu thích tìm hiểu sâu về thiết kế hệ thống và kiến trúc phần mềm. Tôi tin rằng quá trình học lập trình không chỉ đơn thuần là lý thuyết, mà còn là sự trải nghiệm thực tế và giải quyết vấn đề. Trong các khóa học của mình, tôi cố gắng cung cấp cho học viên những bài giảng thú vị và dễ hiểu, cùng với các bài tập thực hành giúp củng cố kiến thức. Tôi hy vọng rằng qua các khóa học của mình, bạn sẽ không chỉ học được cách viết mã, mà còn phát triển tư duy lập trình và kỹ năng giải quyết vấn đề. Hãy cùng nhau khám phá thế giới lập trình và biến ý tưởng của bạn thành hiện thực! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại liên hệ với tôi. Tôi rất vui được hỗ trợ bạn trong hành trình học tập của mình!
View Details