The Modern Javascript Bootcamp Course
-
Introduction
-
JS Values & Variables
-
How to Model Data Efficiently
-
Controlling Program Logic and FlowMaking Decisions in JS0sComparison Operators0sDouble Equals (==)0sTriple Equals (===)0sRunning Code From a Script0sIf Statements0sElse If0sElse0sNesting Conditionals0sTruthy & Falsy Values0sLogical AND (&&)0sLogical OR (||)0sNOT Operator (!)0sOperator Precedence0sThe Switch Statement0sTernary Operator0s
-
Capture Collections of Data with Arrays
-
Objects – The Core of Javascript
-
The World of Loops
-
Writing Reusable Code with FunctionsOur First Function!0sDice Roll Function0sIntroducing Arguments0sFunctions With Multiple Args0sThe Return Statement0sMore on Return Values0sFunction Challenge 1: passwordValidator0sFunction Challenge 2: Average0sFunction Challenge 3: Pangrams0sFunction Challenge 4: Get Playing Card0s
-
An Advanced Look at Functions
-
Apply Functions to Collections of Data
-
A Few Miscellaneous JS Features
-
Object Methods and the ‘This’ Keyword
-
JS In the Browser – DOM Manipulation
-
Twisting the DOM to Our Will!Working with innerText & textContent0sinnerHTML0svalue, src, href, and more0sGetting & Setting Attributes0sFinding Parent/Children/Siblings0sChanging Multiple Elements0sAltering Styles0sgetComputedStyle0sManipulating Classes0sCreating Elements0sAppend, Prepend, & insertBefore0sremoveChild & remove0sNBA Scores Chart Pt1.0sNBA Scores Chart Refactor0s
-
Communicating with Events
-
Asynchronous Code, Callbacks & PromisesThe Call Stack0sCall Stack Debugging w/ Dev Tools0sJS is Single Threaded0sHow Asynchronous Callbacks Actually Work0sWelcome to Callback Hell0sIntroducing Promises!0sReturning Promises from Functions0sResolving/Rejecting w/ Values0sThe Delights of Promise Chaining0sRefactoring w/ Promises0s
-
Making HTTP Requests
-
Async & Await JS Magic
-
Prototypes, Classes, & The New Operator
-
Drawing AnimationsWelcome to Part 2!0sJoin Our Community!App Overview0sProject Setup0sEvent-Based Architecture0sClass-Based Implementation0sBinding Events in a Class0sReminder on ‘This’0sDetermining the Value of ‘This’0sSolving the ‘This’ Issue0sStarting and Pausing the Timer0sWhere to Store Data?0sDOM-Centric Approach0sGetters and Setters0sStopping the Timer0sNotifying the Outside World0sOnTick and OnComplete0sExtracting Timer Code0sIntroducing SVG’s0sRules of SVG’s0sAdvanced Circle Properties0sThe Secret to the Animation0sFirst Pass on the Animation0sSmoothing the Animation0sAdjusting by an Even Interval0sUsing Icons0sStyling and Wrapup0s
-
Application Design PatternsApplication Overview0sStarter Kit Setup0sBig Challenges0sFetching Movie Data0sFetching a Single Movie0sAutoComplete Widget Design0sSearching the API on Input Change0sDelaying Search Input0sUnderstanding Debounce0sImplementing a Reusable Debounce0sExtracting Utility Functions0sAwaiting Async Functions0sRendering Movies0sHandling Errored Responses0sOpening a Menu0sStyle of Widget Creation0sMoving HTML Generation0sQuick NoteRepairing References0sHandling Broken Images0sAutomatically Closing the Dropdown0sHandling Empty Responses0sHandling Movie Selection0sMaking a Followup Request0sRendering an Expanded Summary0sExpanded Statistics0sIssues with the Codebase0sMaking the Autocomplete Reusable0sDisplaying Multiple Autocompletes0sExtracting Rendering Logic0sExtracting Selection Logic0sRemoving Movie References0sConsuming a Different Source of Data0sRefreshed HTML Structure0sAvoiding Duplication of Config0sHiding the Tutorial0sShowing Two Summaries0sWhen to Compare?0sHow to Compare?0sExtracting Statistic Values0sParsing Number of Awards0sApplying Parsed Properties0sUpdating Styles0sSmall Bug FixApp Wrapup0s
-
Javascript with the Canvas APIApplication Overview0sProject Setup0sMatter Terminology0sGetting Content to Appear0sBoilerplate Overview0sDrawing Borders0sClicking and Dragging0sGenerating Random Shapes0sMaze Generation Algorithm0sMore on Maze Generation0sConfiguration Variables0sGrid Generation0sVerticals and Horizontals0sAbstracting Maze Dimensions0sGuiding Comments0sNeighbor Coordinates0sShuffling Neighbor Pairs0sDetermining Movement Direction0sUpdating Vertical Wall Values0sUpdating Horizontal Wall Values0sValidating Wall Structure0sIterating Over Walls0sDrawing Horizontal Segments0sDrawing Vertical Segments0sDrawing the Goal0sDrawing the Playing Ball0sHandling Keypresses0sAdding Keyboard Controls0sDisabling Gravity0sDetecting a Win0sAdding a Win Animation0sStretching the Canvas0sUnderstanding the New Unit Variables0sRefactoring for Rectangular Mazes0sAdding Fill Colors0sDisplaying a Success Message0s
-
Make a Secret-Message Sharing App
-
Create Node JS Command Line ToolsJavaScript with Node vs the Browser0sExecuting JavaScript0sWorking with Modules0sInvisible Node Functions0sThe Require Cache0sFiles Get Required Once!0sDebugging with Node0sApp Overview0sAccessing Standard Library Modules0sThe Callback Pattern in Node0sThe Process.cwd Function0sRunning a Node Program as an Executable0sLinking a Project0sIs it a File or a Folder?0sA Buggy Initial Implementation0sOptional Solution #10sA Callback-Based Solution0sCallback-Based Functions Using Promises0sIssues with Sequential Reads0sPromise.all-Based Solution0sConsole Logs with Colors0sAccepting Command Line Arguments0sJoining Paths0sApp Wrapup0s
-
Create Your Own Project RunnerApp Overview0sProject Setup0sBig Application Challenges0sWatching Files with Chokidar0sIssues with Add Event0sDebouncing Add Events0sNaming Require Statements0sHandling CLI Tools with Caporal0sEnsuring Files Exist0sIt Works!0sMore on StdIO0s[Optional] More on Child_Process0sApp Wrapup0s
-
Project Start – E-Commerce App
-
Design a Custom DatabaseData Storage0sDifferent Data Modeling Approaches0sImplementing the Users Repository0sOpening the Repo Data File0sSmall Refactor0sSaving Records0sBetter JSON Formatting0sRandom ID Generation0sFinding By Id0sDeleting Records0sUpdating Records0sAdding Filtering Logic0sExporting an Instance0sSignup Validation Logic0s
-
Production-Grade Authentication
-
Structuring Javascript ProjectsProject Structure0sStructure Refactor0sHTML Templating Functions0sHTML Reuse with Layouts0sBuilding a Layout File0sAdding Better Form Validation0sValidation vs Sanitization0sReceiving Validation Output0sAdding Custom Validators0sExtracting Validation Chains0sDisplaying Error Messages0sValidation Around Sign In0sPassword Validation0sTemplate Helper Functions0sAdding Some Styling0sExposing Public Directories0sNext Steps0sProduct Routes0sThe Products Repository0sCode Reuse with Classes0sCreating the Products Repository0sBuilding the Product Creation Form0sSome Quick Validation0s
-
Image and File UploadExploring Image Upload0sUnderstanding Mutli-Part Forms0sAccessing the Uploaded File0s[Optional] Different Methods of Image Storage0sSaving the Image0sA Subtle Middleware Bug0sBetter Styling0sReusable Error Handling Middleware0sProducts Listing0sRedirect on Success Actions0sRequiring Authentication0sTemplate Update0sIds in URLs0sReceiving URL Params0sDisplaying an Edit Form0s
-
Building a Shopping CartEditing a Product0sFixing the HandleErrors Middleware0sEdit Form Template0sDeleting Products0sStarting with Seed Data0sUser-Facing Products0sProducts Index0sMerging More Styling0sUnderstanding a Shopping Cart0sSolving Problem #10sSolving Problem #20sShopping Cart Boilerplate0sSubmission Options0sCreating a Cart, One Way or Another0sAdding Items to a Cart0sDisplaying Cart Items0sRendering the List0sTotaling Cart Items0sRemoving Cart Items0sRedirect on Remove0s
-
The Basics of TestingTesting Overview0sA Simple Function to Test0sA No-Frills Testing Implementation0sTest Driven Development0sFixing Three Issues0sThe Assert Module0sUsing Mocha0sApp Setup0sReminder on This App0sWhy is Test Setup Difficult?0sMocha in the Browser0sDisplaying the Autocomplete0sVerifying the Dropdown State0sWriting Assertions0sFake DOM Events0sHolding Up Assertions0sImplementing WaitFor0sAsserting Records Fetched0s
-
Building a Testing Framework From ScratchTest Framework Requirements0sProject Setup0sImplementation Steps0sWalking a Directory Structure0sImplementing Breadth First Search0sCollecting Test Files0sRunning Test Files0sA Quick Test Harness0sImplementing ‘beforeEach’ and ‘it’0sAdding Basic Reporting0sAdding Colors0sBetter Formatting0sIgnoring Directories0sRunning Browser-Based JS0sA Sample Web App0sWhy JSDOM?0sBuilding a Render Function0sHTML Element Assertions0sAn Incorrectly Passing Test0sAnother Small Issue0sScript Execution Delay0sImplementing a Delay0sFixing a Test0s
Always bet on Javascript!
For years, top recruiters in industry have hired fresh engineers based solely on their knowledge of Javascript. If you want to get a programming job, this is the language to learn! But learning Javascript is complicated! There’s fancy syntax, weird design patterns, and a billion resources online that might be giving you wrong – or even be out of date – information.
We built this course to solve your problems. This is the best and most up-to-date resource online for becoming a Javascript professional as quickly as possible. Every minute of this course has been created with one goal in mind: teaching you how to become a great engineer.
The Modern Javascript Bootcamp focuses on cutting through unnecessary information and giving you just the facts, plain and simple. You won’t work with outdated frameworks, learn old styles of programming, or build boring apps. Instead, you’ll only spend time writing practical code that can be used today and in the future on your own projects. You’ll learn – from very early on in the course – how to write beautiful and reusable code that you’ll be proud to show to a future employer.
Two of Udemy’s greatest instructors – Colt Steele and Stephen Grider – collaborated to create this course. Between the two of us, we have taught over one million engineers how to program. Rest assured, you will be learning from the best. We know how challenging it can be to understand a new programming from scratch, so we designed this course to offer you a step-by-step, guaranteed approach to becoming a Javascript master.
___ Course Structure ___
This course is divided into two parts. The first half of the course focuses on teaching you the basic syntax of Javascript. Colt will walk you through core topics effortlessly, imparting jewels of JS wisdom along the way. Included in the first half of the course are many programming exercises and small projects, so you can test your new-found knowledge out. Each of these videos can be easily referenced in the future, so you can always come back and brush up on some topic whenever needed.
The second half of the course is focused on building some amazing projects. Stephen will show you how to build some production-ready Javascript applications, including a fully-featured E-Commerce web app! These projects are all styled to be absolutely beautiful, visually stunning apps that you will be proud to feature on your own personal portfolio. The main goal of these projects is to highlight design patterns, and show you the ‘right’ and ‘wrong’ ways of writing code. By the end, you’ll be confident enough to work on your own personal projects with speed and finesse.
___ What You’ll Learn ___
This is a long course, with just about every fact about Javascript you could ever hope to know. Here’s a brief subset of the topics you’ll cover:
Master the basics of the language, easily understanding variables, objects, arrays, and functions
Understand how to design the structure of the code you write, leading to beautiful and easy-to-read programs
Leverage Javascript’s built-in methods to increase your productivity regardless of what libraries or frameworks you use
Develop practical skills around higher-order functions that you will utilize for years to come
Observe how the Javascript and browser work together, and how to increase the performance of JS code
Build awesome projects to fill your personal portfolio
Build command line tools from scratch using Node JS
Fetch and manage information from third-party API’s
Build a fully-featured E-Commerce application from scratch – including production-grade authentication!
This is the ultimate Javascript course. There are many resources online for learning Javascript, but this is the only one that covers everything you need to know, from ‘A’ to ‘Z’, and a couple letters after that. Master the basics with Colt, then build awesome projects with Stephen. We’ve taught a million other engineers how to code, and now it is your turn!
What's included
- 52 hours on-demand video
- 5 articles
- 344 downloadable resources
- Access on mobile and TV
- Certificate of completion