Awesome Coding
Minimum price
Suggested price

Awesome Coding

Build Cool Stuff with JavaScript and Node.js

About the Book

Learn coding with JavaScript and Node.js from scratch and work on practical projects, applicable and interesting projects. Learn more at

? What is Awesome Coding about?

Awesome Coding is a book that teaches you JavaScript and Node.js by building cool projects. In this book, you will learn coding from scratch and work on practical projects that include data analysis, image manipulation, web scraping, command-line applications, natural language processing, and web APIs to get news, stock, and even cryptocurrency data.

I am a self-taught developer, so I wanted to make sure to create an engaging book that is easily accessible by beginners. If you want to learn coding from scratch with highly practical, applicable, and useful examples, this is the right book for you.

? Who is Awesome Coding for?

This book is for complete beginners who would like to start learning JavaScript and Node.js with practical, interesting, and awesome examples. Prior coding knowledge is not required.

? What is included in the Book?

? JavaScript and Node.js Basics

Learn the basics of JavaScript and Node.js from scratch. Establish an understanding of software development principles such as the Single Responsibility Principle, Do not repeat yourself, Test-Driven Development.

? File System Operations

Create files and folders using Node.js. Learn working synchronously vs asynchronously.

? Image Manipulation

Programmatically resize, color-correct, or modify images.

? Web Scraping

Automate your interactions with the web. Programmatically scrape website data, take screenshots.

? Command-Line Applications

Build programs that can be controlled from the command-line (terminal).

? Natural Language Processing

Perform NLP operations such as language detection and sentiment analysis.

? Data Analysis

Practice analyzing and working large sets of data.

? Web APIs

Use Web APIs to get news headlines, stock market, and cryptocurrency data.

About the Author

Engin Arslan
Engin Arslan

Hi there! ? My name is Engin Arslan. I am a software developer based in Berlin. Before becoming a developer, I worked as a visual effects artist / technical director on films and TV shows, including Resident Evil 4, Tron, Mama, Pompeii, Vikings, and Strain. I received an Emmy Nomination and won a Canadian Screen Award for my Visual Effects work. During my time in VFX, I fell in love with Python and with programming in general. As a result, I have taught myself web development and changed careers to immerse myself completely in software development. Currently, I am working as a senior front-end developer at Shopify. I am also an author for a couple of online courses, such as 3D Graphics on the Web and Coding for Visual Learners on Linkedin Learning. I was a part-time professor at Seneca College in Toronto for 5 years, teaching programming to complete beginners. I have decided to write Awesome Coding since there aren't too many sources out there that teach programming in an engaging way.

Table of Contents

    • 1 Preface
      • Why Learn JavaScript?
      • What Will You Learn In This Book
      • Code Examples
  • I JavaScript Basics
    • 2 Setting Up Your Development Environment
      • Development Environment Setup
      • Running JavaScript Online
    • 3 Basic Data Types and Variables
      • Basic Data Types
      • Variables
      • Choosing Variable Names
      • Declaring Variables
      • Summary
    • 4 JavaScript Functions
      • Functions
      • Thinking About Functions
      • Other JavaScript Functions
      • Defining Functions
      • A Real World Function Example
      • Callback Functions and Anonymous Functions
      • Summary
    • 5 Comparison Operators and Conditionals
      • Booleans & Comparison Operators
      • Comparing Fractional Numbers
      • Logical Operators
      • Conditional Statements
      • Truthy and Falsy Values
      • Logical Operators Revisited
      • Summary
    • 6 Project: Creating an Email Template
      • Creating an Email Template
      • Template Literals
      • Summary
    • 7 JavaScript Objects
      • this Keyword
      • Passed by Value vs. Passed by Reference
      • Factory Functions, Constructor Functions, and Classes
      • Summary
    • 8 Arrays
      • Example: Building a Password Validator
      • Summary
    • 9 Loops
      • Example: Writing a Countdown Function Using a While Loop
      • for Loop
      • Example: Writing a Countdown Function Using a for Loop
      • Looping Over Collections
      • Map and Filter Methods
      • Summary
    • 10 Project: Password Validator
      • Minimum 8, Maximum 12 Characters
      • No Space at the Start or at the End
      • Includes at Least Two Special Characters
      • No Repeating Characters
      • Includes at Least Two Numbers
      • Refactoring Code
      • Summary
    • 11 Programming Libraries
      • Loading Libraries
      • Library Examples
      • Summary
    • 12 Project: Data Analysis
      • Using Faker
      • How Many Students Are There?
      • Which Email Providers Exist?
      • How Many Users There Are for Each Email Provider?
      • Which User Has the Longest Email Address?
      • Which User Has the Shortest Email Address?
      • Which Country Has the Most Users?
      • Summary
  • II Getting Started with Node.js
    • 13 Introduction to Node.js
      • Installing Node.js
      • Using the Terminal
      • Using a Code Editor
      • Our First Node.js Program
      • Summary
    • 14 Modules
      • Using Modules in Node.js
      • Summary
    • 15 Third-Party Modules and Libraries
      • Using package.json
      • Summary
    • 16 Project: Writing a Command-Line Tool
      • Building a Number Guessing Game
      • Getting the Command Line Arguments
      • Capturing the User Input
      • Creating the Game Loop
      • Summary
  • III Interacting with the File System in Node.js
    • 17 File System in Node.js Part 1
      • Working with Folders
      • Performing Folder Operations
      • Summary
    • 18 File System in Node.js Part 2
      • Reading and Writing Files
      • Error Handling in JavaScript
      • Reading Files with Error Handling
      • Summary
    • 19 File System in Node.js Part 3
      • Working Asynchronously
      • Creating a folder asynchronously
      • Reading and Writing files in Node.js
      • Choosing Between Synchronous and Asynchronous Functions
      • Summary
  • IV Image Processing in Node.js
    • 20 Image Processing in Node.js using Jimp
      • Callback Hell
      • Callbacks vs. Promises
      • Using Jimp with Promises
      • Summary
  • V Web Scraping
    • 21 Automate the Web Using Puppeteer
      • async-await
      • Getting Started with Puppeteer
      • Summary
    • 22 Programming Inside the Browser
      • HTML (Hypertext Markup Language)
      • CSS (Cascading Stylesheets)
      • Classes and IDs
      • Using JavaScript inside the Browser
      • Summary
    • 23 Project: Get Random Wikipedia Articles
      • Things to Keep in Mind with Headless Browsers
      • Summary
  • VI APIs
    • 24 Working with APIs
      • Communicating with Web APIs
      • Using Web APIs
      • About Web Browser APIs and Web Service APIs
      • Summary
    • 25 Project: Stock and Crypto Market API
      • Finding the Stock Symbol for a Company
      • Getting the Price Data for a Stock
      • Getting Company Financials
      • Getting the Price in Bitcoin
      • Summary
    • 26 Project: News API
      • Using NewsAPI with a Client Library
      • Adding Day.js
      • Performing Sentiment Analysis
      • Summary
    • 27 Closing Words

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub