Skip to content

Instantly share code, notes, and snippets.

@duluca
Last active June 20, 2017 16:39
Show Gist options
  • Save duluca/a467664c399f8df843e3550b50be488e to your computer and use it in GitHub Desktop.
Save duluca/a467664c399f8df843e3550b50be488e to your computer and use it in GitHub Desktop.
The JavaScript Promise Outline

The JavaScript Promise

A guide to effective, productive and joyful development experience

The JavaScript Promise is about the promise of JavaScript as a whole, including the language, community, libraries, frameworks and tools, enabling you to be a happier, more effective and productive creator for beginners and seasoned software engineers alike.

If you're an absolute beginner, the JavaScript ecosystem offers the gentlest ramp up possible in any web-ready technology stack to bring you up from zero to hero. You don't need to be a long time coder or have a computer science degree to achieve results with JavaScript.

If you're a professional whose needs scale from a single page website to large scale enterprise deployment, who needs reliability, performance, security, code analysis and automated testing, JavaScript is fully capable of meeting and exceeding these needs and do so in a cost effective manner.

The JavaScript Promise aims to open your mind up to the possibilities that are enabled by the JavaScript ecosystem and help you accomplish what you need to accomplish. It doesn't aim to be a reference of all things JavaScript or document language functions and features. Relevant links to deep dive resources along the way.

The JavaScript Promise is kind of like a choose-your-own-adventure resource. Read the first chapter to orient yourself and then skip to the chapter that'll help you achieve the result you need to achieve. Each chapter will list their pre-requisites and the complexity of the content will be flagged as Beginner, Intermediate and Advanced.

The JavaScript Promise is meant to equip you with the resources you need to get yourself up to speed with JavaScript as a language, and use it to create full and complete solutions. Motivating yourself to learn something new can be a challenge, thusly this book is focused on the learning-by-doing methodology. In parts, this book relies on NodeSchool.io workshoppers for the best self-learning experience.

I. Introduction
	a. JavaScript Promises
		i. A 5 minute guide to JavaScript Promises in case you bought the wrong book
	b. What is the JavaScript Promise?
		i. Easy to use
		ii. Easy to learn
		iii. Works everywhere 
			1) Web
			2) Mobile Web
			3) Progressive Web
			4) Hybrid Mobile
			5) Desktop
			6) IoT
		iv. No compilation
		v. Loose or strict
		vi. No over-engineering
		vii. No heavy IDEs
		viii. Native JSON workflow
		ix. Deliver results and quickly too
		x. Stand the test of time
	c. Why use JavaScript?
		i. Explain to your boss benefits of full-stack JS
		ii. Native Web Apps
		iii. Real-time
		iv. Skill share
		v. Developer happiness
		vi. Performance
		vii. Scalability
		viii. Better Agile Teams
	d. Breaking down the barriers
		i. Powerful impact of Open source
		ii. Define usual barriers to entry
		iii. Standards based solution
		iv. Simplify stack
		v. Full-stack JS
		vi. No context switching
		vii. Consistent tools
		viii. Consistent best practices
II. The Very Beginning
	a. Learning by doing methdology
	b. New to Collaborative & Open Source Programming?
	c. Installing Pre-Requisites
	d. Learn How to Ask for Help
	e. Write your first lines of code
III. A Re-Introduction to JavaScript
	a. A brief history 
	b. Things to unlearn
	c. jQuery to Backbone to Angular/React
	d. WebComponents
	e. Importance of modules
		i. Types of modules 
	f. Configuration vs convention
	(picture of gears turning) vs (secret society meeting) 
	G. Packaging code
IV. JavaScript Ecosystem Basics
	a. Node
	b. Npm
	c. Angular
	d. React
	e. TypeScript
	f. Cordova
	g. Electron
V. Become a Better JavaScript Developer
	a. Lodash etc.
VI. How to Create a Simple Web Page
	a. HTML
	b. CSS
	c. JavaScript
VII. How to Create a Command Line Tool
VIII. How to Create a Simple Web Server
	a. Node
IX. How to Create Web APIs
	a. Express
X. How to Create a Dynamic Single Page Application
	a. Angular & Angular Material
XI. How to Create a Simple Hybrid Mobile Application
	a. Wrap SPA with Cordova
XII. How to Connect to a Database
	a. MongoDB
XIII. How to Compare Front-End JavaScript Frameworks
	a. Polymer
	b. Ember
	c. Angular
	d. React
XIV. How to Create a Sophisticated SPA
	a. AngularJS
	b. Angular
XV. How to Create a Full-Stack JavaScript Application
	a. MEAN
XVI. How to Write Unit Tests
	a. Jasmine
	b. testdouble
XVII. 1 Hour CI & CD 
	a. Github
	b. Codeship/CircleCI
	c. Heroku
XVIII. How to Create a Full-Stack TypeScript Application
	a. Minimal MEAN
XIX. How to take full advantage of MongoDB
XX. How to containerize your application
	a. Beginner
	b. Advanced
XXI. How to Create Better Hybrid Mobile Applications
	a. Ionic
	b. React Native
XXII. How to Create a Desktop Application
	a. Electron
XXIII. How to Hack on IoT boards
	a. Tessel
	b. Hobby to production
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment